Username   Password       Forgot your password?  Forgot your username? 

 

Role of Structural and Semantic Relations in Determining Coupling among Software Elements

Volume 15, Number 5, May 2019, pp. 1279-1288
DOI: 10.23940/ijpe.19.05.p3.12791288

Randeep Singh and Ashok Kumar

Department of Computer Science & Engineering, Maharishi Markandeshwar University, Mullana-Ambala, 133-207 (Haryana), India

(Submitted on October 13, 2017; Revised on March 15, 2018; Accepted on April 6, 2018)

Abstract:

Software maintenance, as a long-term, cost-intensive activity and an unmanaged structure of a software system, further increases maintenance efforts and thereby development costs. A well-structured software system must achieve an optimal balance between cohesion and coupling among different software elements. Therefore, in this paper, a coupling measurement technique is proposed. This technique helps measure the conceptual similarity between different elements (classes) of a software system. It utilizes two kinds of relations, structural and semantic, in order to obtain more accurate coupling measures. In particular, our proposed approach mainly extracts lexical information from four portions of the underlying source code of a software element. The four main parts are comments, Javadoc, signatures, and member variable zone. Similarly, the structural coupling is measured by counting calls to member functions of other classes generated from a given class. The proposed approach is first tested on a student record management system software and finally applied to three standard open source Java software systems. While applying on standard open source software systems, three coupling measurement schemes are designed (including the proposed one): structural, semantic, and structural+semantic (proposed). Finally, the results are presented. The results obtained are very promising and reflect the actual coupling present between classes.

 

References: 26

    1. G. Antoniol, M. Di Penta, G. Casazza, and E. Merlo, “A Method to Re-Organize Legacy Systems via Concept Analysis,” in Proceedings of 9th International Workshop on Program Comprehension, pp. 281-292, Toronto, Canada, 2001
    2. A. Cimitile and G. Visaggio, “Software Salvaging and the Call Dominance Tree,” Journal of Systems and Software, Vol. 28, No. 2, pp. 117-127, 1995
    3. S. C. Shaw, M. Goldstein, M. Munro, and E. Burd, “Moral Dominance Relations for Program Comprehension,” IEEE Transactions on Software Engineering, Vol. 29, No. 9, pp. 851-863, 2003
    4. M. Abdellatief, A. B. M. Sultan, A. Ghani, and M. A. Jabar, “Component-based Software System Dependency Metrics based on Component Information Flow Measurements,” in Proceedings of the Sixth International Conference on Software Engineering Advances, IARIA, 2011
    5. D. H. Qiu, H. Li, and J. L. Sun, “Measuring Software Similarity based on Structure and Property of Class diagram,” in Proceedings of the Sixth International Conference on Advanced Computational Intelligence (ICACI), IEEE, 2013
    6. M. Savic, G. Rakic, Z. Budimac, and M. Ivanovic, “A Language-Independent Approach to the Extraction of Dependencies Between Source Code Entities,IST, Vol. 56, pp. 1268-1288, 2014
    7. P. Tonella, “Concept Analysis for Module Restructuring,” IEEE Transaction Software Engineering, Vol. 27, No. 4, pp. 351-363, 2001
    8. A. Van Deursen and T. Kuipers, “Identifying Objects using Cluster and Concept Analysis,” in Proceedings of 21st International Conference on Software Engineering, pp. 246-255, Los Angeles, California, USA, 1999
    9. S. Mancoridis, B. S. Mitchell, C. Rorres, Y. -F. Chen, and E. R. Gansner, “Using Automatic Clustering to Produce High-Level System Organizations of Source Code,” in Proceedings of Sixth International Workshop on Program Comprehension, Ischia, Italy, IEEE CS Press, 1998
    10. B. S. Mitchell and S. Mancoridis, “On the Automatic Modularization of Software Systems using the Bunch Tool,” IEEE Transactions on Software Engineering, Vol. 32, No. 3, pp. 193-208, 2006
    11. M. Harman, R. M. Hierons, and M. Proctor, “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
    12. O. Seng, M. Bauer, M. Biehl, and G. Pache, “Search-based Improvement of Subsystem Decompositions,” in Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1045-1051, Washington, Columbia, USA, 2005
    13. H. Abdeen, S. Ducasse, H. A. Sahraoui, and I. Alloui, “Automatic Package Coupling and Cycle Minimization, in Proceedings of the 16th Working Conference on Reverse Engineering, pp. 103-112, Lille, France, 2009
    14. C. Srinivas, V. Radhakrishna, and C. V. G. Rao, “Software Component Clustering and Classification using Novel Similarity Measure, Procedia Technology, Vol. 19, pp. 866-873, 2015
    15. A. Marcus, D. Poshyvanyk, and R. Ferenc, “Using The Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems,IEEE Transaction on Software Engineering, Vol. 34, No. 2, pp. 287-300, 2008
    16. H. Kagdi, M. Gethers, and D. Poshyvanyk, “Integrating Conceptual and Logical Couplings for Change Impact Analysis in Software,Empirical Software Engineering, Vol. 18, pp. 933-969, 2013
    17. G. Bavota, R. Oliveto, M. Gethers, D. Poshyvanyk, and A. De Lucia, Method Book: Recommending Move Method Refactoring's Via Relational Topic Models,IEEE Transactions on Software Engineering, Vol. 40, No. 7, pp. 671-694, 2014
    18. G. Bavota, A. De Lucia, A. Marcus, and R. Oliveto, “Software Re-Modularization based on Structural and Semantic Metrics, in Proceedings of the International Working Conference on Reverse Engineering, pp. 195-204, IEEE Computer Society, 2010
    19. A. B. Belle, G. E. Boussaidi, and S. Kpodjedo, “Combining Lexical and Structural Information to Reconstruct Software Layers, Information and Software Technology, Vol. 74, pp. 1-16, 2016
    20. A. Corazza, S. Di Martino, and G. Scanniello, “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
    21. A. Corazza, S. Di Martino, V. Maggio, and G. Scanniello, “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
    22. A. Kuhn, S. Ducasse, and T. Girba, “Semantic Clustering: Identifying Topics in SourceCode,Information and Software Technology, Vol. 49, No. 3, pp. 230-243, 2007
    23. J. I. Maletic and A. Marcus, “Supporting Program Comprehension using Semantic and Structural Information,” in Proceedings of 23rd International Conference on Software Engineering, pp. 103-112, Toronto, Ontario, Canada, 2001
    24. G. Scanniello, M. Risi, and G. Tortora, “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
    25. P. Andritsos and V. Tzerpos, Information-Theoretic Software Clustering,IEEE Transactions on Software Engineering, Vol. 31, No. 2, pp. 150-165, 2005
    26. Y. -S. Lee, B. -S. Liang, S. -F. Wu, and F. -J. Wang, Measuring the Coupling and Cohesion of an Object-Oriented Program based on Information Flow, in Proceedings of International Conference on Software Quality, Maribor, Slovenia, 1995

     

     

    Please note : You will need Adobe Acrobat viewer to view the full articles.Get Free Adobe Reader

    1.        G. Antoniol, M. Di Penta, G. Casazza, and E. Merlo, “A Method to Re-Organize Legacy Systems via Concept Analysis,” in Proceedings of 9th International Workshop on Program Comprehension, pp. 281-292, Toronto, Canada, 2001

    2.        A. Cimitile and G. Visaggio, “Software Salvaging and the Call Dominance Tree,” Journal of Systems and Software, Vol. 28, No. 2, pp. 117-127, 1995

    3.        S. C. Shaw, M. Goldstein, M. Munro, and E. Burd, “Moral Dominance Relations for Program Comprehension,” IEEE Transactions on Software Engineering, Vol. 29, No. 9, pp. 851-863, 2003

    4.        M. Abdellatief, A. B. M. Sultan, A. Ghani, and M. A. Jabar, “Component-based Software System Dependency Metrics based on Component Information Flow Measurements,” in Proceedings of the Sixth International Conference on Software Engineering Advances, IARIA, 2011

    5.        D. H. Qiu, H. Li, and J. L. Sun, “Measuring Software Similarity based on Structure and Property of Class diagram,” in Proceedings of the Sixth International Conference on Advanced Computational Intelligence (ICACI), IEEE, 2013

    6.        M. Savic, G. Rakic, Z. Budimac, and M. Ivanovic, “A Language-Independent Approach to the Extraction of Dependencies Between Source Code Entities,IST, Vol. 56, pp. 1268-1288, 2014

    7.        P. Tonella, “Concept Analysis for Module Restructuring,” IEEE Transaction Software Engineering, Vol. 27, No. 4, pp. 351-363, 2001

    8.        A. Van Deursen and T. Kuipers, “Identifying Objects using Cluster and Concept Analysis,” in Proceedings of 21st International Conference on Software Engineering, pp. 246-255, Los Angeles, California, USA, 1999

    9.        S. Mancoridis, B. S. Mitchell, C. Rorres, Y. -F. Chen, and E. R. Gansner, “Using Automatic Clustering to Produce High-Level System Organizations of Source Code,” in Proceedings of Sixth International Workshop on Program Comprehension, Ischia, Italy, IEEE CS Press, 1998

    10.     B. S. Mitchell and S. Mancoridis, “On the Automatic Modularization of Software Systems using the Bunch Tool,” IEEE Transactions on Software Engineering, Vol. 32, No. 3, pp. 193-208, 2006

    11.     M. Harman, R. M. Hierons, and M. Proctor, “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

    12.     O. Seng, M. Bauer, M. Biehl, and G. Pache, “Search-based Improvement of Subsystem Decompositions,” in Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1045-1051, Washington, Columbia, USA, 2005

    13.     H. Abdeen, S. Ducasse, H. A. Sahraoui, and I. Alloui, “Automatic Package Coupling and Cycle Minimization, in Proceedings of the 16th Working Conference on Reverse Engineering, pp. 103-112, Lille, France, 2009

    14.     C. Srinivas, V. Radhakrishna, and C. V. G. Rao, “Software Component Clustering and Classification using Novel Similarity Measure, Procedia Technology, Vol. 19, pp. 866-873, 2015

    15.     A. Marcus, D. Poshyvanyk, and R. Ferenc, “Using The Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems,IEEE Transaction on Software Engineering, Vol. 34, No. 2, pp. 287-300, 2008

    16.     H. Kagdi, M. Gethers, and D. Poshyvanyk, “Integrating Conceptual and Logical Couplings for Change Impact Analysis in Software,Empirical Software Engineering, Vol. 18, pp. 933-969, 2013

    17.     G. Bavota, R. Oliveto, M. Gethers, D. Poshyvanyk, and A. De Lucia, Method Book: Recommending Move Method Refactoring's Via Relational Topic Models,IEEE Transactions on Software Engineering, Vol. 40, No. 7, pp. 671-694, 2014

    18.     G. Bavota, A. De Lucia, A. Marcus, and R. Oliveto, “Software Re-Modularization based on Structural and Semantic Metrics, in Proceedings of the International Working Conference on Reverse Engineering, pp. 195-204, IEEE Computer Society, 2010

    19.     A. B. Belle, G. E. Boussaidi, and S. Kpodjedo, “Combining Lexical and Structural Information to Reconstruct Software Layers, Information and Software Technology, Vol. 74, pp. 1-16, 2016

    20.     A. Corazza, S. Di Martino, and G. Scanniello, “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

    21.     A. Corazza, S. Di Martino, V. Maggio, and G. Scanniello, “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

    22.     A. Kuhn, S. Ducasse, and T. Girba, “Semantic Clustering: Identifying Topics in SourceCode,Information and Software Technology, Vol. 49, No. 3, pp. 230-243, 2007

    23.     J. I. Maletic and A. Marcus, “Supporting Program Comprehension using Semantic and Structural Information,” in Proceedings of 23rd International Conference on Software Engineering, pp. 103-112, Toronto, Ontario, Canada, 2001

    24.     G. Scanniello, M. Risi, and G. Tortora, “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

    25.     P. Andritsos and V. Tzerpos, Information-Theoretic Software Clustering,IEEE Transactions on Software Engineering, Vol. 31, No. 2, pp. 150-165, 2005

    26.     Y. -S. Lee, B. -S. Liang, S. -F. Wu, and F. -J. Wang, Measuring the Coupling and Cohesion of an Object-Oriented Program based on Information Flow, in Proceedings of International Conference on Software Quality, Maribor, Slovenia, 1995

     
    This site uses encryption for transmitting your passwords. ratmilwebsolutions.com