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.
—John Candee Dean, Popular Astronomy, vol. 19, no. 1 (January 1911)

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
figure

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.

10.1 Managing DSL content change

10.2 Categorizing and charting coupling

10.3 Changing the DSL

10.3.1 Versioning the Domain IDE

10.3.2 Changing the DSL’s structure

10.3.3 Deprecating concepts and properties

10.3.4 Changing a DSL key aspect other than structure

Summary