A hybrid process for recovering software architecture

  • Authors:
  • Vassilios Tzerpos;R. C. Holt

  • Affiliations:
  • University of Toronto, Toronto, Ontario, Canada;University of Toronto, Toronto, Ontario, Canada

  • Venue:
  • CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

A large portion of the software used in industry today is legacy software. Legacy systems often evolve into difficult to maintain systems whose original design has been lost or else no longer closely matches the actual structure of the system.In our paper we present a "hybrid" process in which we combine extracted code facts and information derived from interviewing developers to determine the architectural structure of a legacy system. We introduce the steps of this process using a case study of a large legacy system, an optimizing back end for IBM compilers. These steps include collecting "back of the envelope" designs from project personnel, extracting raw facts from the source code, collecting naming conventions for files, clustering code artifacts based on naming conventions, creating tentative structural diagrams, and collecting more "live" information in terms of reactions to these tentative diagrams, and so on, until we converge to an architectural structure.Our conclusion is that there is a reasonably well defined sequence of steps that the reverse engineer can go through to extract facts and collect live information in order to create a useful architectural structure diagram.