A Reference Architecture Based on Reflection for Self-Adaptive Software

Self-adaptive Software (SaS) presents specific characteristics compared to traditional ones, as it makes possible adaptations to be incorporated at runtime. These adaptations, when manually performed, normally become an onerous, error-prone activity. In this scenario, automated approaches have been proposed to support such adaptations; however, the development of SaS is not a trivial task. In parallel, reference architectures are reusable artifacts that aggregate the knowledge of architectures of software systems in specific domains. They have facilitated the development, standardization, and evolution of systems of those domains. In spite of their relevance, in the SaS domain, reference architectures that could support a more systematic development of SaS are not found yet. Considering this context, the main contribution of this paper is to present a reference architecture based on reflection for SaS, named RA4SaS (Reference Architecture for SaS). Its main purpose is to support the development of SaS that presents adaptations at runtime. To show the viability of this reference architecture, a case study is presented. As result, it has been observed that RA4SaS has presented good perspective to efficiently contribute to the area of SaS.

[1]  Franco Zambonelli,et al.  A survey of autonomic communications , 2006, TAAS.

[2]  Jesper Andersson,et al.  FORMS: a formal reference model for self-adaptation , 2010, ICAC '10.

[3]  Frank José Affonso,et al.  A Proposal of Reference Architecture for the Reconfigurable Software Development , 2012, SEKE.

[4]  Pattie Maes Concepts and experiments in computational reflection , 1987, OOPSLA 1987.

[5]  E. James Whitehead,et al.  Collaboration in Software Engineering: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[6]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[7]  Paul W. P. J. Grefen,et al.  A framework for analysis and design of software reference architectures , 2012, Inf. Softw. Technol..

[8]  Xuejun Chen Extending RMI to support dynamic reconfiguration of distributed systems , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[9]  Flávio Oquendo,et al.  RAModel: A Reference Model for Reference Architectures , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[10]  Elisa Yumi Nakagawa,et al.  Towards a process to design aspect-oriented reference architectures , 2009 .

[11]  Gordon S. Blair,et al.  On the performance of reflective systems software , 2004, IEEE International Conference on Performance, Computing, and Communications, 2004.

[12]  Fabiano Cutigi Ferrari,et al.  An aspect-oriented reference architecture for Software Engineering Environments , 2011, J. Syst. Softw..

[13]  Paris Avgeriou,et al.  Empirically-grounded reference architectures: a proposal , 2011, QoSA-ISARCS '11.

[14]  Elisa Yumi Nakagawa,et al.  Using Systematic Review to Elicit Requirements of Reference Architectures , 2011, WER.

[15]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[16]  Xu Hongzhen,et al.  Specification and verification of dynamic evolution of software architectures , 2010, J. Syst. Archit..

[17]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[18]  Ying Shi,et al.  A Reflective Information Model for Reusing Software Architecture , 2008, 2008 ISECS International Colloquium on Computing, Communication, Control, and Management.

[19]  Éric Tanter,et al.  Flexible metaprogramming and AOP in Java , 2008, Sci. Comput. Program..

[20]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[21]  Hausi A. Müller,et al.  A framework for evaluating quality-driven self-adaptive software systems , 2011, SEAMS '11.

[22]  Jesper Andersson,et al.  Reflecting on self-adaptive software systems , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[23]  Marta López,et al.  Formalizing a Systematic Review Updating Process , 2008, 2008 Sixth International Conference on Software Engineering Research, Management and Applications.

[24]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[25]  Jürgen Dingel,et al.  A survey of self-management in dynamic software architecture specifications , 2004, WOSS '04.

[26]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[27]  Steve Vinoski A Time for Reflection , 2005, IEEE Internet Comput..

[28]  Lei Liu,et al.  A Reference Architecture for Self-organizing Service-Oriented Computing , 2008, ARCS.

[29]  Paul W. P. J. Grefen,et al.  A classification of software reference architectures: Analyzing their success and effectiveness , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[30]  J. Girard,et al.  Definition of Reference Architectures based on Existing Systems WP 2 . 2 , Platforms and Components , 2004 .

[31]  M. Erradi,et al.  Dynamic modifications of object-oriented specifications , 1992, CompEuro 1992 Proceedings Computer Systems and Software Engineering.

[32]  Michael W. Godfrey,et al.  A reference architecture for Web browsers , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[33]  Krzysztof Zielinski,et al.  AAOP-based dynamically reconfigurable monitoring system , 2010, Inf. Softw. Technol..

[34]  Ieee Std,et al.  Systems and Software Engineering— Systems and Software Assurance— Part 1: Concepts and Vocabulary , 2011 .

[35]  Jesper Andersson,et al.  On decentralized self-adaptation: lessons from the trenches and challenges for the future , 2010, SEAMS '10.

[36]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[37]  Paul W. P. J. Grefen,et al.  An e-contracting reference architecture , 2008, J. Syst. Softw..

[38]  Laurent Pautet,et al.  Mode-based reconfiguration of critical software component architectures , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[39]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[40]  Shi Ying,et al.  A Reflection Mechanism for Reusing Software Architecture , 2006, QSIC.