A hybrid process for recovering software architecture

Vassilios Tzerpos, Richard C. Holt · Conference of the Centre for Advanced Studies on Collaborative Research · 1996

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 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 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.

Read the paper · More papers on PaperTik