Discovering Architectures from Running Systems: Lessons Learned
December 2004 • Technical Report
Hong Yan, Jonathan Aldrich, David Garlan, Rick Kazman, Bradley Schmerl
This report describes a technique that uses automatically generated runtime observations of an executing system to construct an architectural view of the system.
Publisher:
Software Engineering Institute
CMU/SEI Report Number
CMU/SEI-2004-TR-016
DOI (Digital Object Identifier):
10.1184/R1/6573176.v1Subjects
Abstract
One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. This report describes a technique that uses automatically generated runtime observations of an executing system to construct an architectural view of the system. In this technique, mappings are developed that exploit regularities in system implementation and architectural style. These mappings describe how low-level system events can be interpreted as more abstract architectural operations. In addition, this report describes the current implementation of a tool, called DiscoTect, that uses these mappings, and it shows how DiscoTect can highlight inconsistencies between implementations and architectures. Furthermore, two case studies are provided that illustrate how DiscoTect works and how it can be applied to real-world systems.