search menu icon-carat-right cmu-wordmark

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

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.