Differencing and Merging of Architectural Views

Abstract

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, the authors propose differencing and merging architectural views based on structural information. To that effect, they generalize a published polynomial-time, tree-to-tree correction algorithm that detects, inserts, renames, and deletes into a novel algorithm that also identifies restricted moves across levels of the hierarchy, and has the capability to force and prevent matches between view elements. They present a set of tools that use the tree-to-tree correction algorithm to compare and merge component-and-connector (C&C) architectural views. Case studies with real software illustrate the practicality of the algorithm and tool set, as they enabled the authors to find and reconcile interesting divergences between architectural views.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Aug 01, 2005
Accession Number
ADA456089

Entities

People

  • Bradley Schmerl
  • David Garlan
  • Jonathan Erik Aldrich
  • Marwan Abi-antoun
  • Nagi Nahas

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Cyber

DTIC Thesaurus Topics

  • Abstracts
  • Algorithms
  • Artificial Intelligence
  • Case Studies
  • Change Detection
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Heuristic Methods
  • Hierarchies
  • Information Systems
  • Jet Propulsion
  • Language
  • Pattern Recognition
  • Software Design
  • Software Development

Fields of Study

  • Computer science

Readers

  • Adaptive Control and Estimation with Uncertainty in Dynamic Systems.
  • Software Engineering.
  • Systems Analysis and Design