- Software Development and the Object-Oriented Paradigm
- The Case for Aspects
- What Is an Aspect?
- Why Consider Aspects in Analysis and Design?
- Aspects and Other Concerns
- The Theme Approach
- Applying the Theme Approach
- Theme: Symmetric or Asymmetric?
- Fitting Theme into Your Existing Development Process
- What About Implementation?
Theme: Symmetric or Asymmetric?
The Theme approach more closely aligns with the symmetric approach to system decomposition, since themes are individual concerns regardless of whether they are aspects or separated concerns that would be located in the core. However, the terms crosscutting and aspect are defined as in the asymmetric paradigm: as functionality that is triggered in multiple situations.
As we mentioned above, however, the symmetric decomposition described in this book does not dictate unnecessarily tiny concerns. In this book, we look at several examples: Some that have many concerns and some (particularly the final case study of the book) that have a more solid base. The important thing about the Theme approach is that you should choose the degree of separation that is right for you and your situation. The heuristics for aspect identification described above are the same regardless of whether you intend to implement your system using a symmetrical or an asymmetrical decomposition approach. Similarly, Theme/UML models can encompass functionality related to either a fine-grained concern or to the entire core functionality of your system.