TY - GEN
T1 - Redesigning legacy systems into the object-oriented paradigm
AU - Wong, W. E.
AU - Li, J. J.
N1 - Publisher Copyright:
© 2003 IEEE.
PY - 2003
Y1 - 2003
N2 - Object-oriented languages support many modern programming paradigms such as information hiding, inheritance, polymorphism, and dynamic binding. As a result, software systems implemented in OO languages are more reusable and reliable than those in non-OO. Many legacy software systems were created before OO programming became popular and needed to be redesigned and updated to OO programs. The process of abstracting OO designs from the procedural source code was often done manually or 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, for it not only takes time and effort for designers to become familiar with the original program, but the approach itself is also mistake-prone due to the human involvement. 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 slice. 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 as well as re-generate part of the system in C++ code based on this new OO design.
AB - Object-oriented languages support many modern programming paradigms such as information hiding, inheritance, polymorphism, and dynamic binding. As a result, software systems implemented in OO languages are more reusable and reliable than those in non-OO. Many legacy software systems were created before OO programming became popular and needed to be redesigned and updated to OO programs. The process of abstracting OO designs from the procedural source code was often done manually or 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, for it not only takes time and effort for designers to become familiar with the original program, but the approach itself is also mistake-prone due to the human involvement. 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 slice. 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 as well as re-generate part of the system in C++ code based on this new OO design.
KW - code partition
KW - execution slice
KW - feature visualization
KW - OO redesign
KW - procedure/variable call graph
KW - structural pattern
KW - structure distance
UR - http://www.scopus.com/inward/record.url?scp=84967315958&partnerID=8YFLogxK
U2 - 10.1109/ISORC.2003.1199257
DO - 10.1109/ISORC.2003.1199257
M3 - Conference contribution
AN - SCOPUS:84967315958
T3 - Proceedings - 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, ISORC 2003
SP - 221
EP - 229
BT - Proceedings - 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, ISORC 2003
A2 - Puschner, Peter
A2 - Nakajima, Tatsuo
A2 - Ghafoor, Arif
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, ISORC 2003
Y2 - 14 May 2003 through 16 May 2003
ER -