Académique Documents
Professionnel Documents
Culture Documents
**
UNIVERSITE DABOMEY-CALAVI (UAC)
**
INSTITUT DE FORMATION ET DE RECHERCHE EN INFORMATIQUE (IFRI)
**
Licence 3 Gnie Logiciel
SUJET :
Mesure et Evaluation de la
Qualit dUn Logiciel
PRSENT PAR :
ENSEIGNANT :
GBOYOU Lewis M.
Jean-Pierre KOUKPAKI
HOUESSOU Parisius
HOUSSOU Cdric
PAGE 1
Des Outils Pour Mesurer La
Qualit dUn Logiciel
PAGE 2
PMD
Dtection d'un certain nombre d'anti patterns, connus pour poser
problme.
L'ensemble des rgles que PMD vrifie est disponible l'adresse
suivante :
http://pmd.sourceforge.net/rules/index.html
PAGE 3
Exemple d'anti-pattern dtect :
Null pointer dereference
Method does not check for null argument
Read of unwritten field
Eclipse Metrics
Permet de calculer beaucoup de metrics:
Complxit cyclomatique
Nombre de ligne de codes
Indice de spcialisation
Indice d'instabilit
Niveau d'abstraction
Distance from the main sequence
PAGE 4
sousclasses, etc.) ou les mtriques de Lorenz et Kidd (nombre de
mthodes, nombre de mthodes hrites, etc.).
Les mtriques de design. Elles dterminent si le code source respecte
les principes de conception pralablement dfinies. Il sagit de
mtriques telles que les mtriques de couplage ou de cohsion de
classes, ou encore les mtriques darchitecture de packages comme
les mtriques de couplage affrent et effrent de Martin.
PAGE 5
SquaRE. La norme SquaRE dfinie depuis 2005 est la norme qui succde au
standard ISO 9126. Elle a t dfinie partir de ISO 9126 et de la partie
valuation de la norme ISO 14598.
Le systme SquaRE dcrit deux modles distincts. Un modle de qualit li
lutilisation du logiciel et un modle de qualit propre la production
logicielle. Nous nous intresserons ici uniquement ce dernier.
Suivant le mme principe que la norme ISO 9126, le modle est constitu de
huit caractristiques, dcomposes en sous caractristiques :
Facilit dutilisation : degr partir duquel un produit peut tre utilis pour
atteindre les buts identifis, avec efficacit, efficience et satisfaction, dans un
contexte spcifi.
PAGE 6
Maintenabilit : degr defficacit et defficience partir duquel un produit
peut tre modifi par les personnes adquates.
PAGE 7
surtout lorsque le critre est compos de plusieurs mtriques. Dans ce cas il
devient difficile de trouver comment remdier au problme existant.
GQM (Goal-Questions-Metrics). Il sagit dune approche de la qualit
logicielle qui a t promu par Basili. Il dfinit la mesure de la qualit sur trois
niveaux : le niveau conceptuel (the goal level), le niveau oprationnel (the
question level), et le niveau quantitatif (the metric level).
Le niveau conceptuel fixe les objectifs de mesure savoir, ce qui doit
tre mesur, le niveau atteindre en terme de qualit, les objectifs viss par
lentreprise.
Le niveau oprationnel dfinit pour sa part quelles sont les questions
se poser pour dterminer si les objectifs dfinis au niveau prcdent sont
atteints.
Le niveau quantitatif dtermine quelles mtriques doivent tre
utilises pour mesurer le niveau prcdent.
Mme si ce modle est largement diffus dans lindustrie, il pose tout
de mme le problme de ne pas expliciter clairement comment intgrer les
stratgies et les buts spcifiques aux entreprises dans le modle. De plus, ce
modle ne spare pas clairement les diffrents points de vue entre les
managers et les dveloppeurs et ne permet donc pas une lecture claire
systmatique et aise des rsultats obtenus.
PAGE 8
relier clairement les facteurs de qualit au code source en utilisant une
stratgie de dtection.Ils dfinissent cette stratgie de dtection comme un
mcanisme gnrique permettant danalyser le code source en utilisant des
mtriques. Les mtriques sont soumises des mcanismes de filtrage et de
composition. Ils prsentent un nouveau modle de qualit appel facteur-
Stratgie partir de cette stratgie. Ce modle est pertinent pour mesurer
les concepts orientes objets mais tout comme le modle prcdent il ne
peut sappliquer pour dautres concepts et ne couvre pas lintgralit des
proprits dune application.
SourceInventory. Bakota et Guymthy ont prsent un modle appel
SourceInventory qui collecte des mesures telles que des mtriques et des
informations de couverture de tests. Ce modle fournit une aide pour
interprter les donnes collectes mais demeure toutefois un modle de bas
niveau qui ne fournit pas une vue globale et de haut niveau de la qualit.
The Sqale Quality Model. Le modle de qualit SQALE est un modle
hirarchique qui en suit les principes : trois niveaux allant du plus gnral
les caractristiques au plus dtaill les mesures des points de contrle.
Les caractristiques de Sqale ont t dtermines partir dun modle
gnrique du cycle de vie dun logiciel. Elles sont reprsentes selon un
modle en couche qui implique que chaque caractristique doit tre valide
pour passer la suivante, tout comme chaque tape de dveloppement dun
logiciel doit tre valide pour continuer. Les valuations des caractristiques
sont bases sur des index de remdiation calculant la distance entre le code
analys et lobjectif qualit atteindre. Calcul pour chaque composant du
code, cet index reprsente leffort de remdiation ncessaire pour corriger le
composant mesur. Lindex dun composant se calcule par addition des
index de ses constituants. De mme, lindex dune caractristique se calcule
partir de la somme de ses sous caractristiques.
Ce modle a t cr pour mesurer la qualit du code produit et
lvalue en terme deffort de remdiation uniquement. Il est
particulirement adapt aux dveloppeurs pour lesquels il a t conu. En
revanche, il ne tient pas compte de la qualit fonctionnelle du logiciel.
PAGE 9
Processus dEvaluation de la
Qualit dUn Logiciel
Evaluer la qualit
Les modles pyramidaux attribuent des notes dterminant le niveau de
qualit dun logiciel en se basant sur des mtriques brutes. Par exemple, la
norme ISO 9126 dfinit la sous-caractristique facilit de modification
comme "la capacit dun logiciel intgrer de nouvelles implmentations".
Pour mesurer cette proprit, les mtriques telles que le nombre de lignes
de code (SLOC), la complexit cyclomatique, le nombre de mthodes par
classe, la profondeur dhritage (DIT) sont combines de manire
dterminer partir de toutes ces mesures une seule et unique note pour
cette caractristique.
PAGE 10
dans nimporte quel ordre. En effet, la composition de mtriques peut
seffectuer diffrents niveaux : pour chaque composant partir de chacune
des mtriques obtenues ou au niveau du projet partir de mtriques dj
agrges.
PAGE 11
Utiliser des notes globales pour dfinir la qualit pose galement un
problme crucial pour les dveloppeurs : comment retrouver les
informations livres par les donnes brutes travers une seule note
globale ? Comment traduire cette note en un problme concret de
conception/dveloppement ? Cet cueil empche nombre de dveloppeurs
de sintresser un modle de qualit dans son ensemble et ils lui prfrent
encore souvent les mtriques de code brutes.
Dans le reste de cette section nous dtaillons en quoi les mthodes de
composition et dagrgation utilises le plus couramment ne permettent pas
de rpondre de manire satisfaisante aux exigences. Puis nous regarderons
comment lagrgation de mtriques est aborde aujourdhui dans la
littrature scientifique.
- Normaliser un rsultat
Transposer des valeurs quelconques dans un intervalle donn consiste le
plus souvent appliquer des transformations discrtes sur ce jeu de valeurs.
La Table 1 nous montre
PAGE 12
un exemple dans lequel les valeurs cibles normalises sont toujours 0, 1, 2
ou 3.
Un tel systme prsente lavantage dtre trs simple implmenter et
facile lire mais il nest pas adapt toutes les mesures. Il constitue certes le
meilleur moyen de traduire une expertise humaine telles que celles qui
constituent les mesures manuelles du modle Squale mais ne convient
absolument pas pour traduire des mtriques de code telles que le nombre
de lignes de code ou la complexit cyclomatique.
Transposer des notes continues en intervalle discret pose les
problmes suivants :
Les modifications sont masques. Utiliser des formules discrtes
introduit des paliers et des effets de seuil, ce qui masque certains
dtails et peut fausser linterprtation des rsultats. De plus, lorsque
lon souhaite surveiller lvolution de la qualit dans le temps, ces
valeurs discrtes masquent les fluctuations plus faibles, dans un sens
comme dans un autre.
Par exemple, si lon prend les valeurs de la Table 1, pour un projet donn
contenant des mthodes dune moyenne de 150 lignes de code, chaque
mthode a une valeur normalise de 1. Si les dveloppeurs rcrivent
certaines mthodes pour les porter un nombre de 80 lignes de code, la
qualit du projet aura alors globalement augment ce qui ne sera pas traduit
dans la note globale qui reste inchange du fait des transpositions discrtes
appliques.
PAGE 13
note globale de la qualit. En revanche, les composants dont la note
est plus loigne dune valeur seuil ncessitent beaucoup plus deffort
pour que le bnfice soit visible dun point de vue note. Pourtant, dun
point de vue purement qualitatif et indpendamment de la note, il est
plus judicieux de se consacrer aux plus mauvais composants pour
augmenter rellement la qualit et corriger les problmes rels.
PAGE 14
que le second projet est de meilleure qualit que le premier (puisque la
moyenne est moins leve). Mais cette moyenne masque le fait que le
second projet possde une classe A qui est trs clairement en dehors des
normes. Cest pourquoi, bien que la note moyenne soit meilleure, le dtail
des notes montre que ce second projet est pourtant le moins bon. La
moyenne, parce quelle lisse les rsultats ne reprsente pas toujours la
ralit. Pour donner une note globale qui ait du sens, un modle doit
prendre en compte ses plus mauvais composants et reflter les carts entre
eux. Dans lexemple prcdent, un indicateur de qualit appropri devrait
pointer du doigt le mauvais rsultat de la classe A en fournissant une note
globale plus basse. Mesurer la qualit ne consiste pas uniquement calculer
de simples moyennes mais doit mettre en avant les mauvais composants et
les faiblesses dune application. Pour tre utile, un modle de qualit doit
tre un modle dvaluation mais galement un guide pour augmenter la
qualit. Un dveloppeur doit pouvoir connaitre les composants amliorer
et un manager doit connatre les points faibles du projet. Une simple
moyenne ne pointe pas les mauvais composants et mme pire : elle les
masque.
Pour remdier ce dfaut, on peut dcider dutiliser une moyenne
pondre. Cependant, cette mthode a aussi ses dfauts comme indiqu
ensuite.
PAGE 15
aux autres. Une premire version du modle Squale mettait ce principe en
application : plus une note tait mauvaise, plus elle avait un poids fort.
Pour illustrer le problme attenant une telle dmarche, considrons
lexemple suivant : la Table 3 dcrit les poids donns pour la mtrique SLOC
dans la premire version de Squale. Il indique que les mauvaises notes
obtenues pour cette mtrique taient pondres avec une valeur de 27 pour
augmenter leur influence lors du calcul de la moyenne. La Table 4 contient
les poids correspondants aux mesures de SLOC. Par exemple, les poids
appliqus pour la mthode C sont diffrents du fait de la note diffrente
obtenue. Ce que cet exemple met en valeur et qui prouve que la mthode
utilise ne convient pas est illustr grce aux mthodes B et C. Alors que la
valeur de la mtrique SLOC diminue et donc que la qualit augmente, les
PAGE 16
poids appliqus aux valeurs produisent un effet totalement inverse sur le
calcul de la note globale : celle-ci diminue ! Dans cet exemple, la moyenne
pondre passe de 222,75 259,53 pour la seconde version. Le rsultat
augmente alors mme que la qualit du code est globalement amliore.
Cet exemple montre que lutilisation dune moyenne pondre nest pas la
mthode adquate et peut mme savrer totalement inapproprie pour un
modle de qualit : la moyenne diminue la note attribue alors mme que la
qualit du code est en augmentation ! Un modle de qualit doit reflter
tous les changements le plus finement possible et avec fiabilit.
Conclusion
Mesurer la qualit dun logiciel est plus complexe quil ny parait. Il
faut tout dabord dfinir clairement ce que sous-entend le mot qualit pour
chaque entreprise, chaque quipe et chaque logiciel mesur. Une fois les
objectifs qualits clairement tablis, encore faut-il savoir comment les
mesurer. Il ne suffit pas simplement de collecter des rsultats de mtriques
mais surtout de donner du sens ces diffrentes mesures.
PAGE 17