Académique Documents
Professionnel Documents
Culture Documents
pour qualifier
l’Orienté-Objet
1 LES MÉTRIQUES PROPOSÉES PAR CHIDAMBER ET KEMERER 3
Définition
C'est la somme des complexités de toutes les méthodes. WMC est égal au nombre de méthodes
locales lorsque la complexité de toutes les méthodes est égal à 1.
Interprétation
WMC est un reflet de la complexité
Attributs mesurés
- Prédiction du temps et de l’effort nécessaire au développement et à la maintenance d’une classe,
plus une classe a de méthodes, plus elle demandera de travail.
- Impact sur la réutilisabilité, par le nombre de méthodes dont vont hériter les classes dérivées.
- Evaluation de la réutilisabilité. Un WMC élevé étant le signe d’une limitation de cet attribut, la
spécificité de l’application étant plus grande.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- S. R. Chidamber et C. F. Kemerer - “A Metric Suite for Object Oriented Design”, IEEE
Transactions on Software Engineering, Juin 1994.
- Dr. Linda H. Rosenberg - “Applying and Interpreting Object Oriented Metrics”, IEEE
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
DIT - Depth of Inheritance Tree
Définition
c'est la profondeur de l’héritage de la classe.
Interprétation
DIT est un reflet de la complexité (cf. Note) via la portée des ancêtres.
Attributs mesurés
- Evalue la complexité de la classe. Le comportement de la classe étant plus difficile à comprendre
quand le nombre de méthodes héritées croît.
- Evalue la complexité globale. La conception est plus complexe puisqu’il y a plus de classes et de
méthodes à développer.
- Evalue la réutilisabilité de la classe. Plus une classe est loin dans la hiérarchie, moins elle est
générique et moins son comportement est prévisible..
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- S. R. Chidamber et C. F. Kemerer - “A Metric Suite for Object Oriented Design”, IEEE
Transactions on Software Engineering, Juin 1994.
- Dr. Linda H. Rosenberg - “Applying and Interpreting Object Oriented Metrics”, IEEE
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
NOC - Number Of Children
Définition
c'est le nombre de classes immédiatement dérivées d’une classe.
Interprétation
NOC est un reflet de l’impact potentiel d’une classe sur ses descendants.
Attributs mesurés
- Evalue la réutilisabilité. Une classe ayant de nombreux enfants étant très générique.
- Evalue une mauvaise abstraction. Une classe ayant de nombreuses classes dérivées ayant une plus
grande probabilité d’être improprement abstraite.
- Evalue l’influence sur le système et sur l’effort de test. Une classe ayant de nombreuses classes
dérivées a un impact fort sur la hiérarchie de classes. Un effort de tests particulier devra lui être
appliqué.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- S. R. Chidamber et C. F. Kemerer - “A Metric Suite for Object Oriented Design”, IEEE
Transactions on Software Engineering, Juin 1994.
- Dr. Linda H. Rosenberg - “Applying and Interpreting Object Oriented Metrics”, IEEE
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
CBO - Coupling Between Object classes
Définition
nombre de couplages entre une classe et toutes les autres classes du système, hors les classes dans
la hiérarchie d’héritage. Deux classes sont dites couplées si une méthode de l’une utilise une
méthode ou un attribut de l’autre.
Interprétation
CBO est un reflet de l’interdépendance entre les constituants du système.
Attributs mesurés
- Evalue la modularité et la réutilisabilité. Plus une classe est couplée aux autres, moins elle est
modulaire et réutilisable.
- Evalue la modularité et l’effort de maintenance. Plus une classe est couplée aux autres, plus une
modification de celle-ci risque d’affecter d’autres parties du système.
- Evalue la testabilité. Plus une classe est couplée aux autres, moins il sera aisé de vérifier toutes les
interactions possibles.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- S. R. Chidamber et C. F. Kemerer - “A Metric Suite for Object Oriented Design”, IEEE
Transactions on Software Engineering, Juin 1994.
- Dr. Linda H. Rosenberg - “Applying and Interpreting Object Oriented Metrics”, IEEE
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
RFC - Response For a Class
Définition
C'est le nombre de l’ensemble des méthodes potentiellement appelées par une classe en réponse à
un message d’un objet de la classe ou d’une méthode de la classe, y compris les méthodes
accessibles dans la hiérarchie des classes.
Interprétation
RFC est un reflet du niveau de communication potentiel entre une classe et les autres.
Attributs mesurés
- Evaluation de la testabilité. Plus une classe invoque de méthodes de diverses origines, plus elle est
compliquée à comprendre.
- Evaluation de la complexité. Plus une classe invoque de méthodes, plus elle est complexe.
- Evaluation de l’effort de test. Plus une classe est complexe, plus l’effort de test sera important
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- S. R. Chidamber et C. F. Kemerer - “A Metric Suite for Object Oriented Design”, IEEE
Transactions on Software Engineering, Juin 1994.
- Dr. Linda H. Rosenberg - “Applying and Interpreting Object Oriented Metrics”, IEEE
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
LCOM - Lack of COhesion in Methods
Définition
Mesure la non corrélation des méthodes et des variables de la classe. C'est le nombre de méthodes
prisent deux à deux ne partageant pas des instances de variables de la classe, moins, le nombre de
méthodes prisent deux à deux partageant des instances de variables de la classe. Si cette valeur est
négative, LCOM est fixée égale à zéro.
Interprétation
une classe est cohérente (a de la cohésion) si ses méthodes agissent sur le même ensemble de
données.
Attributs mesurés
- Evalue l’encapsulation. Une classe cohérente promouvant celle-ci.
- Evalue les défauts de conception de classes. Une classe peu cohérente devant sans doute être éclatée
en plusieurs autres classes plus cohérentes.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- S. R. Chidamber et C. F. Kemerer - “A Metric Suite for Object Oriented Design”, IEEE
Transactions on Software Engineering, Juin 1994.
- Dr. Linda H. Rosenberg - “Applying and Interpreting Object Oriented Metrics”, IEEE
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
Il s’agit des métriques DIT, NOC, RFC, LCOM et WMC. La métrique CBO n’étant pas
retenue dans cette suite puisque d’autres sont proposées pour évaluer le couplage.
Le couplage par héritage est quant à lui estimé correctement appréhendé par les indicateurs
DIT et NOC.
Le mode de calcul de la métrique LCOM étant modifié pour devenir : le nombre de jeux
disjoints de méthodes locales à la classe dont au moins une instance de variable de classe est
partagée entre elles.
Définition
nombre de messages envoyés par une classe en direction des autres classes du système (nombre
de méthodes invoquées).
Interprétation
le nombre de messages envoyés par une classe peut indiquer combien l’implémentation de ses
méthodes dépend des autres classes.
Attributs mesurés
- Evalue le couplage sortant d’une classe.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
DAC - Data Abstraction Coupling
Définition
la définition de cette métrique est ambiguë. C’est pourquoi les deux interprétations possibles sont
fournies :
1) nombre de types de données abstraites définit dans une classe (classes dont la définition est
incluse dans la définition d’une autre classe),
ou 2) attribut d’une classe qui est une autre classe.
Le texte des auteurs accréditerait plutôt la définition 1).
Interprétation
le nombre de classes ainsi 1)définies ou 2)utilisées indique la dépendance d’une classe à la
définition d’autres classes.
Attributs mesurés
- Evalue le couplage "interne" d’une classe avec d’autres classes.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
NOM - Number Of local Methods
Définition
nombre de méthodes localement définies dans une classe (hors méthodes héritées).
Interprétation
ce nombre indique l’incrément de l’interface apporté par cette classe.
Attributs mesurés
- Evalue les propriétés opérationnelles d’une classe (interface).
- Evalue la complexité de la classe : plus NOM est élevée, plus une classe est complexe.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
SIZE1
Définition
nombre de points virgule dans l’implémentation d’une classe.
Interprétation
ce nombre est directement dérivé de la métrique traditionnelle LOC (Lines Of Code).
Attributs mesurés
Evalue la complexité d’une classe.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”,
Juin 1998.
METRIQUE
SIZE2
Définition
cumul du nombre d'attributs et du nombre de méthodes locales (NOM) d’une classe.
Interprétation
Attributs mesurés
Evalue la complexité d’une classe.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
Jagdish Bansiya – “A Hierarchical Model For Quality Assessment Of Object Oriented Designs”, Juin
1998.
Le projet MOOD (Metrics for Object Oriented Design) [Abreu & Goulão & Esteves - 1995]
consiste en une proposition de 6 métriques dont les principales caractéristiques sont :
• Une forte corrélation avec les concepts objet ;
• Une évaluation d’un système dans sa globalité ;
• Une évaluation possible en dehors de toute implémentation ;
• Une expression en pourcentage, éliminant les questions de signification quant à la
valeur d’une métrique.
Ces métriques reposent sur le principe suivant :
métrique = Nombre d'occurrences dans le système / Nombre maximal d’occurrence dans le système
Elle s’appuie sur l’hypothèse que la mesure de fréquence d’emploi de certains facteurs de
construction orientés objets reflète la qualité de la conception.
Ces métriques ont été jaugées sur des réalisations commerciales prises comme étalons d’une
bonne conception orientée objets. Il en résulte des recommandations quant aux fourchettes
dans lesquelles doivent se trouver chacune de ces métriques.
METRIQUE
MHF - Method Hiding Factor
Définition
Nombre de méthodes cachées par rapport au nombre de méthodes définies
Interprétation
pourcentage de méthodes cachées.
Attributs mesurés
- Evalue l’encapsulation.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Fernando Brito e Abreu – “Design Metrics for Object-Oriented Software Systems”, INESC/ISEG,
1995
- Rachel Harrisson, Steve J. Councell – “An evaluation of the MOOD Set of Object-Oriented
Software Metrics”, IEEE Transactions on Software Engineering, vol. 24, n° 6, Juin 1998.
- Tobias Mayer, Tracy Hall - “Measuring OO Systems : A Critical Analysis of the MOOD Metrics”,
IEEE, Proceeding of Technology of Object-Oriented Languages and systems, 1998.
Définition
Interprétation
pourcentage d’attributs cachés.
Attributs mesurés
Evalue l’encapsulation.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Fernando Brito e Abreu – “Design Metrics for Object-Oriented Software Systems”, INESC/ISEG,
1995
- Rachel Harrisson, Steve J. Councell – “An evaluation of the MOOD Set of Object-Oriented
Software Metrics”, IEEE Transactions on Software Engineering, vol. 24, n° 6, Juin 1998.
- Tobias Mayer, Tracy Hall - “Measuring OO Systems : A Critical Analysis of the MOOD Metrics”,
IEEE, Proceeding of Technology of Object-Oriented Languages and systems, 1998.
Définition
Interprétation
pourcentage de méthodes héritées.
Attributs mesurés
- Evalue l’abstraction.
- Evalue la fonctionnalité.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Fernando Brito e Abreu – “Design Metrics for Object-Oriented Software Systems”, INESC/ISEG,
1995
- Rachel Harrisson, Steve J. Councell – “An evaluation of the MOOD Set of Object-Oriented
Software Metrics”, IEEE Transactions on Software Engineering, vol. 24, n° 6, Juin 1998.
- Tobias Mayer, Tracy Hall - “Measuring OO Systems : A Critical Analysis of the MOOD Metrics”,
IEEE, Proceeding of Technology of Object-Oriented Languages and systems, 1998.
Définition
Interprétation
pourcentage d’attributs hérités.
Attributs mesurés
- Evalue l’abstraction.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Fernando Brito e Abreu – “Design Metrics for Object-Oriented Software Systems”, INESC/ISEG,
1995
- Rachel Harrisson, Steve J. Councell – “An evaluation of the MOOD Set of Object-Oriented
Software Metrics”, IEEE Transactions on Software Engineering, vol. 24, n° 6, Juin 1998.
- Tobias Mayer, Tracy Hall - “Measuring OO Systems : A Critical Analysis of the MOOD Metrics”,
IEEE, Proceeding of Technology of Object-Oriented Languages and systems, 1998.
Définition
Interprétation
pourcentage de méthodes polymorphes par rapport au nombre total de méthodes
potentiellement polymorphes.
Attributs mesurés
Evalue la flexibilité.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Fernando Brito e Abreu – “Design Metrics for Object-Oriented Software Systems”,
INESC/ISEG, 1995
- Rachel Harrisson, Steve J. Councell – “An evaluation of the MOOD Set of Object-Oriented
Software Metrics”, IEEE Transactions on Software Engineering, vol. 24, n° 6, Juin 1998.
- Tobias Mayer, Tracy Hall - “Measuring OO Systems : A Critical Analysis of the MOOD
Metrics”, IEEE, Proceeding of Technology of Object-Oriented Languages and systems, 1998.
Définition
Interprétation
pourcentage de classes couplées aux autres classes autrement que par l’héritage.
Attributs mesurés
- Evalue l’interdépendance.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
- Fernando Brito e Abreu – “Design Metrics for Object-Oriented Software Systems”, INESC/ISEG,
1995
- Rachel Harrisson, Steve J. Councell – “An evaluation of the MOOD Set of Object-Oriented
Software Metrics”, IEEE Transactions on Software Engineering, vol. 24, n° 6, Juin 1998.
- Tobias Mayer, Tracy Hall - “Measuring OO Systems : A Critical Analysis of the MOOD Metrics”,
IEEE, Proceeding of Technology of Object-Oriented Languages and systems, 1998.
Les systèmes orientés objets ayant une architecture plus riche que les systèmes classiques, J.
Bansiya a enrichi le cadre de base proposé par Dromey.
Une contrainte supplémentaire étant posée pour établir ce modèle : la disponibilité des
métriques dès la phase de conception du système (en dehors de toute implémentation).
4.2.2.1 Définition des propriétés
Le modèle présenté par Bansiya permet de définir des liens pondérés entre les propriétés de
conception orientées objets et les attributs qualitatifs de haut niveau.
Pour la réutilisabilité par exemple la pondération s’opère ainsi :
Reusability = -0.25 * Coupling + 0.25 * Cohesion + 0.5 * Messaging + 0.5 * Design Size
METRIQUE
CAM - Cohesion Among Methods in class
Définition
pourcentage de types d’attributs partagés entre les méthodes d’une classe.
Interprétation
Attributs mesurés
- Evalue la cohésion d’une classe.
Eléments de coûts
Contexte d’utilisation
Références bibliographiques
Définition :
En second lieu le soucis de disposer d’indicateurs disponibles dès les premiers temps de la
conception d’un système orienté objets.
De plus ce modèle a été mis en pratique avec le logiciel QMOOD++ qui automatise la
collecte des métriques et le calcul des attributs qualitatifs de haut niveau d’un logiciel spécifié
en C++.
Le mode de validation du modèle QMOOD est également original puisqu’il combine :
• Une validation en prenant comme étalon des systèmes orientés objets de très large
diffusion commerciale : Les MFC de Microsoft et les OWL de Borland. Au travers
des versions successives de ces librairies de classes, le modèle QMOOD rend bien
compte des évolutions qualitatives attendues.
• Une validation sur un même projet en C++ effectué par des classes d’étudiants sur 3
ans. Cette validation met notamment en parallèle les notes affectées par les
professeurs, et les classements résultant ; avec l’évaluation que fait QMOOD de ces
mêmes projets. Ces classements sont corrélés dans 85% des cas.
• La métrique CAM a été validée en comparant ses résultats avec ceux fournis par la
métrique LCOM de Chidamber et Kemerer améliorée par Li et Henry. Dans 90% des
cas étudiés ces indications sont corrélées, avec comme avantage essentiel pour CAM
qu’elle peut être mesurée en dehors de toute implémentation.
En dépit de ces points positifs, le modèle de Bansiya n’est pas exempt de lacunes :
• Le calcul pondéré des attributs qualitatifs de haut niveau fait appel à des opérations
arithmétiques (multiplication et addition) entre des valeurs dont les unités ne sont pas
clairement définies et par conséquent probablement non homogènes.
• Indépendamment de la critique précédente, cette pondération mériterait sans doute
d’être affinée.
• La profusion de métriques évoquées nécessiterait sans doute des études individuelles
plus approfondies.
• Une adaptation à des phases plus avancées du cycle de vie du logiciel enrichirait et
affinerait le modèle.
• Certaines métriques, bien que judicieuses, sont liées à un langage de programmation
particulier. C’est le cas notamment du nombre de méthodes triviales détectées en C++
par l’occurrence du mot clé "inline ".
• Une validation de ce modèle quant à sa capacité à prévoir la fiabilité et la
maintenabilité, à l’image des travaux de W. Melo sur les métriques de Chidamber et
Kemerer ainsi que de F. B. Abreu et al. , assoirait sa crédibilité.
4.2.4.1 Utilisabilité
Ces métriques ont été validées empiriquement sur des échantillons non industriels de petites
tailles. Dans ce contexte ils apparaissent comme des prédicateurs de la fiabilité et de la
maintenabilité d’un système orienté objets.
Des débuts de déploiement industriel de ces métriques sont en cours notamment à la NASA.
Les résultats de ces travaux donneront une première indication sur l’utilisabilité de ces
nouveaux outils.
Néanmoins les points évoqués ci-après montrent qu’une certaine prudence est de rigueur.
4.2.7 La validation
La validation théorique et pratique des modèles de mesure et des métriques demeure le point
le plus critique des recherches actuelles.