Automata-Based Approach to Manage Self-Adaptive Component-Based Architectures

Automata-Based Approach to Manage Self-Adaptive Component-Based Architectures

Abdelfetah Saadi, Youcef Hammal, Mourad Chabane Oussalah
Copyright: © 2022 |Pages: 22
DOI: 10.4018/IJSI.297623
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Dynamic software architectures in changing environments need human supervision to continue operation in all conditions. These changes may come from the software architecture or its environment. Such software architecture is required to monitor itself and its environment, detect changes, decide how to react, and act to perform such changes. Enhancing the software architecture with the ability to self-adapt offers a very interesting way forward. This work presents an automata based approach to manage self-adaptive component-based architecture. This approach allows software architecture to adjust itself to changes during runtime and without stopping its execution. It helps the maintenance of the consistency and the coherence of software architecture before, during and after adaptation. The proposed approach is based mainly on the use of the meta-model, automata concept, XML language and UPPAAL model checking tool for the verification of the software consistency before enacting adaptation.
Article Preview
Top

Introduction

Software architecture represents the structures of a software system and the discipline of creating such structures and systems, each structure comprises software elements, relations among them, and properties of both elements and relations (Clements et al., 2010). Software architecture allows defining the structure of software systems which are represented by a set of software components and connectors. Software1 architecture is an important level of description for software systems. At this level of abstraction, a set of concepts can be found: components, protocols of interaction between those components, global system properties, and life-cycle issues (Abowd, 1995). Actually, there are two types of software architecture: the static architecture and the dynamic architecture (Medvidovic & Taylor, 2000). In a static architecture, components and their configurations are defined in the specification, the composition and the structure of static architecture cannot change during execution. However, a dynamic architecture allows planning topology changes that happen at run-time. A dynamic architecture can therefore manage a changing environment and adapt itself to the new context. It describes how configurations, components, connectors, ports or interfaces can be created, interconnected, and/or removed during system execution (Saadi et al., 2018). Such dynamic software systems must adapt themselves in response to changes in their environments in order to ensure the continuous satisfaction of their requirements. This adaptation must thus be performed along with preserving the conditions and intended properties (Saadi et al., 2018).

Dynamic architectures represent an appropriate means to manage the self-adaptive software which has become important to address the new challenges of complex systems. These systems must provide specific features to model dynamic changes and techniques for changing them into the running environment. However, a major challenge is the ability of describing dynamic software architectures according to both structural and behavioral viewpoints, as well as handling run-time changes in the structure and behavior of the architecture and its elements (Medvidovic and Taylor, 2000).

Many existing solutions proposed to deal with self-adaptive software tries to use component-based architecture and ADLs (Architecture Description Language). However, these approaches do not properly manage the dynamic of software architecture. Moreover, the description of changing software architectures should not be limited to the specification of a unique static configuration, but must cover all correct future configurations (Saadi et al., 2017). In fact, adaptation decisions need to be taken at run-time by choosing the next configuration depending on the past history. Some of existing solutions assume that architectures are static, whereas others propose a description of dynamic concerns by using simple and basic changes, adaptations generally are represented, therein by programming a set of actions (e.g., add, delete, connect, disconnect) that allow to instantiate and connect components at run-time (Alvares et al., 2017). Furthermore, most of such approaches do not support some important dynamic aspects. For example, they do not allow stopping, restarting, disabling, replacing or removing a component or a connector at run-time.

Complete Article List

Search this Journal:
Reset
Volume 12: 1 Issue (2024)
Volume 11: 1 Issue (2023)
Volume 10: 4 Issues (2022): 2 Released, 2 Forthcoming
Volume 9: 4 Issues (2021)
Volume 8: 4 Issues (2020)
Volume 7: 4 Issues (2019)
Volume 6: 4 Issues (2018)
Volume 5: 4 Issues (2017)
Volume 4: 4 Issues (2016)
Volume 3: 4 Issues (2015)
Volume 2: 4 Issues (2014)
Volume 1: 4 Issues (2013)
View Complete Journal Contents Listing