Summary


In this chapter, we continued with the EES example described in Chapter 2. We walked through using the Theme approach to find themes, design those themes, and evolve the system.

Finding the themes involved refining the set of themes to include in your system, and then looking at shared requirements to determine whether they revealed an aspect. To assess this, you

  • ensure that the requirement cannot be split up,

  • assess whether one theme dominates the requirement, and if so,

  • assess whether the dominant theme is triggered by the other themes (that it is externally triggered).

If all these tests pass, then you have identified aspect functionality. Later, in Chapter 4, we describe another aspect-identification rule: The theme must be externally triggered in multiple situations to be an aspect.

Designing the themes then involves modeling the noncrosscutting (base) themes in individual package-like modules. Crosscutting themes are designed in parameterized packages. Their template parameters expose their triggering behavior.

Themes are then composed using a composition relationship that allows you to

  • identify overlapping design elements within the themes,

  • specify how the themes should be integrated,

  • specify how conflicts should be resolved between overlapping design elements,

  • identify triggering behavior in a base to bind to templates in an aspect.

This chapter provided a very high-level example of how to map designs to implementation. Detailed instruction about that are provided in Chapter 7, "Map to Implementation," and an example of implementing themes is described in the second case study at the end of this book.

Next, we give the details of a more in-depth example system that will serve as a basis for a detailed description of the Theme approach in Chapters 4 to 7.



Aspect-Oriented Analysis and Design(c) The Theme Approach
Aspect-Oriented Analysis and Design: The Theme Approach
ISBN: 0321246748
EAN: 2147483647
Year: 2006
Pages: 109

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net