Software Engineering and Technology
Group leader prof.dr. M.G.J. van den Brand
Mark van den Brand studied computer science from 1982 up to 1987 at the Katholieke Universiteit Nijmegen and he received a PhD from the same university in 1992. Since then he has been working at the University of Amsterdam, the CWI and the Hogeschool of Amsterdam, before becoming full professor and leader of the Software Engineering and Technology group at the TU/e.
His research interest lies in the field of generic language technology, in area in which he has published many papers and where he has served on numerous program committees. He was keynote speaker at the Software Language Engineering (SLE2008) conference and he was three times guest editor of special issues of Science of Computer Programming devoted to academic software development.
Since April 2013 he is also the vice-dean of the department of Mathematics and Computer Science.
The overall objective of the group Software Engineering and Technology (SET) is to develop methods and tools for time- and cost-efficient evolution of high-quality software systems: from inception, through development and maintenance, to phase-out. SET recognizes the importance of both legacy systems and state-of-the-art development methodologies such as model-drive software development driven by formal models, domain-specific modeling and generic tooling.
Therefore SET will not limit its investigations to recent software development phenomena, but will also focus on a variety of other topics dealing with software migration, re-engineering and reuse. SET believes that it is of the utmost importance to integrate the daily software development practice with with cutting-edge research and high-profile education. SET welcomes collaboration with industrial and academic partners that will foster a better understanding of the nature of software and software-related processes.
The research of Software Engineering and Technology group is on software engineering in general, but with a strong focus on theory, methods and tools for maintaining consistency between models and code.
SET has the following research themes:
Theory, methods and tools for model-driven software engineering
The ultimate goal of model-driven software engineering is increasing the quality of the resulting products and the reduction of development costs. The latter can be achieved by re-use of developed models, reduction of their maintenance, and application of software generation tools. Topics addressed in this theme are: generation of code from models, reconstruction of models from code, and analysis and transformation of models and code.
The ultimate goal is increasing the quality of the resulting products and the reduction of development costs. Domain specific languages play an important role in the area of model-based software engineering. The basic idea is that (significant parts of) software products are generated from models (design artefacts), together with libraries or frameworks. This provides both easier communication with the domain experts, opportunities of re-use of generic code, and formal verification of the developed models.
The software development process itself does not become less complex by the introduction of model-based techniques, because of newly introduced artefacts: the model, the transformer/generator, and the framework, and this gives rise to new research questions on software quality.
SET focuses on tackling the quality aspects of domain specific languages, models, and model transformations by developing tools and techniques to describe and analyse these artefacts. Model transformations have become important artefacts in the software life-cycle.
This means that not only their external software quality attributes, such as correctness and robustness, become crucial, but also their internal software quality attributes, such as readability, maintainability, and reusability.
Software maintenance and evolution
A complementary research line focuses on maintenance and evolution of existing software systems as opposed to the development of the new ones.
The ultimate goal consists in supporting software maintainers and quality assessors in their tasks. To this end, we extract information from the artefacts that maintainers encounter in their daily work: source code, version control systems, and mails.
We have studied software evolution by means of measurement and visualization, based on series of released versions and version control systems, with respect to an individual system, an ecosystem (e.g., GNOME) or an extensive source code repository (e.g., SourceForge).
Our main contributions pertain to aggregation of software metrics by means of econometric inequality indices, dependency analysis and reverse engineering for application-server-based software and process mining software repositories.