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.
Key wordsobject extraction cohesion coupling inheritance
CLC numberTP 311. 5
Unable to display preview. Download preview PDF.
- Li Bang-qing, Xu Bao-wen, Yu H. Transforming Ada Serving Tasks into Protected Objects.Proceedings of SIGAda’98. Washington DC: ACM Press, 1998. 240–245.Google Scholar
- Zhou Yu-ming, Xu Bao-wen. Extracting Objects of Ada Programs Using Module Features.Proceedings of IEEE Conference on Software Maintenance. Oxford: IEEE Society Press, 1999. 23–29.Google Scholar
- Zhou Yu-ming, Xu Bao-wen. An Object-Abstracting Approach Using Module Cohesion.Journal of Software, 2000,11(6): 836–840.Google Scholar
- Siff M B. Techniques for Software Renovation. [Ph. D. thesis]. University of Wisconsin, http://www. cs. wisc. edu/wpis/papers/tr1384.ps.1998.Google Scholar
- Canfora G, Cimitile A, Munro M. A Reverse Engineering Method for Identifying Reusable Abstract Data Types.Proceedings of the First IEEE Working Conference on Reverse Engineering. Baltimore, Maryland: IEEE Computer Soc Press, 1993. 73–82.Google Scholar
- Liu S, Wilde N. Identifying Objects in a Conventional Procedural Language: an Example of Data Design Recovery.Proceedings of the IEEE Conference on Software Maintenance, San Diego, CA: IEEE Computer Society Press, 1990. 266–271.Google Scholar
- Myers G J.Composite/Structured Design. New York: Van Nostrand Reinhold Co, 1978.Google Scholar
- Nandigam J. A Measure for Module Cohesion [Ph. D thesis]. University of Southwestern Louisiana, 1995.Google Scholar