KISTERS AG – an international company and industry partner of the research group for Software Construction at RWTH Aachen University (SWC) – develops complex and business-critical software solutions. As non-functional properties (NFP) like understandability, maintainability, performance and security are directly influenced by the quality of the underlying software architecture, developing successful software solutions at KISTERS’ scale requires a well-designed and documented architecture. However, as software systems evolve, it is often the case that a gap between the actually implemented architecture and its documentation emerges. This gap is referred to as architectural drift, which can cause serious problems related to the NFPs listed above. In order to handle the risk of architectural drift, KISTERS’ vision is to utilize a tool-based approach, checking for architectural conformance, for a variety of their systems. As this tool-based approach is an emerging field of interest at KISTERS, static analysis tools like Sonargraph-Architect were only evaluated briefly before. However, with the advent of new architecture styles (e.g. microservices), the complexity of software systems shift from their static structure to their interaction and behavior at run-time. Consequently, static analysis tools might not cover all architecturally relevant aspects. In order to address this issue, SWC developed the ARAMIS tool-chain, which facilitates architecture conformance checks based on a system’s communication at run-time. The main objective of this thesis is to support KISTERS on the way towards their vision and give guidance which conformance checking approach should be employed for their systems. Therefore, tailored architecture conformance checking processes are developed utilizing the tools Sonargraph-Architect (static approach) and ARAMIS (behavior-based approach). We gather experience regarding these processes and study the characteristics of the underlying approaches by applying both processes to one of KISTERS’ software solutions.
The contribution of our work is versatile: We show the feasibility of transforming existing architecture documentation into tool-compatible models by enriching architecture diagrams with information obtained from source code. As a result our proposed processes achieve a high-level of automation. By applying the developed analysis processes, we uncover the architectural drift of the analyzed system and support KISTERS to gain valuable architectural insights. Furthermore, we contribute to the research of SWC by evaluating ARAMIS in the context of a large-scale software system. We thoroughly discuss its tradeoffs, cope with performance related concerns and identify anomalies of the approach and the utilized monitoring infrastructure. Our experiences and lessons learned are documented in form of guidelines for future reference by architects. In addition, we carry out a comprehensive comparison of both approaches that supports KISTERS to decide when to apply which approach.