You are on page 1of 17

Mtrologie du logiciel

Oussama MJIHIL, 2014/2015

/ 17

Sommaire
Introduction
Terminologie
Objectifs et avantages de mtriques

Chapitre 0 : Mtriques de produits


Chapitre 1 : Mtriques de la qualit logicielle.

Chapitre 2 : Mtriques de processus.


Chapitre 3 : Mtriques et modles de complexit du systme.
Chapitre 4 : Mtriques orientes objet.

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

/ 17

Chapitre 4 : Mtriques orientes objet.

1.
2.
3.
4.

Mtriques de Chidamber & Kemerer


Les mtriques de MOOD/MOOD2
Outils de mesure
Rfrences

/ 17

Chapitre 4 : Mtriques orientes objet.


Mtriques de MOOD/MOOD2

MHF/AHF: Facteur dencapsulation


MIF/AIF: Facteur dhritage
PF: Facteur de polymorphisme
CF: Facteur de couplage
4

/ 17

Les mtriques MOOD/MOOD2


Introduction:
Les mesures de MOOD, dfinies par Fernando Brito e Abreu (1994) [6], sont
conues pour fournir un rsum de la qualit globale d'un projet orient objet.
L'original de la suite des mesures de MOOD se compose de six mesures (MHF,
AHF, MIF, AIF, PF and CF). Les mtriques MOOD2 ont t ajoutes plus tard (en
2001) [8].
Ces mesures sont utiles pour les projets avec un usage intensif de la
programmation oriente objet.
Les mtriques MOOD / MOOD2 dcrivent l'ensemble du projet, et pas une classe
individuelle.

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

/ 17

Les mtriques MOOD/MOOD2


MHF/AHF Facteur dencapsulation.
Dfinition:
MHF et AHF reprsentent la moyenne de l'encapsulation dans toutes les
classes du systme.
Ces facteurs mesurent comment les variables et les mthodes sont
encapsuls dans les classes du systme.
MHF=

=1 ( )

( )
=1

TC: le nombre total de classes.


( ): Mthodes cachs de la classe
( ): Mthodes visibles de la classe
( ) = + ( )

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

AHF=

=1 ( )

( )
=1

TC: le nombre total de classes.


( ): Attributs cachs de la classe
( ): Attributs visibles de la classe
( ) = + ( )

Cycle dingnieur dEtat


Gnie Logiciel

/ 17

Les mtriques MOOD/MOOD2


MHF/AHF Facteur dencapsulation.
Interprtation:
Un faible MHF indique une faible abstraction. Une grande partie des mthodes
ne sont pas protgs et la probabilit d'erreurs est leve.
Un haut MHF indique quon se dispose dun nombre faible de fonctionnalits.
Il peut galement indiquer que la conception comprend une forte proportion
de mthodes spcialises qui ne sont pas rutilisables.
Un MHF entre 8% 25% est gnralement acceptable.
Augmentation MHF diminue la densit de bug et augmente la qualit. [2]
Augmentation MHF diminue la densit de dfauts et d'efforts pour les trouver
et les corriger. [6]
AHF idial est de 100% ce qui signifie que tous les attributs sont cachs
private , nous devons faire attention si nous avons un faible AHF.

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

/ 17

Les mtriques MOOD/MOOD2


MIF/AIF: Facteur dhritage
Dfinition:
MIF et AIF donnent une information sur lutilisation de lhritage dans tout
le projet logicielle.

MIF=

=1 ( )

( )
=1

( ):Mthodes hrites et non redfinies


: Nombre total de mthodes de

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

AIF=

=1 ( )

( )
=1

( ): Attributs hrits, dans la classe


: Nombre total dattributs de

Cycle dingnieur dEtat


Gnie Logiciel

/ 17

Les mtriques MOOD/MOOD2


MIF/AIF: Facteur dhritage
Interprtation:
Une valeur trop leve de MIF/AIF peut indiquer un nombre important
l'hritages inutiles
Une valeur faible indique un manque dhritage ou un usage intensif de
redfinitions.
Un MIF entre 20% 80% et un AIF entre 0% et 48% sont acceptables.
Selon le cas de figure, vous pouvez diminuer le MIF/AIF:
En utilisant lencapsulation des mthode et des attributs, dans les classes
mres, pour empcher l'hritage.
En ajoutant des redfinitions dans les classes filles, si ncessaire.
En dplaant/Ajoutant certaines mthodes et variables aux classes filles.
En utilisant limplmentation des interfaces au lieu de lhritage.
Augmentation MIF diminue la densit de dfauts et d'efforts pour trouver et
corriger les dfauts. [6]
UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

/ 17

Les mtriques MOOD/MOOD2


PF: Facteur de polymorphisme
Dfinition:
Le Facteur de polymorphisme (PF), mesure le degr de la redfinition
(overriding) dans l'arborescence d'hritage de classe.
PF mesure indirectement la quantit de liaisons dynamiques dans le systme.

PF=

=1 ( )

[
=1

( )]

( ): nombre de mthodes redfinies


: nombre de mthodes nouvelles
: nombre de classe descendante de
( ): nombre de redfinissions possibles

Limites:
PF mesure seulement le polymorphisme d la redfinition des mthodes. Et il
ne prend pas en considration la surcharge de mthodes ou le polymorphisme
d limplmentation des interfaces.
UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

10 / 17

Les mtriques MOOD/MOOD2


PF: Facteur de polymorphisme
Interprtation:
Un PF 100% signifie que toutes les mthodes hrites sont redfinies
Un PF plus bas signifie que les redfinissions (polymorphisme) sont rares.
Polymorphisme provient de l'hritage et a ses avantages (un code clair) et
inconvnients (un code trs polymorphe peut tre difficile comprendre):
Un PF lev, diminue la densit de bug et augmente la qualit. [2]
Augmentation de PF diminue la densit de dfauts et d'efforts pour
trouver et corriger les dfauts, mais au-dessus de 10% on perd ces
avantages [6]

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

11 / 17

Les mtriques MOOD/MOOD2


CF: Facteur de couplage
Dfinition:
Facteur de couplage (CF alias COF) mesure les couplages entre les classes par
rapport au nombre maximum de couplages possibles.

CF=

=1 =1 _( , )
2 2
=1 ( )

_( , ): accde un attribut ou
une mthode de .
: nombre de classes descendantes de

Les couplages dues l'hritage ne sont pas inclus.

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

12 / 17

Les mtriques MOOD/MOOD2


CF: Facteur de couplage
Interprtation:
Trs haute valeur de CF doit tre vite.
Il a t propos que CF ne doit pas dpasser 12%
Augmentation de PF augmente la densit de dfauts et l'efforts pour trouver et
corriger les dfauts, Le couplage doit tre vite. [6]
Diffrence entre CF et CBO:
Le couplage est compt dans les deux directions. Dans CBO, les deux
directions sont comptes comme un seul couplage.
Les couplages dues l'utilisation de lhritage ne sont pas inclus dans les FC,
mais ils sont inclus dans CBO.

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

13 / 17

Les mtriques MOOD/MOOD2


Les mtriques MOOD2
Dfinition:
Les mtriques MOOD2 [8] sont ajouts, plus tard, par l'auteur de lensemble de
mtriques MOOD. On cite les exemples suivants:

UH1
FSTS

OHEF
AHEF

Operation/Attribute Hiding Effectiveness Factor:


Quotient between the cumulative number of the specification classes that do access
the specification operations/attributes and the cumulative number of the
specification classes that can access the specification operations/attributes.

IIF

Internal inheritance Factor:


Quotient between the number of inheritance links where both the base and derived
classes belong to the current specification and the total number of inheritance links
originating in the current specification.

PPF

IIF Internal inheritance factor:


Percentage of the specification classes that are parameterized

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

14 / 17

Outils de mesure
Understand
Jmetric
CCCC: C/C++
Code Counter
Project Analyzer
.

UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

15 / 17

Rfrences
1. Chidamber S.R., Kemerer C.F.: A metrics suite for object oriented design; IEEE Transactions
on Software Engineering, Vol. 20, No. 6, June 1994
2. Misra & Bhavsar: Relationships Between Selected Software Measures and Latent BugDensity: Guidelines for Improving Quality. SpringerVerlag 2003. A study where an increase
in MHF and PF was found to decrease bug density in 30 C++ projects.
3. Fernando Brito e Abreu & WaDaniela Glasberg, Khaled El Emam, Walcelio Melo, Nazim
Madhavji: Validating Object-Oriented Design Metrics on a CommercialJava Application.
2000.
4. Houari A. Sahraoui, Robert Godin, Thierry Miceli: Can Metrics Help Bridging the Gap
Between the Improvement of OO Design Quality and Its Automation?
http://www.iro.umontreal.ca/~sahraouh/papers/ICSM00.pdf
5. Bindu S. Gupta: A Critique of Cohesion Measures in the Object-Oriented Paradigm. Master
of Science Thesis. Michigan Technological University, Department of Computer Science.
1997.
6. Fernando Brito e Abreu & Walclio Melo: Evaluating the Impact of ObjectOriented Design
on Software Quality. 3rd Intl S/W Metrics Symposium, March 1996, Berlin, Germany.
7. Fernando Brito e Abreu: Using OCL to formalize object oriented metrics definitions.
Technical Report ES007/2001 (version 1.0 June 2001). Includes definition of MOOD2.
UH1
FSTS

Mtrologie du Logiciel et normes


Oussama.mjihil@gmail.com

Cycle dingnieur dEtat


Gnie Logiciel

16 / 17

Thanks For Listening


Oussama MJIHIL, 2014/2015

17 / 17

You might also like