Using Clustering for Package Cohesion Measurement in Aspect-Oriented Systems

  • Puneet Jai Kaur
  • Sakshi Kaushal
Conference paper
Part of the Smart Innovation, Systems and Technologies book series (SIST, volume 106)


Packages are basic programme units in any object-oriented system including aspect-oriented systems, which allow the grouping of dependent elements. The cohesion of a package is the degree of encapsulation among the elements in the package. For any software to exhibit high quality, it must have high cohesion. Many metrics have been framed in the past to measure the cohesion in aspect-oriented systems but all metrics are defined at the class level. Most of the research focused on the class of structural cohesion metrics which measures cohesion by software design extracted from the source code. The aim of this paper is to propose an approach to explore the use of hierarchical clustering technique for improving the cohesion of packages in aspect-oriented. The results obtained from our approach are then compared with the already available metrics. The achieved results show that our proposed approach determines the cohesion of packages more accurately.


AOSD Packages Cohesion Package cohesion Clustering Hierarchical clustering PCohA 


  1. 1.
    Kaur, P.J., Kaushal, S.: Package level metrics for reusability in aspect oriented systems. In: International Conference on Futuristic Trends on Computational Analysis and Knowledge Management (ABLAZE), pp. 364–368. IEEE Amity University, Noida (2015)Google Scholar
  2. 2.
    Gupta, V., Chhabra, J.K.: Package level cohesion measurement in object oriented software. J. Brazilian Comput. Soc. Springer 18, 251–266 (2012)CrossRefGoogle Scholar
  3. 3.
    Sant’Anna, C., Garcia, A., Chavez, C., Lucena, C., Von Staa, A.: On the reuse and maintenance of aspect oriented software: an assessment framework. In: 17th Brazillian Symposium on Software Engineering (2003)Google Scholar
  4. 4.
    Wiggerts, T.A.: Using clustering algorithms in legacy systems remodularization. In: Proceedings of the 4th Working Conference on Reverse Engineering, Washington, pp. 33–43 (1997)Google Scholar
  5. 5.
    Czibula, I.G., Czibula, G., Cojocar, G.S.: Hierarchical clustering for identifying crosscutting concerns in object-oriented software systems. In: Proceedings of the 4th Balkan Conference in Informatics, Thessaloniki, vol 8, no 3, pp. 21–28 (2009)Google Scholar
  6. 6.
    Anquetil, N., Fourrier, C., Lethbridge, T.: Experiments with hierarchical clustering algorithms as software remodularization methods. In: Proceedings of the Working Conference on Reverse Engineering, Benevento, 23–27 October 1999Google Scholar
  7. 7.
    Lung, C.-H.: Software architecture recovery and re-structuring through clustering techniques. In: Proceedings of the 3rd International Software Architecture Workshop, Orlando, pp. 101–104 (1999)Google Scholar
  8. 8.
    Czibula, I.G., Czibula, G.: A partitional clustering algorithm for improving the structure of object-oriented software systems. Studia Universitatis Babes-Bolyai, Series Informatica, vol. 3, no. 2 (2008)Google Scholar
  9. 9.
    Lung, C., Zaman, M., Nandi, A.: Applications of clustering techniques to software partitioning, recovery and restructuring. J. Syst. Softw. 73(2), 227–244 (2004)CrossRefGoogle Scholar
  10. 10.
    Lung, C.-H., Zaman, M.: Using clustering technique to restructure programs. In: Proceedings of the International Conference on Software Engineering Research and Practice, Las Vegas, pp. 853–860 (2004)Google Scholar
  11. 11.
    Serban, G., Czibula, I.G.: Restructuring software systems using clustering. In: Proceedings of the 22nd International Symposium on Computer and Information Sciences, Ankara (2007)Google Scholar
  12. 12.
    Moldovan, G.S., Serban, G.: Aspect mining using a vector space model based clustering approach, pp. 36–40. Proceedings of Linking Aspect Technology and Evolution Workshop, Bonn (2006)Google Scholar
  13. 13.
    Zhao, J.: Towards a Metric Suite for Aspect Oriented Software. Technical report, SE 136–25, Information Processing Society of Japan (IPSJ) (2002)Google Scholar
  14. 14.
    Ceccato, M., Tonella, P.: Measuring the effects of software aspectization. In: Proceedings of first workshop on Aspect Reverse Engineering, WARE (2004)Google Scholar
  15. 15.
    Gelinas, J.F., Badri, M., Badri, L.: A cohesion measure for aspects. J. Object Technol. 5(7), 97–114 (2006)Google Scholar
  16. 16.
    Kumar, A., Kumar, R., Grover, P.S.: Towards a unified framework for cohesion measurement in aspect-oriented systems. In: IEEE Proceedings of 19th Australian Software Engineering Conference Perth, Western Australia, pp. 57–65 (2008)Google Scholar
  17. 17.
    Lung, C.H., Xu, X., Zaman, M., Srinivasan, A.: Program restructuring using clustering techniques. J. Syst. Softw. Elsevier 79, 1261–1279 (2006)Google Scholar
  18. 18.
    Ling, C.-H., Zaman, M., Nandi, A.: Applications of clustering techniques to software partitioning, recovery, and restructuring. J. Syst. Softw. 73(2), 227–244 (2004)Google Scholar
  19. 19.
    Tzerpos, V., Holt, R.C.: Software botryology automatic clustering of software systems. In: Proceedings of 20th Annual International Conference of the IEEE (1998)Google Scholar
  20. 20.
    Puneet, Sakshi, Arun, Francesco: A framework for assessing reusability using package cohesion measure in aspect oriented system. Int. J. Parallel Prog. Special Issue on Programming Models and Algorithms for Data Analysis in HPC Systems. Springer, 1–22 (2017)Google Scholar
  21. 21.
    Lakhotia, A.: A unified framework for expressing software subsystem classification techniques. J. Syst. Softw. 36(3), 211–231 (1997)CrossRefGoogle Scholar
  22. 22.
    Anquetil, N., Fourrier, C., Lethbridge, T.: Experiments with hierarchical clustering algorithms as software remodularization methods. In: Proceedings of Working Conference on Reverse Engineering (1999)Google Scholar
  23. 23.
    Anquetil, N., Lethbridge, T.C.: Comparative study of clustering algorithms and abstract representations for software remodularisation. In: IEEE Proceedings of Software vol. 150(3), pp. 185–201 (2003)Google Scholar
  24. 24.
    Kang, B.K., Beiman, J.M.: Using design abstractions to visualize, quantify, and restructure software. J. Syst. Softw. 42(2), 175–187 (1998)CrossRefGoogle Scholar
  25. 25.
    Kang, B.K., Beiman, J.M.: A quantitative framework for software restructuring. J. Softw. Mainten Res. Pract. 11(4), 245–284 (1999)CrossRefGoogle Scholar
  26. 26.
    Kim, H.S., Kwon, Y.R.: Restructuring programs through program slicing. Int. J. Softw. Eng. Knowl. Eng. 4(3), 349–368 (1994)MathSciNetCrossRefGoogle Scholar
  27. 27.
    Alkhalid, Alshayeb, Mahmoud: Software refactoring at the package level using clustering techniques. IET software 5(3), 274–286 (2011)Google Scholar
  28. 28.
    Sadaoui, Badri, Badri: Improving class cohesion measurement: towards a novel approach using hierarchical clustering. J. Softw. Eng. Appl. Sci. Res. 5, 449–458 (2012)Google Scholar
  29. 29.
    Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)CrossRefGoogle Scholar
  30. 30.
    Naseem, Maqbool, Muhammad: Improved similarity measures for software clustering. In: 15th European Conference on Software Maintenance and Reengineering, IEEE, pp. 45–54 (2011)Google Scholar
  31. 31.
    Kaur, P.J., Kaushal, S.: Cohesion and Coupling measures for Aspect Oriented Systems. AETS/7/590, Elsevier, vol. 7, pp. 784–788 (2013)Google Scholar
  32. 32.
  33. 33.

Copyright information

© Springer Nature Singapore Pte Ltd. 2019

Authors and Affiliations

  1. 1.Department of Information TechnologyU.I.E.T, Panjab UniversityChandigarhIndia
  2. 2.Department of Computer Science and EngineeringU.I.E.T, Panjab UniversityChandigarhIndia

Personalised recommendations