The International Arab Journal of Information Technology (IAJIT)


Reverse Engineering of Object Oriented System

Now a day’s common problem faced by software community is to understand the legacy code. A decade ago the legacy code referred as the code written in language like Common Business Oriented Language (COBOL) or Formula Translation (FORTRAN). Today software engineers primarily use object oriented language like C++ and Java. This implies that tomorrow’s legacy code is written today because object oriented programs are even more difficult and complex to understand which leads us towards making software that is vague and having insufficient design documentation. Object oriented programming produce many problems to software developers in maintenance phase. So reverse engineering methodologies can be applied to resolve it. In literature various techniques has been proposed by researchers to recover the architecture and components of legacy systems. The use of clustering algorithms has recently been discussed by many for reverse engineering and architecture recovery. Methodology: In this paper Rational Software Architect (RSA) is used to recover the design from source code during reverse engineering process and then feature selection method is applied to select the features of software system. Hierarchical clustering is used after calculating the similarity measure between classes to cluster the similar classes into one component. The proposed technique is demonstrated by a case study.

[1] Abbaneo G., Flammini F., Lazzaro A., and Marmo P., UML Based Reverse Engineering for the Verification of Railway Control Logics, in Proceedings of the International Conference on Dependability of Computer Systems, Szklarska Poreba, pp. 3-10, 2006.

[2] AbdulMoiz S. and Basha J., Extraction of State Transition Diagrams from Legacy C++ Application, Procedia Technology, vol. 4, pp. 543-547, 2012.

[3] Abu Abbas O., Comparison between Data Clustering Algorithm, The International Arab Journal of Information Technology, vol. 5, no. 3, pp. 320-325, 2008.

[4] Anquetil N. and Lethbridge T., Experiments with Clustering as Software Remodularization Method, in Proceedings of 6th Working Conference On Reverse Engineering, Atlanta, pp. 235-255, 1999.

[5] Beishu H. and Quian B., JBOORET: An Object Oriented Reverse Engineering Tool, in Proceedings of 25th International Conferenceon Computer and Application, China, pp. 71-76, 1999.

[6] Bruneliere H., Cabot J., Dupe G., and Madiot F., MoDisco: A Model Driven Reverse Engineering Framework, Journal of Information and Software Technology, vol. 56, no. 8, pp. 1012- 1032, 2014.

[7] Chikofsky E. and Cross J., Reverse Engineering and Design Recovery: A Taxonomy, IEEE Software, vol. 7, no. 1, pp. 13-17, 1990.

[8] Claudia P., Liliana M., and Liliana F., Recovering Use Case Diagram form Object Oriented Code: an MDA Based Approach, in Proceedings of the 8th International Conference on Information Technology: New Generations, Las Vegas, pp. 737-742, 2011.

[9] Cosma D., Reverse Engineering of Distributed Object Oriented System, Ph.D Thesis, Politehnica, University of Timisoara, 2009.

[10] Davey J. and Burd E., Evaluating the Suitability of Data Clustering For Software Remodularization, in Proceedings of the 7th Working Conference on Reverse Engineering, Brisbane, pp. 268, 2000.

[11] Demeyer S., Ducasse S., and Nierstrasz O., Object Oriented Reengineering Patterns, Morgan Kaufann, 2002.

[12] Dong X. Godfrey M., A Hybrid Program Model for Object-Oriented Reverse Engineering, in Proceedings of 17th International Conference on Program Comprehension, Canada, pp. 1-10, 2007.

[13] Eshah N., Incorporating Object-Oriented Metrics into a Reverse Engineering Tool, Thesis, University of Putra, 2003.

[14] Favre L., Formalizing MDA-Based Reverse Engineering Processes, in Proceedings of the 6th International Conference on Software Engineering Research, Management and Applications, Prague, pp. 153-160, 2008.

[15] Ferenc R., Beszedes A., Tarkiainen M., and Gyimothy T., Columbus- Reverse Engineering Tool and Schema for C++, in Proceedings of the International Conference on Software Maintenance, Montreal, pp. 172 - 181, 2002.

[16] Gade A., Patil S., Patil S., and Pore D., Reverse Engineering of Object Oriented System, International Journal of Scientific and Research Publications, vol. 3, no. 4, pp. 1-7, 2013.

[17] Jackson D., Somers K., and Harvey H., Similarity Coefficient: Measures of Occurrence and Association or Simply Measure of Occurrence, The American Naturalist, vol. 133, no. 3, pp. 436-453, 1989.

[18] Kienle H. and Muller H., Rigi: an Environment for Reverse Engineering, Exploration, Visualization and Redocumentation, Science of Computer Programming, vol. 75, no. 4, pp. 247-263, 2010. Reverse Engineering of Object Oriented System using Hierarchical Clustering 865

[19] Kollmann R., Selonen P., Stroulia E., Systa T., and Zndorf A., Study on the Current State of the Art in Tool- Supported UML-Based Static Reverse Engineering, in Proceedings of the 8th Working Conference on Reverse Engineering, Richmond, pp. 22-32, 2002.

[20] Lanza M., Object-Oriented Reverse Engineering Coarse-grained, Fine-grained, and Evolutionary Software Visualization, Ph.D Thesis, Universitat Bern, 2003.

[21] Lejter M., Meyers S., and Reiss S., Support for Maintaining Object-Oriented Programs, IEEE Transactions on Software Engineering, vol. 18, no.12, pp. 1045-1052, 1992.

[22] L pez M., Alfonzo G., P rez J., Gonz lez S., and Montes R., A Metamodel to Carry out Reverse Engineering of C++ Code into UML Sequence Diagrams, in Proceedings of the Electronics, Robotics and Automotive Mechanics Conference, Cuernavaca, pp. 1-6, 2006.

[23] Markus H. and Oliver C., The FAMOOS Object- Oriented Reengineering Handbook, ESPRIT Program Project no. 21975 (FAMOOS), Swiss Government under Project no .NFS-2000- 46947.96 and BBW-96.0015, 1999.

[24] Meng F., Zhan D., and Xu F., Business Component Identification of Enterprise Information System: A Hierarchical Clustering Method, in Proceedings of the International Conference on E-Business Engineering, Beijing, pp. 473-480, 2005.

[25] Muller H., Story M., Jahnke J., Smith D., Tilley S., and Wong K., Reverse Engineering: A Roadmap, in Proceedings of the Conference on The Future of Software Engineering, Limerick, pp. 47-60, 2000.

[26] Ramasubbu S., Reverse Software Engineering Large Object Oriented Software Systems using the UML Notation, Master Thesis, Virginia Polytechnic Institute and State University, 2001.

[27] Rosenberg L., Software Re-Engineering, Software Re-engineering, Lawrence E. Hyatt Manager, Software Assurance Technology Centre System Reliability and Safety Office Goddard Space Flight Centre, (NASA), Report No. -301-286- 7475, 1997.

[28] Salton G., Development in Automatic Text Retrieval, Science, vol. 253, no. 5023, pp. 974- 980, 1991.

[29] Sarkar M. and Chaterjee T., Reverse Engineering: An Analysis of Dynamic Behavior of Object Oriented Programs by Extracting UML Interaction Diagram, International Journal of Computer Technology and Applications, vol. 4, no. 3, pp. 378-383, 2013.

[30] Sinha A. and Jain H., Ease of Reuse: an Empirical Comparison of Components and Objects, IEEE Software, vol. 30, no. 5, pp. 70- 75, 2013.

[31] Systa T., Dynamic Modeling In Forward And Reverse Engineering Of Object Oriented, Software Systems, Ph.D Thesis, University of Tampere, 1999.

[32] Talerico D., Grouping in Object-Oriented Reverse Engineering, M.Tech Thesis, University of Bern, 2003.

[33] Tonella P., Reverse Engineering of Object Oriented Code, in Proceedings of the 27th International Conference on Software Engineering, Saint Louis, pp. 724-725, 2005.

[34] Tonella P., Torchiano M., Bois B., and Systa T., Empirical Studies in Reverse Engineering: State of The Art and Future Trends, Journal of Empirical Software Engineering, vol. 12, no. 5, pp. 551-571, 2007. Aman Jatain is currently working with Amity University, Gurgaon in the department of computer science. She is pursuing her doctoral degree in software engineering. She has 6 years of teaching and research experience. She has done her master s from Thapar University, Patiala and from MaharshiDayanand University, Rohtak. She has published more than 27 research papers in peer-reviewed international journals and international conferences. Deepti Gaur received M.Tech in CSE degree from BIT Mesra Ranch, India and Ph. D. from Banashali University, Banasthali India. Dr. Gaur is presently working Associate professor in NorthCap University, formerly ITM University Gurgaon, Haryana, India. She has 17 years of teaching and research experience. She had successfully completed a sponsored project of AICTE Govt. of India. She has published more than 25 research papers in peer reviewed international journals and international conference of repute. She was convener of IEEE International Conference (IACC) 2014, Gurgaon, India.