Pointcut-based architectural interface for bridging a gap between design and implementation

This paper proposes archface, a pointcut-based interface mechanism for bridging a gap between architectural design and its implementation. Archface, which encapsulates the essence of architectural design, is not only an architecture description language (ADL) but also a programming-level interface. Archface is based on the component-and-connector architecture, one of the most popular architectural styles. Archface is effective for software evolution because the trace-ability between design and its implementation can be realized by enforcing architectural constraints specified in archface on the program implementation. This traceability is bidirectional. In the modern software development, not only object orientation (OO) but also aspect orientation (AO) plays an important role in the architectural design because dealing with crosscutting concerns becomes crucial for designing reliable and maintainable software. In archface, AO can be easily introduced into architecture descriptions only with the component-and-connector mechanism. We do not have to distinguish AO from traditional OO-based design modeling approaches. Archface integrates not only design modeling with its implementation but also AO with OO.

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

[2]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[3]  C. Chambers,et al.  ArchJava: connecting software architecture to implementation , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[4]  Kim Mens,et al.  Co-Evolution of Object-Oriented Software Design and Implementation , 2002 .

[5]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[6]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[7]  Naoyasu Ubayashi,et al.  An aspect-oriented weaving mechanism based on component and connector architecture , 2007, ASE.

[8]  Walter Cazzola,et al.  On the Footprints of Join Points: The Blueprint Approach , 2007, J. Object Technol..

[9]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[10]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[11]  Gunter Saake,et al.  Co-evolving application code and design models by exploiting meta-data , 2007, SAC '07.

[12]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[13]  Kim Mens,et al.  Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts , 2006, ECOOP.

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

[15]  Wim Vanderperren,et al.  JAsCo: an aspect-oriented approach tailored for component based software development , 2003, AOSD '03.

[16]  Mary Shaw,et al.  Characteristics of Higher-Level Languages for Software Architecture. , 1994 .

[17]  Richard N. Taylor,et al.  Software Design and Architecture The once and future focus of software engineering , 2007, Future of Software Engineering (FOSE '07).