Chapter 21. Concern Modeling for Aspect-Oriented Software DevelopmentSTANLEY M. SUTTON JR. AND ISABELLE ROUVELLOU Separation of concerns is a fundamental principle of software engineering. Of course, concerns are modeled in a variety of guises in contemporary software development, but the modeling approaches used typically depend on the development method, development stage, artifact formalism, and other project-specific factors. Concerns in various representations are also the focus of aspect-oriented software development (AOSD) techniques. However, concerns as such are still not modeled independently, and concern modeling is still not a distinguished activity in software development. In this chapter, we argue that concerns must be first-class entities and concern modeling must be a first-class activity in AOSD. That is, concern modeling should be an explicit and integral part of AOSD methods, and concerns should be modeled in their own appropriate formalisms, separately from their representations in requirements, design, code, and other software artifacts. We discuss the meaning of concern and consider the characteristics of concerns in the life cycle. We show that, while existing modeling approaches address concerns in specific contexts for specific purposes, a general-purpose concern-modeling capability is still needed. We describe requirements for a concern-modeling language and discuss the role of concern modeling in the software process. Finally, we give an overview of a general-purpose concern-space modeling schema, Cosmos, which we illustrate with an example based on the transformation of an individual component into a product family. |