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.
 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.6320243
 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.0061
 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.34
 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.
 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.1730881
 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.26
 S.C.B. Kitchenham, “Guidelines for performing Systematic Literature Reviews in Software Engineering,” Technical report, 2007.
 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.
 International Organization for Standardization, “ISO/IEC 24744 :2014, Software Engineering: Metamodel for Development Methodologies,” 2014.
 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.19
 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.1774551
 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.
 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.401
 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.43
 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.
 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.11
 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.5234763
 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.1245362
 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.4
 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.5638477
 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.1723045
 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.
 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.006
 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.1321254
 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.44
 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.33
 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.
 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.
 H. Kim and Y. Chung, “Transforming a legacy system into components,” Comput. Sci. ITS Appl. – ICCSA 2006, LNCS, vol. 3982, pp. 198–205, 2006.
 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.a3
 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.21
 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.007
 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.
 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-020510641068
 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.5491289
 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
 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.2372248
 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.007
 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.417
 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.31
 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.7073117
 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.24
 K. Krogmann, Reconstruction of Software Component Architectures and Behaviour Models Using Static and Dynamic Analysis. KIT Scientific Publishing, 2012, p. 371.
 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.44
 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.6693126
 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.852495
 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.
 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.1235437