Consistent Inconsistency Management: a Concern-Driven Approach
Summary
Inconsistency in software architecture is prevalent and arises inevitably due to the fact that software architecture is concerned with heterogeneous, multi-actor, multi-view and multi-model activities. Inconsistencies that remain undiscovered can be problematic and inconsistency management is challenging, so the software architect benefits from an approach to structured inconsistency management. The software engineering research community has proposed different techniques and methods to support inconsistency management, especially focusing on model inconsistency. Traditional techniques such as logic-based approaches and model checking approaches have limited applicability in day to day practice due the presence of heterogeneous and informal models in software architecture, and the lack of documentation. This thesis presents a method that identifies inconsistency in software architecture in an early stage, i.e. in the form of conflicting concerns and design decisions, as these give rise to inconsistency in software architecture. The aim of this study is to provide software architects with a sound and evaluated method that aids the architect with inconsistency management. This is done by answering the main research question: How can a software architect be supported with inconsistency management in software architecture in a structured way? Using a rigorous process, which includes the Method Association Approach, a literature study, and various in-depth expert interviews, the “Concern-Driven Inconsistency Management” (CDIM) method is developed. Central in the method is a workshop-approach involving stakeholders that enables the architect to assess conflicts between concerns and associated design decisions, in order to detect and manage inconsistency as early as possible. Two lightweight case studies and two in-depth interviews have demonstrated that the CDIM method is a flexible and applicable method, that can be easily tailored towards the inconsistency management needs of a software architect. Evaluation suggests that the CDIM method provides an effective way to explicate and structure the sometimes ad-hoc and implicit process of inconsistency management that software architects follow. The method also appears to be a good instrument for tradeoff analysis, guiding the architecture definition process. Concluding, it can be stated that the CDIM method can be used to support the software architect in a structured way with inconsistency management in software architecture, especially regarding intangible inconsistency in the form of conflicting design decisions and concerns. Nonetheless, the effectiveness of CDIM for tangible inconsistency could not be established.