Dynamically Reconfigurable Architectures: An Evaluation of Approaches for Preventing Architectural Violations

Dynamically Reconfigurable Architectures: An Evaluation of Approaches for Preventing Architectural Violations

Marek Rychly (Brno University of Technology, Czech Republic)
DOI: 10.4018/978-1-5225-3923-0.ch022


Dynamic aspects of behavior of software systems in dynamically reconfigurable runtime architectures can result in significant architectural violations during runtime. In such cases, a system's architecture evolves during the runtime according to the actual state of the system's environment, and consequently, runtime reconfigurations may eventually lead to incorrect architecture configurations that were not considered during the system's design phases. These architectural violations are known as architectural erosion or architectural drift, and they contribute to an increasing brittleness of the system, or a lack of its coherence and clarity of its form. This chapter describes and compares possible measures to prevent architectural violations in dynamic service and component models. The aim of this chapter is to evaluate the applicability of those measures in combination with advanced features of reconfigurable runtime architectures such as ad hoc reconfiguration, service or component mobility, composition hierarchy preservation, and architectural aspects.
Chapter Preview


According to IEEE (2000), software architecture is defined as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. Another definition by Bass et al. (2003) adds that the architecture describes only externally visible properties of components, i.e., it is an abstraction of a system that suppresses details of components, except for services published by interfaces, relationships to environment of the components, and their externally observable behavior.

Oquendo (2004) distinguished three types of software architectures according to their evolution which depends on changes to their environment: static architecture, dynamic architecture, and mobile architecture. The last one is also known as a fully dynamic architecture.

Architecture of a software system is the static architecture if there are no changes to the system’s structure during runtime. After initialization of the system, there are no new connections between the system’s components and existing connections are not destroyed.

Complete Chapter List

Search this Book: