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 SoftwareDO - 10.5753/sbes.2004.23837, 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.