Existing approaches to differencing and merging architectural views are based on restrictive assumptions such as requiring view elements to have unique identifiers or exactly matching types. We propose an approach based on structural information by generalizing 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 incorporate the algorithm into tools to compare and merge component-and-connector (C&C) architectural views. Finally, we provide an empirical evaluation of the algorithm on case studies to find and reconcile interesting divergences between architectural views. 1.
|
958
|
Software Architecture: Perspectives on an Emerging Discipline
– Shaw, Garlan
- 1996
|
|
407
|
The string-to-string correction problem
– Wagner, Fischer
- 1974
|
|
192
|
Software reflexion models: Bridging the gap between source and high-level models
– Murphy, Notkin, et al.
- 1995
|
|
190
|
Similarity Flooding: A Versatile Graph Matching Algorithm and its Application to Schema Matching
– Melnik, Garcia-Molina, et al.
|
|
112
|
D.: ACME: Architectural Description of Component-Based Systems. In: Foundations of Component-Based Systems
– Garlan, Monroe, et al.
- 2000
|
|
109
|
Archjava: connecting software architecture to implementation
– Aldrich, Chambers, et al.
- 2002
|
|
95
|
The string to string correction problem
– Wagner, Fischer
- 1974
|
|
91
|
Using ViewPoints for Inconsistency Management
– Easterbrook, Nuseibeh
- 1996
|
|
77
|
Meaningful Change Detection in Structured Data
– Chawathe, Garcia-Molina
- 1997
|
|
67
|
Documenting Software Architectures: Views and Beyond
– Clements, Bachmann, et al.
- 2002
|
|
48
|
N.: An Infrastructure for the Rapid Development of XML-based Architecture Description
– Dashofy, Hoek, et al.
- 2002
|
|
47
|
Zhang: Alignment of trees - An alternative to tree edit
– Jiang, Wang, et al.
- 1995
|
|
42
|
X-Diff: An Effective Change Detection Algorithm for XML Documents
– Wang, DeWitt, et al.
- 2003
|
|
37
|
Exact and approximate algorithms for unordered tree matching
– Shasha, Wang, et al.
- 1994
|
|
37
|
Capturing software architecture design expertise with Armani
– Monroe
- 1998
|
|
35
|
Towards architecture-based self-healing systems
– Dashofy, Hoek, et al.
- 2002
|
|
34
|
Approximate Tree Pattern Matching
– Shasha, Zhang
- 1997
|
|
31
|
M.Vento. Thirty years of graph matching in pattern recognition. International journal of pattern recognition and artificial intelligence
– Conte, Sansone
- 2004
|
|
28
|
Efficient Graph Matching Algorithms for Preprocessed Model Graphs
– Messmer
- 1995
|
|
28
|
Using Object-Oriented Typing to Support
– Medvidovic, Oreizy, et al.
- 1996
|
|
25
|
Architecture-Based Performance Analysis
– Spitznagel, Garlan
- 1998
|
|
24
|
On the Criteria for Decomposing Systems into Modules
– Parnas
- 1972
|
|
22
|
A Differencing Algorithm for Object-Oriented Programs
– Apiwattanapong, Orso, et al.
- 2004
|
|
22
|
Subtypes for Specifications: Predicate Subtyping in PVS
– Rushby, Owre, et al.
- 1998
|
|
18
|
Difference and Union of Models
– Alanen, Porres
- 2003
|
|
18
|
UMLDiff: An Algorithm for ObjectOriented Design Differencing
– Xing, Stroulia
- 2005
|
|
17
|
Polynomial-Time Metrics for Attributed Trees
– Torsello, Hidovic-Rowe, et al.
- 2005
|
|
14
|
A Two-phase Process for Software Architecture Improvement
– Krikhaar
- 1999
|
|
13
|
Differences between versions of UML diagrams
– Ohst, Welle, et al.
- 2003
|
|
13
|
DiscoTect: A System for Discovering Architectures from Running Systems
– Yan, Garlan, et al.
- 2004
|
|
13
|
Some MAX SNP-hard results concerning unordered labeled trees
– Zhang, Jiang
- 1994
|
|
12
|
AcmeStudio: Supporting Style-Centered Architecture Development
– Schmerl, Garlan
- 2004
|
|
11
|
Instant consistency checking for the UML
– Egyed
- 2006
|
|
11
|
Software architecture recovery of a program family
– Eixelsberger, Ogris, et al.
- 1998
|
|
10
|
Dex: A Semantic-Graph Differencing Tool for Studying Changes in Large Code Bases
– Raghavan, Rohana, et al.
|
|
9
|
A Generic Approach to Supporting Diagram Differencing and Merging for Collaborative Design
– Mehra, Grundy, et al.
- 2005
|
|
9
|
V.: Using software evolution to focus architectural recovery
– Medvidovic, Jakobac
- 2005
|
|
9
|
An Open Visualization Toolkit for Reverse Architecting
– Telea, Maccari, et al.
|
|
7
|
Mae A System Model and Environment for Managing Architectural Evolution
– Roshandel, Hoek, et al.
- 2004
|
|
7
|
Discovering Architectures from Running Systems
– Schmerl, Aldrich, et al.
- 2006
|
|
6
|
Improving System Dependability by Enforcing Architectural Intent
– Abi-Antoun, Aldrich, et al.
- 2005
|
|
6
|
On modeling software architecture recovery as graph matching
– Sartipi, Kontogiannis
- 2003
|
|
5
|
Differencing and Merging within an Evolving Product Line Architecture
– Chen, Critchlow, et al.
- 2003
|
|
5
|
A Case Study in Reengineering to Enforce Architectural Control Flow and Data Sharing
– Abi-Antoun, Aldrich, et al.
- 2006
|
|
5
|
A bayesian approach to diagram matching with application to architectural models
– Mandelin, Kimelman, et al.
- 2006
|
|
5
|
RN (2000) A Classification and Comparison Framework for Software Architecture Description Languages
– Medvidovic, Taylor
- 2000
|
|
4
|
Inter-Module Renaming and Reorganizing: Examples of Program Manipulation-in-the-Large
– Ammann, Cameron
- 1994
|
|
3
|
Matching graphs with unique node labels
– Dickinson, Bunke, et al.
- 2004
|
|
3
|
A taxonomy of model transformation and its application to graph transformation technology
– Mens, Gorp
- 2005
|
|
3
|
Representing Architectural Evolution
– Erdogmus
- 1998
|