Вы находитесь на странице: 1из 45

A METRIC SUITE

FOR OBJECT
ORIENTED DESIGN
Shyam R. Chidamber and Chris F.
Kemerer
Ari Wibisono
Bambang Adhi
Achmad Rohman

OUTLINE
Introduction

CONTRIBUTION
Contribution

RESEARCH PROBELMS

THEORITICAL CRITICISM
Theoretical

OO DESIGN AND DEVELOPMENT.

OBJECTIVE
1

THEORY BASE FOR OO METRICS


Identification
Identify
Implementation
the Semantics
Relationship
of of
Classes
Classes
Between Classes

MEASUREMENT THEORY BASE

EMPIRICAL DATA COLLECTION


Where

SOFTWARE DEV ORGANIZATION


Site A

RESULTS
Metric 6:
1: Lack
2:
3:
4:
5:
Weighted
Depth
Number
Coupling
Response
ofofCohesion
of
Inheritance
between
For
Methods
Children
a Class
inobject
Per
Methods
(NOC)
(UFC)
Tree
Class
classes
(DIT)
(WMC)
(LCOM)
(CBO)

METRIC 1 : WEIGHTED METHOD


PER CLASS

CHARACTER GRAPHICS

MATRIX 1 : WEIGHT METHOD


PER CLASS
Case Study : Character Graphics
Number of Class Observed : 8
Number of Method Observed : 59

HOW TO OBSERVED
Using

CYCLOMATIC COMPLEXITY

WEIGHT METHOD PER CLASS


(STATISTICS)
Class

WMC

Tool.java

ShapeList.java

30

Screen.java

13

DrawingPackage.java

19

Cshape.java

10

Crect.java

15

Ccircle.java

20

TextBox.java

13

Total WMC

121

WEIGHT METHOD PER CLASS


(CHARACTER GRAPHICS)
Number of Classes

Weight Method per Class

4
3.5
3
2.5
2
1.5
1
0.5
0

1 s/d 5

6 s/d 10 11 s/d 15 16 s/d 20 21 s/d 25 26 s/d 30 31 s/d 35


WMC Value

WMC RESULT

Cyclomatic Complexity
Testability
Understandability
(SATC

1995)

MATRIX 3 : DEPTH OF
INHERITANCE TREE

DIT 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 predict
Deeper trees indicate greater design complexity

MATRIX 2 : DEPTH OF
INHERITANCE TREE
Class

DIT

Tool.java

ShapeList.java

Screen.java

DrawingPackage.java

Cshape.java

0.75

Crect.java

Ccircle.java

TextBox.java

Total DIT

0,75

MATRIX 2 : DEPTH OF
INHERITANCE TREE
Depth Of Inheritance Tree
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2

DIT Value

0.1
0
1 s/d 5

6 s/d 10

11 s/d 15

16 s/d 20

21 s/d 25

26 s/d 30

31 s/d 35

MATRIX 3 : NUMBER OF CHILDREN

NOC 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
testing

MATRIX 3 : NUMBER OF CHILDREN


Class

NOC

Tool.java

ShapeList.java

Screen.java

DrawingPackage.java

Cshape.java

Crect.java

Ccircle.java

TextBox.java

Total NOC

0,75

Median
Standard Deviasi

0
1.06

Min;Max

0;3

MATRIX 4 : CLASS BETWEEN


OBJECTS

CBO 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


Class

CBO

Tool.java

ShapeList.java

Screen.java

DrawingPackage.java

Cshape.java

Crect.java

Ccircle.java

TextBox.java

Total COB
Median
Standard Deviasi
Min;Max

14
1
1.16
1;4

MATRIX 4 : CLASS BETWEEN OBJECTS


Class Between Object
8
7
6
5
4
3

CBO Value

2
1
0
1 s/d 5

6 s/d 10

11 s/d 15

16 s/d 20

21 s/d 25

26 s/d 30

31 s/d 35

METRIC 5: RESPONSE FOR A


CLASS (RFC)

METRIC 5: RESPONSE FOR A


CLASS (RFC)

Jika sebuah class terdiri atas banyak method, besar


kemungkinan kompleksitas dari class semakin tinggi
Dan jika banyak method dapat dipanggil untuk
merespons pesan yang diterima oleh sebuah obyek dari
suatu class besar kemungkinan pemeliharaan dan testing
menjadi lebih kompleks.
Respons untuk metriks class bertujuan untuk mengukur
banyaknya method lokal dan banyaknya method yang
dipanggil oleh method lokal
Tidak terdapat nilai threshold spesifik pada metriks RFC.
Namun Chidamber and Kemerer menyarankan semakin
besar nilai RFC, semakin besar level pemahaman yang
diperlukan sebagai bagian dari tester

METRIC 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
{M} = himpunan semua method-method dalam class
Ilustrasi definisi di atas :
A::f1() memanggil B::f2()
A::f2() memanggil C::f1()
A::f3() memanggil A::f4()
A::f4() tidak memanggil method lain
Then RS = {A::f1, A::f2, A::f3, A::f4} U {B::f2} U {C::f1} U {A::f4}
= {A::f1, A::f2, A::f3, A::f4, B::f2, C::f1} sehingga RFC = 6

METRIC 5: RESPONSE FOR A


CLASS (RFC)
Class

RFC

Tool.java

ShapeList.java

20

Screen.java

DrawingPackage.java

19

Cshape.java

45

Crect.java

16

Ccircle.java

19

TextBox.java

17

Total RFC

147

METRIC 5: RESPONSE FOR A


CLASS (RFC)
Response for Class
7
6
5
4
3
2

RFC Value

1
0
1 s/d 5

6 s/d 10

11 s/d 15

16 s/d 20

21 s/d 25

26 s/d 30

31 s/d 35

METRIC 6: LACK OF COHESION


IN METHODS (LCOM)

METRIC 6: LACK OF COHESION


IN METHODS (LCOM)

Cohesion sebuah class adalah karakteristik seberapa


dekat method-method lokal terhubung dengan variabelvariabel lokal dalam sebuah class. S.R Chidamber and
C.F Kemerer adalah yang pertama mendefiniskan
metriks LCOM pada 1991
Metriks LCOM adalah nilai ketidaksamaan methodmethod dalam sebuah class
Nilai LCOM yang tinggi dalam sebuah class
mengindikasikan lebih baik jika class tersebut dipecah
menjadi dua atau lebih sub-class. Hal ini karena class
tersebut mungkin terlalu banyak mempunyai tugas
untuk dilakukan sehingga akan lebih baik untuk
menggunakan obyek yang lebih spesifik.

METRIC 6: LACK OF COHESION


IN METHODS (LCOM)

Definisi Chidamber-Kemerer
Terdapat sebuah class C1 dengan n method M1, M2, ,
Mn. Dengan {Ij} = himpunan variabel instance yang
digunakan oleh method Mi. Terdapat sebanyak n
himpunan {I1}, , {In}. Dengan P = {(Ii, Ij) | Ii Ij = } dan
Q = {(Ii, Ij) | Ii Ij }. Jika semua himpunan n {I1}, ,
{In} adalah maka kemudian P = .
LCOM = |P| - |Q|, if |P| > |Q|. Otherwise LCOM = 0
Definisi himpunan yang tidak berisisan yang diusulkan
Chidamber-Kemerer sepertinya ambigu dan kemudian
didefinisikan ulang oleh Li dan Henry.

METRIC 6: LACK OF COHESION


IN METHODS (LCOM)

Definisi Li-Henry
LCOM* = banyaknya himpunan tidak beririsan dari
method-method lokal; tidak ada dua himpunan
beririsan; sembarang dari dua method dalam
himpunan yang sama yang sharing sedikitnya satu
lokal variabel instance; dari 0 sampai N; dimana N
bernilai integer positif

METRIC 6: LACK OF COHESION


IN METHODS (LCOM)
Class

LCOM

Tool.java

ShapeList.java

Screen.java

DrawingPackage.java

Cshape.java

24

Crect.java

Ccircle.java

TextBox.java

Total RFC

25

METRIC 6: LACK OF COHESION


IN METHODS (LCOM)
Lack Of Cohesion of Method
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2

LCOM Value
0.1
0
1 s/d 5

6 s/d 10

11 s/d 15

16 s/d 20

21 s/d 25

26 s/d 30

31 s/d 35

REFERENCE

Chidamber S.R., Kemerer, C.F.: "A metrics suite for


object-oriented Design", IEEE Transactions on SW
Engineering, Vol. 20, No.6, June 1994
Fabrizio Riguzzi:"A Survey of Software Metrics",
Universit degli Studi di Bologna, July 1996
Lionel Briand, Khaled El Emam, Sandro Morasca :"On the
Application of Measurement Theory in Software
Engineering",International Software Engineering
Research Network technical report #ISERN-95-04
Magnus Andersson, Patrik Vestergren : "Object-Oriented
Design Quality Metrics", Uppsala Masters Theses in
Computer Science 276, 2004-06-07, ISSN 1100-1836,
Information Technology Computing Science Department
Uppsala University Sweden

REFERENCE

The Project Managers Guide to Software


Engineerings Best Practice, Mark J. Christensen and
Richard H. Thayer, IEEE Computer Society Press

Norman Fenton:"Software Measurement: A Necessary


Scientific Basis", IEEE TRANSACTIONS ON SOFTWARE
ENGINEERING. VOL. 20, NO. 3, MARCH I994 I99
Everald E. Mills : Software Metrics, SEI Curriculum
Module SEI-CM-12-1.1, Software Engineering Institute,
Carnegie Mellon University, December 1988
Goal-Question-Metrics files on the internet

CONCLUSION

Pada penelitian ini telah dikembangkan dan


diimplentasikan sejumlah software metrik
untuk OO desain.
Metrik ini berdasarkan teori pengukuran dan
juga merefleksikan viewpoint dari
pengalaman pengembang software OO.

CONCLUSION

Dalam pengevaluasian metrik ini dengan


mencocokan dengan kriteria standar, hal
yang dicocokan yaitu :

Memiliki sejumlah properti yang diinginkan.

Menyarankan

beberapa cara di mana pendekatan


OO mungkin berbeda dalam hal fitur desain yang
diinginkan atau diperlukan dari pendekatan
tradisional.

CONCLUSION

Clearly, future or further research are


designed to further investigate these
apparent differences seem necessary.

Оценить