Restructuring C programs into C++ programs

There exist a lot of legacy systems written in C language, which are difficult to understand, modify, maintain and reuse. How to improve the quality of these non object-oriented systems has become an important issue in software engineering area. A possible way is to transform these procedural systems into semantically equivalent object-oriented systems implemented in C++ language, which provides object-oriented features such as data abstraction, inheritance and polymorphism, makes software system more comprehensible, maintainable and reusable. A detailed discussion on polymorphism analysis, object discovery and possible inheritance relation extraction on C-to-C++ conversion problem is made, which is also suitable to the transformation on legacy systems implemented in other procedural languages to equivalent object-oriented systems.

[1]  Aniello Cimitile,et al.  A reverse engineering method for identifying reusable abstract data types , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[2]  Glenford J. Myers,et al.  Composite/structured design , 1978 .

[3]  Baowen Xu,et al.  Transforming Ada serving tasks into protected objects , 1998 .

[4]  J. Nandigam A measure for module cohesion , 1995 .

[5]  Gerardo Canfora,et al.  An improved algorithm for identifying objects in code , 1996 .

[6]  Arun Lakhotia,et al.  Restructuring programs by tucking statements into functions , 1998, Inf. Softw. Technol..

[7]  Zhou Yu An Object-Extracting Approach Using Module Cohesion , 2000 .

[8]  Yuming Zhou,et al.  Extracting objects of Ada programs using module features , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[9]  N. Wilde,et al.  Identifying objects in a conventional procedural language: an example of data design recovery , 1990, Proceedings. Conference on Software Maintenance 1990.

[10]  Thomas Reps,et al.  Techniques for software renovation , 1998 .