Reverse engineering: Algorithms for program graph production
- 1 May 1991
- journal article
- research article
- Published by Wiley in Software: Practice and Experience
- Vol. 21 (5) , 519-537
- https://doi.org/10.1002/spe.4380210507
Abstract
The paper proposes an algebraic representation of program modules, calledF(p), and illustrates the algorithms that useF(p)to generate program graph models for measurement, documentation and testing activities. The representation refers to procedural languages, D‐structured programs and one‐in/one‐out modules but its definition can be extended to programs structured in terms of an arbitrary set of one‐in/one‐out legal control structures. Since it is possible to produceF(p)directly from the program code using reverse engineering techniques, the algorithms proposed are of considerable interest for the setting up of tools supporting the program comprehension phase, which is a fundamental first step in any maintenance operation.Keywords
This publication has 23 references indexed in Scilit:
- A note on the use of Z to specify flowgraph decompositionInformation and Software Technology, 1988
- An integrated life-cycle model for software maintenanceIEEE Transactions on Software Engineering, 1988
- Testability and path testing strategiesMicroprocessing and Microprogramming, 1987
- Metrics and software structureInformation and Software Technology, 1987
- A new methodological proposal for program maintenanceMicroprocessing and Microprogramming, 1986
- Axiomatic approach to Software Metrication through Program DecompositionThe Computer Journal, 1986
- Space-Efficient Implementations of Graph Search MethodsACM Transactions on Mathematical Software, 1983
- Complexity in program schemesACM SIGPLAN Notices, 1983
- A Complexity MeasureIEEE Transactions on Software Engineering, 1976
- Analysis of structured programsJournal of Computer and System Sciences, 1974