An Aspect-Oriented Framework for Weaving Domain-Specific Concerns into Component-Based Systems

Software components are used in various application domains, and many component models and frameworks have been proposed to fulfill domain-specific requirements. The general trend followed by these approaches is to provide ad-hoc models and tools for capturing these requirements and for implementing their support within dedicated runtime platforms, limited to features of the targeted domain. The challenge is then to propose more flexible solutions, where components reuse is domain agnostic. In this article, we present a framework supporting compositional construction and development of applications that must meet various extra-functional/domain-specific requirements. The key points of our contribution are: i) We target development of component-oriented applications where extra-functional requirements are expressed as annotations on the units of composition in the application's architecture. ii) These annotations are implemented as open and extensible component-based containers, achieving full separation of functional and extra-functional concerns. iii) Finally, the full machinery is implemented using the Aspect-Oriented Programming paradigm. We validate our approach with two case studies: the first is related to real-time and embedded applications, while the second refers to the distributed context-aware middleware domain.

[1]  Ales Plsek,et al.  Constructing Domain-Specific Component Frameworks through Architecture Refinement , 2009, 2009 35th Euromicro Conference on Software Engineering and Advanced Applications.

[2]  Frédéric Loiret,et al.  Checking Architectural and Implementation Constraints for Domain-Specific Component Frameworks Using Models , 2009, 2009 35th Euromicro Conference on Software Engineering and Advanced Applications.

[3]  Ales Plsek SOLEIL: An Integrated Approach for Designing and Developing Component-based Real-time Java Systems , 2009 .

[4]  Thomas Ledoux,et al.  FPath and FScript: Language support for navigation and reliable reconfiguration of Fractal architectures , 2009, Ann. des Télécommunications.

[5]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java: Experiences with Auto-adaptive and Reconfigurable Systems , 2006 .

[6]  Thierry Coupaye,et al.  A Model for Developing Component-Based and Aspect-Oriented Systems , 2006, SC@ETAPS.

[7]  Lidia Fuentes-Fernández,et al.  An Introduction to UML Profiles , 2004 .

[8]  Mónica Pinto,et al.  A Dynamic Component and Aspect-Oriented Platform , 2005, Comput. J..

[9]  Jan Vitek,et al.  CDx: a family of real-time Java benchmarks , 2009, JTRES '09.

[10]  Ivica Crnkovic,et al.  Building Reliable Component-Based Software Systems , 2002 .

[11]  Carlos José Pereira de Lucena,et al.  On the Modular Representation of Architectural Aspects , 2006, EWSA.

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

[13]  Christian Koppen,et al.  PCDiff : Attacking the Fragile Pointcut Problem , 2004 .

[14]  Tomás Bures,et al.  Microcomponent-based component controllers: a foundation for component aspects , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[15]  Kung-Kiu Lau,et al.  Domain-Specific Software Component Models , 2009, CBSE.

[16]  Valerio Schiavoni,et al.  Reconfigurable SCA Applications with the FraSCAti Platform , 2009, 2009 IEEE International Conference on Services Computing.

[17]  Wim Vanderperren,et al.  A Symmetric and Unified Approach Towards Combining Aspect-Oriented and Component-Based Software Development , 2006, CBSE.

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

[19]  Kung-Kiu Lau,et al.  Software Component Models , 2006, IEEE Transactions on Software Engineering.

[20]  Jean-Philippe Babau,et al.  Component-Based Real-Time Operating System for Embedded Applications , 2009, CBSE.

[21]  Ales Plsek,et al.  Introducing Distribution into a RTSJ-based Component Framework , 2008 .

[22]  Séverine Sentilles,et al.  A Component Model for Control-Intensive Distributed Embedded Systems , 2008, CBSE.

[23]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[24]  Amparo Navasa Martínez,et al.  An ADL dealing with aspects at software architecture stage , 2009, Inf. Softw. Technol..

[25]  Petr Hnetynka,et al.  Using a product line for creating component systems , 2009, SAC '09.

[26]  Ales Plsek,et al.  A Component Framework for Java-Based Real-Time Embedded Systems , 2008, Middleware.

[27]  Renaud Pawlak,et al.  Spoon: Program Analysis and Transformation in Java , 2006 .

[28]  Thierry Coupaye,et al.  A Component Model Engineered with Components and Aspects , 2006, CBSE.

[29]  Jean-Philippe Babau,et al.  Optimizing Component-Based Embedded Software , 2009, 2009 33rd Annual IEEE International Computer Software and Applications Conference.

[30]  Gabriel A. Moreno Creating custom containers with generative techniques , 2006, GPCE '06.

[31]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[32]  Jan Vitek,et al.  Real-time Java scoped memory: design patterns and semantics , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[33]  Romain Rouvoy,et al.  Software Architecture Patterns for a Context-Processing Middleware Framework , 2008, IEEE Distributed Systems Online.

[34]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[35]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[36]  John Håkansson,et al.  SaveCCM: An Analysable Component Model for Real-Time Systems , 2006, FACS.

[37]  Romain Rouvoy,et al.  Scalable Processing of Context Information with COSMOS , 2007, DAIS.