CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS
|
|
- Irma Phelps
- 5 years ago
- Views:
Transcription
1 CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Design evaluation is most critical activity during software development process. Design heuristics are proposed as a more accessible and informal means by which developers can evaluate software design. Software heuristics are legible, small, simple, selfcontained nuggets of design expertise. Heuristics target specific design problems within OO software and provide guidance on how to affect a solution. This chapter focuses on object oriented design metrics particularly, CK metrics and MOOD metric suite and proposes some heuristics based on them. Heuristics Based On Object Oriented Metrics Page 53
2 CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Software design is one of the most important and key activities in the system development life cycle. Software design metrics assess the size, quality and complexity of object-oriented software systems. 4.1 Heuristics Based on CK Metrics Chidamber and Kemerer s (Chidamber et al., 1994) suite for object-oriented systems consists of the six metrics. Heuristics based on theses metrics are described as follows: 1. Weighted Methods Per Class (WMC): According to this metric if a Class C, has n methods and c1, c2 cn be the complexity, then WMC(C)= c1 + c2 + + cn. Eq. (4.1) Mc Cabe s complexity metric is chosen for calculating the complexity values of the methods of a class. The value is normalized so that nominal complexity for a method takes on a value of 1.0. If all method complexities are considered to be unity, then WMC = n i.e. the number of methods existing in that class. Heuristic: Time and effort required to develop and maintain the class is dependent on the count and the complexity of methods. As the number of methods in a class increases, the potential impact on its children also increases, since children will inherit all the methods defined in the base class. Classes with large number of methods are more application specific which limits the possibility of reusability. This reasoning indicates that a smaller number of methods are good for usability and reusability. The derived classes inherit the methods of the base class therefore, large number of methods indicate greater potential impact on derived classes (Kumar et al., 2012). The WMC metric is the sum of the complexities of all class methods. It is an indicator of amount of effort required to develop and maintain a particular class. A class with a high WMC indicates that the class is complex and therefore harder to Heuristics Based On Object Oriented Metrics Page 54
3 reuse and maintain. Mc Cabe s complexity metric is used to compute the complexity values of the methods of a class. McCabe suggested that 10 is probably a good limiting value for v (G), and that number is certainly the most widely used. McCabe proposed that if a function has a complexity<=10, it indicates that it is simple but if this value exceeds 10, then it becomes complex and the resulting code would be excessively hard to understand or maintain. At the module level, this metric measures the number of linearly independent paths through the module. Modules that contain many possible paths are more complex than those with fewer paths, so as the cyclomatic complexity of a module increases, so does its complexity. Also, this metric is equal to one more than the number of decisions contained in the module and considers complexity of an individual module. Modules with low cohesion implement more than one function and therefore, testing the functionality of that module requires more test cases to cover all of that module s functionality (weblink 10). Cyclomatic complexity essentially measures the number of paths through a module, so modules with higher cyclomatic complexity will require more test cases to cover all the paths. It indicates that if a function is complex, it lacks function cohesion and therefore, it is better to decompose it into two methods. This decomposition is not so easy in case the function cohesion exists, as complexity can be an inherent feature of the function. A class with a low WMC usually points to greater polymorphism. In polymorphism, as the interface is common to objects, so, it offers advantage that objects are independent of each other and all objects can respond to some common set of tasks in a different way. Classes with a large Weighted Methods per Class value can often be refactored into two or more classes. The use of this metric enables the design team to focus the review and testing resources on those classes which have greatest potential for improvement. Software development trends support smaller methods over fewer larger methods for achieving increased readability, reduced complexity and improved understanding (Churcher et al., 1995). However, it is not advisable to have a method consisting of larger number of methods in a large inheritance tree. Heuristics Based On Object Oriented Metrics Page 55
4 WMC measures the complexity of an individual class. Classes with more member functions are considered to be more complex and therefore, more error prone (Basili et al., 1996). So, a high WMC leads to more faults, therefore, it is better to keep it as low as possible. 2. Depth of Inheritance Tree (DIT): The maximum length from the node to the root of the tree is depth of the inheritance tree. Heuristic: More is the depth of the inheritance tree greater will be the reusability of class and reduces coding, testing and documentation time (Subramanyam et al., 2003). Inheritance also referred to as generalization, is an essential component in the object oriented programming approach. A class situated too deeply in the inheritance tree will be relatively complex to develop, debug and maintain. Therefore, it is useful to know and regulate this depth. DIT metric provides the position of the class in the inheritance tree and is a factor which influences cost of testing. If DIT is large, then testing will be more expensive. The deeper a class is in the inheritance hierarchy, the more variables and methods it is likely to inherit and therefore, it becomes more complex. Inheritance is a tool to manage complexity where as deep trees indicate greater design complexity as more methods and classes are involved (Chidamber et al., 1994). As a positive factor, deep trees promote reuse because of method inheritance. Although, inheritance decreases complexity by reducing the number of operators and operations, but this abstraction of objects can make design and maintenance difficult. The depth and breadth of the inheritance hierarchy are used to measure the amount of inheritance. As depth of the inheritance tree increases, the number of faults also increases. However, it is not necessary that the classes deepest in the class hierarchy contain a larger number of faults. Most fault-prone classes are the ones which lie in the middle of the tree. The root and deepest classes are often consulted more, and due to familiarity, they have low fault-proneness as compared to classes in the middle (Glasberg et al., 2000).Well structured OO systems have a forest of classes rather than one large inheritance lattice. The depth of a class within the inheritance Heuristics Based On Object Oriented Metrics Page 56
5 hierarchy is measured by the number of ancestor classes. In multiple inheritances, the DIT is the maximum length from the node to the root of the tree. Applications that contain too many classes near the root are considered to be top heavy. In such classes designers are not able to take advantage of reuse of methods through inheritance (Basili et al., 1996). Alternatively, applications are considered to be bottom heavy when too many classes are near the bottom of the hierarchy. Such classes result in greater design complexity and conceptual integrity concerns. Indeed, deep hierarchies are also a conceptual integrity concern because it becomes difficult to determine which class to specialize from (Basili et al., 1996). Additionally, interface changes within the tree must be reflected throughout the entire class tree and object instances. However, the deeper a particular tree is in a class, the greater will be potential reuse of inherited methods. Hence, it is advisable to regulate the depth of a tree and the value of DIT metric should be kept neither too high nor too low. 3. Number of Children (NOC): Number of children (NOC) of a class is the number of immediate sub-classes subordinated to a class in the class hierarchy. Heuristic: Greater is the value of NOC, greater will be the reusability of the parent class which in turn enhances productivity. Hence there should be some minimum value of NOC for a parent class for its reusability (Chidamber et al., 1994). This metric gives an indication of the number of direct descendants (subclasses) for each class. Classes with large number of children are harder to maintain and modify. Thus, such classes require more testing due to the effects of changes on all the children. They are also considered more complex and fault-prone as a class with numerous children may have to provide services in a larger number of contexts and therefore must be more flexible (Basili et al., 1996). High NOC has been found to indicate fewer faults due to high reuse, which is desirable. A large number of child classes, can indicate that base class may require more testing and there is improper abstraction of the parent class. Not all classes should have the same number of sub-classes. Classes that are higher in the hierarchy should have more sub-classes then those lower down (weblink 1). Heuristics Based On Object Oriented Metrics Page 57
6 NOC and DIT are closely related. DIT measures the depth where as NOC measures the breadth of a class hierarchy. Depth is generally considered to be better than breadth, since depth promotes reuse of methods through inheritance. Inheritance levels can be added to increase the depth and reduce the breadth. The class is potentially influencing a large number of descendant classes in an inheritance hierarchy. This can be a sign of poor design and redesign may be required. A class with a high NOC and a high WMC indicates complexity at the top of the class hierarchy. 4. Coupling between Object Classes (CBO): Coupling between Object Classes (CBO) for a class is a count of the number of other classes to which it is coupled. Heuristic: As Coupling between Object classes increases, reusability decreases and therefore, it becomes difficult to test and modify the software. Hence, there is a need to set some maximum value of coupling level for its reusability. Coupling metric provides insight into the interaction between the modules in the system. Two classes are coupled when methods declared in one class use methods or instance variables defined by another class. Excessive coupling between object classes is detrimental to modular design and prevents reuse of existing components and they are damaging for a modular, encapsulated software design. So, high value of coupling between object classes is undesirable. Therefore, more independent a class is, easier it is to reuse it. Inter-object class couplings should be kept to a minimum, in order to promote encapsulation and improve modularity. As coupling between objects increases, maintenance becomes difficult due to higher sensitivity to changes in other parts of the design. Designers suggest that for a good design coupling should be low. Moreover, a class that is coupled to other classes is sensitive to changes in those classes and as a result it becomes more difficult to maintain and gets more errorprone. And thus, higher value of CBO is an indication of fault-proneness. Additionally, it is harder to understand and test a heavily coupled class in isolation. Therefore, the number of dependencies should be kept as minimum as possible. Hence, it is better to keep value of CBO as low as possible. Heuristics Based On Object Oriented Metrics Page 58
7 5. Response for a Class (RFC): The response set of a class is a set of methods that can potentially be executed in response to a message received by an object of that class. RFC is the number of methods in the set. Heuristic: As RFC increases, the effort required for testing also increases because the test sequence grows. So, testing and debugging is complicated as there is more number of test sequences. It also follows that as RFC increases, the overall design complexity of the class increases. RFC is a measure of the potential communication between a class and other classes as it specifically includes methods called from outside the class. Classes with a high RFC are relatively more complex and harder to understand, debug and maintain. So, large RFC has been found to indicate more faults. If the Response for a class is high, it increases the test sequence, testing effort and the overall design complexity of the class. Therefore, the number of operations that maybe executed in response to a message received should be reduced. Hence, value of RFC should be kept to a minimum. 6. Lack of Cohesion in Methods (LCOM): Each method within a class accesses one or more attributes (Chidamber et al., 1994). LCOM is the number of methods that access one or more of the same attributes. If no methods access the same attributes, then LCOM=0. Heuristic: Cohesion measures degree to which the elements of each module are related to each other. A highly cohesive module performs a function using only the data required to accomplish that function. The high value of LCOM indicates that the methods in the class are not really related to each other and low value of LCOM depicts high internal strength of the class which results into high reusability. Therefore, there should be some maximum value of LCOM after which class becomes non-reusable. If LCOM is high, methods may be coupled to one another via attributes. This increases the complexity of the class design. As coupling increases, reusability decreases and testing and debugging are also complicated and expensive. Although there are cases in which high value for LCOM is justifiable, it is desirable to keep Heuristics Based On Object Oriented Metrics Page 59
8 cohesion high i.e. LCOM should be kept low. Higher value of Lack of Cohesion in Methods increases the complexity of class design. Therefore, the lack of cohesion in methods should be reduced by breaking down the class into two or more separate classes. There are two sub-categories of object-oriented design metrics namely; Intra-class and Inter-class metrics. Intra-class metrics measure characteristics related to one class like Weighted Methods per Class, Number of Children, and Depth of Inheritance Tree. Inter class metrics measure features between a set of classes like Coupling Factor (CF) and Method Hiding Factor (MHF). Each of these metric i.e. Weighted Methods Per Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Coupling between Object Classes (CBO), Response for a Class (RFC), Lack of Cohesion in Methods (LCOM) are associated with important modularity attributes like coupling, cohesion, size and inheritance as shown in Table 4.1. Table 4.1: Modularity Attributes for the CK Metrics Modularity Attribute CK Metric Suite Coupling Coupling between objects (CBO) Response for a class (RFC) Cohesion Size Inheritance Lack of cohesion in a class (LCOM) Weighted methods per class (WMC) Depth of inheritance (DIT) Number of children (NOC) 4.2 Heuristics Based on MOOD Metrics Several authors have suggested sets of metrics for the OO paradigm, one of the most important metrics is MOOD (Metrics for Object Oriented Design) suite (Abreu, 1995) (Abreu et al., 1996). Heuristics Based On Object Oriented Metrics Page 60
9 The metrics for object oriented design proposed by Harrison, Counsell and Nithi (Harrison et al., 1998) is as follows: 1. Method hiding factor (MHF): The MHF numerator is the sum of the invisibilities of all methods defined in all classes (Abreu et al., 1996). The invisibility of a method is the percentage of the total classes from which this method is not visible. The MHF (Method hiding factor) denominator is the total number of methods defined in the system under consideration (Abreu et al., 1996). The attribute hiding factor, AHF, is defined in an analogous manner. The AHF numerator is the sum of the invisibilities of all attributes defined in all classes. The invisibility of an attribute can be defined as the percentage of the total classes from which this attribute is not visible. The AHF (attribute hiding factor) denominator is the total number of attributes defined in the system under consideration. Heuristic: Method hiding factor is a type of interclass metrics as it measure features between a set of classes. Method/Attribute hiding factor measures the process with which variables and methods are encapsulated in a class. Visibility is counted with respect to other classes (Weblink 1). The value of MHF/AHF is related to the average amount of hiding among all classes in the system. A private method/attribute fully exhibits data hiding (Weblink 1). By keeping data private usability increases. Encapsulation promotes maintenance and code changes can be made independently with more flexibility. It also reduces coupling of modules and increases cohesion inside a module. For a good design, coupling should be kept low and cohesion should be high. The number of visible methods is a measure of the class functionality. MHF will reduce if overall functionality will increase. However, for implementing the functionality, hidden methods are used which offers information hiding benefits and favors increase in MHF. A low MHF indicates that the probability of errors is high. A high MHF indicates very less functionality and that the design includes a high proportion of specialized methods that are not available for reuse. Increased value of MHF decreases bug- Heuristics Based On Object Oriented Metrics Page 61
10 density, defect density and rework effort to find and correct defects and hence, increases quality (Kumar et al., 2013). If all methods/attributes are private then MHF/AHF=100%. If all methods/attributes are public, MHF/AHF=0%. Hence, MHF should be kept in a reasonable range, i.e. an acceptable range of 8% to 25%. Ideally, all attributes should be hidden, and thus AHF=100% is the ideal value. 2. Method Inheritance Factor (MIF): The degree to which the class architecture of an OO system makes use of inheritance for both methods (operations) and attributes is known as MIF. It is represented as follows: MIF = M i C i )/ M a (C i ) Eq. (4.2) Where the summation occurs over i = 1 to TC. TC is defined as the total number of classes in the architecture, C i is a class within the architecture and M a (C i ) = M d (C i ) + M i C i ) Eq. (4.3) M a (C i ) = the no. of methods that can be invoked in association with C i. M d (C i ) ) = the no. of methods declared in the class C i. M i (C i ) = the number of methods inherited (and not overridden) in C i. AIF i.e. Attribute Inheritance Factor is defined in an analogous manner. Heuristic: The value of MIF/AIF provides an indication of the impact of inheritance on the OO software. Inheritance increases reusability and productivity of class and reduces coding, testing and documentation time, error density and rework (Subramanyam et al., 2003). Inheritance decreases complexity by reducing the number of operations and operators but increases effort and time on testing. Additionally, the deeper classes in the inheritance hierarchy result in increased number of inherited methods and it becomes complex to predict its behavior and is more fault-prone and difficult to design and maintain. Deep inheritance trees and nesting should be avoided to improve comprehensibility. Inheritance hierarchies allow sharing of common code amongst several subclasses and reduce duplicate code and thereby tend to result in a better organization of code Heuristics Based On Object Oriented Metrics Page 62
11 with smaller and simpler compilation units. Use of inheritance makes the classes tightly coupled which means the classes cannot be used independent of each other. A class that inherits lots of methods/attributes from its base classes contributes to a high value of MIF/AIF. A sub class that redefines its base methods/attributes and adds new ones contributes to a lower MIF/AIF (Weblink 1). An independent class that does not inherit and has no children contributes to a lower value of MIF/AIF. A class which has no methods/ attributes or inheritance is not used at all, then value of MIF/AIF is equal to 0%. Hence, MIF and AIF should be kept in a reasonable range, i.e. neither too low, nor too high. Very high value indicates either superfluous inheritance or too wide member scopes (Weblink 1). A low value of MIF and AIF indicates lack of inheritance and heavy use of Overrides. 3. Coupling Factor (CF): Coupling Factor (CF) can be defined as; CF = i j is client (C i, C j ) / ( TC 2 TC ) Eq. (4.4) Where the summation occurs over i = 1 to TC and j = 1 to TC. The function is_client = 1, if C i and C j are coupled. is_client = 0, otherwise Heuristic: Coupling Factor measures the actual couplings among classes. If no classes are coupled, then value of CF = 0%. If all classes are coupled to all other classes, then value of CF=100%. As coupling increases, reusability decreases and it becomes harder to modify and test the software system. Excessive coupling prevents reusability and indicates faultproneness. The major root cause of poor reliability is non- compliance with good architectural and coding practices. In order to improve modularity and promote encapsulation, coupling should be kept to a minimum. As coupling increases, sensitivity to changes also increases in other modules of the design, and therefore maintenance and enhancement is more difficult. As the value for CF increases, the complexity of the OO software will also increase and maintainability, understandability and the potential for reuse may suffer as a Heuristics Based On Object Oriented Metrics Page 63
12 result. It has been suggested that CF should not exceed 12%. Therefore, very high values of CF should be avoided i.e. CF should have lower value. 4. Polymorphism Factor (PF): - PF can be defined as the number of methods that redefine inherited methods divided by the maximum number of possible distinct polymorphic situations. PF is defined as: PF = i M o (C i ) / i [ M n (C i ) x DC (C i ) ] Eq. (4.5) M n (C i ): no. of new method M o (C i ): no. of overriding methods DC(C i ) = no. of classes descendants from C i, where the summation occur over i = 1 to TC. Heuristic: The main advantage of polymorphism is that the interface is common to all objects, so objects respond differently to common set of tasks, and each object is independent of other one. Polymorphism enables a number of different operations to have the same name, reducing the number of lines of code required to implement a system and facilitating changes when they are made. Polymorphism factor increases as overriding increases. Polymorphism factor varies between 0% and 100%. When value of PF is 100%, it means that all methods are overridden in all derived classes. A PF value of 0% may indicate that there is no use of inheritance and polymorphism. A PF value well above 10% is considered very high and reduces quality benefits (Abreu et al., 1996). Polymorphism can be used to a reasonable extent to keep the code clear, but excessive use of polymorphic code may be too complex to understand (Weblink 1). There are conflicting recommendations for the acceptable values of PF. It is recommended that PF>=10% but Abreu and Melo suggested that PF values above 10% are very high and reduces quality benefits (Abreu et al., 1996). Polymorphism factor should lie in a reasonable range with a lower and an upper bound. 4.3 Summary Heuristic priorities serve as a management tool for designers during evaluation. They permit designers to focus upon the problems that are deemed most damaging to system s Heuristics Based On Object Oriented Metrics Page 64
13 maintainability. Design heuristics provide a vocabulary for common problems occurring in object oriented design documents. This chapter focused on two most popular metric suites for object oriented design. CK Metrics suite is the most popularly known metric suite for object oriented design which consist of Weighted Methods Per Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Coupling between Object Classes (CBO), Response for a Class (RFC), Lack of Cohesion in Methods (LCOM). MOOD metrics are another well known metrics suite for Object-Oriented design. Each metric is associated with important concepts of the object-oriented paradigm such as encapsulation (MHF and AHF), inheritance (MIF and AIF), polymorphism (PF) and association (CF). A wide variety of object oriented metrics have been proposed to assess the testability of an object oriented system. Most of the metrics focus on encapsulation, inheritance, class complexity and polymorphism. CK metrics suite is a set of six metrics which capture different aspects of an OO design and these metrics mainly focus on the class and the class hierarchy. CK metrics suite includes complexity, coupling and cohesion as well. On the other hand, MOOD metrics focus on system level which includes encapsulation, inheritance, polymorphism and message passing. Heuristics Based On Object Oriented Metrics Page 65
Research Article ISSN:
Research Article [Agrawal, 1(3): May, 2012] IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY Use Of Software Metrics To Measure And Improve The Quality Of The Software Design
More informationObject Oriented Metrics. Impact on Software Quality
Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines
More informationTechnical Metrics for OO Systems
Technical Metrics for OO Systems 1 Last time: Metrics Non-technical: about process Technical: about product Size, complexity (cyclomatic, function points) How to use metrics Prioritize work Measure programmer
More informationQuantify the project. Better Estimates. Resolve Software crises
Quantify the project Quantifying schedule, performance,work effort, project status Helps software to be compared and evaluated Better Estimates Use the measure of your current performance to improve your
More informationEffective Modular Design
CSC40232: SOFTWARE ENGINEERING Professor: Jane Cleland Huang Metrics sarec.nd.edu/courses/se2017 Department of Computer Science and Engineering Effective Modular Design Modular design Reduces complexity
More informationObject Oriented Measurement
Object Oriented Measurement Diego Chaparro González dchaparro@acm.org Student number: 59881P 17th January 2003 Abstract This document examines the state of art in software products measurement, with focus
More informationApplication of Object Oriented Metrics to Java and C Sharp: Comparative Study
International Journal of Computer Applications (9 888) Volume 64 No., February Application of Object Oriented Metrics to Java and C Sharp: Comparative Study Arti Chhikara Maharaja Agrasen College,Delhi,India
More informationReusability Metrics for Object-Oriented System: An Alternative Approach
Reusability Metrics for Object-Oriented System: An Alternative Approach Parul Gandhi Department of Computer Science & Business Administration Manav Rachna International University Faridabad, 121001, India
More informationMeasuring the quality of UML Designs
Measuring the quality of UML Designs Author: Mr. Mark Micallef (mmica@cs.um.edu.mt) Supervisor: Dr. Ernest Cachia (eacaci@cs.um.edu.mt) Affiliation: University of Malta (www.um.edu.mt) Keywords Software
More informationCHAPTER 3 ROLE OF OBJECT-ORIENTED METRICS IN SOFTWARE MEASUREMENT
CHAPTER 3 ROLE OF OBJECT-ORIENTED METRICS IN SOFTWARE MEASUREMENT 3.1 Introduction 3.2 Object-Oriented Metrics 3.2.1 CK Metrics 3.2.2 Metrics by Li and Henry 3.2.3 Metrics by Li 3.2.4 Metrics by Sharble
More informationRisk-based Object Oriented Testing
Risk-based Object Oriented Testing Linda H. Rosenberg, Ph.D. Ruth Stapko Albert Gallo NASA GSFC SATC NASA, Unisys SATC NASA, Unisys Code 302 Code 300.1 Code 300.1 Greenbelt, MD 20771 Greenbelt, MD 20771
More informationA Study of Software Metrics
International Journal of Computational Engineering & Management, Vol. 11, January 2011 www..org 22 A Study of Software Metrics Gurdev Singh 1, Dilbag Singh 2, Vikram Singh 3 1 Assistant Professor, JIET
More informationCHAPTER 2 LITERATURE REVIEW
26 CHAPTER 2 LITERATURE REVIEW 2.1 CLASSICAL METRICS FOR COMPLEXITY In the field of software metrics there has been research on metrics to predict fault-proneness, change-proneness, identifying refactorable
More informationAn Object-Oriented Metrics Suite for Ada 95
An Object-Oriented Metrics Suite for Ada 95 William W. Pritchett IV DCS Corporation 133 Braddock Place Alexandria, VA 22314 73.683.843 x726 wpritche@dcscorp.com 1. ABSTRACT Ada 95 added object-oriented
More informationDesign Metrics for Object-Oriented Software Systems
ECOOP 95 Quantitative Methods Workshop Aarhus, August 995 Design Metrics for Object-Oriented Software Systems PORTUGAL Design Metrics for Object-Oriented Software Systems Page 2 PRESENTATION OUTLINE This
More informationTowards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components
2009 International Symposium on Computing, Communication, and Control (ISCCC 2009) Proc.of CSIT vol.1 (2011) (2011) IACSIT Press, Singapore Towards Cohesion-based Metrics as Early Quality Indicators of
More informationEVALUATING IMPACT OF INHERITANCE ON OBJECT ORIENTED SOFTWARE METRICS
CHAPTER-4 EVALUATING IMPACT OF INHERITANCE ON OBJECT ORIENTED SOFTWARE METRICS 4.1 Introduction Software metrics are essential to software engineering for measuring software complexity and quality, estimating
More informationInvestigation of Metrics for Object-Oriented Design Logical Stability
Investigation of Metrics for Object-Oriented Design Logical Stability Mahmoud O. Elish Department of Computer Science George Mason University Fairfax, VA 22030-4400, USA melish@gmu.edu Abstract As changes
More informationAnalysis of Reusability of Object-Oriented System using CK Metrics
Analysis of Reusability of Object-Oriented System using CK Metrics Brij Mohan Goel Research Scholar, Deptt. of CSE SGVU, Jaipur-302025, India Pradeep Kumar Bhatia Deptt. of CSE., G J University of Science
More informationANALYSIS OF OBJECT ORIENTED SOFTWARE METRICS
International Journal of Emerging Technology and Innovative Engineering Volume I, Issue7, July 2015 (ISSN: 2394 6598) ANALYSIS OF OBJECT ORIENTED SOFTWARE METRICS Pooja Arora Assistant Professor, BCIIT(affiliated
More informationSoftware Quality Estimation through Object Oriented Design Metrics
100 Software Quality Estimation through Object Oriented Design Metrics Deepak Arora, Pooja Khanna and Alpika Tripathi, Shipra Sharma and Sanchika Shukla Faculty of Engineering, Department of Computer Science,
More informationFOR0383 Software Quality Assurance
This method seems much, much bigger than all the other methods. FOR0383 Software Quality Assurance Lecture 15 Code metrics "You cannot control what you cannot measure." Tom DeMarco 2/11/2009 Dr Andy Brooks
More informationEnhancing Mood Metrics Using Encapsulation
Proceedings of the 8th WSEAS International Conference on Automation and Information, Vancouver, Canada, June 9-2, 2007 252 Enhancing Mood Metrics Using Encapsulation SUNINT SAINI, MEHAK AGGARWAL Department
More informationMoonzoo Kim CS Division of EECS Dept.
Chapter 15 Product Metrics Moonzoo Kim CS Division of EECS Dept. KAIST 1 Overview of Ch15. Product Metrics 15.1 Software Quality 15.2 A Framework for Product Metrics 15.3 Metrics for the Analysis Model
More informationMetrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University
and OO OO and OO SE 3S03 - Tutorial 12 Department of Computer Science McMaster University Complexity Lorenz CK Week of Apr 04, 2016 Acknowledgments: The material of these slides is based on [1] (chapter
More informationObject-Oriented Design Quality Models A Survey and Comparison
Object-Oriented Design Quality Models A Survey and Comparison Mohamed El-Wakil Ali El-Bastawisi Mokhtar Boshra Information Systems Department {Mohamed.elwakil@acm.org, ali.elbastawisi@link.net, mbriad@cu.edu.eg}
More informationSoftware Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza
Software Design & Evolution Lecture 04 Michele Lanza Metrics & Problem Detection Metrics? Don t trust them Michele Lanza & Radu Marinescu Object-Oriented Metrics in Practice Using Software Metrics to Characterize,
More informationMetrics in assessing the quality and evolution of jedit
Metrics in assessing the quality and evolution of jedit Ilona Bluemke, Rafał Roguski Institute of Computer Science, Warsaw University of Technology Nowowiejska 15/19, 00-665 Warsaw, Poland I.Bluemke@ii.pw.edu.pl
More informationQuality Metrics Tool for Object Oriented Programming
Quality Metrics Tool for Object Oriented Programming Mythili Thirugnanam * and Swathi.J.N. Abstract Metrics measure certain properties of a software system by mapping them to numbers (or to other symbols)
More informationIntroduction to software metics
Introduction to software metics Alexander Voigt Version_05_21 Technische Universität Dresden Institut für Kern- und Teilchenphysik /01234/546 78994:!"##$%&'$()*+,%&-,,$)*.$ IKTP Computing Kaffee 12 December
More informationClass Break Point Determination Using CK Metrics Thresholds
P a g e 73 Vol.10 Issue 14 (Ver.1.0) November 2010 Class Break Point Determination Using CK Metrics Thresholds Dr. E. Chandra 1, P. Edith Linda 2 GJCST Classification D.2.8 Abstract-The design and development
More informationObject Oriented Design Metrics for Predicting Fault Proneness using Naïve Bayes and Random Forest
Proc. of Int. Conf. on Advances in Communication, Network, and Computing, CNC Object Oriented Design Metrics for Predicting Fault Proneness using Naïve Bayes and Random Forest Vaishnavi.J 1, Anousouya
More informationAnalysis of Object Oriented Metrics on a Java Application
Analysis of Object Oriented Metrics on a Java Application D.I. George Amalarethinam Associate Professor Department of Computer Science Jamal Mohamed College Tiruchirappali, India P.H. Maitheen Shahul Hameed
More informationChapter 5 Object-Oriented Programming
Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares
More informationStatic Metrics. Feature Brief
SOFTWARE QUALITY ASSURANCE TOOLS & TECHNOLOGY PROFESSIONAL SERVICES ACADEMY P a g e 1 Feature Brief Static Metrics Cantata provides a full and unique suite of intelligent testing capabilities for the efficient
More informationEffectiveness of software metrics for object-oriented system
Available online at www.sciencedirect.com Procedia Technology 6 (2012 ) 420 427 2nd International Conference on Communication, Computing & Security [ICCCS-2012] Effectiveness of software metrics for object-oriented
More informationCHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL
64 CHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL 4.1 INTRODUCTION Customers measure the aspects of the final product to determine whether it meets the requirements and provides sufficient quality.
More informationCHAPTER 5 GENERAL OOP CONCEPTS
CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should
More informationHow to Realization Architectural testing model using Measurement Metrics
How to Realization Architectural testing model using Measurement Metrics Lalji Prasad 1, Sarita Singh Bhadauria 2 1 TRUBA College of Engineering & Technology/ Computer Science &Engineering, INDORE, INDIA
More informationUsing Metrics To Manage Software Risks. 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality
Using Metrics To Manage Software Risks 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality 1 1. Introduction Definition Measurement is the process by which
More informationVragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity
Vragen Intra-modular complexity measures Wat wordt bedoeld met het ontwerpsprincipe: Anticipate obsolence? Wat is het voordeel van strong cohesion en weak coupling? Wat is het gevolg van hoge complexiteit
More informationA Comparative Study on State Programming: Hierarchical State Machine (HSM) Pattern and State Pattern
A Comparative Study on State Programming: Hierarchical State Machine (HSM) Pattern and State Pattern A. Cüneyd Tantuğ and Özdemir Kavak Abstract State machines can be implemented by using several methods.
More informationInfluence of Design Patterns Application on Quality of IT Solutions
Influence of Design Patterns Application on Quality of IT Solutions NADINA ZAIMOVIC, DZENANA DONKO Department for Computer Science and Informatics Faculty of Electrical Engineering, University of Sarajevo
More informationAn Empirical Study on Object-Oriented Metrics
An Empirical Study on Object-Oriented Metrics Mei-Huei Tang Ming-Hung Kao Mei-Hwa Chen Computer Science Department SUNY at Albany Albany, NY 12222 (meitang, kao, mhc)@cs.albany.edu Abstract The objective
More informationObject-oriented metrics 1
Advanced Object-Oriented Design Lecture 4 Object-oriented metrics Bartosz Walter 1. Motivation and goals 2. omplexity metrics 3. Metrics for Object-Oriented Design (MOOD suite)
More informationEmpirical Analysis of the Reusability of Object-Oriented Program Code in Open-Source Software
Empirical Analysis of the Reusability of Object-Oriented Program Code in Open-Source Software Fathi Taibi Abstract Measuring the reusability of Object-Oriented (OO) program code is important to ensure
More informationAnalysis of Various Software Metrics Used To Detect Bad Smells
The International Journal Of Engineering And Science (IJES) Volume 5 Issue 6 Pages PP -14-20 2016 ISSN (e): 2319 1813 ISSN (p): 2319 1805 Analysis of Various Software Metrics Used To Detect Bad Smells
More information1 Introduction. Abstract
An MVC-based Analysis of Object-Oriented System Prototyping for Banking Related GUI Applications Correlationship between OO Metrics and Efforts for Requirement Change Satoru Uehara, Osamu Mizuno, Yumi
More informationEmpirical Evaluation and Critical Review of Complexity Metrics for Software Components
Proceedings of the 6th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Corfu Island, Greece, February 16-19, 2007 24 Empirical Evaluation and Critical Review of Complexity Metrics
More informationVisualizing Software Metrics for increased Refactoring
Visualizing Software Metrics for increased Refactoring Paul Steneram Bibby ada08pst@student.lu.se Fredrik Palmquist dat11fpa@student.lu.se March 7, 2016 Keywords: Agile Development, Code Complexity, Refactoring
More informationA Hierarchical Model for Object- Oriented Design Quality Assessment
A Hierarchical Model for Object- Oriented Design Quality Assessment IEEE Transactions on Software Engineering (2002) Jagdish Bansiya and Carl G. Davis 2013-08-22 Yoo Jin Lim Contents Introduction Background
More informationPREDICTION OF SOFTWARE DEFECTS USING OBJECT-ORIENTED METRICS
International Journal of Civil Engineering and Technology (IJCIET) Volume 9, Issue 1, January 2018, pp. 889 899, Article ID: IJCIET_09_01_087 Available online at http://http://www.iaeme.com/ijciet/issues.asp?jtype=ijciet&vtype=9&itype=1
More informationInheritance Metrics: What do they Measure?
Inheritance Metrics: What do they Measure? G. Sri Krishna and Rushikesh K. Joshi Department of Computer Science and Engineering Indian Institute of Technology Bombay Mumbai, 400 076, India Email:{srikrishna,rkj}@cse.iitb.ac.in
More informationUsability Evaluation of Software Testing Based on Analytic Hierarchy Process Dandan HE1, a, Can WANG2
4th International Conference on Machinery, Materials and Computing Technology (ICMMCT 2016) Usability Evaluation of Software Testing Based on Analytic Hierarchy Process Dandan HE1, a, Can WANG2 1,2 Department
More informationEvaluation of a Business Application Framework Using Complexity and Functionality Metrics
Evaluation of a Business Application Framework Using Complexity and Functionality Metrics Hikaru Fujiwara 1, Shinji Kusumoto 1, Katsuro Inoue 1, Toshifusa Ootsubo 2 and Katsuhiko Yuura 2 1 Graduate School
More informationHOW AND WHEN TO FLATTEN JAVA CLASSES?
HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented
More informationA Critical Analysis of Current OO Design Metrics
A Critical Analysis of Current OO Design Metrics Tobias Mayer & Tracy Hall Centre for Systems and Software Engineering (CSSE) South Bank University, London, UK Abstract Chidamber and Kemerer (C&K) outlined
More informationKeywords: OLC, CLC. 2015, IJARCSSE All Rights Reserved Page 1
Volume 5, Issue 3, March 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Special Issue
More informationWhat are Metrics?! Functions, that assign a precise numerical value to. Detecting Design Problems using Metrics
Detecting Design Problems using Metrics What are Metrics?! Functions, that assign a precise numerical value to! Products (Software)! Resources (Staff, Tools, Hardware)! Processes (Software development).
More informationSOFTWARE ASSESSMENT USING OBJECT METRICS
Key words: object metrics, metrics measuring tools, software assessment, software evolution Ilona BLUEMKE*, Rafał ROGUSKI* SOFTWARE ASSESSMENT USING OBJECT METRICS Adequate metrics of object-oriented software
More informationIntroduction to Object Oriented Analysis and Design
A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,
More informationDesign and code coupling assessment based on defects prediction. Part 1
Computer Science Journal of Moldova, vol.21, no.2(62), 2013 Design and code coupling assessment based on defects prediction. Part 1 Arwa Abu Asad, Izzat Alsmadi Abstract The article discusses an application
More informationA Complete and Comprehensive Metrics Suite for Object-Oriented Design Quality Assessment
, pp.173-188 http://dx.doi.org/10.14257/ijseia.2014.8.2.17 A Complete and Comprehensive Metrics Suite for Object-Oriented Design Quality Assessment K.P. Srinivasan 1 and Dr. T.Devi 2 1 Associate Professor
More informationAn Approach for Quality Control Management in Object Oriented Projects Development
J. Basic. Appl. Sci. Res., 3(1s)539-544, 2013 2013, TextRoad Publication ISSN 2090-4304 Journal of Basic and Applied Scientific Research www.textroad.com An Approach for Quality Control Management in Object
More information2IS55 Software Evolution. Software metrics (2) Alexander Serebrenik
2IS55 Software Evolution Software metrics (2) Alexander Serebrenik Administration Assignment 5: Deadline: May 22 1-2 students Next week NO CLASS Next class May 15 / SET / W&I 2-5-2012 PAGE 1 Sources /
More informationSNS College of Technology, Coimbatore, India
Support Vector Machine: An efficient classifier for Method Level Bug Prediction using Information Gain 1 M.Vaijayanthi and 2 M. Nithya, 1,2 Assistant Professor, Department of Computer Science and Engineering,
More informationSoftware Metrics and Design Principles. What is Design?
Software Metrics and Design Principles Chapters 5,8 What is Design? Design is the process of creating a plan or blueprint to follow during actual construction Design is a problem-solving activity that
More informationA New Weighted Composite Complexity Measure for Object-Oriented Systems
A New Weighted Composite Complexity Measure for Obect-Oriented Systems Usha Chhillar, Shuchita Bhasin Department of Computer Science, Kurukshetra University, Kurukshetra, Haryana, India ABSTRACT Controlling
More informationAn Empirical Investigation of Inheritance Trends in Java OSS Evolution. by Emal Nasseri
An Empirical Investigation of Inheritance Trends in Java OSS Evolution A Thesis submitted for a degree of Doctor of Philosophy by Emal Nasseri Department of Information Systems, Computing and Mathematics
More informationReport and Opinion 2014;6(10) Measurement Of Software Complexity In Object Oriented Systems Abstract
Measurement Of Software Complexity In Object Oriented Systems Abstract Hari Om Sharan 1, Garima 1, Md. Haroon 1, and Rajeev Kumar 2 1 Deptt. of Computer Science, COE, Teerthankar Mahaveer University, Moradabad,
More informationFrom Module To Objects
From Module To Objects It is very difficult to maintain a large monolithic block of code The solution is to divide the code into smaller pieces, called modules What is a Module? A small and manageable
More informationThresholds for Software Quality Metrics in Open Source Android Projects
Thresholds for Software Quality Metrics in Open Source Android Projects Mile Stojkovski Applied Computer Science Submission date: December 2017 Supervisor: Deepti Mishra, IDI Co-supervisor: Mariusz Nowostawski,
More informationImportance of Software Metrics to Quantify of Software Design and Source Code Quality
Importance of Software Metrics to Quantify of Software Design and Source Code Quality Siddharth Jain, Pradeep Baniya Asstistant. Professors, IIST-II Abstract-The vital role of software process improvement
More informationQuality measurement of programming examples. Extension for programming editor BlueJ
Quality measurement of programming examples. Extension for programming editor BlueJ Janusz Polok June 10, 2008 Master s Thesis in Computing Science, 20 credits Supervisor at CS-UmU: Jürgen Börstler Examiner:
More informationPrediction of Software Readiness Using Neural Network
Prediction of Software Readiness Using Neural Network Jon T.S. Quah, Mie Mie Thet Thwin Abstract-- In this paper, we explore the behaviour of neural network in predicting software readiness. Our neural
More informationQuality measurement of programming examples. Extension for programming editor BlueJ
Quality measurement of programming examples. Extension for programming editor BlueJ Janusz Polok August 17, 2010 Master s Thesis in Computing Science, 30 ECTS credits Supervisor at CS-UmU: Jürgen Börstler
More informationProcedia Computer Science
Procedia Computer Science 00 (2009) 000 000 Procedia Computer Science www.elsevier.com/locate/procedia INSODE 2011 Theoretical Analysis for the Impact of Including Special Methods in Lack-of-Cohesion Computation
More informationApplication of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software
Application of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software Nasib Singh Gill and Meenakshi Sharma Department of Computer Science & Applications Maharshi Dayanand University,
More informationTaxonomy Dimensions of Complexity Metrics
96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,
More informationPatterns and Testing
and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3
More informationImproving the quality of software cohesion metrics through dynamic analysis
Improving the quality of software cohesion metrics through dynamic analysis Ravneet kaur, Amritsar Department of Computer Science, Lovely Professional university, Phagwara, India Abstract - Class cohesion
More informationObject Oriented Features. Inheritance. Inheritance. CS257 Computer Science I Kevin Sahr, PhD. Lecture 10: Inheritance
CS257 Computer Science I Kevin Sahr, PhD Lecture 10: Inheritance 1 Object Oriented Features For a programming language to be called object oriented it should support the following features: 1. objects:
More informationSoftware Development. Modular Design and Algorithm Analysis
Software Development Modular Design and Algorithm Analysis Data Encapsulation Encapsulation is the packing of data and functions into a single component. The features of encapsulation are supported using
More informationPrincipal Component Analysis of Lack of Cohesion in Methods (LCOM) metrics
Principal Component Analysis of Lack of Cohesion in Methods (LCOM) metrics Anuradha Lakshminarayana Timothy S.Newman Department of Computer Science University of Alabama in Huntsville Abstract In this
More informationAn Empirical and Analytical View of New Inheritance Metric for Object-Oriented Design
vailable Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 4, Issue. 6, June 2015, pg.804
More informationJ2EE Development Best Practices: Improving Code Quality
Session id: 40232 J2EE Development Best Practices: Improving Code Quality Stuart Malkin Senior Product Manager Oracle Corporation Agenda Why analyze and optimize code? Static Analysis Dynamic Analysis
More information2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik
2IS55 Software Evolution Software metrics (3) Alexander Serebrenik Sources / SET / W&I 19-3-2013 PAGE 1 From imperative to OO All metrics so far were designed for imperative languages Applicable for OO
More informationEffects of Dependency Injection on Maintainability. Kate Razina
Effects of Dependency Injection on Maintainability Kate Razina Overview Introduction Maintainability Dependency Injection Hypothesis Research Measuring Maintainability Data Collection Results Conclusion
More informationA Hybrid Set of Complexity Metrics for Large-scale Object-oriented Software Systems
A Hybrid Set of Complexity Metrics for Large-scale Object-oriented Software Systems Yutao Ma 1,2,3 ( 马于涛 ), Member, ACM, CCF, Keqing He 1,2 ( 何克清 ), Senior Member, CCF, IEEE, Bing Li 1,2 ( 李兵 ), Senior
More informationEnhancing Object Oriented Coupling Metrics w.r.t. Connectivity Patterns
Enhancing Object Oriented Coupling Metrics w.r.t. Connectivity Patterns Thesis submitted in partial fulfillment of the requirements for the award of degree of Master of Engineering in Software Engineering
More informationA Hybrid Set of Complexity Metrics for Large-Scale Object-Oriented Software Systems
Ma YT, He KQ, Li B et al. A hybrid set of complexity metrics for large-scale object-oriented software systems. JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY 25(6): 1184 1201 Nov. 2010. DOI 10.1007/s11390-010-1094-3
More informationObject Relationships
Object Relationships Objects can work together in three different types of relationships: Uses: An object can use another to do some work (association). Composition: A complex object may be composed of
More informationIntroduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 2.4 Graph Coverage for Design Elements Paul Ammann & Jeff Offutt www.introsoftwaretesting.com OO Software and Designs Emphasis on modularity and reuse puts complexity
More informationARiSA First Contact Analysis
ARiSA First Contact Analysis Applied Research In System Analysis - ARiSA You cannot control what you cannot measure Tom DeMarco Software Grail Version 1.3 Programming Language Java 1.4 Date 2 nd of December,
More informationObject-Oriented Concepts and Design Principles
Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation
More informationACICE-2013 ISSN: ; e-issn
A comparative study on different object oriented metrics D.J.SAMATHA NAIDU 1, P.CHITTI BABU 2 1 MCA Department, Annamacharya PG College of Computer Studies, Rajampet, Kadapa,India 2 MCA Department, Annamacharya
More informationCHAPTER 9 DESIGN ENGINEERING. Overview
CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative
More informationSoftware Metrics. Lines of Code
Software Metrics Naveed Arshad Lines of Code The total number of lines of executable code in the software program or module being measured But lines of code could mean anything e.g. count only executable
More informationREVERSE SOFTWARE ENGINEERING AND REENGINEERING TO DETECT PLAGIARISM IN JAVA PROGRAMS
REVERSE SOFTWARE ENGINEERING AND REENGINEERING TO DETECT PLAGIARISM IN JAVA PROGRAMS By Khair Eddin Muawiyah Sabri Supervisor Dr. Jubair J. Al-Ja'afer, Prof This Thesis was submitted in Partial Fulfillment
More informationINTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT
INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 6367(Print), ISSN 0976 6367(Print) ISSN 0976 6375(Online)
More information