posted on 2001-11-01, 00:00authored byMarwan Abi-Antoun, Jonathan Aldrich, Nagi Nahas, Bradley Schmerl, David Garlan
As architecture-based techniques become more widely adopted, software architects face the problem of reconciling
different versions of architectural models. However, existing approaches to differencing and merging architectural views
are based on restrictive assumptions, such as requiring view elements to have unique identifiers or explicitly log changes
between versions.
To overcome some of the above limitations, we propose differencing and merging architectural views based on structural
information. To that effect, we generalize a published polynomial-time tree-to-tree correction algorithm (that detects
inserts, renames and deletes) into a novel algorithm to additionally detect restricted moves and support forcing and
preventing matches between view elements. We implement a set of tools to compare and merge component-and-connector
(C&C) architectural views, incorporating the algorithm. Finally, we provide an empirical evaluation of the algorithm and
the tools on case studies with real software, illustrating the practicality of the approach to find and reconcile interesting
divergences between architectural views