Software Engineering Research Group

Software engineering is concerned with the problem of how to produce high quality software from the user requirements, to design, to the implementation and subsequent maintenance of the software.

It encompasses the use of formal methods all the way to the pragmatics of actual software development.

The research in the practical aspects of our software engineering group ranges from using web-based knowledge engineering (semantic web) to software reuse techniques for designing high-variability software components.

In formal methods, the research looks at the problems of specification and verification of software (e.g., model checking). There is synergy with the faculty and research in the programming languages in the areas of program verification, debugging and system specification. Our research on reuse focuses on variability management, applying generation techniques for Software Product Lines, and re-engineering of legacy code for reuse (software clone detection and modeling of Software Product Lines).

The research can be classified along the following dimensions:

  • Integrated modeling techniques
  • Mining software systems
  • Model checking (PAT)
  • Semantic web and ontologies
  • Variability management in software
  • MDD and software generation in Software Product Line reuse
  • Re-engineering for reuse
  • Software clone detection and differencing