Using product line techniques to build adaptive systems

Adaptive systems are able to adapt their properties and resource requirements at runtime in response to dynamically varying user needs and resource constraints. With the emergence of mobile and service oriented computing, such variation is becoming increasingly common, and the need for adaptivity is increasing accordingly. Software product line engineering has proved itself as an efficient way to deal with varying user needs and resource constraints. In this paper we present an approach to building adaptive systems based on product line oriented techniques such as variability modeling and component based architectures. By representing the product line architecture at runtime, we are able to delegate much of the complexity of adaptation to a reusable adaptation platform. To validate our approach we have built a prototype adaptation platform and developed a few pilot applications exploiting the platform to achieve adaptivity.

[1]  Marten van Sinderen,et al.  Transparent dynamic reconfiguration for CORBA , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[2]  Fabio Kon,et al.  Reflective Middleware: From Your Desk to Your Hand , 2001, IEEE Distributed Syst. Online.

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

[4]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[5]  Tomi Männistö,et al.  A Koala-Based Approach for Modelling and Deploying Configurable Software Product Families , 2003, PFE.

[6]  Rajarshi Das,et al.  Utility functions in autonomic systems , 2004 .

[7]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[8]  Bradley R. Schmerl,et al.  Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure , 2004, Computer.

[9]  Marius Mikalsen,et al.  Putting Context in Context: The Role and Design of Context Management in a Mobility and Adaptation Enabling Middleware , 2006, 7th International Conference on Mobile Data Management (MDM'06).

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

[11]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

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

[13]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[14]  Kari Känsälä,et al.  Software Product Family Evaluation , 2003, SPLC.

[15]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[16]  Rob C. van Ommering Software Reuse in Product Populations , 2005, IEEE Trans. Software Eng..

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

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

[19]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[20]  Sébastien Gérard,et al.  Consolidated Product Line Variability Modeling , 2006, Software Product Lines.

[21]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[22]  G.S. Blair,et al.  Middleware awareness in mobile computing , 2003, 23rd International Conference on Distributed Computing Systems Workshops, 2003. Proceedings..

[23]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[24]  Hassan Gomaa,et al.  Dynamic Software Reconfiguration in Software Product Families , 2003, PFE.