Modeling Dimensions of Self-Adaptive Software Systems

It is commonly agreed that a self-adaptive software system is one that can modify itself at run-time due to changes in the system, its requirements, or the environment in which it is deployed. A cursory review of the software engineering literature attests to the wide spectrum of software systems that are described as self-adaptive. The way self-adaptation is conceived depends on various aspects, such as the users' requirements, the particular properties of a system, and the characteristics of the environment. In this paper, we propose a classification of modeling dimensions for self-adaptive software systems. Each modeling dimension describes a particular facet of the system that is relevant to self-adaptation. The modeling dimensions provide the engineers with a common set of vocabulary for specifying the self-adaptive properties under consideration and select suitable solutions. We illustrate how the modeling dimensions apply to several application scenarios.

[1]  Fabien Michel,et al.  Environments for Multi-Agent Systems III , 2008 .

[2]  Israel Ben-Shaul,et al.  A programming model and system support for disconnected-aware applications on resource-constrained devices , 2002, ICSE '02.

[3]  Gian Pietro Picco,et al.  Understanding code mobility , 1998, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[4]  Rogério de Lemos,et al.  Architecting dependable systems , 2006, J. Syst. Softw..

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

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

[7]  Mahadev Satyanarayanan,et al.  Disconnected Operation in the Coda File System , 1999, Mobidata.

[8]  Asunción Gómez-Pérez,et al.  Evaluation of ontologies , 2001, International Journal of Intelligent Systems.

[9]  Axel van Lamsweerde,et al.  Goal-Oriented Requirements Engineering: A Guided Tour , 2001, RE.

[10]  Jean-Claude Laprie,et al.  From Dependability to Resilience , 2008, DSN 2008.

[11]  Tom Mens,et al.  Towards a taxonomy of software change: Research Articles , 2005 .

[12]  Nikolay Mehandjiev,et al.  Engineering Environment-Mediated Multi-Agent Systems , 2008 .

[13]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[14]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[15]  Marija Mikic-Rakic,et al.  Architecture-driven software mobility in support of QoS requirements , 2008, SAM '08.

[16]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[17]  Geoffrey H. Kuenning,et al.  Automated hoarding for mobile computers , 1997, SOSP.

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

[19]  Marija Mikic-Rakic,et al.  A Framework for Ensuring and Improving Dependability in Highly Distributed Systems , 2004, WADS.

[20]  Sam Malek,et al.  Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support , 2007, 29th International Conference on Software Engineering (ICSE'07).

[21]  Rogério de Lemos Architecting Web Services Applications for Improving Availability , 2004, WADS.

[22]  Tom Mens,et al.  Towards a taxonomy of software change , 2005, J. Softw. Maintenance Res. Pract..

[23]  Jesper Andersson,et al.  An Adaptive High-Performance Service Architecture , 2005, Electron. Notes Theor. Comput. Sci..

[24]  Wouter Joosen,et al.  Managing Agent Interactions with Context-Driven Dynamic Organizations , 2008, EEMMAS.

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

[26]  Jacques Ferber,et al.  Environments for Multiagent Systems State-of-the-Art and Research Challenges , 2004, E4MAS.