CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS

Size: px
Start display at page:

Download "CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS"

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 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 information

Object Oriented Metrics. Impact on Software Quality

Object 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 information

Technical Metrics for OO Systems

Technical 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 information

Quantify the project. Better Estimates. Resolve Software crises

Quantify 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 information

Effective Modular Design

Effective 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 information

Object Oriented Measurement

Object 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 information

Application of Object Oriented Metrics to Java and C Sharp: Comparative Study

Application 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 information

Reusability Metrics for Object-Oriented System: An Alternative Approach

Reusability 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 information

Measuring the quality of UML Designs

Measuring 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 information

CHAPTER 3 ROLE OF OBJECT-ORIENTED METRICS IN SOFTWARE MEASUREMENT

CHAPTER 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 information

Risk-based Object Oriented Testing

Risk-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 information

A Study of Software Metrics

A 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 information

CHAPTER 2 LITERATURE REVIEW

CHAPTER 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 information

An Object-Oriented Metrics Suite for Ada 95

An 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 information

Design Metrics for Object-Oriented Software Systems

Design 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 information

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components

Towards 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 information

EVALUATING IMPACT OF INHERITANCE ON OBJECT ORIENTED SOFTWARE METRICS

EVALUATING 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 information

Investigation of Metrics for Object-Oriented Design Logical Stability

Investigation 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 information

Analysis of Reusability of Object-Oriented System using CK Metrics

Analysis 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 information

ANALYSIS OF OBJECT ORIENTED SOFTWARE METRICS

ANALYSIS 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 information

Software Quality Estimation through Object Oriented Design Metrics

Software 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 information

FOR0383 Software Quality Assurance

FOR0383 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 information

Enhancing Mood Metrics Using Encapsulation

Enhancing 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 information

Moonzoo Kim CS Division of EECS Dept.

Moonzoo 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 information

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University

Metrics 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 information

Object-Oriented Design Quality Models A Survey and Comparison

Object-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 information

Software Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza

Software 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 information

Metrics in assessing the quality and evolution of jedit

Metrics 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 information

Quality Metrics Tool for Object Oriented Programming

Quality 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 information

Introduction to software metics

Introduction 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 information

Class Break Point Determination Using CK Metrics Thresholds

Class 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 information

Object Oriented Design Metrics for Predicting Fault Proneness using Naïve Bayes and Random Forest

Object 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 information

Analysis of Object Oriented Metrics on a Java Application

Analysis 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 information

Chapter 5 Object-Oriented Programming

Chapter 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 information

Static Metrics. Feature Brief

Static 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 information

Effectiveness of software metrics for object-oriented system

Effectiveness 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 information

CHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL

CHAPTER 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 information

CHAPTER 5 GENERAL OOP CONCEPTS

CHAPTER 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 information

How to Realization Architectural testing model using Measurement Metrics

How 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 information

Using 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 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 information

Vragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity

Vragen. 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 information

A 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 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 information

Influence of Design Patterns Application on Quality of IT Solutions

Influence 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 information

An Empirical Study on Object-Oriented Metrics

An 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 information

Object-oriented metrics 1

Object-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 information

Empirical 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 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 information

Analysis of Various Software Metrics Used To Detect Bad Smells

Analysis 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 information

1 Introduction. Abstract

1 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 information

Empirical Evaluation and Critical Review of Complexity Metrics for Software Components

Empirical 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 information

Visualizing Software Metrics for increased Refactoring

Visualizing 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 information

A Hierarchical Model for Object- Oriented Design Quality Assessment

A 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 information

PREDICTION OF SOFTWARE DEFECTS USING OBJECT-ORIENTED METRICS

PREDICTION 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 information

Inheritance Metrics: What do they Measure?

Inheritance 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 information

Usability Evaluation of Software Testing Based on Analytic Hierarchy Process Dandan HE1, a, Can WANG2

Usability 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 information

Evaluation of a Business Application Framework Using Complexity and Functionality Metrics

Evaluation 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 information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW 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 information

A Critical Analysis of Current OO Design Metrics

A 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 information

Keywords: OLC, CLC. 2015, IJARCSSE All Rights Reserved Page 1

Keywords: 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 information

What are Metrics?! Functions, that assign a precise numerical value to. Detecting Design Problems using Metrics

What 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 information

SOFTWARE ASSESSMENT USING OBJECT METRICS

SOFTWARE 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 information

Introduction to Object Oriented Analysis and Design

Introduction 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 information

Design and code coupling assessment based on defects prediction. Part 1

Design 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 information

A Complete and Comprehensive Metrics Suite for Object-Oriented Design Quality Assessment

A 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 information

An Approach for Quality Control Management in Object Oriented Projects Development

An 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 information

2IS55 Software Evolution. Software metrics (2) Alexander Serebrenik

2IS55 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 information

SNS College of Technology, Coimbatore, India

SNS 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 information

Software Metrics and Design Principles. What is Design?

Software 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 information

A New Weighted Composite Complexity Measure for Object-Oriented Systems

A 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 information

An Empirical Investigation of Inheritance Trends in Java OSS Evolution. by Emal Nasseri

An 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 information

Report and Opinion 2014;6(10) Measurement Of Software Complexity In Object Oriented Systems Abstract

Report 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 information

From Module To Objects

From 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 information

Thresholds for Software Quality Metrics in Open Source Android Projects

Thresholds 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 information

Importance 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 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 information

Quality measurement of programming examples. Extension for programming editor BlueJ

Quality 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 information

Prediction of Software Readiness Using Neural Network

Prediction 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 information

Quality measurement of programming examples. Extension for programming editor BlueJ

Quality 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 information

Procedia Computer Science

Procedia 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 information

Application 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 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 information

Taxonomy Dimensions of Complexity Metrics

Taxonomy 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 information

Patterns and Testing

Patterns 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 information

Improving the quality of software cohesion metrics through dynamic analysis

Improving 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 information

Object Oriented Features. Inheritance. Inheritance. CS257 Computer Science I Kevin Sahr, PhD. Lecture 10: Inheritance

Object 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 information

Software Development. Modular Design and Algorithm Analysis

Software 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 information

Principal Component Analysis of Lack of Cohesion in Methods (LCOM) metrics

Principal 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 information

An Empirical and Analytical View of New Inheritance Metric for Object-Oriented Design

An 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 information

J2EE Development Best Practices: Improving Code Quality

J2EE 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 information

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik

2IS55 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 information

Effects of Dependency Injection on Maintainability. Kate Razina

Effects 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 information

A 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 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 information

Enhancing Object Oriented Coupling Metrics w.r.t. Connectivity Patterns

Enhancing 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 information

A 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 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 information

Object Relationships

Object 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 information

Introduction 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 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 information

ARiSA First Contact Analysis

ARiSA 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 information

Object-Oriented Concepts and Design Principles

Object-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 information

ACICE-2013 ISSN: ; e-issn

ACICE-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 information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 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 information

Software Metrics. Lines of Code

Software 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 information

REVERSE SOFTWARE ENGINEERING AND REENGINEERING TO DETECT PLAGIARISM IN JAVA PROGRAMS

REVERSE 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 information

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT

INTERNATIONAL 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