An approach to recovering data flow oriented design of a software system

Arun Lakhotia

Abstract

This paper describes an approach for recovering data flow oriented design of a software system from its source code. Data flow diagrams are used for analysis and design in software development in variations of Structured Analysis techniques. A tool that extracts designs based on these diagrams from the code will be useful in maintaining the consistency of design document with its code, migrating old software code to emerging Computer Aided Software Engineering (CASE) technology, and for understanding large software systems.

The approach proposed employs reverse engineering techniques that create hierarchical clusters of functions and procedures to identify the "bubbles" at various levels in the hierarchy of DFD's. It uses results from inter procedural flow analysis to compute the "logical" flow of data between these bubbles. And it uses information about data types provided with the source code to create the data dictionary.

The paper also identifies the open problems whose solutions would enable the recovery of data flow oriented designs. Our current research effort is focussed on solving these problems.

Full paper