The intended software architecture of a software system manifests the earliest and most fundamental design decisions. To ensure that the final software product is consistent with those design decisions and the requirements realized that way, the software architecture has to be refined correctly. This means that the artefacts of detailed design and implementation have to comply with the intended software architecture.
A basic task to ensure architectural compliance is the checking of architectural rules. These rules are constraints resulting from the application of architectural principles, like patterns, reference architectures or guidelines, and restricting the way an architecture can be refined. However, checking those rules is difficult. Manual checks are in general not possible due to the size and complexity of modern software systems. But realizing powerful tool support is challenging, since compliance checking tools have to be very flexible regarding the great variety of architectural rules and the number of artefact types requiring compliance checking.
This thesis develops an approach to flexible architecture compliance checking in model-based development approaches for component-based systems.It describes a conceptual framework, in which models are interpreted as first-order logic statements about component-based systems; architectural rules as fundamental parts of architectural models, are logical statements, too. Compliance between models can be expressed this way as semantically-founded relation between logical formulae.
The developed concepts are evaluated by a case study system following several different architectural principles. Architectural rules are developed for those principles and are checked for compliance. Furthermore, a prototypical compliance checking tool basing upon a logic-based knowledge representation and reasoning system is realized.
Both, the conceptual framework as well as the prototypical implementation, allow very flexible architectural compliance checking. Due to the developed formalization, a broad range of architectural rules can be specified, largely meta model-independently. Aside from the significant improvement of tool support compared with the state of the art, the approach fosters furthermore a new understanding of the role of software architecture; as blue-print for design and implementation, the need for explicitly modelled architectural rules is emphasized.
Munich, Germany: Dr. Hut Verlag , 2011. , 313 p.