Abstract
Object-orienteda languages support many modern programming concepts such as information hiding, inheritance, polymorphism, and dynamic binding. As a result, software systems implemented in OO languages are in general more reusable and reliable than others. Many legacy software systems, created before OO programming became popular, need to be redesigned and updated to OO programs. The process of abstracting OO designs from the procedural source code has often been done with limited assistance from program structural diagrams. Most reengineering focuses on the functionality of the original program, and the OO redesign often results in a completely new design based on the designers' understanding of the original program. Such an approach is not sufficient because it may take a significant amount of time and effort for designers to comprehend the original program. This paper presents a computer-aided semi-automatic method that abstracts OO designs from the original procedural source code. More specifically, it is a method for OO redesign based on program structural diagrams, visualization, and execution slices. We conducted a case study by applying this method to an inventory management software system. Results indicate that our method can effectively and efficiently abstract an appropriate OO design out of the original C code. In addition, some of the code from the original system can be automatically identified and reused in the new OO system.
Original language | English |
---|---|
Pages (from-to) | 255-276 |
Number of pages | 22 |
Journal | International Journal of Software Engineering and Knowledge Engineering |
Volume | 14 |
Issue number | 3 |
DOIs | |
State | Published - Jun 2004 |
Keywords
- Code partition
- Execution slice
- Feature visualization
- Procedure/variable call graph
- Structural disparity
- Structural pattern