Chapter 20. Expressing Aspects Using UML Behavioral and Structural DiagramsTZILLA ELRAD, OMAR ALDAWUD, AND ATEF BADER Aspect-oriented programming (AOP) is a programming technology, but software engineering is a much greater task than just coding, encompassing elements such as requirements analysis, design, testing, and evolution. The Unified Modeling Language (UML) has emerged as the common CASE methodology for designing object-oriented software systems. Unfortunately, UML lacks explicit mechanisms for modeling interweaving crosscutting concerns. In this chapter, we present a formal design methodology for modeling aspect-oriented elements. Using the event-notification mechanism of statecharts and class diagrams, we show how to model and weave the submodels that represent different concerns. In presenting this methodology, we argue that aspect-oriented modeling improves the quality of software systems for goals such as maintainability, reusability, and traceability. |