10 Managing change
This chapter covers
- Managing change of the DSL content
- Identifying what kind of change we can expect when using a DSL-based approach for software development
- Changing and versioning the DSL itself
Ceaseless change is the only constant thing in nature.
A large part of the attraction of adopting a DSL-based approach for software development is being able to handle change in a better, more efficient way. The DSL-based approach actually embraces change by facilitating more team members to actively contribute changes, which tends to have a relatively big effect.
In this chapter, we’re going to see how to deal with change, having adopted a DSL-based approach. Two distinct things can change in a DSL-based approach:
- Domain experts change the DSL content by working on it using the Domain IDE.
- The software developers change aspects of the DSL itself due to requests from domain experts.
Figure 10.1 showcases both kinds of change. We’ll discuss these two kinds of change in much more detail and see what impact we can expect from those changes.
Figure 10.1 The high-level architecture of the DSL-based approach, and the two sources of change

This chapter will be relatively theoretical and quite light on code and exercises. We won’t extend the functionality of the Domain IDE or the implementation of our example DSL. We will use the knowledge we gain here in subsequent chapters to evolve our example DSL.