Jump to ContentJump to Main Navigation
Show Summary Details
More options …

Information Technology and Management Science

The Journal of Riga Technical University

1 Issue per year

Open Access
See all formats and pricing
More options …

Decomposition of Enterprise Application: A Systematic Literature Review and Research Outlook

Inese Supulniece / Inese Polaka / Solvita Berzisa / Egils Meiers / Edgars Ozolins / Janis Grabis
Published Online: 2016-02-04 | DOI: https://doi.org/10.1515/itms-2015-0005


Enterprise applications are aimed at managing enterprise operational data and improving business efficiency. Many enterprise applications have been developed over the past three decades, therefore, known as legacy systems. Usually, they are monolith, inflexible, poorly documented and hard to maintain. The purpose of this paper is to describe best practices and limitations for enterprise application decomposition based on the results of the systematic literature review in order to introduce an approach for enterprise application decomposition. The paper focuses on decomposition of large-scale systems using clustering methods. The investigation is performed as part of the university-industry collaboration research project.

Keywords: Component identification; decomposition; enterprise application; literature review; object-oriented; software clustering


  • [1] S. Ali and S. Abdelhak-Djamel, “Evolution approaches towards a Service oriented architecture,” in Proc. of 2012 Inte. Conf. on Multimedia Computing and Systems, ICMCS 2012, 2012, pp. 687–692. http://dx.doi.org/10.1109/icmcs.2012.6320243Crossref

  • [2] M. Razavian and P. Lago, “A survey of SOA migration in industry,” in Proc. of 9th int. conf. on Service-Oriented Computing, ICSOC'11, 2011, pp. 618–626. http://dx.doi.org/10.1007/978-3-642-25535-9_48Crossref

  • [3] S. Muhammad, O. Maqbool, and A.Q. Abbasi, “Evaluating relationship categories for clustering object-oriented software systems,” IET Softw., vol. 6, no. 3, 2012, pp. 260–274. http://dx.doi.org/10.1049/iet-sen.2011.0061Crossref

  • [4] N. Anquetil and J. Laval, “Legacy software restructuring: Analyzing a concrete case,” in Proc. of 15th European Conf. on Software Maintenance and Reengineering, CSMR 2011, 2011. pp. 279–286. http://dx.doi.org/10.1109/CSMR.2011.34Crossref

  • [5] A.A. Almonaies, J.R. Cordy, T.R. Dean, “Legacy System Evolution towards Service-Oriented Architecture,” in Proc. of Int. Workshop on SOA Migration and Evolution, SOME, 2010. pp. 53–62.Google Scholar

  • [6] P. Dugerdil, and J. Repond, “Automatic generation of abstract views for legacy software comprehension,” in Proc. of India Software Engineering Conf., ISEC’10, 2010. pp. 23–32. http://dx.doi.org/10.1145/1730874.1730881Crossref

  • [7] C. Riva, “Reverse architecting: an industrial experience report,” in Proc. of 7th Working Conf. on Reverse Engineering, 2000. pp. 42–50. http://dx.doi.org/10.1109/WCRE.2000.891451

  • [8] S. Kebir, A.-D. Seriai, S. Chardigny, A. Chaoui, “Quality-centric approach for software component identification from object-oriented code.,” in Proc. of Joint Working Conf. on Software Architecture and 6th European Conf. on Software Architecture, WICSA/ECSA 2012, 2012. pp. 181–190. http://dx.doi.org/10.1109/WICSA-ECSA.212.26Crossref

  • [9] S.C.B. Kitchenham, “Guidelines for performing Systematic Literature Reviews in Software Engineering,” Technical report, 2007.Google Scholar

  • [10] I. Supulniece, S. Berzisa, I. Polaka, E. Meiers, E. Ozolins, and J. Grabis, “Source Code Driven Decomposition of Object-Oriented Legacy Systems: A Systemic Literature Review and Research Outlook,” In Press, 2015.Google Scholar

  • [11] International Organization for Standardization, “ISO/IEC 24744 :2014, Software Engineering: Metamodel for Development Methodologies,” 2014.Google Scholar

  • [12] K.S. Hwang, J.F. Cui, and H.S. Chae, “An automated approach to componentization of java source code,” in Proc. of the IEEE 9th Int. Conf. on Computer and Information Technology, CIT 2009, 2009, pp. 205–210. http://dx.doi.org/10.1109/CIT.2009.19Crossref

  • [13] G. Scanniello, A. D’Amico, C. D’Amico, and T. D’Amico, “An approach for architectural layer recovery,” in Proc. of the ACM Symposium on Applied Computing, 2010, pp. 2198–2202. http://dx.doi.org/10.1145/1774088.1774551Crossref

  • [14] S. Alahmari, E. Zaluska, and D. De Roure, “A Service Identification Framework for Legacy System Migration into SOA,” in Proc. of the IEEE Int. Conf. on Services Computing, 2010 pp. 614–617.Google Scholar

  • [15] M. Glorie, A. Zaidman, A. van Deursen, and L. Hofland, “Splitting a large software repository for easing future software evolution—an industrial experience report,” J. Softw. Maint. Evol. Res. Pract., vol. 21, no. 2, pp. 113–141., 2009. http://dx.doi.org/10.1002/smr.401Crossref

  • [16] S. Sarkar, A.C. Kak, and G.M. Rama, “Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software,” IEEE Trans. Softw. Eng., vol. 34, pp. 700–720., 2008. http://dx.doi.org/10.1109/TSE.2008.43Crossref

  • [17] M. Shtern and V. Tzerpos, “Factbase and decomposition generation,” in Proc. of the European Conf. on Software Maintenance and Reengineering, CSMR, 2011, pp. 111–120.Google Scholar

  • [18] U. Erdemir and F. Buzluca, “A learning-based module extraction method for object-oriented systems,” J. Syst. Softw., vol. 97. pp. 156–177., 2014. http://dx.doi.org/10.1016/j.jss.2014.07.038Crossref

  • [19] H.H. Kim and D.-H. Bae, “Object-oriented concept analysis for software modularisation,” IET Softw., vol. 2, no. 2, pp. 134–148, 2008. http://dx.doi.org/10.1049/iet-sen:20060069Crossref

  • [20] C. Del Grosso, M. Di Penta, and I. G.-R. de Guzman, “An approach for mining services in database-oriented applications,” in Proc. of the European Conf. on Software Maintenance and Reengineering, CSMR, 2007, pp. 287–295. http://dx.doi.org/10.1109/csmr.2007.11Crossref

  • [21] Z. Cai, X. Yang, X. Wang, and Y. Wang, “A systematic approach for layered component identification,” in Proc. of the 2nd IEEE Int. Conf. on Computer Science and Information Technology, 2009, pp. 98–103. http://dx.doi.org/10.1109/ICCSIT.2009.5234763Crossref

  • [22] E. Lee, B. Lee, W. Shin, and C. Wu, “A reengineering process for migrating from an object-oriented legacy system to a component-based system,” in Proc. of the IEEE Computer Society’s Int. Computer Software and Applications Conf., 2003, pp. 336–341. http://dx.doi.org/10.1109/CMPSAC.2003.1245362Crossref

  • [23] C. Matos and R. Heckel, “Legacy transformations for extracting service components,” SENSORIA Project, LNCS vol. 6582, 2011, pp. 604-621. http://dx.doi.org/10.1007/978-3-642-20401-2_29Crossref

  • [24] A. Le Gear, J. Buckley, B. Cleary, J.J. Collins, and K. O’Dea, “Achieving a Reuse Perspective within a Component Recovery Process: An Industrial Scale Case Study,” in Proc. of the 13th Int. Workshop on Program Comprehension, IWPC’05, 2005, pp. 279–288. http://dx.doi.org/10.1109/WPC.2005.4Crossref

  • [25] S. Muhammad, O. Maqbool, and A.Q. Abbasi, “Role of relationships during clustering of object-oriented software systems,” in Proc. of the 6th Int. Conf. on Emerging Technologies (ICET), 2010, pp. 270–275. http://dx.doi.org/10.1109/icet.2010.5638477Crossref

  • [26] S. Allier, H.A. Sahraoui, and S. Sadou, “Identifying components in object-oriented programs using dynamic analysis and clustering,” in Proc. of the 2009 Conf. of the Center for Advanced Studies on Collaborative Research - CASCON ’09, 2009, pp. 136–148. http://dx.doi.org/10.1145/1723028.1723045Crossref

  • [27] A.B. Belle, G. El Boussaidi, and H. Mili, “Recovering software layers from object oriented systems,” in Proc. of the 9th Int. Conf. on Evaluation of Novel Approaches to Software Engineering, ENASE 2014, 2014, pp. 78–89.Google Scholar

  • [28] J.F. Cui and H.S. Chae, “Applying agglomerative hierarchical clustering algorithms to component identification for legacy systems,” Inf. Softw. Technol., vol. 53, no. 6, pp. 601–614, Jun. 2011. http://dx.doi.org/10.1016/j.infsof.2011.01.006Crossref

  • [29] P. Dugerdil, “Using trace sampling techniques to identify dynamic clusters of classes,” in Proc. of the 2007 Conf. of the Center for Advanced Studies on Collaborative Research, CASCON ’07, 2007, pp. 306–314. http://dx.doi.org/10.1145/1321211.1321254Crossref

  • [30] G. El Boussaidi, A.B. Belle, S. Vaucher, and H. Mili, “Reconstructing architectural views from legacy systems,” in Proc. of the Working Conf. on Reverse Engineering, WCRE, 2012, pp. 345–354. http://dx.doi.org/10.1109/wcre.2012.44Crossref

  • [31] U. Erdemir, U. Tekin, and F. Buzluca, “Object Oriented Software Clustering Based on Community Structure,” in Proc. of the 18th Asia-Pacific Software Engineering Conf., 2011, pp. 315–321. http://dx.doi.org/10.1109/apsec.2011.33Crossref

  • [32] I. Hussain, A. Khanum, A. Q. Abbasi, and M. Y. Javed, “A novel approach for software architecture recovery using particle swarm optimization,” Int. Arab J. Inf. Technol., vol. 12, no. 1, pp. 32–41, 2015.Google Scholar

  • [33] J. Jahnke, “Reverse engineering software architecture using rough clusters,” in Proc. of the Annu. Meet. NORTH Am. FUZZY Inf. Process. Soc. NAFIPS 2004, 2004, pp. 4–9. http://dx.doi.org/10.1109/nafips.2004.1336239Crossref

  • [34] J. Cha and C. Kim, “MaRMI-RE: Systematic componentization process for reengineering legacy system,” Comput. Sci. ITS Appl.ICCSA 2005, PT 3, vol. 3482, pp. 896–905, 2005.Google Scholar

  • [35] H. Kim and Y. Chung, “Transforming a legacy system into components,” Comput. Sci. ITS Appl.ICCSA 2006, LNCS, vol. 3982, pp. 198–205, 2006.Google Scholar

  • [36] S.K. Mishra, D.S. Kushwaha, and A.K. Misra, “Creating reusable software component from object-oriented legacy system through reverse engineering,” J. Object Technol., vol. 8, no. 5, pp. 133–152, 2009. http://dx.doi.org/10.5381/jot.2009.8.5.a3Crossref

  • [37] J. Misra, K. M. Annervaz, V. Kaulgud, S. Sengupta, and G. Titus, “Software Clustering: Unifying Syntactic and Semantic Features,” in Proc. of the 19th Working Conf. on Reverse Engineering, 2012, pp. 113–122. http://dx.doi.org/10.1109/wcre.2012.21Crossref

  • [38] A. Olszak and B. Nørregaard Jørgensen, “Remodularizing Java programs for improved locality of feature implementations in source code,” Sci. Comput. Program., vol. 77, no. 3, pp. 131–151, 2012. http://dx.doi.org/10.1016/j.scico.2010.10.007Crossref

  • [39] X. Peng, W. Zhao, Y. Wu, and Y. Xue, “Research on support tools for object-oriented software reengineering,” in Proc. of the 7th Int. Conf. on Enterprise Information Systems, ICEIS 2005, 2005, pp. 399–402.Google Scholar

  • [40] G. Scanniello and U. Erra, “Software entities as bird flocks and fish schools,” in Proc. of the First IEEE Working Conf. on Software Visualization, VISSOFT, 2013, pp. 1–4. http://dx.doi.org/10.1109/vissoft.2013.6650544Crossref

  • [41] S. Budhkar and A. Gopal, “Component identification from existing object oriented system using Hierarchical clustering,” IOSR Journal of Engineering, vol. 2, no.5, pp. 1064–1068, 2012. http://dx.doi.org/10.9790/3021-020510641068Crossref

  • [42] I. Sora, G. Glodean, and M. Gligor, “Software architecture reconstruction: An approach based on combining graph clustering and partitioning,” in Proc. of the International Joint Conf. on Computational Cybernetics and Technical Informatics, 2010, pp. 259–264. http://dx.doi.org/10.1109/icccyb.2010.5491289Crossref

  • [43] X. Wang, J. Sun, X. Yang, C. Huang, Z. He, and S.R. Maddineni, “Reengineering standalone C++ legacy systems into the J2EE partition distributed environment,” in Proc. of the Int. Conf. on Software Engineering, 2006, pp. 525–533. http://dx.doi.org/10.1145/1134285.1134359

  • [44] L. Wang, Z. Han, J. He, H. Wang, and X. Li, “Recovering Design Patterns to Support Program Comprehension,” in Proc. of the 2Nd Int. Workshop on Evidential Assessment of Software Technologies, 2012, pp. 49–54. http://dx.doi.org/10.1145/2372233.2372248Crossref

  • [45] H. Washizaki and Y. Fukazawa, “A technique for automatic component extraction from object-oriented programs by refactoring,” Sci. Comput. Program., vol. 56, no. 1–2, pp. 99–116, Apr. 2005. http://dx.doi.org/10.1016/j.scico.2004.11.007Crossref

  • [46] L. Zhang, J. Luo, H. Li, J. Sun, and H. Mei, “A biting-down approach to hierarchical decomposition of object-oriented systems based on structure analysis,” J. Softw. Maint. Evol. Res. Pract., vol. 22, no. 8, pp. 567–596, Dec. 2010. http://dx.doi.org/10.1002/smr.417Crossref

  • [47] B.S. Mitchell and S. Mancoridis, “On the Automatic Modularization of Software Systems Using the Bunch Tool,” IEEE Trans. Softw. Eng., vol. 32, no. 3. pp.193–208., 2006. http://dx.doi.org/10.1109/TSE.2006.31Crossref

  • [48] R. Islam and K. Sakib, “A Package Based Clustering for enhancing software defect prediction accuracy,” in Proc. of the 17th Int. Conf. on Computer and Information Technology ICCIT, 2014, pp. 81–86. http://dx.doi.org/10.1109/iccitechn.2014.7073117Crossref

  • [49] B. Andreopoulos, A. An, V. Tzerpos, and X. Wang, “Multiple layer clustering of large software systems,” in Proc. of the 1th Work. Conf. Reverse Eng, WCRE, 2005. pp. 79–88. http://dx.doi.org/10.1109/wcre.2005.24Crossref

  • [50] K. Krogmann, Reconstruction of Software Component Architectures and Behaviour Models Using Static and Dynamic Analysis. KIT Scientific Publishing, 2012, p. 371.Google Scholar

  • [51] O. Maqbool and H. Babri, “Hierarchical clustering for software architecture recovery,” IEEE Trans. Softw. Eng., vol. 33, no. 11, pp. 759–780, 2007. http://dx.doi.org/10.1109/TSE.2007.70732Crossref

  • [52] P. Andritsos and V. Tzerpos, “Information-theoretic software clustering,” IEEE Trans. Softw. Eng., vol. 31, no. 2, pp. 150–165, Feb. 2005. http://dx.doi.org/10.1109/TSE.2005.25Crossref

  • [53] G. El Boussaidi, A. B. Belle, S. Vaucher, and H. Mili, “Reconstructing Architectural Views from Legacy Systems,” in Proc. of the 19th Working Conf. on Reverse Engineering, 2012, pp. 345–354. http://dx.doi.org/10.1109/wcre.2012.44Crossref

  • [54] G. Scanniello, C. Gravino, A. Marcus, and T. Menzies, “Class Level Fault Prediction using Software Clustering,” in Proc. of the 28th IEEE/ACM Int. Conf. Autom. Softw. Eng., pp. 640–645, 2013. http://dx.doi.org/10.1109/ase.2013.6693126Crossref

  • [55] F. Beck and S. Diehl, “On the impact of software evolution on software clustering,“ Empirical Software Engineering, vol. 18. 2013, pp. 970–1004. http://dx.doi.org/10.1007/s10664-012-9225-9Crossref

  • [56] V. Tzerpos and R. C. Holt, “On the stability of software clustering algorithms,” in Proc. of the 8th Int. Workshop on Program Comprehension, IWPC 2000, 2000, pp. 211–218. http://dx.doi.org/10.1109/WPC.2000.852495Crossref

  • [57] M. McKenna, J. Slonim, M. McAllister, and K. Lyons, “Identification of software system components using semantic models and graph slicing, ” in Proc. of the 4th Int. Conf. on Software and Data Technologies, ICSOFT 2009, 2009, pp. 5–12.Google Scholar

  • [58] K. Mahdavi, M. Harman, and R. M. Hierons, “A Multiple Hill Climbing Approach to Software Module Clustering,” in Proc. of the IEEE Int. Conf. on Software Maintenance, ICSM, 2003, pp. 315–324. http://dx.doi.org/10.1109/icsm.2003.1235437Crossref

About the article

Published Online: 2016-02-04

Published in Print: 2015-12-01

Citation Information: Information Technology and Management Science, Volume 18, Issue 1, Pages 30–36, ISSN (Online) 2255-9094, DOI: https://doi.org/10.1515/itms-2015-0005.

Export Citation

© 2015 Riga Technical University. This article is distributed under the terms of the Creative Commons Attribution 4.0 Public License. BY 4.0

Comments (0)

Please log in or register to comment.
Log in