In classical software development, the transformation of design specifications into executable software requires a lot of effort and time and is not as agile as users typically want. This excellent paper builds on well-known principles from model-driven design (MDD) and demonstrates that one can indeed conceive and implement a production-quality software system able to absorb design changes by using a so-called description-driven approach.
In this approach, every system element (for example, data objects, collections, activities, events, workflows, agents, and outcomes) possesses a description, which is also part of the system and may be modified and versioned online as the design of the system changes. An item is instantiated from its description (which is also an item); when its description changes, the newly created item conforms to the new version of its description and co-exists with older versions.
Initially, hopes were high that expert users would be able to develop or modify workflows described in this way by themselves. In practice, however, this was not possible, but the description-based approach provided an effective means for users and designers to mutually establish a much clearer conception of workflow requirements.
The concept was used to build an engineering information management system to manage the construction of the electromagnetic calorimeter for CERN’s Large Hadron Collider (LHC), a project comprising 1,500 engineers during 1995 and 2008. It is also used as a commercial product.
The paper is very elaborate and provides all of the information needed to understand how the system works, including bootstrapping, software maintenance processes, and how designers and users collaborate. A thorough (and honest) “lessons learned” section and an outlook on future work in the direction of a self-describing model execution engine conclude this fine paper. Without any doubt, this is a must-read for professionals and academics dealing with models and how they are enacted in software systems (such as MDD or workflow management systems/process-aware information systems).