Model-driven software architecture conformance analysis

Burak Uzun · 2021

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. Based on architecture viewpoints, architecture views can be derived for a particular system. Usually, the architecture of a system consists of multiple architecture views. Since software systems constantly evolve, the software code can start to diverge from the documented software architecture. Architecture conformance analysis methods have been proposed that compare and check the differences between the code and the software architecture. Elements in the code might conform to the elements in the architecture, elements might be absent, or the code might diverge from the architecture and introduce new elements. Conformance analysis is performed on two levels which are code and architecture levels. Code-level conformance analysis employs intended architecture to generate runnable specifications that are executed on the code to reveal divergence or absence relations. Architecture level conformance analysis employs reconstructed architecture from implementation and compares intended architecture with reconstructed 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. Software testing can be used to detect the divergence and absence relations. Automation in software testing can be achieved by model-based testing techniques. Model-based testing is a software testing technique in which certain aspects of software system behaviours are defined in a model that is a basis for abstract tests. Concrete tests are derived from these abstract tests and executed against the software system under test.The main objective in this thesis is to define model-driven conformance analysis methodologies to detect the absence and divergence relations of software systems. To this end we answered the following research questions:RQ1: What are current solutions for model-driven architecture-based testing?RQ2: What are the limitations and benefits of code level model-based architecture conformance analysis using architecture viewpoints?RQ3: What are the characteristic features of architecture reconstruction methods?RQ4: What are the limitations and benefits of architecture level model-based architecture conformance analysis using architecture viewpoints?To answer these research questions, we used five different research methodologies which are: Systematic Literature Review, Case Study Research, Survey Study, Domain Analysis, Design Science Research.In chapter 2, we applied a systematic literature review for model-driven architecture based testing. We defined three research questions which are related to identifying addressed concerns, proposed solutions and existing research directions. We thoroughly analyzed 31 primary studies out of 739 studies. Firstly, we identified two concerns for applying MDABT which are: code to architecture conformance checking and internal architecture consistency checking. Furthermore, we derived a generic process model for model-driven architecture-based testing. Lastly, we identified current obstacles and existing research directions based on selected primary studies. We identified seven obstacles for MDABT which are: the need for executable models for representing architecture, coping with the abstraction difference between architecture and code, the combinatorial state explosion problem, the lack of architecture views to consider multiple different concerns, the need for automating the process by tools, the cost-benefit analysis, and the need for applying MDABT on complex real systems to provide evidence of the approaches with respect to conventional approaches.In chapter 3, we applied design science research to familiarize ourselves with the big data e-government system domain. We synthesized a generic process model for deriving big data e-government architectures. Our process model takes variability models for big data and e-government systems along with e-government reference business process model and reference architecture to create a concrete big data e-government system architecture.In chapter 4, we presented our code level architecture conformance analysis method alongside case and survey studies. Our method takes architecture view models as input and translates them into unit tests that can be executed on the code to verify the absence relations. We evaluated our results on both original and mutant copy of big data e-government system. Moreover, we conducted surveys to developers both before and after the execution of our method. We concluded that our method was practical and useful for architecture conformance analysis.In chapter 5, we presented our domain analysis on software architecture reconstruction methods. We derived a feature model that contains common and variant features for software architecture reconstruction methods. To this end, we selected and analysed a set of papers for software architecture reconstruction methods. We discovered a set of repeating common and variant features for software architecture reconstruction methods. During our research, we discovered the need for a well-defined SLR study and this can be conducted as future research.In chapter 6, we presented our view-driven architecture reconstruction approach. We implemented our approach so that it can be executed while the software system is running. We extract view models for selected viewpoints from the source code. We defined selected viewpoints for this study alongside criteria for reconstructing each architecture viewpoint.In chapter 7, we presented our architecture level conformance analysis approach alongside a case study. We used our previously presented architecture reconstruction method to derive architecture view models from the source code. Our approach takes in reconstructed architecture view models as parameters for detecting absence and divergence relations between implemented and intended architecture. We evaluated our approach on an e-commerce software system. We concluded that our approach was useful for detecting absence and divergence relations for architecture conformance analysis.Chapter 8, concludes this thesis by summarizing and discussing the contributions.

Read the paper · More papers on PaperTik