Design Patterns as Aspects: A Quantitative Assessment - Sant’Anna, Cláudio; Garcia, Alessandro; Kulesza, Uirá; Lucena, Carlos; Staa, Arndt von (Anais do Simpósio Brasileiro de Engenharia de Software (SBES); 2004: Anais do XVIII Simpósio Brasileiro de Engenharia de Software, 2004)
Design patterns offer flexible solutions to common problems in software development. Recent studies have shown that several design patterns involve crosscutting concerns. Unfortunately, object-oriented (OO) abstractions are often not able to modularize those crosscutting concerns, which in turn decrease the system reusability and maintainability. Hence, it is important verifying whether aspect-oriented approaches support improved modularization of crosscutting concerns relative to design patterns. Ideally, quantitative studies should be performed to compare object-oriented and aspect-oriented implementations of classical patterns with respect to important software engineering attributes, such as coupling and cohesion. This paper presents a quantitative study that compares aspect-based and OO solutions for a representative set of design patterns. We have used stringent software engineering attributes as the assessment criteria. We have found that most aspectoriented solutions improve separation of pattern-related concerns, although some aspect-oriented implementations of specific patterns resulted in higher coupling and more lines of code.