Mastering crosscutting architectural decisions with aspects

When reflecting upon driving system requirements such as security and availability, software architects often face decisions that have a broadly scoped impact on the software architecture. These decisions are the core of the architecting process because they typically have implications intertwined in a multitude of architectural elements and across multiple views. Without a modular representation and management of those crucial choices, architects cannot properly communicate, assess and reason about their crosscutting effects. The result is a number of architectural breakdowns, such as misinformed architectural evaluation, time‐consuming trade‐off analysis and unmanageable traceability. This paper presents an architectural documentation approach in which aspects are exploited as a natural way to capture widely‐scoped design decisions in a modular fashion. The approach consists of a simple high‐level notation to describe crosscutting decisions, and a supplementary language that allows architects to formally define how such architectural decisions affect the final architectural decomposition according to different views. On the basis of two case studies, we have systematically assessed to what extent our approach: (i) supports the description of heterogeneous forms of crosscutting architecture decisions, (ii) improves the support for architecture modularity analysis, and (iii) enhances upstream and downstream traceability of crosscutting architectural decisions. Copyright © 2012 John Wiley & Sons, Ltd.

[1]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[2]  P. Lago,et al.  Explicit assumptions enrich architectural models , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[3]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[4]  Stefan Wagner An Approach to Global Sensitivity Analysis: FAST on COCOMO , 2007, ESEM 2007.

[5]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[6]  Jeff Tyree,et al.  Architecture decisions: demystifying architecture , 2005, IEEE Software.

[7]  Uirá Kulesza,et al.  Towards an Integrated Aspect-Oriented Modeling Approach for Software Architecture Design , 2006 .

[8]  Keith Cheverst,et al.  Using and Determining Location in a Context-Sensitive Tour Guide , 2001, Computer.

[9]  João Araújo,et al.  Modularisation and composition of aspectual requirements , 2003, AOSD '03.

[10]  Cláudio Sant'Anna,et al.  On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study , 2007, ECOOP.

[11]  Ruzanna Chitchyan,et al.  Survey of Aspect-Oriented Analysis and Design , 2005 .

[12]  Cláudio Sant'Anna,et al.  Crosscutting patterns and design stability: An exploratory analysis , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[13]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD.

[14]  Felix Bachmann,et al.  Deriving Architectural Tactics: A Step Toward Methodical Architectural Design , 2003 .

[15]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[16]  Carlos José Pereira de Lucena,et al.  On the Modularity of Software Architectures: A Concern-Driven Measurement Framework , 2007, ECSA.

[17]  Thaís Vasconcelos Batista,et al.  On the Quantitative Analysis of Architecture Stability in Aspectual Decompositions , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[18]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[19]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[20]  Awais Rashid,et al.  Domain models are NOT aspect free , 2006, MoDELS'06.

[21]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[22]  Cláudio Sant'Anna,et al.  Reflections on architectural connection: seven issues on aspects and ADLs , 2006, EA '06.

[23]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[24]  Ruzanna Chitchyan,et al.  A Survey of Analysis and Design Approaches , 2005 .

[25]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[26]  Pablo de la Fuente,et al.  Architectural Aspects of Architectural Aspects , 2005, EWSA.

[27]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[28]  Alessandro F. Garcia,et al.  On the Modularity Assessment of Software Architectures: Do my architectural concerns count? , 2007 .

[29]  Carlos José Pereira de Lucena,et al.  Improving Extensibility of Object-Oriented Frameworks with AOP , 2006 .

[30]  Bedir Tekinerdogan,et al.  ASAAM: aspectual software architecture analysis method , 2003, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[31]  Uirá Kulesza,et al.  On the Quantitative Assessment of Modular Multi-Agent System Architectures , 2006 .

[32]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[33]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[34]  Cecília M. F. Rubira,et al.  Aspectizing Exception Handling: A Quantitative Study , 2006, Advanced Topics in Exception Handling Techniques.

[35]  Thaís Vasconcelos Batista,et al.  On the Symbiosis of Aspect-Oriented Requirements and Architectural Descriptions , 2007, EA@AOSD.

[36]  Alessandro F. Garcia,et al.  A Comparative Study of Aspect-Oriented Requirements Engineering Approaches , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[37]  Lidia Fuentes,et al.  AO-ADL: An ADL for Describing Aspect-Oriented Architectures , 2007, EA@AOSD.

[38]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[39]  Len Bass,et al.  Identifying Aspects Using Architectural Reasoning , 2004 .

[40]  Carlos José Pereira de Lucena,et al.  Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[41]  João Araújo,et al.  Multi-dimensional separation of concerns in requirements engineering , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[42]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[43]  Pericles Loucopoulos,et al.  A generic model for reflective design , 2000, TSEM.

[44]  Cecília M. F. Rubira,et al.  Extracting Error Handling to Aspects: A Cookbook , 2007, 2007 IEEE International Conference on Software Maintenance.

[45]  Carlos José Pereira de Lucena,et al.  Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming , 2006, ICSR.

[46]  Eoin Woods,et al.  Using Architectural Perspectives , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).