Abstract
Context: Conformance between architecture and implementation is a key aspect of architecture-centric development. Unfortunately, the architecture “as documented” and the architecture “as implemented” tend to diverge from each other over time. As this gap gets wider, the architects’ reliance on architecture-level analyses is compromised. Thus, conformance checks should be run periodically on the system in order to detect and correct differences. In practice, tool support is very beneficial for these checks.
Objective: Despite having a structural conformance analysis, assessing whether the main scenarios describing the architectural behavior are faithfully implemented in the code is still challenging. Checking conformance to architectural scenarios is usually a time-consuming and error-prone activity. In this article, we describe a tool approach called
Arch Sync? that helps architects to reconcile a scenario-based architectural description with its source code, as changes are being made on the code.
Method: The architecture is specified with Use-Case Maps (UCMs), a notation for modeling both high-level structure and behavior.
Arch Sync? applies heuristics that incrementally detect code deviations with respect to predetermined UCMs, based on the analysis of system execution traces for those UCMs. Also,
Arch Sync? provides suggestions for re-synchronizing the UCMs with the code.
Results: We have evaluated a prototype of
Arch Sync? in three medium-size case-studies, involving developers with moderate architecture experience. We compared time consumed, code browsed and suggestions for re-synchronizing the UCMs by these developers, with and without the support of
Arch Sync?.
Conclusion: The results from case-studies and lessons learned have shown that the
Arch Sync? approach is practical and reduces conformance checking efforts.
--
Daniel Amyot - 16 Mar 2014
Discussion