Samenvatting
A software architecture can be considered as the collection of key decisions concerning the design of the software of a system. Knowledge about this design, i.e. architectural knowledge, is key for understanding a software architecture and thus the software itself. Architectural knowledge is mostly tacit; it only exists in the heads of the creators. A problem is that this type of knowledge is easily lost. This phenomenon is called architectural knowledge vaporization and contributes to a number of problems that the industry is struggling with: expensive system evolution, difficult stakeholder communication, and limited reusability. The central theme of this thesis is how to reduce this vaporization of architectural knowledge. The focus is on one important form of architectural knowledge: architectural design decisions. This form is important, as the architecting process is all about making these key decisions. To reduce vaporization, this thesis explores a codification solution, in which these decisions are documented and modeled. For codification, the concepts one wants to codify must be understood well. To this end, a conceptual model of architectural design decisions is presented that explains the parts that this concept is made of and how it relates to other concepts. Based on this model, two approaches have been developed. The first, the Archium approach, is used for codifying, managing, and maintaining architectural design decisions in a forward engineering setting. The second approach is the Architectural Design Decision Recovery Approach (ADDRA) for recovering architectural design decisions in a reverse engineering setting. The Archium approach is evaluated in two ways. First, a study of how Archium deals with common use-cases for managing architectural knowledge is presented.
Second, to address the issue of expensive system evolution, the Archium tool is compared with other tools using an evaluation framework. To evaluate ADDRA, the approach is applied on a case study. Both ADDRA and Archium help the architect with codifying architectural design decisions. This codification has two important consequences for software architecting. First, design decisions become explicit bridges between design and rationale. Second, once codified, a software architecture can be seen as set of architectural (design) decisions. Both consequences put a software architecture into a new perspective and deepen our understanding about what software architecting is all about and they also help to reduce architectural knowledge vaporization. As future work, we plan to investigate other types of architectural knowledge and their relationship to architectural design decisions.
Originele taal-2 | English |
---|---|
Kwalificatie | Doctor of Philosophy |
Begeleider(s)/adviseur |
|
Datum van toekenning | 19-sep.-2008 |
Uitgever | |
Gedrukte ISBN's | 9789036734943 |
Status | Published - 2008 |