Reverse-engineering and intermodular data flow: A theoretical approach

Starting from the need for formalization and models to represent and repeat reverse-engineering activities, this paper presents a proposal in the field of data flow analysis. In particular, the authors propose a formal model for a practical approach to the reconstruction of intermodular data flow associated with the structure charts of a Pascal software system. Specific matrices extracted straight from code are presented and matrix calculation is then exploited to obtain a final matrix containing all the information needed for the reconstruction of the data flow. Finally, this flow is reconstructed by means of transformations on the elements in this matrix.

[1]  Thomas C. Spillman,et al.  Exposing Side-Effects in a PL/I Optimizing Compiler , 1971, IFIP Congress.

[2]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[3]  Barbara G. Ryder,et al.  Elimination algorithms for data flow analysis , 1986, CSUR.

[4]  H. M. Sneed,et al.  Inverse transformation of software from code to specification , 1988, Proceedings. Conference on Software Maintenance, 1988..

[5]  Paul T. Ward,et al.  The transformation schema: An extension of the data flow diagram to represent control and timing , 1986, IEEE Transactions on Software Engineering.

[6]  A. Cimitile,et al.  Reverse engineering and data flow diagrams in ADA environment , 1990, Microprocessing and Microprogramming.

[7]  Aniello Cimitile,et al.  A reverse engineering methodology to reconstruct hierarchical data flow diagrams for software maintenance , 1989, Proceedings. Conference on Software Maintenance - 1989.

[8]  Jeffrey M. Barth A practical interprocedural data flow analysis algorithm , 1978, CACM.

[9]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[10]  Christopher W. Pidgeon,et al.  TMM: Software Maintenance by Transformation , 1986, IEEE Software.

[11]  Aniello Cimitile,et al.  Maintenance and intermodular dependencies in Pascal environment , 1990, Proceedings. Conference on Software Maintenance 1990.

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

[13]  Alfred V. Aho,et al.  The Theory of Parsing, Translation, and Compiling , 1972 .

[14]  Jeffrey D. Ullman,et al.  Global Data Flow Analysis and Iterative Algorithms , 1976, J. ACM.

[15]  Frances E. Allen,et al.  A Basis for Program Optimization , 1971, IFIP Congress.

[16]  Victor R. Basili,et al.  System Structure Analysis: Clustering with Data Bindings , 1985, IEEE Transactions on Software Engineering.

[17]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[18]  C. M. Overstreet,et al.  Program maintenance by safe transformations , 1988, Proceedings. Conference on Software Maintenance, 1988..

[19]  Victor Weinberg,et al.  Structured Analysis , 1978 .

[20]  Song C. Choi,et al.  Extracting and restructuring the design of large systems , 1990, IEEE Software.

[21]  Jeffrey D. Ullman,et al.  A Simple Algorithm for Global Data Flow Analysis Problems , 1975, SIAM J. Comput..

[22]  Atul Prakash,et al.  Programming in the large , 1986, IEEE Transactions on Software Engineering.

[23]  Zavdi L. Lichtman Generation and consistency checking of design and program structures , 1986, IEEE Transactions on Software Engineering.

[24]  Ted J. Biggerstaff,et al.  Design recovery for maintenance and reuse , 1989, Computer.

[25]  Aniello Cimitile,et al.  Post-maintenance testing based on path change analysis , 1988, Proceedings. Conference on Software Maintenance, 1988..

[26]  Thomas A. Corbi,et al.  Program Understanding: Challenge for the 1990s , 1989, IBM Syst. J..