Reverse Engineering ProcedureIn this article, and in a few succeeding this, we'll look a bit into more details of reverse engineering. Today I'll discuss something regarding the reverse engineering process. The Process The reverse engineering process begins by extracting detailed design information, and from that, extracting a high-level design abstraction. Detailed (low-level) design information is extracted from the source code and existing design documents. This information includes structure charts, data description and PDL (small routines in Program Descriptive language) to describe processing details. These may also include Jackson and Warnier/Orr diagrams or documents. The high-level design representation is extracted from the recovered detailed design and expressed using data-flow and control-flow diagrams. The procedure steps are discussed below: Collect information. Collect all information about the program. Sources of information include source code, design documents and documentation for system calls and external routines. Personnel experienced with software should also be identified. To be honest, for the legacy systems, the only true source of information is the source code because of so many changes made into it which are seldom reflected in the documentation. So the primary source of information is the source code itself. Examine information. Review the collected information. This step allows the person(s) doing the recovery to become familiar with the system and its components. A plan for dissecting the program and recording the recovered information can be formulated during this stage. Extract the structure. Identify the structure if the program and use this to create a set of structure charts. Each node in the structure chart corresponds to a routine called in the program. Thus the chart records the calling hierarchy of the program. For each edge in the chart, the data passed to a node and returned by the node must be recorded. Record functionality. For each node in the structure chart, record the processing done in the program routine corresponding to that node. A PDL can be used to express the functionality of program routines. For system and library routines the functionality can be described in English or in a more formal language. Record data-flow. The recovered program structure and PDL can be analyzed to identify data transformations in the software. These information steps show the data processing done in the program. This information is used to develop a set of hierarchical data flow diagrams that model the software. Record control-flow. Identify the high-level control structure of the program and record it using control-flow diagrams. This refers to high-level control that affect that affects the overall operation of the software, not to low level processing control.
The copyright of the article Reverse Engineering Procedure in Software Re-engineering is owned by Faisal Bin Bashir. Permission to republish Reverse Engineering Procedure in print or online must be granted by the author in writing.
Go To Page: 1 2 Articles in this Topic Discussions in this Topic |