Fewer errors in software features by using delta modelling
When new features are being written into software code, errors can easily be made. This causes bugs, which leads to software appearing later and being more expensive. Michiel Helvensteijn, a PhD student from CWI and the Leiden Institute of Advanced Computer Science, studied how to prevent these kinds of errors. 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.
Delta module
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’.
Automated product derivation
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.’
Cooperation between research and industry
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.
On 12 November, Michiel Helvensteijn defended his PhD thesis at Leiden University, called ‘Abstract Delta Modeling - Software Product Lines and Beyond’.
Source: Centrum Wiskunde & Informatica (CWI)