When new features are being written into software code, errors can easily be made. This is due to the fact that feature code often interacts in many different places in the software. Therefore code from one feature can easily overwrite that of another one without being noticed. This causes bugs, which leads to software appearing later and being more expensive. Michiel Helvensteijn, a PhD student from Centrum Wiskunde & Informatica (CWI) in Amsterdam, studied how to prevent these kinds of errors. On 12 November, he defended his PhD thesis at Leiden University, called 'Abstract Delta Modeling - Software Product Lines and Beyond'. The research results are interesting for software engineers in both academia and the industry.
Software is growing and is being made by ever more developers. This makes it increasingly difficult to extend. To prevent the software from becoming too complex, code for each feature should be ideally combined into one module, so that code from different features is neatly separated. However, in reality code has to be spread across various locations in the software and mixed with other features. Michiel Helvensteijn developed together with fellow researchers the formal method of Abstract Delta Modelling (ADM) in order to solve this problem.
The researcher showed, for example, how a feature can be formulated with one delta module. Such a delta module changes existing code from outside and indicates, for instance, which code must be put where, and which part of the existing code needs to be adjusted. Helvensteijn made it possible for developers to describe relations between deltas, such as which delta may overwrite another one. He also designed a conflict resolution model. Helvensteijn: "If none of the deltas is ‘the boss’, the developer will now receive a clear error message, while previously the code of one module could silently overwrite that of another. If developers follow this method for conflict resolution, it saves them a lot of bugs. Then the software is modular and easy to maintain”.
The PhD student continues: "Especially Software Product Line Engineering has a lot to win here. Here the same code-base can be used for several software systems that each have different, but often overlapping sets of features. A specific system can then be generated by making a selection of features. This is called 'automated product derivation’. ADM can help to make the code composable, for instance for multiple software editions."
The new method has been tested in practice and works well. The research was partly funded by the EU HATS project, in which research organizations and industry collaborate on software variability. Software is one of the strategic themes of the Centrum Wiskunde & Informatica (CWI), where the research was conducted.
Illustration: Apinatomy – an application developed with delta modelling. Source: Michiel Helvensteijn.