Software Architecture

Architecture Reconstruction

Evaluation of an architecture's properties is critical to successful system development. However, reasoning about a system's intended architecture must be recognized as distinct from reasoning about its realized architecture.

Challenges

As design and eventually implementation of an architecture proceed, faithfulness to the assumptions of the intended architecture is not always achieved. This is particularly true in cases where the intended architecture is not completely specified, documented, or disseminated to all of the project members. This problem is exacerbated during maintenance and evolutionary development, as architectural drift and erosion occur.


To apply reasoning about the properties of a system's intended architecture to the properties of the implemented system, we must either ensure that the realized architecture conforms to the intended architecture or change the intended architecture to match reality. Both cases may require reconstructing the architecture of the realized system.

Description

During the consulting engagement, SEI software architects train and guide a team through the following process, comprising four phases:

  1. Extraction, from implementation artifacts (including source code and dynamic information such as event traces), of a set of extracted views that represent the system's fundamental structural and behavioral elements.
  2. Fusion of the extracted views to create fused views that augment or improve the extracted views.
  3. Iterative and interactive development and application of patterns to the fused views to reconstruct architecture-level derived views. Patterns provide the medium for analysts to express their understanding of a system's architecture as structural and attribute-based relationships among its components.
  4. Exploration of derived views for the purposes of evaluating architectural conformance, identifying targets for reengineering or reuse, and analyzing the architecture's qualities.

The reconstruction process can be most effectively supported by the integration of existing tools and techniques. There are currently many commercial and research tools that provide the basic mechanisms for view extraction. Similarly, there are several tools and techniques available for performing view fusion and reconstruction. The synthesis of these tools and techniques provides a support environment for software architects and analysts reconstructing architectures. To complement previous work in reconstruction, the SEI is currently surveying tools that are available for reconstruction to determine the current state of the practice for reconstructing architectural representations. The SEI will study the information that these tools extract with emphasis on how they present the extracted views and how they aid in analysis of legacy systems.

Benefits

The reconstruction process results in providing derived views of an architecture. These may be explored for the purposes of evaluating architectural conformance, identifying targets for reengineering or reuse, and analyzing the architecture's qualities.

Availability

SEI staff will work with a customer's development staff and, when appropriate and desirable, with their contractors or subcontractors. For additional technical details or to arrange architectural coaching services, contact us using the link in the For more information box at the bottom of this page.

Software Architecture Training and Publications

Software Architecture Training at the SEI

Software Architecture Publications

 

Find Us Here

Share This Page

Share on Facebook  Send to your Twitter page  Save to del.ico.us  Save to LinkedIn  Digg this  Stumble this page.  Add to Technorati favorites  Save this page on your Google Home Page 

For more information

Contact Us

info@sei.cmu.edu

412-268-5800