Chidamber & Kemerer Suite of Metrics

Slides:



Advertisements
Similar presentations
SPEC Workshop 2008 Laboratory for Computer Architecture1/27/2008 On the Object Orientedness of C++ programs in SPEC CPU 2006 Ciji Isen & Lizy K. John University.
Advertisements

Metrics for OO Design Distinct & measurable characteristics of OO design:- Size:-it is defined as – population,volume,length & functionality Population.
CLUSTERING SUPPORT FOR FAULT PREDICTION IN SOFTWARE Maria La Becca Dipartimento di Matematica e Informatica, University of Basilicata, Potenza, Italy
Software Metrics for Object Oriented Design
Presentation of the Quantitative Software Engineering (QuaSE) Lab, University of Alberta Giancarlo Succi Department of Electrical and Computer Engineering.
MetriCon 2.0 Correlating Automated Static Analysis Alert Density to Reported Vulnerabilities in Sendmail Michael Gegick, Laurie Williams North Carolina.
Towards Logistic Regression Models for Predicting Fault-prone Code across Software Projects Erika Camargo and Ochimizu Koichiro Japan Institute of Science.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
1 Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object-Oriented Classes Developed Using Highly Iterative or Agile.
1 Predicting Bugs From History Software Evolution Chapter 4: Predicting Bugs from History T. Zimmermann, N. Nagappan, A Zeller.
Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
Figures – Chapter 24.
Metrics for Object Oriented Design Shyam R. Chidamber Chris F. Kemerer Presented by Ambikadevi Damodaran.
Applying and Interpreting Object Oriented Metrics
March 25, R. McFadyen1 Metrics Fan-in/fan-out Lines of code Cyclomatic complexity Comment percentage Length of identifiers Depth of conditional.
Nov R. McFadyen1 Metrics Fan-in/fan-out Lines of code Cyclomatic complexity* Comment percentage Length of identifiers Depth of conditional.
Object Oriented Design
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Analysis of CK Metrics “Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults” Yuming Zhou and Hareton Leung,
Design Metrics Software Engineering Fall 2003 Aditya P. Mathur Last update: October 28, 2003.
© S. Demeyer, S. Ducasse, O. Nierstrasz Duplication.1 7. Problem Detection Metrics  Software quality  Analyzing trends Duplicated Code  Detection techniques.
Object-Oriented Metrics
Empirical Validation of OO Metrics in Two Different Iterative Software Processes Mohammad Alshayeb Information and Computer Science Department King Fahd.
March R. McFadyen1 Software Metrics Software metrics help evaluate development and testing efforts needed, understandability, maintainability.
1 Complexity metrics  measure certain aspects of the software (lines of code, # of if-statements, depth of nesting, …)  use these numbers as a criterion.
Predicting Class Testability using Object-Oriented Metrics M. Bruntink and A. van Deursen Presented by Tom Chappell.
Object Oriented Metrics XP project group – Saskia Schmitz.
1 Object-Oriented Metrics Renaat Verbruggen School of Computing, Dublin City University.
Database Complexity Metrics Brad Freriks SWE6763, Spring 2011.
Comp 587 Parker Li Bobby Kolski. Automated testing tools assist software engineers to gauge the quality of software by automating the mechanical aspects.
Software Metrics.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
Japan Advanced Institute of Science and Technology
By: Eng. Mohamed Awad Elshaarawy Supervisors: Prof. Dr. Ismail Taha, Dr. Haitham S.Hamza Date: 8 th Jul, 2013 Towards a Unified Framework for Measuring.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Measurement & Metrics
The CK Metrics Suite. Weighted Methods Per Class b To use this metric, the software engineer must repeat this process n times, where n is the number of.
1 OO Metrics-Sept2001 Principal Components of Orthogonal Object-Oriented Metrics Victor Laing SRS Information Services Software Assurance Technology Center.
The CK Metrics Suite. Weighted Methods Per Class b To use this metric, the software engineer must repeat this process n times, where n is the number of.
A Validation of Object-Oriented Design Metrics As Quality Indicators Basili et al. IEEE TSE Vol. 22, No. 10, Oct. 96.
Concepts of Software Quality Yonglei Tao 1. Software Quality Attributes  Reliability  correctness, completeness, consistency, robustness  Testability.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
An Automatic Software Quality Measurement System.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Measurement and quality assessment Framework for product metrics – Measure, measurement, and metrics – Formulation, collection, analysis, interpretation,
Daniel Liu & Yigal Darsa - Presentation Early Estimation of Software Quality Using In-Process Testing Metrics: A Controlled Case Study Presenters: Yigal.
Object-Oriented (OO) estimation Martin Vigo Gabriel H. Lozano M.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
Object Oriented Metrics
Software Engineering Lecture 19: Object-Oriented Testing & Technical Metrics.
1 OO Technical Metrics CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
Design Metrics CS 406 Software Engineering I Fall 2001 Aditya P. Mathur Last update: October 23, 2001.
Architecting Complexity HOW UNDERSTANDING COMPLEXITY PROMOTES SIMPLICITY.
Object Oriented Metrics
Software Metrics Presented By Dr. Iyad Alazzam
Course Notes Set 12: Object-Oriented Metrics
Design Characteristics and Metrics
Object-Oriented Metrics
CS427: Software Engineering I
Design Metrics Software Engineering Fall 2003
Design Metrics Software Engineering Fall 2003
Information flow-Test coverage measure
Mei-Huei Tang October 25, 2000 Computer Science Department SUNY Albany
Predicting Fault-Prone Modules Based on Metrics Transitions
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Chapter 8: Design: Characteristics and Metrics
Presentation transcript:

Chidamber & Kemerer Suite of Metrics Japan Advanced Institute of Science and Technology School of Information Science Chidamber & Kemerer Suite of Metrics Camargo Cruz Ana Erika Supervisor: Ochimizu Koichiro May 2008

CK Metrics: Outline Objective Definition & Guidelines Thresholds CK in the literature (other uses)

CK Metrics: Objective CK metrics were designed [1]: To measure unique aspects of the OO approach. To measure complexity of the design. To improve the development of the software HOW?

CK Metrics: Objective SW development Improvement Managers can improve the development of the SW by : Analysing CK metrics through the identification of outlying values (extreme deviations), which may be a signal of: high complexity and/or possible design violations Taking managerial decisions, such as: Re-designing and/or assigning extra or higher skilled resources (to develop, to test and to maintain the SW).

CK Metrics: Definition WMC (Weighted Methods per Class) WMC is the sum of the complexity of the methods of a class. WMC = Number of Methods (NOM), when all method’s complexity are considered UNITY. Viewpoints WMC is a predictor of how much TIME and EFFORT is required to develop and to maintain the class. The larger NOM the greater the impact on children. Classes with large NOM are likely to be more application specific, limiting the possibility of RE-USE and making the EFFORT expended one-shot investment. Objective: Low

CK Metrics: Definition DIT (Depth of Inheritance Tree) The maximum length from the node to the root of the tree Viewpoints The greater values of DIT : The greater the NOM it is likely to inherit, making more COMPLEX to predict its behaviour The greater the potential RE-USE of inherited methods Small values of DIT in most of the system’s classes may be an indicator that designers are forsaking RE-USABILITY for simplicity of UNDERSTANDING. Objective: Trade-off

CK Metrics: Definition NOC (Number of Children) Number of immediate subclasses subordinated to a class in the class hierarchy Viewpoints The greater the NOC is: the greater is the RE-USE the greater is the probability of improper abstraction of the parent class, the greater the requirements of method's TESTING in that class. Small values of NOC, may be an indicator of lack of communication between different class designers. Objective: Trade-off

CK Metrics: Definition CBO (Coupling Between Objects) It is a count of the number of other classes to which it is coupled Viewpoints Small values of CBO : Improve MODULARITY and promote ENCAPSULATION Indicates independence in the class, making easier its RE-USE Makes easier to MAINTAIN and to TEST a class. Objective: Low

CK Metrics: Definition RFC (Response for Class) It is the number of methods of the class plus the number of methods called by any of those methods. Viewpoints If a large numbers of methods are invoked from a class (RFC is high): TESTING and MAINTANACE of the Class becomes more COMPLEX. Objective: Low

CK Metrics: Definition LCOM (Lack of Cohesion of Methods) Measures the dissimilarity of methods in a class via instanced variables. Viewpoints Great values of LCOM: Increases COMPLEXITY Does not promotes ENCAPSULATION and implies classes should probably be split into two or more subclasses Helps to identified low-quality design Objective: Low

CK Metrics: Guidelines GOAL LEVEL COMPLEXITY (To develop, to test and to maintain) RE-USABILITY ENCAPSULATION, MODULARITY WMC Low ▼ ▲ DIT Trade-off NOC CBO RFC LCOM But How much is Low and High ?

CK Metrics: Thresholds Thresholds of the CK metrics [2,3,4]: Can not be determined before their use Should be derived and use locally for each dataset 80th and 20th percentiles of the distributions can be used to determine high and low values of the metrics. Are not indicators of “badness” but indicators of difference that needs to be investigated.

CK in the Literature CK Metrics & other Managerial performance indicators Chidamber & Kemerer study the relation of CK metrics with [2]: Productivity SIZE [LOC] / EFFORT of Development [Hours] Rework Effort for re-using classes Effort to specify high-level design of classes

CK in the Literature CK Metrics & Maintenance effort Li and Henry (1993) use CK metrics (among others) to predict [5]: Maintenance effort, which is measured by the number of lines that have changed in a class during 3 years that they have collected the measurement .

CK in the Literature DIT & Maintenance effort Daly et al. (1996) in his study concludes that[5]: That subjects maintainig OO SW with three levels of inheritance depth performed maintaince tasks significantly quickier than those maintaining an equivalent OO SW with no inheritance.

CK in the Literature DIT & Maintenance effort However, Hand Harrisson (2000) used DIT metric to demonstrate [5]: That systems without inheritance are easier to understand and modify than systems with 3 or 5 levels of inheritance.

CK in the Literature DIT & Maintenance effort Poels (2001) uses DIT metric, and demonstrate [5]: The extensive use of inheritance leads to modls that are more difficult to modify.

CK in the Literature DIT & Maintenance effort Prechelt (2003) concludes that [5]: Programs with less inheritance were faster to maintain and The code maintenance effort is hardly correlated with inheritance depth but rather depends on other factors such as number of relevant methods.

CK in the Literature CK Metrics & Fault-proneness prediction Study Input: Design Complexity Metrics Output Prediction Technique 1996 Basili et al. [6] CK Metrics among others Fault-prone classes Multivariate Logistic Regression 2000 Briand et al.[7] 2004 Kanmani et al.[8] Fault ratio General Regression Neural Network 2005 Nachiappan et al.[9] Multiple Linear Regression 2007 Olague et al.[10] CK, QMOOD CK : Chidamber & Kemerer, QMOOD: Quality Metrics for Object Oriented Design

Conclusion CK metrics measure complexity of the design There are no thresholds defined for the CK metrics. However, they can be used identifying outlaying values. CK metrics (while measure from the code) have been related to: fault-proneness, productivity, rework effort, design effort and maintenance.

References [1] Chidamber Shyam, Kemerer Chris, “A metrics suite for object oriented design”, IEEE Transactions on Software Engineering, June1994. [2] Chidamber Shyam, Kemerer Chris, Darcy David, ”Managerial use of Metrics for Object-Oriented Software: an Exploratory Analysis”, IEEE Transactions on software Engineering, August 1998. [3] Linda Rosenberg, “Applying and Interpreting Object Oriented Metrics”, Software Assurance Technology Conference, Utah, 1998. [4] Stephen H. Kan, “Metrics and models in software Quality Engineering”, Addison-Wesley, 2003. [5] Genaros Marcela, Piattini Mario, Calero Coral, “A Survey of Metrics for UML Class Diagrams”, Journal of Object Technology, Nov.-Dec 2005.

References [6] Victor R. Basili and Lionel C. Briand and Walcelio L. Melo, A Validation of Object- Oriented Design Metrics as Quality Indicators, IEEE Transactions on Software engineering, Piscataway, NJ, USA, October 1996. [7] Lionel C. Briand and Jurgen Wust and John W. Daly and D. Victor Porter, Exploring the relationships between design measures and software quality in object-oriented systems Journal of Systems and Software,2000. [8] Kanmani, S., and Uthariaraj V. Rymend, Object oriented software quality prediction using general regression neural networks, SIGSOFT Soft. Eng. Notes, New York NY, USA, 2004. [9] Nachiappan Nagappan, and Williams Laurie, Early estimation of software quality using in-process testing metrics: a controlled case study , Proceedings of the third workshop on Software quality, St. Louis, Missouri, USA. (2005) [10] Hector M. Olague and Sampson Gholston and Stephen Quattlebaum, Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object- Oriented Classes Developed Using Highly Iterative or Agile Software Development Processes, IEEE Transactions Software Engineering, Piscataway, NJ, USA, 2007.