Model-Driven Software Development: Technology, Engineering, Management
by Thomas Stahl, Markus Völter, Jorn Bettin, Arno Haase, Simon Helsen, Krzysztof Czarnecki, Bettina von Stockfleth
Chapter 15
Versioning
Efficient versioning and configuration management are always important in software development projects. In this chapter we discuss only those MDSD-specific characteristics of this topic.
15.1 What Is Versioned?
In an MDSD project, the following aspects must be managed or versioned:
- The (generic) generation tools. Currently, these tools are often still in development themselves – because of this, it makes sense to have them under version control.
- The generator configuration, the generative part of the domain architecture. This includes the DSL/profile definition, metamodel, templates, and transformations.
- The non-generative part of the domain architecture, the MDSD platform.
- The application itself: models, specifications, and (in most cases) manually-developed code.
The generated code ideally is not versioned, because it is reproducable from the model at any given time, and thus does not constitute a real program source. Of course, this idea can be applied sensibly only if the manually-created and the generated code are separated structurally in the file system. This is one reason why we value this separation (see Section 8.2.6). In practice, it is not always 100% possible or useful, so we sometimes need a more complex procedure for such cases. We discuss this later in this chapter.
One of the goals of model-driven development is the development of several applications based on the same domain architecture. It is therefore essential to separate the platform ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access