Skip to main content

Software Remodularization by Estimating Structural and Conceptual Relations Among Classes and Using Hierarchical Clustering

  • Conference paper
  • First Online:

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 712))

Abstract

In this paper, we have presented a technique of software remodularization by estimating conceptual similarity among software elements (Classes). The proposed technique makes use of both structural and semantic coupling measurements together to get much more accurate coupling measures. In particular, the proposed approach makes use of lexical information extracted from six main parts of the source code of a class, namely comments, class names, attribute names, method signatures, parameter names and method source code statements zone. Simultaneously, it also makes use of counting of other class’s member functions used by a given class as a structural coupling measure among classes. Structural coupling among software elements (classes) are measured using information-flow based coupling metric (ICP) and conceptual coupling is measured by tokenizing source code and calculating Cosine Similarity. Clustering is performed by performing Hierarchical Agglomerate Clustering (HAC). The proposed technique is tested on three standard open source Java software’s. The obtained results encourage remodularization by showing higher accuracy against the corresponding software gold standard.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Cimitile, A., Visaggio, G.: Software salvaging and the call dominance tree. J. Syst. Softw. 28(2), 117–127 (1995)

    Article  Google Scholar 

  2. Marcus, A., Poshyvanyk, D., Ferenc, R.: Using the conceptual cohesion of classes for fault prediction in object-oriented systems. IEEE Trans. Softw. Eng. 34(2), 287–300 (2008)

    Article  Google Scholar 

  3. Antoniol, G., Di Penta, M., Casazza, G., Merlo, E.: A method to re-organize legacy systems via concept analysis. In: Proceedings of 9th International Workshop on Program Comprehension, Toronto, Canada, pp. 281–292 (2001)

    Google Scholar 

  4. Tonella, P.: Concept analysis for module restructuring. IEEE Trans. Softw. Eng. 27(4), 351–363 (2001)

    Article  Google Scholar 

  5. van Deursen, A., Kuipers, T.: Identifying objects using cluster and concept analysis. In: Proceedings of 21st International Conference on Software Engineering, Los Angeles, California, USA, pp. 246–255 (1999)

    Google Scholar 

  6. Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Trans. Softw. Eng. 32(3), 193–208 (2006)

    Article  Google Scholar 

  7. Harman, M., Hierons, R.M., Proctor, M.: A new representation and crossover operator for search-based optimization of software modularization. In: Proceedings of the Genetic and Evolutionary Computation Conference, New York, USA (2002)

    Google Scholar 

  8. Seng, O., Bauer, M., Biehl, M., Pache, G.: Search-based improvement of subsystem decompositions. In: Proceedings of the Genetic and Evolutionary Computation Conference, Washington, Columbia, USA, pp. 1045–1051 (2005)

    Google Scholar 

  9. Abdeen, H., Ducasse, S., Sahraoui, H.A., Alloui, I.: Automatic package coupling and cycle minimization. In: Proceedings of the 16th Working Conference on Reverse Engineering, Lille, France, pp. 103–112 (2009)

    Google Scholar 

  10. Maletic, J., Marcus, A.: Supporting program comprehension using semantic and structural information. In: Proceedings of 23rd International Conference on Software Engineering. Toronto, Ontario, Canada, pp. 103–112 (2001)

    Google Scholar 

  11. Kuhn, A., Ducasse, S., Gı̂rba, T.: Semantic clustering: identifying topics in source code. Inf. Soft. Technol. 49(3), 230–243 (2007)

    Article  Google Scholar 

  12. Scanniello, G., Risi, M., Tortora, G.: Architecture recovery using latent semantic indexing and k-means: an empirical evaluation. In: Proceedings of International Conference on Software Engineering and Formal Methods, pp. 103–112 (2010)

    Google Scholar 

  13. Bavota, G., De Lucia, A., Marcus, A., Oliveto, R.: Software re-modularization based on structural and semantic metrics. In: Proceedings of International Working Conference on Reverse Engineering, pp. 195–204. IEEE Computer Society (2010)

    Google Scholar 

  14. Bavota, G., Oliveto, R., Gethers, M., Poshyvanyk, D., De Lucia, A.: Methodbook: recommending move method refactorings via relational topic models. IEEE Trans. Softw. Eng. 40(7), 671–694 (2014)

    Article  Google Scholar 

  15. Shaw, S.C., Goldstein, M., Munro, M., Burd, E.: Moral dominance relations for program comprehension. IEEE Trans. Softw. Eng. 29(9), 851–863 (2003)

    Article  Google Scholar 

  16. Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y.-F., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: Proceedings of 6th International Workshop on Program Comprehension, Ischia, Italy. IEEE CS Press (1998)

    Google Scholar 

  17. Abdellatief, M., Sultan, A.B.M., Ghani, A., Jabar, M.A.: Component-based software system dependency metrics based on component information flow measurements. In: Sixth International Conference on Software Engineering Advances, IARIA (2011)

    Google Scholar 

  18. Qiu, D.H., Li, H., Sun, J.L.: Measuring software similarity based on structure and property of class diagram. In: 6th International Conference on Advanced Computational Intelligence (ICACI). IEEE (2013)

    Google Scholar 

  19. Savic, M., Rakic, G., Budimac, Z., Ivanovic, M.: A language-independent approach to the extraction of dependencies between source code entities. IST 56, 1268–1288 (2014). Elsevier

    Google Scholar 

  20. Srinivas, C., Radhakrishna, V., Rao, C.V.G.: Software component clustering and classification using noval similarity measure. In: 8th International Conference Interdisciplinarity in Engineering (INTER-ENG), Romania (2014)

    Google Scholar 

  21. Corazza, A., Di Martino, S., Scanniello, G.: A probabilistic based approach towards software system clustering. In: Proceedings of European Conference on Software Maintenance and Reengineering, pp. 89–98. IEEE Computer Society (2010)

    Google Scholar 

  22. Corazza, A., Di Martino, S., Maggio, V., Scanniello, G.: Investigating the use of lexical information for software system clustering. In: Proceedings of European Conference on Software Maintenance and Reengineering, pp. 35–44. IEEE Computer Society (2011)

    Google Scholar 

  23. Corazza, A., Martino, S., Maggio, V., Scanniello, G.: Weighing lexical information for software clustering in the context of architecture recovery. Empir. Softw. Eng. 21, 72–103 (2016)

    Article  Google Scholar 

  24. Andritsos, P., Tzerpos, V.: Information-theoretic software clustering. IEEE Trans. Softw. Eng. 31(2), 150–165 (2005)

    Article  Google Scholar 

  25. Belle, A.B., Boussaidi, G.E., Kpodjedo, S.: Combining lexical and structural information to reconstruct software layers. Inf. Softw. Technol. 74, 1–16 (2016)

    Article  Google Scholar 

  26. Maqbool, O., Babri, A.H.: Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng. 33(11), 759–780 (2007)

    Article  Google Scholar 

  27. Prajapati, A., Chhabra, J.K.: Improving modular structure of software system using structural and lexical dependency. Inf. Softw. Technol. 82, 96–120 (2017). (Elsevier, SCI)

    Article  Google Scholar 

  28. Parashar, A., Chhabra, J.K.: An approach for clustering class coupling metrics to mine object oriented software components. Int. Arab J. Inf. Technol. 13(3), 239–248 (2016). (SCI)

    Google Scholar 

  29. Prajapati, A., Chhabra, J.K.: Preserving core components of object-oriented packages while maintaining structural quality. Procedia Comput. Sci. 46, 833–840 (2015). (Elsevier)

    Article  Google Scholar 

  30. Kagdi, H., Gethers, M., Poshyvanyk, D.: Integrating conceptual and logical couplings for change impact analysis in software. Empir. Softw. Eng. 18, 933–969 (2013)

    Article  Google Scholar 

  31. Porter, M.F.: An algorithm for suffix stripping. Program 14(3), 130–137 (1980)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Amit Rathee .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer Nature Singapore Pte Ltd.

About this paper

Cite this paper

Rathee, A., Chhabra, J.K. (2017). Software Remodularization by Estimating Structural and Conceptual Relations Among Classes and Using Hierarchical Clustering. In: Singh, D., Raman, B., Luhach, A., Lingras, P. (eds) Advanced Informatics for Computing Research. ICAICR 2017. Communications in Computer and Information Science, vol 712. Springer, Singapore. https://doi.org/10.1007/978-981-10-5780-9_9

Download citation

  • DOI: https://doi.org/10.1007/978-981-10-5780-9_9

  • Published:

  • Publisher Name: Springer, Singapore

  • Print ISBN: 978-981-10-5779-3

  • Online ISBN: 978-981-10-5780-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics