Recovering the architectural design for software comprehension

The work described in this paper addresses the problem of understanding a software system and focuses in particular on the comprehension of the system architectural design. A method is proposed to reconstruct the architecture of a system and represent it in the form of a structure chart. The method assumes the system was originally designed with a functional decomposition approach, and aggregates program units into modules whenever these implement a functionality of the system. A directed graph that describes the activations of program units is used to model the system and the concept of node dominance on a directed graph is exploited to aggregate program units into modules and to derive intermodular relationships from the unit activations. Finally, the system data set is partitioned into sets of data items which are local to a given module and sets of data items which are global to the nodules belonging to a subtree of the structure chart, and the interfaces of modules are identified.<<ETX>>

[1]  Wojtek Kozaczynski,et al.  Recovering reusable components from legacy systems by program segmentation , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[2]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[3]  Lawrence Markosian,et al.  Using an enabling technology to reengineer legacy systems , 1994, CACM.

[4]  James H. Cross,et al.  Reverse engineering Control Structure Diagrams , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[5]  Harry M. Sneed,et al.  Downsizing large application programs , 1993, 1993 Conference on Software Maintenance.

[6]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[7]  Alex Quilici A memory-based approach to recognizing programming plans , 1994, CACM.

[8]  Panagiotis K. Linos,et al.  VIFOR: A tool for software maintenance , 1990, Softw. Pract. Exp..