Abstract-Architecture Compliance Checking (ACC) is an approach to verify the conformance of implemented program code to high-level models of architectural design. ACC is used to prevent architectural erosion during the development and evolution of a software system. Static ACC, based on static software analysis techniques, focuses on the modular architecture and especially on rules constraining the modular elements. A semantically rich modular architecture (SRMA) is expressive and may contain modules with different semantics, like layers and subsystems, constrained by rules of different types. To check the conformance to an SRMA, ACC-tools should support the module and rule types used by the architect. This paper presents requirements regarding SRMA support and an inventory of common module and rule types, on which basis eight commercial and non-commercial tools were tested. The test results show large differences between the tools, but all could improve their support of SRMA, what might contribute to the adoption of ACC in practice.
Abstract-Architecture Compliance Checking (ACC) is an approach to verify the conformance of implemented program code to high-level models of architectural design. ACC is used to prevent architectural erosion during the development and evolution of a software system. Static ACC, based on static software analysis techniques, focuses on the modular architecture and especially on rules constraining the modular elements. A semantically rich modular architecture (SRMA) is expressive and may contain modules with different semantics, like layers and subsystems, constrained by rules of different types. To check the conformance to an SRMA, ACC-tools should support the module and rule types used by the architect. This paper presents requirements regarding SRMA support and an inventory of common module and rule types, on which basis eight commercial and non-commercial tools were tested. The test results show large differences between the tools, but all could improve their support of SRMA, what might contribute to the adoption of ACC in practice.
Digitale architectuur wordt beoefend door digitale architecten. Deze digitale architecten spelen een cruciale rol in het tijdig en betrouwbaar realiseren van IT-oplossingen. De Nederlandse godfather van IT Edsger Dijkstra zei in 1962 bij zijn inaugurele rede (Dijkstra, 1962): “Wij hebben geen betere machines omdat wij geen betere machines verdienen.” De achterliggende oorzaak, betoogde hij, was dat fabrikanten precies bouwden wat de kopers vroegen zonder dat de kopers in enige mate geremd werden door de beperkingen van de technologie. Dit gebeurde onder het motto “In order to live we must sell. And we must sell to perfect idiots". Het onderliggende probleem is dat de vertaling van de wensen van de klant in een werkend compromis niet is geslaagd. Dit is exact het pijnpunt, waar de digitale architect een cruciale rol. speelt. Een kundig architect is in staat met zijn omgeving tot een compromis te komen dat voor alle belanghebbenden acceptabel is. Alternatief is dat niet tot bouw besloten wordt. De vastlegging van het ontwerp van dat compromis gebeurt in de digitale architectuur en ontwerpdocumentatie van de oplossing.