5,49 €
Predicting Fault-proneness of software modules is essential for cost-effective test planning. Fault-proneness could play a key role in quality control of software. Various studies have shown the importance of software metrics in predicting fault-proneness of the software. “Classic” set of metrics was planned by Chidamber and Kemerer in 1991. Chidamber and Kemerer (CK) metrics suite is the most widely used metrics suite for the purpose of object-oriented software fault-proneness prediction. CK metrics are used for numerous function of study, e.g. defect prediction. CK metrics are the good predictor of fault-proneness of classes.C5.0 algorithm is one of the classification techniques of data mining. It is necessarily selected to partition data set into several smaller subsets in every recursion of creating decision tree. Object-oriented metrics play a very important role to quantify the effect of key factors to determine the fault-proneness. For fault-prediction model CK Metrics: Weighted Methods for Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Lack of Cohesion of Methods (LCOM), Response for Class (RFC), and Coupling Between Objects (CBO), are used as a independent variables.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Veröffentlichungsjahr: 2018
Introduction
Fault-proneness of a software module predicts the probability of the presence of faults in it. Fault-proneness could play a key role in quality control of software [1]. Finding faults during the software testing phase is costly and time-consuming. The cost- effective approach is to estimate and prevent faults at the early stage of software development. It also helps to systematically plan the testing process in advance. Currently, a majority of the software development is based on object-oriented approach. Fundamental features of object-oriented approach i.e. Encapsulation, Inheritance, coupling and cohesion are key factors to determine fault- proneness of classes [2]. Encapsulation, Class with more member functions is more complex and tends to be more fault-prone. Inheritance, A class located deeper in a class inheritance lattice is supposed to be more fault-prone because class inherits a larger number of definitions from ancestors. Coupling, Highly coupled classes are more fault-prone than weekly coupled classes because they depend on methods and objects defined in other classes.
Cohesion Class with low cohesion among its methods suggests an inappropriate design, which is likely to be more fault-prone [3]. Object-oriented metrics play a very important role to quantify the effect of key factors to determine the fault-proneness. Most commonly used metrics includes the CK metrics suite which includes six metrics Weighted Methods per Class (WMC), Depth of Inheritance Tree (DIT), Lack of Cohesion in Methods(LCOM), Number of Children (NOC), Response for Class (RFC), and Coupling Between Object classes (CBO) [3]. WMC of a class is the weighted sum of all the methods defined in a class. DIT of a class is the maximum length from the node indicating that class to the root of the inheritance hierarchy. RFC of a class is defined as a set of methods that can be potentially executed in response to a message received by an object of that class. NOC of a class is the count of the number of immediate child classes that have inherited from a given class. CBO of a class is the count of the number of other classes to which it is coupled. LCOM of a class it is the difference between the number of pairs of distinct methods that do not share same instance variable and number of pairs of distinct methods.
CK Metrics
“Classic” set of metrics planned by Chidamber and Kemerer in 1991 specifically for object-oriented software system. CK metrics are source code metrics are used for numerous function of study, e.g. defect prediction. CK metrics were designed specifically for source code developed in Object Oriented (OO) languages.
Analyzing CK metrics through the identification of far values (extreme deviations), which can be a symptom of: High complexness and Possible design violations such as: Re-designing and/or distribution additional or higher skilful resources (to develop, to check and to keep up the SW) [4]. The CK metrics aim at measurement whether or not a chunk of code follows OO principles [4]. CK metrics are strongly related to OO concepts. CK metrics are:
Weighted Methods for Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Lack of Cohesion of Methods (LCOM), Response for Class (RFC), and Coupling Between Objects (CBO). CK metrics can be grouped under three stages of OO design processes:
Identification of ClassesSemantics of ClassesRelationship between ClassesThe definition of CK metrics as well as their distribution to the aforementioned OO design processes is as follows.
Identification of Classes:Weighted Methods for Class (WMC): The sum of the complexities of each method in a class. If all the method complexities are considered equal and have the value of 1 (as proposed in the chidamber94), then WMC equals the number of methods in a class.
Depth of Inheritance Tree (DIT): Number of classes that a particular class inherits from.
Number of Children (NOC): The count of immediate subclasses of a class.
Semantics of Classes:Weighted Methods for Class (WMC): The sum of the complexities of each method in a class. If all the method complexities are considered equal and have the value of 1 (as proposed in the chidamber94), then WMC equals the number of methods in a class.
Response for Class (RFC): The number of elements in the response set of a class. The response set of a class (as defined in chidamber94) is the number of methods that can potentially be executed in response to a message received by an object of that class.
Lack of Cohesion of Methods (LCOM): For a class C, LCOM is the number of method pairs that have no common references to instance variables minus the number of method pairs that share references to instance variables.
Relationship between Classes: