Effective software engineering requires healthy software and teams. A healthy software is maintainable, well-performing, with low technical debt, and based on sound design decisions. A healthy team is productive, diverse and inclusive. And healthy software and team amplify each other. Our research enables the software industry to improve their software and team health.
professor (group leader)
Large, complex, and long-lived systems are hard to design and maintain! We need evidence-based tools to make architecture decisions and manage technical debt.
There’s too much code in the world! We should rethink the software stack with DSLs for better productivity, reliability, and stakeholder communication.
Building a software system is one thing, but maintaining it is much more expensive: this is the phase we need to prioritize!
To ensure system longevity, reduce environmental footprint, and maintain operational profitability, we need to connect design-time and run time.
Software data is a boundless reservoir empowering decision-making with greater insight and navigating trade-offs relevant to society (e.g., fairness) and the software industry (e.g., developer productivity).
If software development is to evolve, we need human-centered tooling to leverage cross-system knowledge sharing.
AI for Software Engineering
Empirical Software Engineering
Maintenance and Evolution
Mining Software Repositories