course notes set 12: object-oriented metrics

24
COMP 2210 Course Notes Slide 12-1 Auburn University Computer Science and Software Engineering Course Notes Set 12: Object-Oriented Metrics Computer Science and Software Engineering Auburn University

Upload: jayden

Post on 06-Feb-2016

85 views

Category:

Documents


1 download

DESCRIPTION

Course Notes Set 12: Object-Oriented Metrics. Computer Science and Software Engineering Auburn University. Object-Oriented Metrics. CK Metrics Proposed by Chidamber and Kemerer class-based metrics LK Metrics Proposed by Lorenz and Kidd class-based and operation-based MOOD Metrics - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-1Auburn UniversityComputer Science and Software Engineering

Course Notes Set 12:

Object-Oriented Metrics

Computer Science and Software EngineeringAuburn University

Page 2: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-2Auburn UniversityComputer Science and Software Engineering

Object-Oriented Metrics

• CK Metrics– Proposed by Chidamber and Kemerer– class-based metrics

• LK Metrics– Proposed by Lorenz and Kidd– class-based and operation-based

• MOOD Metrics– Proposed by Harrison, Counsell, and Nithi– class-based

Page 3: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-3Auburn UniversityComputer Science and Software Engineering

CK Metrics

• Weighted methods per class (WMC)– The sum of the complexity values for all the

methods of a given class.– They do not specify the specific complexity

metric to use (e.g., cyclomatic complexity).– Indicator of implementation and testing

effort for a class. The higher the value, the more effort required.

– A possible indication of reusability.– WMC should be kept low.

Page 4: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-4Auburn UniversityComputer Science and Software Engineering

CK Metrics

• Depth of inheritance tree (DIT)– The length of the longest path from the root

of the inheritance hierarchy to a leaf class.– As DIT increases, the lower classes in the

hierarchy inherit a greater number of data and methods, thus making their behavior more difficult to understand and causing testing to require more effort.

– A large DIT value implies greater design complexity, but also greater reuse.

Page 5: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-5Auburn UniversityComputer Science and Software Engineering

CK Metrics

• Number of children (NOC)– A count of the number of classes

immediately subordinate to a given class in the hierarchy.

– As the NOC value grows, reuse increases but the amount of testing also increases.

– Also, a large NOC value may indicate an inappropriate abstraction.

Page 6: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-6Auburn UniversityComputer Science and Software Engineering

CK Metrics

• Coupling between classes (CBO)– The amount of collaboration and interaction

between a given class and the other classes in the system.

– As the CBO value increases, reusability decreases.

– Also, a high CBO indicates potential difficulty in modifying the class and the subsequent testing of the modifications.

– CBO should be kept low.

Page 7: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-7Auburn UniversityComputer Science and Software Engineering

CK Metrics

• Response for a class (RFC)– The number of methods that can potentially

be executed in response to a message received by an object of a given class.

– As the RFC value increases, testing effort and design complexity also increase.

– RFC should be kept low.

Page 8: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-8Auburn UniversityComputer Science and Software Engineering

CK Metrics

• Lack of cohesion in methods (LCOM)– The number of methods in a given class that

access one or more of the same instance variables.

– The higher the LCOM value, the lower the cohesion of methods, and greater the coupling.

– A high LCOM value could indicate the need to break the class apart into multiple classes.

Page 9: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-9Auburn UniversityComputer Science and Software Engineering

LK Metrics

• Class size (CS)– The total number of methods (both inherited and

local) plus the total number of attributes (both inherited and local) encapsulated by a given class.

– Inherited members should be weighted more heavily than local members.

– Large values of CS could indicate that the class is too large; that is, that it encasulates too much behavior, structure, and responsibility.

– High CS values may also indicate lower reusability.

Page 10: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-10Auburn UniversityComputer Science and Software Engineering

LK Metrics

• Number of operations overridden by a subclass (NOO)– A count of the methods in subclasses that

have been redefined.– Large NOO values could indicate a design

problem, since the model of the class seems to be violated.

Page 11: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-11Auburn UniversityComputer Science and Software Engineering

LK Metrics

• Number of operations added by a subclass (NOA)– A count of the new methods appearing in

subclasses.– A large NOA value could indicate a design

abstraction violation.– As CK DIT increases, NOA should decrease.

Page 12: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-12Auburn UniversityComputer Science and Software Engineering

LK Metrics

• Specialization index (SI)– The degree to which subclasses are

differentiated from superclasses.– SI is computed as NOO multiplied by the

level at which the class resides in the inheritance hierarchy divided by the total number of methods defined by the class.

– A high SI could indicate a lack of conformance to superclass abstractions.

Page 13: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-13Auburn UniversityComputer Science and Software Engineering

LK Metrics

• Average operation size (OSavg)– Number of messages sent by a given

method.

– A high OSavg value can indicate a poor allocation of responsibility within the class.

Page 14: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-14Auburn UniversityComputer Science and Software Engineering

LK Metrics

• Operation complexity (OC)– An indication of method complexity,

such as cyclomatic complexity– OC should be kept as low as possible.

Page 15: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-15Auburn UniversityComputer Science and Software Engineering

LK Metrics

• Average number of parameters per operation (NPavg)– An average method parameter list

size– Should be kept low

Page 16: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-16Auburn UniversityComputer Science and Software Engineering

MOOD Metrics

• Method inheritance factor (MIF)– The degree to which inheritance is

used in the class hierarchy.

Page 17: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-17Auburn UniversityComputer Science and Software Engineering

MOOD Metrics

• Coupling factor (CF)– A measure of how dependent and

interactive classes are

Page 18: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-18Auburn UniversityComputer Science and Software Engineering

MOOD Metrics

• Polymorphism factor (PF)– A measure of the relative amount of

dynamic binding in a system.– The number of methods that redefine

inherited methods divided by the maximum number of possible distinct polymorphic situations.

Page 19: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-19Auburn UniversityComputer Science and Software Engineering

OO Testing Metrics (Binder)

• LCOM• Percent public and protected (PAP)• Public access to data members (PAD)• Number of root classes (NOR)• Fan-in (FIN)• NOC, DIT• Class complexity metrics• Polymorphism metrics

Page 20: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-20Auburn UniversityComputer Science and Software Engineering

McCabe OO Metrics

• Percent Public Data (PCTPUB)– Percentage of public and protected

data within a class.

• Access to Public Data (PUBDATA)– The number of accesses to public and

protected data.

Page 21: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-21Auburn UniversityComputer Science and Software Engineering

McCabe OO Metrics

• Percent of Unoverloaded Calls (PCTCALL)– Number of unoverloaded calls in the

system.

• Number of Roots (ROOTCNT)– Total number of class hierarchy roots in the

system.

• Fan-in (FANIN)– Number of classes from which a given class

is derived.

Page 22: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-22Auburn UniversityComputer Science and Software Engineering

McCabe OO Metrics

• Maximum v(G) (MAXV)– Maximum cyclomatic complexity for any

single method within a given class.

• Maximum ev(G) (MAXEV)– Maximum essential complexity for any

single method within a given class.

• Hierarchy Quality (QUAL)– Number of classes in a system that are

dependent upon their descendents.

Page 23: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-23Auburn UniversityComputer Science and Software Engineering

CK Metrics as Quality Indicators

• Empirical study by Basili and others.• Collected CK metrics data on 8 medium-

sized information management systems based on identical requirements.

• All 8 systems were developed with the same process model (modified waterfall) along with a well-known OOA/D method, and implemented in C++.

Page 24: Course Notes Set 12: Object-Oriented Metrics

COMP 2210 Course NotesSlide 12-24Auburn UniversityComputer Science and Software Engineering

CK Metrics as Quality Indicators

• Analysis of the data shows that 5 of 6 CK metrics are useful to predict class fault-proneness during the early phases of the life cycle.

• Larger values of WMC, DIT, RFC, and CBO correlate with a greater probability of detecting a defect in a given class.

• Larger values of NOC correlate with a lower probability of detecting a defect in a given class.

• LCOM was not significant.