Evolvable Software Products


The ESP project ended in 2009.

Project outline

Software products such as Enterprise Resource Planning (ERP) systems, game engines, and simulation software, are often built around a software kernel. A software kernel encapsulates and provides core functionality, and then specific software products are developed by deploying and adapting this kernel. Often the products themselves can be further configured and customised. The goal of this project is to develop methods and technologies for the design and implementation of evolvable software products based on software kernels. The project is divided in two parts: the technical part, which explores software engineering techniques to achieve reliable and evolvable software products, and a process part which explores how software is created and maintained on a long term basis.

The project took place in 2006-2009 and was funded the Danish government through NABIIT, a research council for nano-, bio- and information technologies. The external industrial partners were DHI Water and Environment and Microsoft Dynamics.

Technical aspects

Adaptation. Building software from scratch is both time consuming and expensive. Therefore, the research community and the software industry have promoted for a long time the reuse of software components. Sadly the chance of finding a software component that matches exactly the needs for a complex system, such as an ERP system, is typically very small. It is therefore important to be able to adapt existing components to some specific user requirements. Reuse comes in two flavors: black box and white box reuse. The former does not allows for direct modifications, the components are reused as they are, some specific mechanisms are used to adapt them (configuration,plugins etc.). The later, white box reuse, allows for making direct modification to the component, typically by providing the full source code or a subset of the source code.

Example. ERP systems are an excellent example of such common situation. The needs of a certain company typically do not match the default ERP system. This is typically due to local regulations, but also to some specificities of the company -- each company is unique. The Dynamics AX ERP system allows for black box reuse using adaptation layers, whereas the Dynamics NAV ERP system embraces white box reuse, by allowing users to modify a part of the source code, while keeping another part, the kernel part, closed.

Upgrade. Once the software component has been adapted, it is typically very difficult to upgrade the component to a new version. Trying to apply the exact same adaptations to the new version of the components is of course likely to fail. The customization work on the new version of the component is not done from scratch, since the existing adaptations are available, but it cannot be done automatically. This upgrade process is both very expensive and error prone. As noted by a recent article of Communication of the ACM, "Customizations that must be carried over from one version of enterprise software to the next are the biggest technology headache and ROI killer that CIOs face in upgrades [Beatty et al. 2006]".

Software process

Software Engineering Beyond the Project. Previous research has shown that the continuous development and evolution of software products challenges the software engineering focus on ‘the project’ and the isolation of the project from its context. Software products are often upgraded on a regular base. The knowledge has to be communicated and maintained across these smaller projects. Good contacts to users and customers is important to understand requirements arising from changes in the deployment context. If the software is built up as a kernel + application layer, communication between the different layers of development and the configuration and customisation becomes important. That is, relating to the context ‘beyond the project’ becomes as important as organising the work within the project.

Re-engineering for Evolvability. This work aims at discovering aspects to enhance evolvability by re-engineering and modularizing an existing software product. As the first subproject, designing a new architecture for handling data access module in flexible way is focused. The main expected outcome of this work is concrete advice, methods or even solutions for architecture that DHI Water and Environment can directly use in order to implement product line architecture. Moreover, this result can be expected to allow for generalization to other contexts. The methods for investigating the transition to product line architecture, techniques to implement product line architecture and organizational principle based on the detailed case studies should be applicable in other organization and provide a base for future research.


Software Development Group at ITUMicrosoft DynamicsDHI Water and Environment
Yvonne Dittrich (Project leader) Torben Wind Thomas Bech
Peter Sestoft (Group leader) Lars Hammer Karl Josef Hollenbeck
Hataichanok Unphon Michael Nielsen
Sebastien Vaucouleur
Morten Rhiger
Hanne Sørensen (Project Assistant)

Project publications

  • Y. Dittrich. Rethinking the Software Life Cycle: About the Interlace of Different Design and Development Activities

Position Paper for the Dagstuhl Seminar 07081 ‘End User Software Engineering’. February 2007. PDF

  • Y. Dittrich, P. Sestoft. Project Description PDF

Related work

Past events

evolvable_software_products/esp.txt · Last modified: 2010/04/30 15:33 by root
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki