Empirical Analysis of Object-Oriented Coupling and Cohesion Measures in Determining the Quality of Open Source Systems

Author(s):  
Normi Sham Awang Abu Bakar
Author(s):  
Gerta Kapllani ◽  
Ilya Khomyakov ◽  
Ruzilya Mirgalimova ◽  
Alberto Sillitti

2016 ◽  
Author(s):  
Mariana De Azevedo Santos ◽  
Paulo Henrique De Souza Bermejo ◽  
Heitor Costa

Although it is necessary, activities regarding quality assurance and maintenance of software are considered the longest and most complex in software development lifecycle. Taking advantage of this growing trend and of the benefits obtained from open-source initiative, researches on open-source software quality and maintainability have gained renewed interest. The use of robust statistical techniques, such as PLS-SEM to investigate and empirically validate software quality models has also been an efficient alternative to obtain information on open-source software quality. The aim of this study was evaluate and build a conceptual model to characterize the internal quality in Java open-source software in different domains, validated with the PLS-SEM technique. The study results indicate that there are domains with similarities among them and four factors can influence the internal quality of object-oriented software to present better maintainability (Complexity Reduce, Normalized Cohesion, Non-normalized Cohesion, and Increase of the Modularity Level). Besides, we identified some measures are more effective to evaluate internal quality in object-oriented open-source, such as, Fan-out (FOUT), Lack of Cohesion of Methods 2 (LCOM2), Response for Class (RFC), Tight Class Cohesion (TCC), and Loose Class Cohesion (LCC). Thus, this study aims at supporting software engineers and project managers to develop measurement strategies to ensure internal quality of source code and reduce maintenance costs.


2020 ◽  
Vol 10 (17) ◽  
pp. 6038 ◽  
Author(s):  
Musaad Alzahrani ◽  
Saad Alqithami

A commonly observed ambiguity of a class is simply a reflection of multiple methods’ implementation within an individual class. The process of Extract Class refactoring is, therefore, used to separate the different responsibilities of a class into different classes. A major limitation in existing approaches of the Extract Class refactoring is based on factors that are internal to the class, i.e., structural and semantic relationships between methods, in order to identify and separate the responsibilities of the class which are inadequate in many cases. Thus, we propose a novel approach that exploits the clients of the class to support the Extract Class refactoring. The importance of this approach lies in its usefulness to support existing approaches since it involves factors external to the class, i.e., the clients. Moreover, an extensive empirical evaluation is presented to support the proposed method through the utilization of real classes selected from two open source systems. The result shows the potential of our proposed approach and usefulness that leads to an improvement in the quality of the considered classes.


Sign in / Sign up

Export Citation Format

Share Document