print · login   

Human Aspects and Empirical Software Engineering

Software development is not just a technical but also a social process that involves people from diverse backgrounds and with varying needs, preferences, and expertise. Our group strives to investigate how human factors, such as knowledge, communication, and collaboration, affect software development processes, outcomes, and quality. We also acknowledge the importance of empirical methods for understanding and improving software engineering. Therefore, we employ various empirical research methods to collect and analyze data, including surveys, experiments, case studies, and mining software repositories. Our research group contributes to the advancement of software engineering by providing evidence-based insights and recommendations for designing, implementing, and evaluating software artifacts.

Our research topics include:

Software maintenance and evolution

Software maintenance is essential as software systems often must cope with newly emerging issues and constantly changing environments. The goal of this research topic is to propose new approaches for:

  • Assessing the quality of software
  • Detecting and analyzing the impact of software refactoring
  • Proposing automatic approaches for software quality improvement

Software development process

A good development process is critical for the productivity of software teams. The relevant tasks of this research topic include:

  • Understanding obstacles of software development and proposing solutions
  • Mining software repositories to investigate and facilitate different development activities

Development bots

Development bots bridge the gap between human collaborative software development and automated processes, alleviating the software development workload, improving productivity, and enabling use cases for which humans are not realistically suitable (e.g., giving feedback at scale). With this research topic, we aim at:

  • Developing novel bots to support the development process and its underlying activities
  • Understanding the impact of bot adoption on development processes and human collaboration

Software product lines

Software product lines are a key technology for developing customized software at scale. Our group focuses on bridging the gap between theory and practice in this area. With our contributions in this direction, we aim at:

  • Understanding the state-of-practice of software product line engineering, with a focus on the Dutch high-tech industry and open-source software
  • Developing improved software analysis and testing techniques for customizable software
  • Evaluating techniques for software product line engineering, including developer studies and benchmarks with real-world data

Software exercises

We focus on automated support for the management of software exercises. Some topics in this area are:

  • Automatic grading of software exercises
  • Generation of feedback to improve student learning