Developing high quality evolving software
The Software Engineering and Technology group at Eindhoven University of Technology investigates how software can achieve high quality throughout its lifetime.
The software industry faces significant challenges in the form of rapid software growth, declining software quality and increasing societal expectations. The Software Engineering and Technology (SET) group at Eindhoven University of Technology develops methods and tools for time- and cost-efficient evolution of high-quality software systems: from their inception, through development and maintenance, to phase-out.
‘Our group does not quite conform to the classic organisation of a research group’, Michel Chaudron says. ‘We have three full-time professors who form a kind of partnership in which the three of us make the important decisions.’ The trio consists of Chaudron himself, Professor of software engineering with a focus on software architecture, design and modelling, Mark van den Brand, Professor of software engineering who focusses on model driven methods, and Alexander Serebrenik, Professor of social software engineering, who focusses on social factors in developing and using software.
‘Software engineering has largely become an empirical study,’ says Chaudron, ‘which is why we think the link to practice is very important. Our group is good at collaborating with companies and we have a great connection to the industry in the Brainport Eindhoven technology region.’
An example of research that Chaudron himself is working on is recovering the architecture from its implementation and creating visualisations to help understand the architecture. Chaudron: ‘Software is actually an edifice of layered abstractions that continuously evolves. Practical software consists of millions of lines of code, nowadays even in several programming languages. If you want to know how that software works, you first want to understand its structure: what relationships exist between different components? That’s a big puzzle, and software visualisation helps solve it by making the relations between pieces of the puzzle better visible.’
The most important change facing software engineering in the coming years, and thus also the research in the group, is the introduction of AI, says Chaudron. In industry ChatGPT is already being used by software developers for many of their tasks. Chaudron: ‘AI is going to turn everything within software engineering on its head: from requirements analysis, creating designs, generating source code and debugging, to writing documentation. We know that AI in software engineering can lead to a major productivity improvement, but the big challenge is to ensure that this does not lead to a lower quality because we start to rely too much on AI.’
One of the ideas that Chaudron has developed together with fellow professor Jurgen Vinju to prevent this is to create a national or even international research infrastructure aimed at connecting different software analysis tools.
Complementing curiosities
Jacob Krüger joined the Software Engineering and Technology group as an assistant professor in September 2022. Krüger received his undergraduate and graduate training in Germany, and he notices the difference between the culture in the SET group and the academic culture in Germany: ‘It’s so much less hierarchical than I was used to. In SET it’s much more about collaboration. Michel, Alexander, and Mark, the three group leaders, are trying to create a group in which people can work on their own favourite topics but in such a way that all the topics complement each other. And everybody is involved in deciding the development of the whole group.’
Krüger studies human factors in software development, in particular economical and psychological factors. ‘A typical team of software developers consists of, let’s say, four to fifteen developers’, he tells, ‘and often you have multiple teams working in parallel. Potentially hundreds of people are involved, which creates a complex social environment.’
Improving software quality costs time and thus money, but it might save money by delivering more reliable software. By studying economics of software development, Krüger noticed how important it is to also look at how developers approach their work cognitively: ‘How do they understand code? What do they memorise and what not? One of the results that we have found, is that developers are good at memorising high level abstractions, architectures and features, but not at memorising lower level code. Based on these findings we try to build tools to support them in recovering what has happened over time with the software.’
Examine evolution
Lina Ochoa joined the SET-group in April 2023 as an assistant professor. She studies the evolution of software ecosystems. Ochoa: ‘Let’s say a team of software developers has released a software project, but after some time starts changing some features. A new version of the software is released and the changes will impact other teams of developers that rely on that project. One of the main challenges is to understand the people working on the software and the values they have.’
On a more technical level Ochoa develops tools that make software more robust against changes. Ochoa: ‘For example, when software libraries evolve, they incorporate new features like bug fixes and security patches. These changes might break the contract previously established with its clients. As a result, clients may hesitate to upgrade their software. An analysis tool might help library developers to understand and anticipate the impact of their changes.’
Like Krüger, Ochoa appreciates the non-competitive and collaborative environment in the SET group: ‘People are very good at what they do, but at the same time they are humble and willing to teach you things that you don’t know yet. I feel they provide the support that makes you grow.’
Group passport – Software Engineering and Technology group
Research fields: Model-driven software engineering, digital twins, software evolution and maintenance, human and social aspects of software engineering
Institution: Department of Mathematics and Computer Science of Eindhoven University of Technology
Website
By Bennie Mols
Images Ivar Pel