In this chapter, we discussed how to find themes and how to identify them as aspects and base. General case theme-identification involves deciding on the major concerns described in a set of requirements, and then ensuring that the appropriate requirements are grouped with those concerns. Themes are groups of requirements that all describe a particular concern. At the end of the theme identification process themes will not overlap; that is to say, two themes will not share a requirement. To arrive at orthogonal themes, requirements may be rewritten to ensure that they are grouped under only one theme. If such a rewriting is not possible, then special attention must be paid to the requirement. The requirement may reveal that design-level choices must be made in order to account for the functionality it describes. Or the requirement may reveal aspect-behavior. Aspects are a special case of theme, and require additional analysis to identify. Identifying aspects involves looking at requirements that are shared between themes. Shared requirements may represent tangling and may reveal aspects. When considering shared requirements to identify aspects, three questions should be asked:
We then noted that you perform another check of your aspects:
Finally, we looked at individual themes with design in mind. In Chapter 5, we discuss how to model the themes you have isolated in the requirements analysis phase. Chapter 6 then explains how to compose themes, both base and aspect, using composition relationships. |