From product lines to self-managed systems: an architecture-based runtime reconfiguration framework

Adaptability and/or high availability are requirements which have become more prevalent and important for computing systems in recent years. To support adaptability and availability, a system must be able to dynamically change its behavior at runtime as user requirements, execution environments, or technologies change. Our aim is to develop a dynamic software product line in which a product line member can be dynamically modified after its deployment and thus new products can be produced during runtime without newly developing the products. To do so, we present a runtime reconfiguration framework based on reconfigurable components in supporting building dynamic product lines, particularly within the embedded software domain. Ultimately, our framework supports dynamic reconfiguration and not only reusable, but also reconfigurable components development in the context of self-managed systems.

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

[2]  Sooyong Park,et al.  A method and tool support for variant requirements analysis: goal and scenario based approach , 2004, 11th Asia-Pacific Software Engineering Conference.

[3]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[4]  Santosh K. Shrivastava,et al.  Architectural support for dynamic reconfiguration of large scale distributed applications , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

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

[6]  Jan Bosch,et al.  Managing Variability in Software Product Lines , 2000 .

[7]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[8]  Daniel Hoffman,et al.  Commonality and Variability in Software Engineering , 1998, IEEE Softw..

[9]  Charles W. Krueger,et al.  Variation Management for Software Production Lines , 2002, SPLC.

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

[11]  Jamie Hillman,et al.  An open framework for dynamic reconfiguration , 2004, ICSE 2004.

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

[13]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[14]  Sooyong Park,et al.  A scenario, goal and feature-oriented domain analysis approach for developing software product lines , 2004, Ind. Manag. Data Syst..

[15]  Peter Linz,et al.  An Introduction to Formal Languages and Automata , 1997 .

[16]  Bradley R. Schmerl,et al.  Versioning and Consistency for Dynamically Composed Configurations , 1997, SCM.

[17]  Bradley R. Schmerl,et al.  Model-based adaptation for self-healing systems , 2002, WOSS '02.

[18]  Pradeep K. Khosla,et al.  The Chimera Methodology: Designing Dynamically Reconfigurable and Reusable Real-Time Software Using Port-Based Objects , 1996, Int. J. Softw. Eng. Knowl. Eng..

[19]  Hassan Gomaa,et al.  Software reconfiguration patterns for dynamic evolution of software architectures , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[20]  Mike Mannion,et al.  Using Patterns to Model Variability in Product Families , 1999, IEEE Softw..

[21]  Paul Clements,et al.  Sofhyare architecture in practice addison wesley longman , 1998 .

[22]  Mary Shaw,et al.  Dynamic configuration of resource-aware services , 2004, Proceedings. 26th International Conference on Software Engineering.

[23]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

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