A Metric Suite for Object Oriented DesignShyam R. Chidamber and Chris F. KemererAri WibisonoBambangAdhiAchmadRohman
Outline
Contribution
Research Probelms
Theoritical Criticism
OO design and development.
Objective
Theory Base for OO Metrics
Measurement Theory Base
Empirical Data Collection
Software Dev Organization
Results
Metric 1 : Weighted Method Per Class
Character Graphics
Matrix 1 : Weight Method per ClassCase Study  : Character GraphicsNumber of Class Observed : 8Number of Method Observed : 59
How TO ObserveD
Cyclomatic complexity
Weight Method per Class (Statistics)
Weight Method per Class (Character Graphics)
WMC ResultCyclomatic ComplexityTestabilityUnderstandability(SATC 1995)
Matrix 3 : Depth of Inheritance TreeDIT is the maximum length from a node to the root (base class)Viewpoints:Lower level subclasses inherit a number of methods making behavior harder to predictDeeper trees indicate greater design complexity
Matrix 2 : Depth of inheritance Tree
Matrix 2 : Depth of inheritance Tree
Matrix 3 : Number of ChildrenNOC is the number of subclasses immediately subordinate to a class
Viewpoints:
As NOC grows, reuse increases - but the abstraction may be diluted
Depth is generally better than breadth in class hierarchy, since it promotes reuse of methods through inheritance
Classes higher up in the hierarchy should have more sub-classes then those lower down
NOC gives an idea of the potential influence a class has on the design: classes with large number of children may require more testingMatrix 3 : Number of Children
Matrix 4 : Class between objectsCBO is the number of collaborations between two classes (fan-out of a class C)
the number of other classes that are referenced in the class C (a reference to another class, A, is an reference to a method or a data member of class A)
Viewpoints:
As collaboration increases reuse decreases
High fan-outs represent class coupling to other classes/objects and thus are undesirable
High fan-ins represent good object designs and high level of reuse
Not possible to maintain high fan-in and low fan outs across the entire system Matrix 4 : Class between objects
Matrix 4 : Class between objects
Metric 5: Response For a Class (RFC)
Metric 5: Response For a Class (RFC)Jikasebuah class terdiriatasbanyak method, besarkemungkinankompleksitasdari class semakintinggi
Dan jikabanyak method dapatdipanggiluntukmeresponspesan yang diterimaolehsebuahobyekdarisuatu class besarkemungkinanpemeliharaandan testing menjadilebihkompleks.
Responsuntukmetriks class bertujuanuntukmengukurbanyaknya method lokaldanbanyaknya method yang dipanggiloleh method lokal
Tidakterdapatnilai threshold spesifikpadametriks RFC. NamunChidamber and Kemerermenyarankansemakinbesarnilai RFC, semakinbesar level pemahaman yang diperlukansebagaibagiandari testerMetric 5: Response For a Class (RFC)Definisi
RFC = |RS| dimana RS adalah himpunan respons untuk class yang diberikan
RS = {M} Uall i {Ri}
dimana {Ri} = himpunan method-method yang dipanggil oleh method i dan

Measurement Metrics for Object Oriented Design