Integrating reverse engineering into computer-aided software engineering (CASE)
Thaddeus W. Usowicz
Abstract
Thaddeus W. Usowicz
Abstract
A framework for the integration of reverse engineering of software systems into computer-aided software engineering (CASE) tools has been developed and applied to C source code. The process of coding a system conceals design information useful for system and code modification and upgrading as the system evolves during the operation and maintenance phase of its life cycle. Significant resources are being expended by the industry in maintaining existing code which was designed and implemented prior to CASE tools and for which little accurate documentation can be found. The framework developed here is intended to facilitate the recovery of design information in a manner which would allow the direct application of modern CASE tools to maintaining the software within the context of a Structured Design methodology. The design recovery framework emphasizes the identification of: module dependencies; visibility of information exchanged between modules, specifically, what data is exchanged and in which direction; visibility of information among modules through the global data area; and appropriate module assignments to subhierarchies in a structure chart. A software tool for reverse engineering of code to structure charts (RESC) is developed to demonstrate the framework. The RESC system employs heuristic rules to ensure repeatability, consistency, and correctness. The RESC system requirements are specified for several steps. The first is that of extracting information needed by the rules through parsing and lexically analyzing the code. The parser is generated from a grammar oriented towards a language's modular constructs and the usage of passed arguments in invocations, formal arguments within functions, and global variables by each function. Information extracted by the parsing program is used as input to a second program which applies the heuristic rules developed to produce a structure chart object database. A graphic layout procedure is specified for laying out the objects within a structure chart. A final program is specified to take the detailed files provided and create a structure chart description file which can be imported directly into a existing CASE tool which has graphic display, editing, and analyses capabilities. The application of this system to C-source code supports the feasibility of the approach.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
A framework for the integration of reverse engineering of software systems into computer-aided software engineering (CASE) tools has been developed and applied to C source code. The process of coding a system conceals design information useful for system and code modification and upgrading as the system evolves during the operation and maintenance phase of its life cycle. Significant resources are being expended by the industry in maintaining existing code which was designed and implemented prior to CASE tools and for which little accurate documentation can be found. The framework developed here is intended to facilitate the recovery of design information in a manner which would allow the direct application of modern CASE tools to maintaining the software within the context of a Structured Design methodology. The design recovery framework emphasizes the identification of: module dependencies; visibility of information exchanged between modules, specifically, what data is exchanged and in which direction; visibility of information among modules through the global data area; and appropriate module assignments to subhierarchies in a structure chart. A software tool for reverse engineering of code to structure charts (RESC) is developed to demonstrate the framework. The RESC system employs heuristic rules to ensure repeatability, consistency, and correctness. The RESC system requirements are specified for several steps. The first is that of extracting information needed by the rules through parsing and lexically analyzing the code. The parser is generated from a grammar oriented towards a language's modular constructs and the usage of passed arguments in invocations, formal arguments within functions, and global variables by each function. Information extracted by the parsing program is used as input to a second program which applies the heuristic rules developed to produce a structure chart object database. A graphic layout procedure is specified for laying out the objects within a structure chart. A final program is specified to take the detailed files provided and create a structure chart description file which can be imported directly into a existing CASE tool which has graphic display, editing, and analyses capabilities. The application of this system to C-source code supports the feasibility of the approach.
Key concepts: Computer science, Reverse engineering, Software engineering, Programming language, Software system, Software