Towards Unanticipated Adaptation: An Architecture-Based Approach

Over its lifetime, adaptive software may have to deal with the environment not anticipated during the original development. In such cases, we should introduce new adaptive code, for example, to detect the strange contexts or update the out-of-date adaptation decision logic. This paper proposes an engineering approach facilitates this kind of post-delivery modifications based on software architecture techniques. Our approach introduces a component model separates different adaptation concerns (sensing, decision and execution) as different types of software architecture elements. The clear separation lays the foundation for the independent maintenance of each concern. And then, with the aid of a container supports the instantiation and run-time modification of the software architecture model, those concerns can be bound together without recompiling the whole software, even while it is running. Our approach enables the fine-grained, low-cost modifications of delivered adaptive software in the case that an unanticipated environment emerges.

[1]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[2]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[3]  Umeshwar Dayal,et al.  The architecture of an active database management system , 1989, SIGMOD '89.

[4]  Zhonghua Yang,et al.  CORBA: a platform for distributed object computing , 1996, OPSR.

[5]  Thaís Vasconcelos Batista,et al.  Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[6]  Qianxiang Wang,et al.  Towards a rule model for self-adaptive software , 2005, SOEN.

[7]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[8]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[9]  M M Lehman,et al.  Software Evolution , 2002 .

[10]  Yufeng Wang,et al.  StarBus+: Distributed Object Middleware Practice for Internet Computing , 2005, Journal of Computer Science and Technology.

[11]  Frank Eliassen,et al.  Using architecture models for runtime adaptability , 2006, IEEE Software.

[12]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

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

[14]  Miguel Alexandre Wermelinger Specification of software architecture reconfiguration , 1999 .

[15]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

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

[17]  Rogério de Lemos,et al.  08031 -- Software Engineering for Self-Adaptive Systems: A Research Road Map , 2008, Software Engineering for Self-Adaptive Systems.

[18]  R. Kling,et al.  IMOTE2: Serious Computation at the Edge , 2008, 2008 International Wireless Communications and Mobile Computing Conference.

[19]  Jichuan Chang,et al.  Software component composition based on ADL and Middleware , 2007, Science in China Series : Information Sciences.

[20]  John Keeney,et al.  Completely unanticipated dynamic adaptation of software , 2004 .

[21]  Gordon S. Blair,et al.  FORMAware: Framework of Reflective Components for Managing Architecture Adaptation , 2002, SEM.

[22]  Gang Huang,et al.  Runtime software architecture based software online evolution , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[23]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

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

[25]  Claudia Raibulet Facets of Adaptivity , 2008, ECSA.

[26]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[27]  Jim Dowling,et al.  The K-Component Architecture Meta-model for Self-Adaptive Software , 2001, Reflection.