Checking architecture conformance

Our client’s IT-Architecture department published a set of architectural guidelines and coding conventions for the internal and external software systems. They needed a way to verify compliance of one of their software system. Our role was to perform a strategic assessment to verify the architecture conformance to the guidelines.

The first step was to obtain an overview of the system. We based our analysis on reading both technical and business documentation and on analyzing the actual source code.

Using the architecture descriptions, we focussed on checking the architectural layers and interface boundaries. We validated the coarse grained architectural rules. We used several Moose-based visualization techniques and applied several custom detection strategies to highlight points of interest and irregularities in the code. An example of such a visualization showing violations over the overall system structure is displayed below.

On closer inspection through queries and selective code reading, we identified a number of guidelines violations. For example, one of the detected shortcomings of the application was the poor exception handling that violated the architectural constraints.

Once the non-conforming parts were identified, we proposed concrete recommendations for how to improve the structure of the system to conform to the desired guidelines.

We also provided a summary of the overall code quality. For this purpose we used several techniques such as metrics, queries and visualizations. Among others we pinpointed how the logic is distributed over the system and how the code duplication should be refactored. The architectural violations were scheduled for refactoring before the application was to go into production.