Skip to Main Content
Software architecture evolution has become an integral part of the software lifecycle. Thus, the maintenance of a software system involves among others the maintenance of the software system architecture. Component models are widely used as an essential view to describe software architectures. In recent years, the software architecture community has proposed to additionally model the architectural design decisions for capturing the design rationale and recording the architectural knowledge. Unfortunately, there are no formal relations between design decisions and component models. This leads to potential inconsistencies between the two kinds of models as the software system evolves. In this paper, we propose to overcome this problem by introducing a constraint-based approach for checking the consistency between the decisions and the corresponding component models. Our approach enables explicit formalized mappings of architectural design decisions onto component models. Based on these mappings, component models along with the constraints used for consistency checking between the decisions and the component models can be automatically generated using model-driven techniques. Our approach can cope with changes in the decision model by regenerating the constraints for the component model. Thus, our component model gets updated and validated as the architectural decisions evolve. The evaluation of our approach shows that our prototypical implementation scales sufficiently for large component model sizes and large sets of decisions.