On the Role of Features in Analyzing the Architecture of Self-Adaptive Software Systems

In traditional software families, feature-orientation has been shown effective for bridging the semantic gap between a software system’s requirements and its architecture. Over the past few years, the emergence of self-adaptive software systems, which are significantly more challenging to build than traditional systems, has gained the attention of the software engineering research community. In this paper, we show that using features at runtime could alleviate some of the key challenges of building such systems. The underlying insights are that: (1) features allow representation of the engineer’s knowledge about some facets of the system that can be used to enhance the adaptation logic, and (2) features can serve as an abstraction to deal with the heterogeneity of the underlying architectural models, analytical algorithms, and implementation platforms. We describe the role of features in a self-adaptive framework that we have developed, entitled FeatUre-oriented Self-adaptatION (FUSION). We also report on our preliminary experience with FUSION that demonstrates the benefits of using features in different stages of

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

[2]  Sooyong Park,et al.  Combining feature-oriented analysis and aspect-oriented programming for product line asset development , 2006, 10th International Software Product Line Conference (SPLC'06).

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

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

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

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

[7]  Kyo Chul Kang,et al.  A feature-oriented approach to developing dynamically reconfigurable products in product line engineering , 2006 .

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

[9]  Hassan Gomaa,et al.  Designing Software Product Lines with UML , 2005, 29th Annual IEEE/NASA Software Engineering Workshop - Tutorial Notes (SEW'05).

[10]  David Vernon,et al.  Research road map , 2010 .

[11]  Sam Malek,et al.  An extensible framework for autonomic analysis and improvement of distributed deployment architectures , 2004, WOSS '04.

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

[13]  Eugene H. Spafford,et al.  ADEPTS: adaptive intrusion response using attack graphs in an e-commerce environment , 2005, 2005 International Conference on Dependable Systems and Networks (DSN'05).

[14]  Sooyong Park,et al.  Combining feature-oriented analysis and aspect-oriented programming for product line asset development , 2006 .

[15]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.