A Validation of Object-Oriented Design Metrics As Quality Indicators Basili et al. IEEE TSE Vol. 22, No. 10, Oct. 96.

Slides:



Advertisements
Similar presentations
K. Ingram1November 2000 Object Orientated Analysis and Design - Contents When to use OO? What is OO? Unified Modelling Language OO Methodologies: –Object.
Advertisements

Verification and Validation
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.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
MetriCon 2.0 Correlating Automated Static Analysis Alert Density to Reported Vulnerabilities in Sendmail Michael Gegick, Laurie Williams North Carolina.
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.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
1 Predicting Bugs From History Software Evolution Chapter 4: Predicting Bugs from History T. Zimmermann, N. Nagappan, A Zeller.
Metrics. Basili’s work Basili et al., A Validation of Object- Oriented Design Metrics As Quality Indicators, IEEE TSE Vol. 22, No. 10, Oct. 96 Predictors.
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.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
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.
Prediction Basic concepts. Scope Prediction of:  Resources  Calendar time  Quality (or lack of quality)  Change impact  Process performance  Often.
Empirical Validation of OO Metrics in Two Different Iterative Software Processes Mohammad Alshayeb Information and Computer Science Department King Fahd.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Educational Data Mining Overview John Stamper PSLC Summer School /25/2011 1PSLC Summer School 2011.
Database Complexity Metrics Brad Freriks SWE6763, Spring 2011.
Verification and Validation
*Object-Oriented Design (Schach Chap 14)
Chapter 2: Approaches to System Development
Chidamber & Kemerer Suite of Metrics
1 Software Construction Software Construction Chapter 1.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
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
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.
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.
Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 1 Evaluation of a Business Application Framework Using Complexity.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Law of Demeter. What is it: Style Rule for building systems. Proposed by my research group: The Demeter Research Group in 1987, published in Covered.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
CSC 480 Software Engineering Lecture 15 Oct 21, 2002.
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.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
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
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Testing OO Software Encapsulation means modeling and storing with an object the parts and the operations. Interactions become implicit in code. Makes difficult.
McGraw-Hill/Irwin© 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 17 Object-Oriented Design and Modeling Using the UML.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
1 740f02classsize18 The Confounding Effect of Class Size on the Validity of Object- Oriented Metrics Khaled El Eman, etal IEEE TOSE July 01.
The Law of Demeter For Operating System Course. Motivation Several programs were written in bad style Are difficult to maintain There is a simple remedy.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Cristián Bravo R. (1), Lyn C. Thomas (2), and Richard Weber (1) (1) Department of Industrial Engineering(2) Centre for Risk Management Universidad de Chile.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Design Metrics CS 406 Software Engineering I Fall 2001 Aditya P. Mathur Last update: October 23, 2001.
Course Notes Set 12: Object-Oriented Metrics
Object-Oriented Metrics
Design Metrics Software Engineering Fall 2003
Design Metrics Software Engineering Fall 2003
Predict Failures with Developer Networks and Social Network Analysis
Predicting Fault-Prone Modules Based on Metrics Transitions
Exploring Complexity Metrics as Indicators of Software Vulnerability
Law of Demeter (LoD) 7/23/2019 LoD
Presentation transcript:

A Validation of Object-Oriented Design Metrics As Quality Indicators Basili et al. IEEE TSE Vol. 22, No. 10, Oct. 96

Abstract Suite of OOD metrics by Chidamber. Predictors of fault-prone classes? Can be used as early quality indicators? Other study: frequence of maintenance changes. 8 medium sized information management systems

Metric CBO: coupling between object classes: a class is coupled to another one if it uses its member functions and/or instance variables. CBO = number of classes to which a given class is coupled.

Connection to Law of Demeter Following LoD or reducing the number of violations reduces CBO because LoD only allows good coupling.

Law of Demeter: Violation class A {public: void m(); P p(); B b; }; class B {public: C c; }; class C {public: void foo(); }; class P {public: Q q(); }; class Q {public: void bar(); }; void A::m() { this.b.c.foo(); this.p().q().bar();} CBO(A) = 4 With LoD: CBO(A) = 2 CBO(A)= {B,C,P,Q}

Metric RFC: response for a class. This is the number of methods that can potentially be executed in response to a message received by an object of that class.

Connection to Law of Demeter Following LoD or reducing the number of violations reduces RFC because LoD allows fewer methods to be called.

Law of Demeter: Violation class A {public: void m(); P p(); B b; }; class B {public: C c; }; class C {public: X foo(); }; class P {public: Q q(); }; class Q {public: Y bar(); }; void A::m() { this.b.c.foo(); this.p().q().bar();} RFC(A) = 6 With LoD: RFC(A) = 4 RFC(A)= {b,c,p,q,foo,bar} Assume data member access through get method RFC(A)= {b,p,foo2,bar2} But …

Law of Demeter: Violation class A {public: void m(); P p(); B b; }; class B {public: C c; void foo2() {c.foo();}; class C {public: X foo(); }; class P {public: Q q(); void bar2(){q().bar(); }; class Q {public: Y bar(); }; void A::m() { this.b.foo2(); this.p().bar2();} RFC(A) = 4 RFC(B) = 2 RFC(P) = 2 8 With LoD: Assume data member access through get method Without LoD: = 6 LoD spreads RFC but it might increase it!

Law of Demeter: Violation Illustrate better separation class A {public: void m(); P p(); B b; }; class B {public: C c; }; class C {public: X foo(); }; class P {public: Q q(); }; class Q {public: Y bar(); }; void A::m() { X x=M.cg.fetch(this,”from A to X”); Y y=M.cg.fetch(this,”from A to Y”);} With LoD: RFC(A) = 1 RFC(A)={fetch} Assume data member access through get method RFC(A) = 4 RFC(B) = 2 RFC(P) = 2 8 CBO(A)= {DJ.ClassGraph}

Class Diagram A BC b c PQ p() q() foo() bar() m X Y from A to X from A to Y

Hypotheses H-CBO: Highly coupled classes are more fault-prone than weakly coupled classes because they depend more heavily on methods and objects defined elsewhere. H-RFC: Classes with larger response sets implement more complex functionalities and are, therefore, more fault-prone.

RFC (on projects) X axis: values of metric. Y axis: number of classes. Y X Probability of fault detection increases

CBO (on projects) X axis: values of metric. Y axis: number of classes. Y X Probability of fault detection increases

Results RFC is very significant. The H-RFC hypothesis is supported. CBO is significant, particularly for UI classes.

Analysis Methodology Response variable: binary: was a fault detected in a class during testing? Used logistic regression, a standard technique used in experimental sciences. Alternatives would be: classification trees, optimized set reduction, or neural networks.

Study Participants Four months Students in a class on OO software analysis and design Control differences in skills: randomly grouped into eight teams. Used blocking: eight most experienced students randomly assigned to a different group.

Development Process for Video Store Application Sequential software engineering life-cycle model based on waterfall model: analysis, design, implementation, testing and repair. Requirement and design document were checked. OMT (Rumbaugh) was used C++ with MotifApp, GNU library, database library.