Summary: Differencing and Merging of Architectural Views
Marwan Abi-Antoun, Jonathan Aldrich, Nagi Nahas, Bradley
Schmerl and David Garlan
Carnegie Mellon University, Pittsburgh, PA 15213 USA
October 1, 2007
Abstract. Differencing and merging architectural views is an important activity
in software engineering. However, existing approaches are still based on restrictive
assumptions, such as requiring view elements to have unique identifiers or exactly
matching types, which is often not the case in many application domains.
We propose an approach based on structural information. We generalize a pub-
lished polynomial-time tree-to-tree correction algorithm that detects inserts, re-
names and deletes, into a novel algorithm that additionally detects restricted moves.
Our algorithm also supports forcing and preventing matches between view elements.
We incorporate the algorithm into tools to compare and merge Component-and-
Connector (C&C) architectural views. We provide an empirical evaluation of the
algorithm. We illustrate the tools using extended examples, and use them to detect
and reconcile interesting differences between real architectural views.
Keywords: tree-to-tree correction, view synchronization, graph matching
The software architecture of a system defines its high-level organization