The accuracy of dependency analysis in static architecture compliance checking

Authors Leo Pruijt, Christian Köppe, Jan Martijn van der Werf, Sjaak Brinkkemper
Publication date 26 May 2016
Research groups Artificial Intelligence
Type Article

Summary

SUMMARY Architecture compliance checking (ACC) is an approach to verify conformance of implemented program code to high-level models of architec tural design. Static ACC focuses on the modular software architecture and on the existence of rule violating dependencies between modules. Accurate tool support is essential for effective and efficient ACC. This paper presents a study on the accuracy of ACC tools regarding dependency analysis and violation reporting. Ten tools were tested and compare d by means of a custom-made benchmark. The Java code of the benchmark testware contains 34 different types of dependencies, which are based on an inventory of dependency types in object oriented program code. In a second test, the code of open source system FreeMind was used to compare the 10 tools on the number of reported rule violating dependencies and the exactness of the dependency and violation messages. On the average, 77% of the dependencies in our custom-made test software were reported, while 72% of the dependencies within a module of FreeMind were reported. The results show that all tools in the test could improve the accuracy of the reported dependencies and violations, though large differences between the 10 tools were observed. We have identified10 hard-to-detect types of dependencies and four challenges in dependency detection. The relevance of our findings is substantiated by means of a frequency analysis of the hard-to-detect types of dependencies in five open source systems. DOI: 10.1002/spe.2421

Language English
Key words Architecture compliance checking, Software Architectuur

Artificial Intelligence