Modeling the Variability Space of Self-Adaptive Applications

Modeling self-adaptive applications is a difficult task due to the complex relationships they have with their environments. Designers of such applications strive to model accurately a few (re)-configuration possibilities deemed to be the most relevant with respect to environmental changes. This deliberate restriction of the variability space is cumbersome and may unnecessarily reject interesting (re)-configuration possibilities. We employ software product-line techniques to properly cover the whole variability space of a self-adaptive application. This variability space is partitioned across three dimensions. Functional variability is modeled through a feature diagram whose features are realized by a set of components to be deployed on a platform. Topological variability is modeled via an UML collaboration excluding irrelevant configurations. Platform variability is modeled through constraints to be satisfied by configurations. For each dimension, we exhibit properties capturing the environment. Our modeling approach is illustrated on a web-server example.

[1]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[2]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[3]  Ilka Philippow,et al.  Feature-Oriented Development of Software Product Lines: Mapping Feature Models to the Architecture , 2004, Net.ObjectDays.

[4]  Gail E. Kaiser,et al.  A case study in software adaptation , 2002, WOSS '02.

[5]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[6]  Alfons Crespo,et al.  Mode Change Protocols for Real-Time Systems: A Survey and a New Proposal , 2004, Real-Time Systems.

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

[8]  Pierre-Yves Schobbens,et al.  Generic semantics of feature diagrams , 2007, Comput. Networks.

[9]  Hassan Gomaa,et al.  Model-Based Software Design and Adaptation , 2007, International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07).

[10]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[11]  Yong Meng Teo,et al.  Comparison of Load Balancing Strategies on Cluster-based Web Servers , 2001, Simul..

[12]  Svein O. Hallsteinsen,et al.  Using product line techniques to build adaptive systems , 2006, 10th International Software Product Line Conference (SPLC'06).

[13]  Antonio Ruiz Cortés,et al.  Mapping Feature Models onto Component Models to Build Dynamic Software Product Lines , 2007, SPLC.

[14]  Antonio Ruiz Cortés,et al.  Representing Runtime Variability in Business-Driven Development Systems , 2008, Seventh International Conference on Composition-Based Software Systems (ICCBSS 2008).

[15]  Jaejoon Lee,et al.  A feature-oriented approach to developing dynamically reconfigurable products in product line engineering , 2006, 10th International Software Product Line Conference (SPLC'06).

[16]  Svein O. Hallsteinsen,et al.  Modeling of component-based adaptive distributed applications , 2006, SAC.

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

[18]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

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