Software development is becoming data-driven
The Software Engineering Research Group at TU Delft aims at improving software development from the individual programmer to teams of thousands of programmers.
Millions of software developers all over the world use the platform GitHub to learn, share and cooperate in building and maintaining open-source software. For example, GitHub is used to let multiple people make changes to web pages at the same time. When the platform started to grow rapidly, some ten years ago, Georgios Gousios from the TU Delft Software Engineering Research Group built the infrastructure GHTorrent that collects valuable data about how software is actually developed.
Group leader and Professor of Software Engineering Arie van Deursen mentions the work of Gousios as one of the recent highlights of the group he has led since 2006. ‘With GHTorrent, you can see who changes which line of code, who uses a certain new feature, how the feature is used, how fast the implementation goes and who is testing what. The availability of a lot of open-source data means that we can improve software development in a data-driven way.’
Van Deursen’s Software Engineering Research Group wants to improve the software development process from the small scale of the individual programmer to the large scale of millions of programmers who are active in some open source community. ‘We focus a lot on software testing’, says Van Deursen. ‘But testing can never be complete. Therefore, we have to cleverly decide what to test and on which level. Part of the testing is done automatically, and we are constantly investigating which part of the testing can be automated and how. A recent trend is to use artificial intelligence as well.’
Van Deursen’s group does a lot of empirical research and cooperates with open source communities and companies. On 1 January 2020, they started a research partnership with the Dutch ING bank under the name ‘AI for FinTech’. The research takes place under the umbrella of an ICAI Lab (Innovation Center for Artificial Intelligence), part of a national network of some 22 ICAI Labs that focus on AI technology. Van Deursen: ‘ING employs 15,000 software engineers, which proves what a software-intensive company it is. Together with ING, we investigate automated program repair, incident detection and management, algorithmic bias, and data integration.’
Another theme within software development that is growing in importance is explainability, says Van Deursen: ‘How do apps that are critical to society, like CoronaMelder or CoronaCheck, actually work? And why do they work that way? Explainability should be a concern from the very beginning of the software development.’
Computational intelligence
Annibale Panichella is an assistant professor in the Software Engineering Research Group. He uses AI techniques to automate the process of constructing tests, automatically find bugs in software and make automated patches to fix them. ‘For this, we use techniques called “computational intelligence”’, says Panichella. ‘These are inspired by natural evolution and selection. We also combine this technique with machine learning based on neural networks to speed up the search for the optimal solution and find bugs faster. We use our tool, for example, to create test cases for smart contracts, which are very popular in the blockchain community, and for testing cyber-physical systems. In the latter field, we cooperate with companies like Siemens Healthcare.’
Panichella did a postdoc in Delft some years ago, but subsequently went to work at other universities in different countries. However, he decided to return to Delft. ‘We have a very international group with some ten nationalities. It is a very open group which gives a lot of freedom to all the group members. I really like that. And it is a very strong group. Recently we were listed in the top-12 of software engineering research groups in the world.’
Interact with tools
Carolin Brandt is a PhD student who is in the second year of her NWO-funded research in the group. She is investigating how software developers can cooperate with automated test generation tools. ‘Many researchers try to completely automate testing,’ says Brandt, ‘but I want developers to interact with automated tools. I want to use their knowledge. If you want to use AI in testing, like Annibale does, then the AI needs an objective that it can optimise. I want to know what the developer’s goal is. Still, I benefit a lot from the more AI-oriented work that people like Annibale are doing.’
The group has always been very active in organising social activities, although these were, of course, limited during the corona pandemic. Before the pandemic, there was a regular barbecue, internal workshops and a Friday after hours beer tradition. Brandt: ‘And members organised a reading club in which interesting papers were discussed.’
Brandt is clear about her ambition: ‘I want to become a professor. When I was in Germany and considering how I could shape my academic career, several people told me independently that if I want to work in the field of software quality, the Delft group is very strong. Many of the people who have been postdocs in our group became professors later.’
Group passport
Research field:
- Software engineering, software testing, trustworthy AI, automated software engineering, human aspects of software engineering
Institution
- The Software Engineering Research Group (SERG) is part of the TU Delft Faculty of Electrical Engineering, Mathematics, and Computer Science
Employees (as of November 2021)
- 2.4 full professors, 5 tenure track assistant professors, 4 postdocs, 16 PhD students. Multiple vacancies at all levels.
Websites
Published in I/O Magazine #4 2021
Text Bennie Mols
Images Ivar Pel