Abstract
Self-adaptive systems modify themselves at run-time in order to control the satisfaction of their requirements under changing environmental conditions. Over the past century, feedback-loops have been used as important models for controlling dynamic behavior of mechanical, electrical, fluid and chemical systems in the corresponding fields of engineering. More recently, they also have been adopted for engineering self-adaptive software systems. However, obtaining sound and explicit mappings consistently between adaptive software architectures and feedback loop elements is still an open challenge. This paper, recalling a reference model proposed previously with that goal, discuss key aspects on the design of adaptive software where feedback loop elements are explicitly defined as first-class components in its software architecture. It complements this discussion with an illustration of the process to use this reference model by applying it to a plausible adaptive software example. This paper aims at providing a reference starting point to support software engineers in the process of designing self-adaptive software systems.
Highlights
Traditional software engineering has been based on an incorrect set of goals, where software systems are expected to support rigid and stable business structures, have low maintenance, and ensure complete user acceptance. Truex, Baskerville, & Klein (1999) criticized this user-satisfaction emphasis and questioned the economic advantages of lengthy analysis in the engineering of software systems
As a discipline matured over the past century, has condensed in its feedback loop reference model and corresponding variations the accumulated knowledge and experience of control engineers designing and building automated controllers for physical systems
The main goal we address in this paper is to illustrate the application of a feedback loop-based reference model to the engineering of self-adaptive software systems
Summary
Traditional software engineering has been based on an incorrect set of goals, where software systems are expected to support rigid and stable business structures, have low maintenance, and ensure complete user acceptance. Truex, Baskerville, & Klein (1999) criticized this user-satisfaction emphasis and questioned the economic advantages of lengthy analysis in the engineering of software systems. They identified the necessity of new software engineering models based on permanent analysis, dynamic requirements negotiation, and incomplete requirements specification In this setting, a new kind of software systems is emerging, whose development can be seen as a continuum of short term adaptations and long term evolution (Cheng et al, 2009; de Lemos, Giese, Müller, & Shaw, 2011; Oreizy, Medvidovic, & Taylor, 2008). In this paper we illustrate how to design an adaptive software system where the feedback loop drives its architecture, and where feedback loop components are explicit in this architecture This illustration is based on the reference model for the engineering of self-adaptive software systems proposed in a previous work (Tamura, Villegas, Müller, Duchien, & Casallas, 2011).
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.