FORMS: a formal reference model for self-adaptation

Self-adaptive software systems are an emerging class of systems that adjust their behavior at runtime to achieve certain functional or quality of service objectives. The construction of such systems has shown to be significantly more challenging than traditional systems, partly because researchers and practitioners have been struggling with the lack of a precise method of describing, comparing, and evaluating alternative architectural choices. In this paper, we introduce a reference model, entitled FOrmal Reference Model for Self-adaptation (FORMS), which intends to alleviate this pressing issue. FORMS consists of a small number of formally specified modeling primitives that correspond to the key variation points within self-adaptive software systems, and a set of relationships that guide their composition. We present our experiences with applying FORMS to several existing systems, which not only demonstrates its ability to precisely illuminate their underlying characteristics, but also its potential as a method of rigorously specifying architectural patterns for this domain.

[1]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

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

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

[4]  Erik Blasch,et al.  Unmanned vehicles come of age: The DARPA grand challenge , 2006, Computer.

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

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

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

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

[9]  Jesper Andersson,et al.  Modeling Dimensions of Self-Adaptive Software Systems , 2009, Software Engineering for Self-Adaptive Systems.

[10]  Julie A. McCann,et al.  A survey of autonomic computing—degrees, models, and applications , 2008, CSUR.

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

[12]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[13]  Mary Shaw,et al.  Beyond objects: a software design paradigm based on process control , 1995, SOEN.

[14]  Gordon S. Blair,et al.  A generic component model for building systems software , 2008, TOCS.

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

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

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

[18]  Michel Wermelinger,et al.  Algebraic software architecture reconfiguration , 1999, ESEC/FSE-7.

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

[20]  Gaurav S. Sukhatme,et al.  Architecture-driven self-adaptation and self-management in robotics systems , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.