Chapter 4: Separation of Concerns


The key principle during the domain implementation phase is separation of concerns. Separating the variable parts from the common parts of a software system is essential in order to easily reuse the common parts. Abstraction is the principal method to separate concerns, chiefly by separating the "what" from the "how." Engineers use a variety of techniques to separate concerns, most of which are standard software engineering practices. One technique is program generation. A program generator separates concerns by placing generation-time variabilities in a specification. There are many different ways for expressing specifications from simple textual languages to sophisticated visual languages. XML provides one standard way for expressing specifications.

Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13