Published in Proceedings of the 1997 IEEE International Conference and Workshop on Engineering of Computer-Based Systems: Monterey, CA, March 24, 1997, pages 97-104. DOI: http://dx.doi.org/10.1109/ECBS.1997.581823.
© 1997 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
NOTE: At the time of publication, the author Franz Kurfess was affiliated with the New Jersey Institute of Technology. Currently, August 2008, he is Professor of Computer Science at California Polytechnic State University - San Luis Obispo .
This paper describes a set of tools for the reengineering of computer-based systems, in particular software. The toolset is based on an abstract intermediate representation (IR) which incorporates the system software architecture at five level of granularity: program level, task level, package/object instance level, subprogram level and statement level. The toolset provides a graphical user interface that allows various views of a software architecture, including call graph, rendezvous graph, call-rendezvous graph, call-data-rendezvous graph, control flow graph and dependence graphs. The information captured by the toolset is useful in software structure, flow and interaction analysis, tasks commonly performed manually during maintenance and reengineering. This information is also helpful for understanding the software design to guide software transformation, and for porting software to distributed platforms.