Reusable Function Discovery by Call-Graph Analysis
- 1 College of Information Science and Engineering, Changsha, China
- 2 College of Information Science and Engineering, Changsha, China
- 3 College of Information Science and Engineering, Changsha, China
Abstract
Nowadays, one of the IT challenges faced by many enterprises is the maintenance of their legacy system and migration of those systems to modern and flexible platform. In this paper, we study the network properties of software call graphs, and utilize the network theories to understand the business logic of legacy system. The call graphs turn out approximately scale-free and small world network properties. This finding provides new insight to understand the business logic of legacy system: the methods in a program can be naturedly partitioned into the business methods group and supportive methods group. Moreover, the result is also very helpful in reusing valuable functionality and identifying what services should be to expose in the migration from legacy to modern SOA context.
- Heckel, R., Correia, R., Matos, C., EI-Ramly, M., Koutsoukos, G. and Andrade, L. (2008) Software Evolution. Chapter Architectual Transformations: From Legacy to Three-Tier and Service, Springer, Berlin, 139-170.
- Papazoglou, M., Traverso, P., Dustdar, S. and Leymann, F. (2007) Service-Oriented Computing: State of the Art and Research Challenges. Computer, 40, 38-45. http://dx.doi.org/10.1109/MC.2007.400
- Khadka, R., Saeidi, A., Idu, A., Hage, J. and Jansen, S. (2012) Legacy to SOA Evolution-A Systematic Literature Review. In: Ionita, A.D., Litoiu, M. and Lewis, G., Eds., Migrating Legacy Applications: Challenges in Service Oriented Architecture and Cloud Computing Environments, IGI Global, 40-71.
- Binkley, D. (2007) Source Code Analysis: A Roadmap. 2007 Future of Software Engineering, Minnesota, 23-25 May 2007, 104-119.
- Ali, K. and Lhoták, O. (2012) Application-Only Call Graph Construction. Proceedings of the 26th European conference on Object-Oriented Programming, Beijing, 11-16 June 2012, 688-712. http://dx.doi.org/10.1007/978-3-642-31057-7_30
- Dean, J., Grove, D. and Chambers, C. (1995) Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis. Proceedings of the 9th European Conference on Object-Oriented Programming (ECOOP'95), arhus Denmark, 7-11 August 1995, 77-101.
- JBPM. http://www.jboss.com/products/jbpm
- SableCC. http://www.sable.mcgill.ca/software/
- JUNG. http://jung.sourceforge.net/index.html
- JGraph. http://www.jgraph.com/
- Azureus. http://sourceforge.net/projects/azureus/
- Apache James. http://james.apache.org/download.cgi
- Java Pet Store. http://java.sun.com/developer/releases/petstore/
- Damls Matcher. http://kbs.cs.tu-berlin.de/ivs/Projekte/damlsmatcher/download.html
- JTB. http://compilers.cs.ucla.edu/jtb/
- LGMA. http://121.37.58.35:8080/LGMA.jar
- WALA. http://wala.sourceforge.net/wiki/index.php/Main_Page
- Rosen, K.H. (2000) Handbook of Discrete and Combinatorial Mathematics. CRC Press, Boca Raton.
- Barabási, A.L. and Albert, R. (1999) Emergence of Scaling in Random Networks. Science, 286, 509-512. http://dx.doi.org/10.1126/science.286.5439.509