Dynamic Software Architectures

Abstract: Software architecture is a software engineering discipline that provides notations and processes for high-level partitioning of systems' responsibilities early in the software design process. This thesis is concerned with a specific subclass of systems, systems with a dynamic software architecture. They have practical applications in various domains such as high-availability systems and ubiquitous computing. In a dynamic software architecture, the set of architectural elements and the configuration of these elements may change at run-time. These modifications are motivated by changed system requirements or by changed execution environments. The implications of change events may be the addition of new functionality or re-configuration to meet new Quality of Service requirements. This thesis investigates new modeling and implementation techniques for dynamic software architectures. The field of Dynamic Architecture is surveyed and a common ground defined. We introduce new concepts and techniques that simplify understanding, modeling, and implementation of systems with a dynamic architecture, with this common ground as our starting point. In addition, we investigate practical use and reuse of quality implementations, where a dynamic software architecture is a fundamental design principle. The main contributions are a taxonomy, a classification, and a set of architectural patterns for dynamic software architecture. The taxonomy and classification support analysis, while the patterns affect design and implementation work directly. The investigation of practical applications of dynamic architectures identifies several issues concerned with use and reuse, and discusses alternatives and solutions where possible. The results are based on surveys, case studies, and exploratory development of dynamic software architectures in different application domains using several approaches. The taxonomy, classification and architecture patterns are evaluated through several experimental prototypes, among others, a high-performance scientific computing platform.

  This dissertation MIGHT be available in PDF-format. Check this page to see if it is available for download.