Kersten, A.W. (2010) How to Make Runtime Architectural Design Decisions. Master's Thesis / Essay, Computing Science.
|
Text
How_to_Make_Runtime_Architectu_1.pdf - Published Version Download (1MB) | Preview |
Abstract
The software architecture of a system can be seen as a set of decisions made by the architect that incrementally construct the system from its inception to its latest revision. These decisions necessarily start at a high level of abstraction (e.g. what architectural style to use) and progress to define the lower-level details of the architecture (e.g. the refinement of the internal structure of a specific architectural component). The dependency between these decisions is such that those taken earlier on will influence, enable or possibly constrain those taken subsequently. While concise recording of all design decisions has been shown to decrease design erosion and improve understandability, a review of current design decision models shows that these only allow for limited dynamic architectural reconfiguration at runtime. This falls short of meeting the needs of software systems which must adapt their architecture to changes in external conditions while they execute. This thesis focuses on the way in which architectural design decisions can be codified and modified during the runtime phase of a software system. Instead of a static chain of architectural decisions an alternative is designed and implemented which allows for the runtime traversal and modification of that chain. The impact of this additional flexibility on the underlying component and connector model of the architecture is described. The goal is achieved through the extension of an existing architecture-aware programming language, compiler and runtime environment called Archium. The Archium language is a superset of Java that features first-class design decisions and other architectural constructs and applies decision semantics to an architectural model based on components and connectors. The implemented extensions consist of adding functionality to load and unload design decisions at runtime, with an intermediate checkpoint layer that provides dependency tracking and higher order operations. The Archimon graphical interface is also extended to provide a graphical means of interacting with the new functionality. A number of challenges encountered are discussed along with solutions for overcoming them. The results of the extensions to Archium are evaluated using an example implementation of a software system. The thesis concludes by discussing the achievement and possible future work in this field.
Item Type: | Thesis (Master's Thesis / Essay) |
---|---|
Degree programme: | Computing Science |
Thesis type: | Master's Thesis / Essay |
Language: | English |
Date Deposited: | 15 Feb 2018 07:44 |
Last Modified: | 15 Feb 2018 07:44 |
URI: | https://fse.studenttheses.ub.rug.nl/id/eprint/9419 |
Actions (login required)
View Item |