International Journal of Information Engineering and Electronic Business(IJIEEB)

ISSN: 2074-9023 (Print), ISSN: 2074-9031 (Online)

Published By: MECS Press

IJIEEB Vol.8, No.2, Mar. 2016

Design Migration from Procedural to Object Oriented Paradigm by Clustering Data Call Graph

Full Text (PDF, 920KB), PP.1-13

Views:181   Downloads:2


Mohayeminul Islam, Tajkia Rahman Toma, Md. Selim, Alim Ul Gias, Shah Mostafa Khaled

Index Terms

Design Migration;Agglomerative Hierarchical Clustering;Code Analysis; Software Maintenance;Reverse Engineering


Management of legacy software and its code, generally written in procedural languages, is often costly and time-consuming. To help this management, a migration from procedural to object oriented paradigm could be a cost effective option. One approach for such migration can be based on the underlying dependency structure of the procedural source code. In this work, we propose a new heuristic algorithm that utilizes such structure for the design migration using agglomerative hierarchical clustering. The dependency structure that has been used involve functions, parameters and global data of the procedural code. Given a procedural code, the proposed approach produces candidate classes for an object oriented design. The proposed algorithm was tested against a database of procedural codes. The results obtained have been empirically validated using Jaccard similarity coefficient. It is observed that the proposed method yields 75.6% similarity with respect to the ground truth in the average case.

Cite This Paper

Mohayeminul Islam, Tajkia Rahman Toma, Md. Selim, Alim Ul Gias, Shah Mostafa Khaled,"Design Migration from Procedural to Object Oriented Paradigm by Clustering Data Call Graph", International Journal of Information Engineering and Electronic Business(IJIEEB), Vol.8, No.2, pp.1-13, 2016. DOI: 10.5815/ijieeb.2016.02.01


[1]Meir M Lehman. Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68(9):1060–1076, 1980.

[2]Andrea De Lucia, Giuseppe A Di Lucca, Anna Rita Fasolino, Patrizia Guerra, and Silvia Petruzzelli. Migrating legacy systems towards object- oriented platforms. In 13th International on Software Maintenance (ICSM 1997), pages 122–129, Bari, Italy, 1997. IEEE.

[3]Harry M Sneed. Integrating legacy Software into a Service oriented Architecture. In 10th European Conference on Software Maintenance and Reengineering (CSMR 2006), pages 3–14, Bari, Italy, 2006. IEEE.

[4]K. Bennett. Legacy systems: coping with stress. IEEE Software, 12(1):19–23, Jan 1995.

[5]KC Chisolm and JC Lisonbee. The use of computer language compilers in legacy code migration. In IEEE Systems Readiness Technology. Conference (AUTOTESTCON'99), pages 137–145, San Antonio, TX, USA, September 1999. IEEE.

[6]Ruben Prieto-Diaz and Peter Freeman. Classifying software for reusability. IEEE Software, 4(1):6–16, 1987.

[7]Wei Li and Sallie Henry. Object-oriented metrics that predict maintain- ability. Journal of systems and software, 23(2):111–122, 1993.

[8]Robert W Schwanke. An intelligent tool for re-engineering software modularity. In 13th International Conference on Software Engineering (ICSE 1991), pages 83–92, Baltimore, Maryland, USA, 1991. IEEE.

[9]S. Pidaparthi and G. Cysewski. Case study in migration to object oriented system structure using design transformation methods. In First Euromicro Conference on Software Maintenance and Reengineering (EUROMICRO 97), pages 128–135, Berlin, Germany, Mar 1997. IEEE.

[10]Alan Snyder. Encapsulation and inheritance in object-oriented programming languages. ACM Sigplan Notices, 21(11):38–45, 1986.

[11]Shyam R Chidamber and Chris F Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476–493, Jun 1994.

[12]Andrian Marcus and Denys Poshyvanyk. The conceptual cohesion of classes. In 21st IEEE International Conference on Software Maintenance (ICSM 2005), pages 133–142, Budapest, Hungary, 2005. IEEE.

[13]Rachel Harrison, Steve Counsell, and Reuben Nithi. Coupling metrics for object-oriented design. In 5th International Software Metrics Symposium (Metrics 98), pages 150–157. IEEE, 1998.

[14]B. G. Ryder. onstructing the call graph of a program. IEEE Transactions on Software Engineering, SE-5(3):216–226, May 1979.

[15]Jane Radatz, Anne Geraci, and Freny Katki. IEEE standard glossary of software engineering terminology. IEEE Std, 610121990.

[16]Y. Terashima and K. Gondow. Static call graph generator for C++ using debugging information. In 14th Asia-Pacific Software Engineering Conference (APSEC 2007), pages 127–134, Aichi, Japan, Dec 2007. IEEE.

[17]Satu Elisa Schaeffer. Graph clustering. omputer Science Review, 1(1):27–64, Aug 2007.

[18]Saeed Siddik, Alim Ul Gias, and Shah Mostafa Khaled. Optimizing software design migration from structured programming to object oriented paradigm. In 16th International Conference on Computer and Information Technology (ICCIT 2013), pages 187–192, Khulna University, Khulna, Bangladesh, December 2013. IEEE.

[19]V Dineshkumar and J Deepika. Code to design migration from structured to object oriented paradigm. International Journal of Information and Communication Technology Research, 1(8), December 2011.

[20]Arie van Deursen and Tobias Kuipers. Identifying objects using cluster and concept analysis. In 21st International Conference on Software Engineering (ICSE '99), pages 246–255, Los Angeles, California, USA, 1999. ACM.

[21]Zou Ying and Kostas Kontogiannis. A framework for migrating procedural code to object-oriented platforms. In Eighth Asia-Pacific Software Engineering Conference (APSEC 2001), pages 390–399. IEEE, Dec 2001.

[22]Mark Shtern and Vassilios Tzerpos. Methods for selecting and improving software clustering algorithms. Software: Practice and Experience, 44(1):33–46, 2014.

[23]Lionel C. Briand, J u¨rgen Wu¨st, Stefan V. Ikonomovski, and Hakim Lounis. Investigating quality factors in object-oriented designs: An industrial case study. In 21st International Conference on Software Engineering (ICSE 1999), pages 345–354, Los Angeles, California, USA, 1999. ACM.

[24]H.M. Sneed and E. Nyary. Extracting object-oriented specification from procedurally oriented programs. In 2nd Working Conference on Reverse Engineering, pages 217–226, Toronto, Ontario, Canada, Jul 1995. IEEE.

[25]Bill Andreopoulos, Aijun An, Vassilios Tzerpos, and Xiaogang Wang. Clustering large software systems at multiple layers. Information and Software Technology, 49(3):244–254, 2007.

[26]Onaiza Maqbool and Haroon A Babri. Hierarchical clustering for software architecture recovery. IEEE Transactions on Software Engineering, 33(11):759–780, Nov 2007.

[27]M.A. Heroux and J.M. Willenbring. Barely sufficient software engineering: 10 practices to improve your CSE software. In ICSE Workshop on Software Engineering for Computational Science and Engineering (SECSE '09), pages 15–21, Vancouver, BC, Canada, May 2009. IEEE.

[28]P. E. Livadas and P. K. Roy. Program dependence analysis. In Conference on Software Maintenance, pages 356–365, Orlando, FL, USA, Nov 1992. IEEE.

[29]S.-S. Liu and N. Wilde. Identifying objects in a conventional procedural language: an example of data design recovery. In Conference on Software Maintenance, pages 266–271, San Diego, CA, USA, Nov 1990. IEEE.

[30]Emdad H. Khan, Mansoor Al-A'ali, and Moheb R. Girgis. Object oriented programming for structured procedural programmers. Com- puter, 28(10):48–57, Oct 1995.

[31]D. Doval, S. Mancoridis, and B.S. Mitchell. Automatic clustering of software systems using a genetic algorithm. In Software Technology and Engineering Practice (STEP 1999), pages 73–81, Pittsburgh, PA, USA, Sep 1999. IEEE.

[32]Marc Eisenstadt, Blaine A Price, and John Domingue. Redressing ITS fallacies via software visualization. In Cognitive models and intelligent environments for learning programming, volume 111, pages 220–234. Springer Berlin Heidelberg, 1993.

[33]Md Selim, Saeed Siddik, Alim Ul Gias, M Abdullah-Al-Wadud, and Shah Mostafa Khaled. A genetic algorithm for software design migration from structured to object oriented paradigm. In 8th International Conference on Computer Engineering and Application (CEA 2014), pages 187–192, January 2014.

[34]Saeed Siddik, Alim Ul Gias, Md. Selim, Shah Mostafa Khaled, and Kazi Sakib. A direction of migrating procedural paradigm to object based architecture by forming cluster of functions using local search heuristics. In 3rd International Conference Informatics, Electronics & Vision, pages 1–6, University of Dhaka, Bangladesh, May 2014. IEEE.

[35]Md Selim, Md Saeed Siddik, Tajkia Rahman, Alim Ul Gias, and Shah Mostafa Khaled. Approximating object based architecture for legacy software written in procedural languages using variable neighbor- hood search. In 8th International Conference on Software, Knowledge, Information Management and Applications (SKIMA 2014), pages 1–6, December 2014.

[36]Michael W Trosset. Distance matrix completion by numerical optimiza- tion. Computational Optimization and Applications, 17(1):11–22, 2000.

[37]Alan Bundy and Lincoln Wallen. Context-free grammar. In Catalogue of Artificial Intelligence Tools, Symbolic Computation, pages 22–23. Springer Berlin Heidelberg, 1984.

[38]Yang Zhou, Hong Cheng, and Jeffrey Xu Yu. Graph clustering based on structural/attribute similarities. VLDB Endowment, 2(1):718–729, Aug 2009.

[39]Charu C. Aggarwal, Joel L. Wolf, Philip S. Yu, Cecilia Procopiuc, and Jong Soo Park. Fast algorithms for projected clustering. SIGMOD Rec., 28(2):61–72, Jun 1999.

[40]Kuo-Lung Wu and Miin-Shen Yang. Alternative c-means clustering algorithms. Pattern recognition, 35(10):2267–2278, Oct 2002.

[41]Pierre Hansen and Brigitte Jaumard. Cluster analysis and mathematical programming. Mathematical Programming, 79(1-3):191–215, 1997.

[42]Aftab Hussain and Md. Saidur Rahman. A new hierarchical clustering technique for restructuring software at the function level. In 6th India Software Engineering Conference (ISEC 2013), pages 45–54, New Delhi, India, 2013. ACM.

[43]Edie M Rasmussen. Clustering algorithms. Information retrieval: data structures & algorithms, pages 419—442, 1992.