11
A tool for measuring inheritance coupling in object-oriented systems Jarallah AlGhamdi * , Mahmoud Elish, Moataz Ahmed Information and Computer Science Department, King Fahd University of Petroleum and Minerals, KFUPM # 1931, Dhahran 31261, Saudi Arabia Received 1 April 2000; received in revised form 8 May 2001; accepted 28 June 2001 Abstract Analyzing object-oriented systems in order to evaluate their quality gains its im- portance as the paradigm continues to increase in popularity. Consequently, several object-oriented metrics have been proposed to evaluate dierent aspects of these systems such as class coupling. In object-oriented design, three types of coupling may exist between classes: inheritance coupling, interaction coupling, and component coupling. This paper presents a tool for measuring inheritance coupling in object-oriented sys- tems. Ó 2002 Elsevier Science Inc. All rights reserved. Keywords: Software measurement tool; Software metrics; Inheritance coupling; Object- oriented systems. 1. Introduction The diusion of object-oriented paradigm has led to the need of object- oriented metrics for assessing coupling between classes. Three types of coupling may exist between classes in object-oriented systems: inheritance coupling, interaction coupling, and component coupling [3,4]. Several object- oriented coupling metrics have been proposed in recent years. In order for Information Sciences 140 2002) 217±227 www.elsevier.com/locate/ins * Corresponding author. E-mail addresses: [email protected] J. AlGhamdi), [email protected] M. Elish), mah- [email protected] M. Ahmed). 0020-0255/01/$ - see front matter Ó 2002 Elsevier Science Inc. All rights reserved. PII:S0020-025501)00172-4

A tool for measuring inheritance coupling in object-oriented systems

  • Upload
    gust

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

� ���� ��� ����� � � ����� �� ������ �� ����������� ��� ����

����� ������� �� ������ ����� ���� �����

���������� �� ���� ��� ������ ����������� ��� ��� �������� �� ������� � �� ��������

����� � � !�� ������� !�"#�� �� $��%�

�������� ����� !"""# �������� � ������ ���� $ �� !"" # ������� !$ �� � !""

��������

� ���� � ����������� ��� ���� � ����� �� ������ ����� %����� �� �� ���

���� �� ��� ������ �� �� �� �� � ���� � ���������& '� �%�� ���� �����

����������� ��� ������ ��� ��� ������� �� ������ ��(��� � ���� �� ���� ����

��� �� ������ �& ) ����������� ��� ���� � ����� ���� �� ������ � �� �*��

���+�� ���, � ����� �� ������ �� � ������� ������ �� � ����� � � ������ �&

-�� ���� ���� � ���� ��� ����� � � ����� �� ������ � � ����������� ��� ��

���& � !""! ������� .��� �� ) �& ��� ����� �������&

���&���' .���+�� ������� � ����# .���+�� ������# ) ����� �� ������ �# /������

���� ��� ����&

� ���� ������

-�� ��(��� �� ����������� ��� ������ � ��� �� ��� ��� �� ����������� ��� ������ ��� �� � ������ � ���+�� ���& -���� ���� �������� � �� �*�� ���+�� ��� � ����������� ��� ����, ����������� ����� ��������� �� ����� � ��������� �� ���� 01�23& .����� ����������� ��� ������ � ������ ��� ��� ������� � ���� � ���& ) ����� ���

) ������� .��� �� 2" 4!""!5 ! 67!!6+++&�������&���8�����8�

�'������ �� � �����&

()��� �������' ����9:����&���& 4�& �������5� �����9���&��� 4�& ����5� ���

���9���&:����&���& 4�& �����5&

""!"�"!;;8" 8< � �� ��� � ����� � !""! ������� .��� �� ) �& ��� ����� �������&

=)), .""!" �"!;; 4" 5"" 6! �2

���� ������ �� �� ����� ������ ������� � ���� ��� ������� ����������� � �� ���� � ������ ������� �� ����� 0$3& > ������ ����� ����� � ��: �� ��� ����� � ��� �(��� ��� �� ������� �� �������������� � 063&

-�� ���� ���� � ���� ��� � ��� ������� ��� �� ����� � ������ �� ������ � � ����������� ��� ����& ) ����� �� ������ � � ������ ����+�� �� ������� ��� 4���� ���5 � ����� ��������� ��� 4������5 013& -�� ���� ?�� ��� ����������� ��� ���� �� ������� � ����� �������� � ������ ��& -�� ��������� �� �� ��� ������� � �� � ����� ���� �� � ����� ������ � �� �� ������ ����� � ����� � ��� �����@ ����& A� ���� %���� � �� � �� ������ � ��� ���� �� �������� ��(��� � ������ � ������& �� ���� � ��� ������� ��� �� � ������ �������� �� � ����� �� ������ � ��� ���+�� ������� ��� � ��&/���� ����������� ��� � ���� ���� � �� ������� ��� +������ �� ���� ��� ����&

-�� ���� ��� +��� �������+ �� ��� �� ��� �*��� � ����& -�� � � .����� 1� ��� ��������� ������� ���� � � ������ �� ��� ��������� ����� +��� ��� ������ �� ������ �� ���� ���& ) .����� 2� ��� ��������� ���� �������� � ������� �� � ����� ����� �*��� � ����& A� ���� '� ����� � ���� ��� � .����� ;&

� ���������

"*�* (+���� �����

A�+ ���� �*�� ��� ������� �� ��������� � �� ���� � ������� �� ����������� ��� ������& ) ��� ����� � ����� �*��� � ����, B���: �B����@ ����� -��� ��� ���� � 'CC ���� 4-�'CC5� � ����������� ��������� �� ������ � 4//���D�5 �� ���� ���& � ������� ���+�� ���� ���� � ��� ��������� ���� � ���� � .����� 2&

"*�*�* ,���-� �� , ���.� ����B���: � B���� 0;3 ��������� ���� �� ����� ���� �� ������ �������

�� '������� � E������ 0!3& -�� ���� + +����� � 'CC � �� ������'CC ���+�� ������� �& B���: � B����@ ���� � ������� � �� �+� ��� ��+ � A��& 0;3, ��� � � %����� � � �� �� � ����������� �������� �� ��������& -�� ���� ��� 'CC ����� ����� ����� �� � ������ ���� ���� � ���� ��� � ������� � ����& -�� ���� ���� %������ �� �������� ��� ����� ��������� �� �� �� ��� ���� +����&

B���: � B����@ ���� ������ �+� ���� �� ����������� ��� ������, �������� ������ � ���������� ������& '������� ������ ����� ��������� ��

! $ /* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6

��� ��� � ����� ��������� � ���� +���� ���������� ������ �������� � ������� �� ��� � ������ � ���� +����& -�� �������������� �������� ��,� ����� �� � ����� �� ����#� �� ������ �#� ���� � ��� �� �� ����� �� ������� &) ������ � � �� � � ���������� ������ � �������� +���� � ����� �� �����������&

"*�*"* 8$�99-�'CC 0F�63 � ������ ��������� ������ ��� ����� � ��� ������ ���

����� � ��������� � �����& )� � ��� ��������� � ����� ��� � ��� ������ ; ��(��� � ������ ����� � -��� & -�� �������� �� -�'CC ���+ � A��& !&

-�'CC ������� ��� �����+� � ������ 0F�63,� G����� � � ��� ���� ���#� ������ � ��+������ ������ 4HH�5, HH� �� ������ ������ ��� �� �����

����� I���� ������� ����� �� �������� �� ��#� ��? � � � ������ � ���������� ������ 4IH�5& -�� ��� � ��? � IH�

��� � HH� ��� �� �������� �� ��� ����& -�� ���� ������� ���� ��������� ��� ��� �� ��? � ���� ������#

� ��? � � � ��+� � ������ ������� � ���?��#� ������� ���� � ���� ��� ������ � � �� � � ������# �� �������� � ��� �� ��� �(��� � ���� 7����� ����� �� �����&

"*�*!* ::�����0� ����������//���D� � ���� �� � 0$3 ������� ������� ������ ��� �������

���� ��� ������ �� ������ �& )� �� � ������ � ����� ��� � ����� ��� ������ ��������� ��� ���� ������ �� � ����� ����& ������ �

A��& & B���: � B����@ ���� �������� 0;3&

/* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6 ! J

//���D� � ���� �� � �� ��������� � A��& 1& B����� ����� �� ����������� �� //���D� � ���� �� � 0$3, & ������ �� ��������� #!& ������ �� ���# �1& ����� ��� �� � ������� �� �������*� ����&//���D� � ���� �� � � �� ������� �� �������� � ���� � ��������� �+ � ���� � ������ � �� ����& -�� ��������� � �� � �� //����D� � ���� �� � �*���� ������ �� �� � ����� +�& / � +� �������� ����� � � ��� �� � ������� � ��������� � ������ ��:� ��� � K��� .�����: �� ����� � =�����=��& .� ��� � ���� � ������������� �� ����� +� ��� ������ �� �*������ & A�� �*����� //����-��� � ��� �� ��? �� ������� � ������ 'CC ������� +���� =�/CC���� ������� ������ �� ��� ���+�� ������� ����� � ���� � ����� �����& ) ������ � �� � �� ���� � ����&

-���

������ �������� �� -�'CC

������ '���� �

''� '� ������*���8���

''�) '� ��� ����� � ��*

D)- D��� � ����� �� ����

I I���� ������

I.'' '� ������*��� �� I� ���� �.�����

H/' G����� �� �� � �� ����

�� ��'�� ��������� ������*���

�'� ������ ������*���8���

G�H G����� �� �������� ������ ��? �� �� ��

G�� G����� �� �������� � ������ �� ��

G.>= G����� �� ������� �� ��

.���! G����� �� �� �������� � ������

-� -��� ����� �� ���� � ������*���

-�'' '� ������*���

L�' L������� ������ ��� ��

A��& !& -�'CC �������� 0F3&

!!" /* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6

� �������� ����

!*�* 8�� ����

� ���� ��� ����� � � ����� �� ������ � � ����������� ��� ���� ���� ��������� �� ������ ��� ������� ���� �� ����+��: �� � ����� �������� � ������� � 0 3& -�� ���� ?�� ��� ����������� ��� ���� ��������� � ����� �� ������ � ������ ��& -�� ��������� �� �� ��� �������� � �� � ���� � ���� �� � ����� ������ � �� �� ������ ����� � ����� � ��� ����@ ����& A� ���� %���� � �� � �� ������ � ������� �� ������� ��(��� � ������ � ������& �� ���� � ��� �������� ��� �� � ��� ��� �������� �� � ����� �� ������ � ��� ���+�� �������� ��� � ��& /���� ����������� ��� � ���� ���� � �� ������� ���+������ �� �� �� ��� ����& -�� ���� ����� ��� ������ �+� �������� �������� � ������& /���� ������ ��� ���� � � ��� ��������� �� � �� ��������&

!*�*�* ��� �� ��-�� ���� ��� ���� �� �� �� ����� �� ����� � � ��������� � A��& 2,

��� � � �� �� �� ��� ������ ���������� � %���� � �� �& ��� � � ������ � ����M� �������� � ��� �����+� � ������� &

A��& 1& //���D� � ���� �� � 0$3&

/* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6 !!

!*�*�*�* ������ ������& D� ��������� � ��� ?�� ��� � ������� � ����+�� ������& =�� � � �� � �� �� �*���� ��� � ������� ����� ��������� � ����� �� ������ � ������ ���� ������ ����������� ��� ���� �����+��& -��� ���� �� � ���� ���� �� �� �&�&� ����� ���� ��� �� ��������� ��� ��� ��� ����������� ��� � ���� ��� ��� 'CC� .�����:&=��� � �� �� ������� ��� ��� ����������� ��� ���� ���� +���� ��� � �?�� ������ � � ���� 4>�H5& -�� �� ��������� �� ���� ���� �� �������� � �� � ���� � ���� �� � ����� ������ � �� �� ������ ����������� +��� �� ����� ��+ � A��& ;& -��������� ��� ������ �� ��� ��� �� �� � ��� ��� ��� �� ����� � ��������& ) ��� +��:� �� ���� +��������� �� ������� � ����� �� ������ � ������ �� ���� � �� ���������& -�� ���� ��� � ������� �� � ��� ���� � �������� � .����� 1& &!&

A��& 2& -��� ��������&

!!! /* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6

!*�*�*"* ������� ������ ���������& -�� �� ��������� �� ��� ��� � � �� � ������� � �� ��� �� ��� ������ ��������� �� ��� ���� � +���� ���� �� �������� ���� ��& -�� ��������� + ���� �� ��� � ��� �� ����� ���� ��� � A��& ;& -�� �� ����� ����� ��� ����������� ��� ���� ���� � ����� ����� � �� ���+& ) ������ � ��� ����� � � ���� � ���� �� �� �&�&� �� ������ � ����� ����� �� ����������� ��� ����& -�� �� ��� ������ ���������������� ��� �� ��� �� ������ �������� &

!*�*�*!* ; ��� ������& N���� � �� � �� �� ���� �� .NH ����� � ��� � �� ������ � ��� �� ��� ������ ��������� �� ������� ��� ������ � ������&�� ���������� �� ���� +��� ��������� �� ������� � ���� �� ��� ������� �� �+ %���� � �� �& -��� �� ���������� �� ���� �� ����� �� ���� ��� �� ��(��� � �������� ���������&

!*�*"* �������������-�� ��������� ���� + ������� ��� �� � /����� � /�� �*"� ��������

<� �� ,��� #*3� (�������� (���� � �������� $����� 6& ����� � ������� ��� ��� �������� � ������ ���� ����� � � �� �� ������� ?�� � ������� �� �� I-�H ��� ������� � ��� ���� � ������ � ������� �� �������� ������� � ?���& ����� ������ � ����� �� �������� ����� ������& � ������ � �� ������ +����� +��� ��������� �=) ��� ����?� ��� �� �� � � ����� �� ��� ������ �� �� �� ������� ��� ����� ����& -�� ��������� �� ���� � ������ +��� ��� �����?���� ��������� �� ��� � �� ����� ���� � ������� ��*� ?��

A��& ;& �� ����� �� ��� ����&

/* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6 !!1

�� �� � � ��� ��������� � ����� �� ������ � ������ ��& -�� ������� ���� ������ �� ��� ���� + ���� �� �� � �������� K��� B��& ������������ � ��� ���� � �� � �� �� ��� ��� �� ��� ������ ���������&

!*�*!* � ������ ������-�� ��������� ���� ������ �+� �������� ����������� ��� ������ ����� �

����� ����������� � ������& -��� ! ��� ���� ������ +��� ����� ���������� �� ��� � �&

!*�*2* ���� ���-�� �����+� � �� ��� ������ � �� ��� �� ��� ���� ��� ����,

� )� �����?� ��� ������ �� ��������� � � ��� ��� ������ � �� ���� �� �� ��� ��������� ��&

� )� � �� ������� �� �������� � ����& ���� � ������ ��� � �+ ����������� ��� � ���� � ������ � �� ���� ����&

� )� ������� ������� ��� ���� � � ������ � ��(��� � ����������� ��������� � ������&

� )� � �� �� �� ������� �� ������� ��� � ������&� )� ������� ���� ���+ �� ��� ������ �����&� )� � �� ���+�� �� ����� ������� ���� ��� � ����� ������&

� ���������� �� �����

��� �� ��� �*��� � ���� ������ 'CC ���+�� ������� �� +���� ������� ��� ���� ������ �� ���+�� ������� �& > ��:� ��� ���� ��� ������*��� � ���� �� �� ������ � ������ � ����� �� ������ � ������� �&�&������ � � ����� �� ������ � ���+�� ���& -��� � ��� ������ ������ ����� �� ������ � ������� ��� ����� �� � ����� �� ���� 4D)-5� +���� ���� �������� �� ��� ���� ��� ����& -�� ���� ��� ���� ����� ��� ������� ���� �� ��� ���� ���� ��� �������� ���������& -�� �� ��� �� ��������� � ��� � ����� �� ������ ��� ������ � ���+�� ���� �(��� �� �� �� �� ����� � ��+ �� ��? � +����� �� �������� � ������ � ���������� �� � ���& -�� ���� ��� ����� ��:� ��� ����� �*��� � ����� � ��������� �� �������� � ���� � ������ ��� �+ ����������� ��� � ���� � ������ � �� ���� ����& -��� 1 ���� � ������� ���+�� ������� ��� ���� � ��� ����� ���� �������� � .����� !&

� ����������

-�� ���� � ���� ��� ���� ��� ����� � � ����� �� ������ � � ����������� ��� ����& -�� ���� � ����� ����� � �, ��� � � �� �� �� ���

!!2 /* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6

-��� !

������ �������� �� ��� ���� ��� ����

������ D��������

G����� �� ������ ��� ��

4G/�5

'�� � ��� ����� �� ������ ��? �� � ��

������ ����� ��

������ ��� �� 4�G/�5

'������ ��� ����� ����� �� ������ ��? �� � ��

��� �� ��� ����

G����� �� �������� ��� ��

4G/�5

'�� � ��� ����� �� �������� ��? �� � ��

������ ����� �� ��������

��� �� 4�G/�5

'������ ��� ����� ����� �� �������� ��? �� � ��

��� �� ��� ����

L����� �� ������ ��� ��

4L/�5

������ � ��� ������*��� ���� 4H/'5 �� �� ������

��? �� � ��

L����� �� �������� ��� ��

4L/�5

������ � ��� ������*��� ���� 4+�����5 �� �� ��������

��? �� � ��

D���� �� � ����� �� ����

4D)-5

-�� �� ��� �� ��� �� ��� ��� ���� ��� �� �� ��� ����

�� � ��� � ����� �� ����

������ ����� �� � ����� ��

���� 4�D)-5

-�� ����� ����� �� � ����� �� ���� ��� �� ��� � ���

����

G����� �� ������� 4G/'5 '�� � ��� ����� �� ������ ����� ��� ��

������ ����� �� �������

4�G/'5

'������ ��� ����� ����� �� ������� ��� �� ��� �

��� ����

G����� �� ���� � �

4G/D5

'�� � ��� ����� �� ������ � � ������ ����� ���

��

������ ����� ��

���� � � 4�G/D5

'������ ��� ����� ����� �� ���� � � ��� �� ���

� ��� ����

) ������� �� ������ �

4)''5

������ � ��� � ����� �� ������ � ���+�� �� � ��

��� � ��� ����

'������� ������ � 4'-'5 ����� ��� � ����� �� ������ � ���+�� � �+� ���

� ��� ����

/����� ���� ������ � 4/.'5 -�� � ����� �� ������ � �� ��� +���� // ����� �&�&�

����� )'' �� �� ��� � ��� ����

'����� � ������� � ����� ��

4I� �� � H�5

�%�� �� ��� D)- ��� ��� ����� �� ������� 4G/'5

��������� ������� ����

�� 4�>A'5

-�� ����� ��� �� � ������� �������� ���� �� ��� ��

��� �� �� ����� �� ���� ��� �� �� ���

������ ������� ���� ��

4�>A'5

-�� ����� ��� �� � ������� ������ ���� �� ��� ��

��� �� �� ����� �� ���� ��� �� �� ���

��������� ������� �� ��

4�>B'5

-�� ����� ��� �� � ������� �������� �� �� ��� ��

��� �� �� �� ���� ��� �� �� ���

������ ������� �� ��

4�>B'5

-�� ����� ��� �� � ������� ������ �� �� ��� �� ���

�� �� �� ���� ��� �� �� ���

>���������� � �������

�� ������ � 4>)''5

������ � ��� ����������� � ����� �� ������ �

���+�� �� � �� ��� � ��� ����

>���������� ��������

������ � 4>'-'5

����� ��� ����������� � ����� �� ������ � ���+��

� �+� ��� � ��� ����

>���������� ������

���� ������ � 4>/.'5

-�� ����������� � ����� �� ������ � �� ��� +���� //

����� �&�&� ����� >)'' �� �� ��� � ��� ����

/* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6 !!;

������ ���������� � %���� � �� �& )� ������� � ������� ���� ��� �������� (��� � ����� �� ������ � ������� � ���� �� ���+�� ������� ������& .��� � ������� �� ��� ��� � �� ��� �� ��� ������ ��������� � +���� %���� � �� � � �� ������ �� ����� � ����� �� ������ �& -���������� �� ��� ���� ��� ���� �:� �� �� ��� � ��� � ��� ������� ��������� �� ����� ����������� ��� � ���� � ������& -�� ���� � ������ ��� ����� �� ����� ����� �*��� � ����& -�� ������� ���+�� ������������ ���� � ���� ���� ��+ ��� ��� ��������� ���� � ��� ��������� �� �� ������ � ����� ����&

-�� ��������� ���� + ������ �� � �* �� ��:��& -���� �� ���� ������ �� =������ &! �=) 0�DE &!3 ����� ���� � ��� ����� �� ��������8>�H 0����3 �"&6 ����� ����& D�� �� ��� ������� ��� ������ ��� �������� ��� ������� � ������ ��� � �������� 0 3 �� ���� �� ������ ��� � ����� ����&

����������

0 3 �& ����� ����� � ) ����� �� '����� � � /������/��� ��� .����� ���� -���� E� �

A�� > ������� �� =�������� � �� ���� D������� JJJ&

0!3 .& '�������� '& E������� � ������ ���� ��� ������ ���� ��� ���� � )��� -� ���� �

.���+�� � �� ���� � !" 4F5 4 JJ25 26F72J1&

-��� 1

=��� ��� ���� �& �*��� � ����

'������ ������� -���

B���: �

B����@ ����

-�'CC //���D�

� ���� �� �

=��� ���

����

.�������� � ���� 'CC 'CC 'CC� ���

/�����=���D���

���� .�����:

��

G����� �� ��������

�������

; ; O !1

������� �� ������ �+

� ���� � �������

� � �

.������ ��� � ����� ��

������ � �������

� � � �

.������ ��� � ������

� ����� �� ������ �

�������

.����� ����@

������ ���� ����

�������� ���������

� � �

A���+��: ��� �

�������� �� �����

������

!!F /* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6

013 =& '��� �& P����� � /������/��� ��� D��� � =�� �����I��� � ���+��� ���(� G�� JJ &

023 �& ����� �& E����� �& .����M� '����� � � '����� � /������/��� ��� .����� -��� ���

������� > ������� �� E��� ����� ������ JJ2&

0;3 '& B���:� '& B����� � ���� ��� ���������� ������ � ����������� ��� ������� � , =������� �

�� ��� )��� JJ2 G��� � ������� � ������� �� '� ���� �� 4G��'/G JJ25� ���& !�

JJ2� ��& $1;7$1$&

0F3 �& B����� A& A���� ��� =& G��� .& =���� �� ������ � ���� ��� ���� ��� �� � ,

=������� � �� 2�� )��� ) ��� ��� � '� ���� �� � � �� ���� � �� '�����* .����

4)'�''. J$5� JJ$� ��& 1F72F&

063 A& A���� ��� =& G��� .& =���� �� � ���� ��� ����� � ������� ��� � �� 'CC

�������� � � , =������� � �� ��� ! � ��������� '� ���� �� � .���+�� �� �� �� �

��� �� ���� �� JJ$� ��& $J7J;&

0$3 �& I����:�� )& ���� � �& I����� -& D��� :�� �& ����:�� // ������ �� ������ �

� ���� �� �� � , =������� � �� -��� ����� �� /������/��� ��� H ���� 4-//H. !25� JJ$�

��& $"7$;&

/* $�0��� �� ��* 1 ���������� ������� �23 4"33"5 "�67""6 !!6