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.
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.
During the consulting engagement, SEI software architects train and guide a team through the following process, comprising four phases:
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.
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.
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 at the SEI
Software Architecture Publications
Find Us Here
For more information