A reverse engineering process for design level document production from ADA code

Abstract The paper describes a reverse engineering process for producing design level documents by static analysis of ADA code. The produced documents, which we call concurrent data flow diagrams, describe the task structure of a software system and the data flow between tasks. Firstly, concurrent data flow diagrams are defined and discussed and then the main characteristics and features of the reconstruction process are illustrated. The process has been used to support maintenance and reuse activities on existing real-time software and to check consistency between design and code.

[1]  Stephen S. Yau,et al.  An Integrated Life-Cycle Model for Software Maintenance , 1988, IEEE Trans. Software Eng..

[2]  Sol M. Shatz,et al.  Design and Implementation of a Petri Net Based Toolkit for Ada Tasking Analysis , 1990, IEEE Trans. Parallel Distributed Syst..

[3]  Norman H. Cohen Ada as A Second Language , 1986 .

[4]  D. Sterne,et al.  A simplified graphic notation for Ada programs , 1989, TRI-Ada '88.

[5]  Hassan Gomaa,et al.  A software design method for real-time systems , 1984, CACM.

[6]  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.

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

[8]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[9]  Grady Booch,et al.  Software engineering with Ada , 1983 .

[10]  William Bruyn,et al.  An extended systems modeling language (ESML) , 1988, SOEN.

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

[12]  Aniello Cimitile,et al.  A logic based approach to reverse engineering tools production , 1991, Proceedings. Conference on Software Maintenance 1991.

[13]  Iain D. Craig Software Components With Ada by Grady Booch Benjamin/Cummings, Menlo Park, CA, 1987, 635 pages (incl. index) (£19.95) , 1989, Robotica.

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

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

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

[17]  T. H. Tse,et al.  Towards a Formal Foundation for DeMarco Data Flow Diagrams , 1989, Comput. J..

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

[19]  Ken Shumate,et al.  Designing large real-time systems with Ada , 1988, CACM.

[20]  Richard N. Taylor,et al.  A general-purpose algorithm for analyzing concurrent programs , 1983, CACM.