Model- Driven Software Architecture Conformance Analysis

Samenvatting (Engelstalig):

Every software system has an architecture that defines the gross-level structure of the system and consists of architectural components, relations and their interactions. A common practice to model software architectures is based on the notion of so-called architecture viewpoints, which define the templates and guidelines for the architecture from the perspective of one or more stakeholder concerns. Architecture views are then derived from architecture viewpoint definitions and form a software architecture representation. Since software systems constantly evolve, the software code starts to diverge from the documented software architecture. Architecture conformance analysis methods are proposed to tackle this issue in which the comparisons between intended and implemented architectures are performed. Three relations are identified from these methods, namely divergence, absence and conformance. Conformance relation is present when intended and implemented architectures have the same architectural elements. Divergence relation is present when implemented architecture has different architectural elements from intended architecture. Finally, absence relation is present when implemented architecture is missing elements from intended architecture. Manually checking for divergence and absence relations in large-scale software systems is time-consuming and cumbersome; hence, most conformance analysis methods in the industry are either semi-automated or fully automated. In this work, we mainly propose two novel architecture conformance analysis methods alongside industrial case studies for evaluating the effectiveness of proposed methods.