3. 3
Introduction Métriques Exercices Conclusion
La qualité du logiciel est définie comme « une mesure dans laquelle un
composant système ou processus répond aux exigences spécifiques ou aux
besoins et aux attentes client ou utilisateur »
La mesure de la qualité SI
Un facteur est un élément fonctionnel,
technique ou ergonomique, qui est
définie par un ensemble de métrique.
un modèle de qualité désigne un ensemble
de vues de l'utilisateur d’un système, qui est
décomposée en plusieurs facteurs et
plusieurs critères ou caractéristiques.
4. La mesure de la qualité SI4
Introduction Métriques Exercices Conclusion
• Est-ce qu’il répond exactement aux besoins clients ?Exactitude
• Est-ce qu’il est fonctionnel dans des conditions
anormales ? la tolérance aux erreurs, la cohésion..Fiabilité
• Est-ce qu’il est facile pour localiser et corriger ses
défauts et erreurs ?Maintenabilité
• Est ce qu’il est modifiable facilement?Flexibilité
• Est-ce qu’e le logiciel est décomposable en éléments
indépendants ?Modularité
• Est-ce qu’il peut accepter des modifications dans les
spécifications et des adjonctions nouvelles ?Extensibilité
• Est ce qu’il est capable d'interfaçage avec d'autres
composants/systèmes ?Intéropérabilité
Définitions
5. Une métrique est une caractéristique ou une propriété
d’un logiciel, sa mesure correspond à une valeur à un
moment T, interprétable et propose une solution.
Définitions
5 La mesure de la qualité SI
Introduction Métriques Exercices Conclusion
6. 6
Fiabilité
Précision Testabilité …
Maintenabilité… Fonctionnalité Utilité…
Tolérance aux
fautes
Concision
CCYC = a− n +e +s
Métrique McCabe
Simplicité…
FacteurCritèreMétrique
Relation critère/ Métrique
…
La mesure de la qualité SI
Introduction Métriques Exercices Conclusion
8. 8
Caractéristiques d’une métrique
La forme d’une métrique peut être simple ou dérivée.
Chaque métrique fait partie d’une classification (Nominale,
Ordinale, Intervalle…) .
Une métrique a un type spécifique.
Une ou plusieurs métriques peuvent mesurer une entité.
Sa valeur est numérique absolue et positive.
Chaque résultat obtenu a une interprétation.
La mesure de la qualité SI
Introduction Métriques Exercices Conclusion
9. Type
Exemple
entité
Sous- type
Type
d’attribut
Exemple de mesure
Processus Teste
Management Interne Délai
Qualité Externe Coût
Produits Code
Code source Interne
Nombre de lignes de code
(Complexité,
Fonctionnalité)
Spécifications Externe
Nombre de défauts par
classe (Fiabilité,
Maintenabilité)
Ressources Personnel
Humaines Interne Productivité
Matérielles Externe Performance
9 La mesure de la qualité SI
Types des métriques
Introduction Métriques Exercices Conclusion
10. Outil Désignation Type métrique
SonarCube V5
Open source
Supporte 25 langages de programmation.
Code source
CAST Measures
V5
Depuis 2006 le pionnier du marché de la
Gouvernance des Développements Applicatifs.
Processus
Code source
Squale V7
Projet initié par Air France et Qualixo
Détermine les modèles de qualimétrie
S’interésse aux outillage de control et suivi projets.
Processus
Code
Ressource
McCabe V8
Spécialisé dans le management de la qualité
Analyse qualimétrique,
La couverture de test,
Visualiser architecture système...
Processus
Ressource
10 La mesure de la qualité SI
Outils de mesure
Introduction Métriques Exercices Conclusion
11. La mesure de la qualité SI11
Cet indice se calcule sur une classe entière.
SPE = (S*P)/Nb
S = Nombre de méthodes redéfinies
P = Profondeur d’héritage depuis System.Object
Nb = nombre de méthodes de la classe
Il s’augmente quand le nombre de méthodes redéfinies (S) ou la profondeur
d'héritage (P) augmente.
Il se diminue quand le nombre de méthodes spécifiques à la classe (NB)
augmente ou le nombre de méthodes redéfinies (S) diminue.
Une valeur de 1,5 est considérée comme trop élevée.
Une classe dont le SPE est trop élevé devra être refactorée.
L'indice de spécialisation
Introduction Métriques Exercices Conclusion
12. La mesure de la qualité SI12
I = Ce / (Ce + Ca)
Accouplement Afférente (Ca): Le nombre de classes hors d'un
package qui dépendent d'une classe dans le package.
Accouplement efférente (Ce) : Le nombre de classes dans un
packages qui dépendent d'une classe d'un autre package.
Cette mesure est un indicateur de la résistance de l'emballage au
changement. La plage de cette métrique est de 0 à 1 ; 0 <= I <= 1,
Avec I = 0 indiquant un package complètement stable et I = 1
indique un package complètement instable.
Exemple de la classe System.String, qui ne dépend pas de grand
monde, mais dont au contraire, énormément d'autres classes
dépendent, (I) tend vers 1, et un refactoring de cette classe sera donc
risqué.
L'indice d'instabilité d'un package
Introduction Métriques Exercices Conclusion
13. La mesure de la qualité SI13
A = I / T
I = Nombre d’interfaces du package
T = Nombre total de types du package (classes et interfaces)
Abstraction (A): Le rapport entre le nombre de classes abstraites (et
interfaces) dans le paquet analysé sur le nombre total de classes du
package.
La plage de cette métrique est de 0 à 1.
A = 0 indiquant un ensemble tout à fait concrète
A = 1 indique un package complètement abstraite.
Le coefficient d'abstraction d’un package
Introduction Métriques Exercices Conclusion
14. La mesure de la qualité SI14
La Distance (D) se calcule sur un ou ensemble de packages.
D = A + I = 1 ou D = | I + A - 1 |
A : l'indice d'abstraction du paquetage
I : l'indice d'instabilité du paquetage
Cette mesure est un indicateur de l'équilibre du paquet entre
abstraction et de la stabilité.
Les paquets Idéals sont soit complètement abstraite et parfaitement
stable (I = 0, A = 1) ou tout à fait concrète et instable car elle dépend
d'une multitude d'autres packages (I = 1, A = 0).
La plage de cette métrique est de 0 à 1
D = 0 indique un package qui coïncide avec la séquence principale
D = 1 indique un package qui est aussi loin de la séquence principale
que possible
La distance de la bonne conception d'un package
Introduction Métriques Exercices Conclusion
15. La mesure de la qualité SI15
On représente le flux de contrôle du programme sous forme d’un
graphe (exemple des instructions Switch, if, for, while, do, case,
catch)
CCYC = a− n +e +s
a: le nombre d’arcs du graphe
n: le nombre de nœuds
e: le nombre de points d’entrées
s: le nombre de points de sortie
Plus la complexité cyclomatique augmente, plus le programme sera
susceptible de contenir des erreurs, sera difficile à comprendre et a
tester.
Solution: Refactoring -> Optimisation du code source
McCabe la complexité cyclomatique
Introduction Métriques Exercices Conclusion
16. La mesure de la qualité SI16
Le taux de couverture d'une méthode est une métrique donne un
pourcentage de chemins couvert par les tests.
COUV = (NbTest / Nb) * 100
NbTest = Nombre de lignes couvertes par les tests unitaires (TU)
Nb = Nombre total de lignes de la méthode
Si COUV = 100%, le nombre de tests unitaires d'une méthode est
égal à son indice de complexité cyclomatique.
Le taux de couverture
Introduction Métriques Exercices Conclusion
17. La mesure de la qualité SI17
Il s'agit d'une mesure de difficulté et de complexité d’un logiciel.
Elle est calculée par :
[Difficulté] = ([Nombre d'opérateurs uniques] /2) * ([Nombre
d'opérandes] / [nombre d'opérandes uniques])
Exemple opérateurs: :=, = ou == (affectation ou bien égalité), != ou
<> (inégalité), && (et booléen), || (ou booléen), ! (négation
booléenne)..
Un opérande peut être une constante, une simple variable ou une
expression faisant intervenir d'autres opérations.
Elle peut être calculée pour toute méthode ou le conteneur de la
méthode.
Complexité d'Halstead: Métrique de difficulté
Introduction Métriques Exercices Conclusion
18. La mesure de la qualité SI18
Il s'agit d'une estimation de la taille du programme, calculé par :
[programme longueur] = [Nombre d'opérateurs] + [nombre
d'opérandes]
Plus que le programme est long, plus qu’il est complexe.
Elle peut être calculée pour toute méthode, classe ou package.
Mesure de la taille d’un programme
Introduction Métriques Exercices Conclusion
19. La mesure de la qualité SI19
Facteur Critère Indication Métrique Formule
Utilisabilité
Compréhensibilité
Quelle fonction
décrite dans la
description de
produit ?
Métrique de
perfection de
description
X = A/B
A = nb fonctions décrites dans
la description logiciel.
B = nb total de fonctions.
0 < =X < =1
Près de 1 -> plus complet.
Documentation
Quel est le
nombre de
fonctions décrites
dans le manuel
utilisateur ?
Métrique de
perfection de
manuel d’utilisation
X = A/B
A = nb fonctions décrites dans
le guide logiciel.
B = nb total de fonctions.
0 < = X < = 1
Près de 1 -> plus complet.
Opérabilité
Quelle opération
se comporte de la
même façon aux
opérations
semblables dans
d'autres parties du
système ?
Métrique
d’opérabilité
X=1 - A/B
A= nb opérations
incohérentes
B= nb total d'opérations
0 < = X < = 1
Près de 1 -> plus cohérent.
Introduction Métriques Exercices Conclusion
20. La mesure de la qualité SI20
Introduction Métriques Exercices Conclusion
Indice instabilité, indice d’abstraction et la distance
21. La mesure de la qualité SI21
L'indice d'instabilité :
Introduction Métriques Exercices Conclusion
Pour le paquetage B Instable, on a :
Ca = 0, puisqu'aucune classe ne dépend de ce paquetage.
Ce = 3, puisque ce paquetage dépend de trois classes du paquetage stable.
Pour cet exemple, l'indice d'instabilité vaut 1/(1+0) = 1, ce qui
représente la valeur maximale de l'indice d'instabilité.
Voyons maintenant l'indice d'instabilité du paquetage A Stable:
Ca = 3, puisque trois classes du paquetage instable dépendent de ce
paquetage.
Ce = 0, puisque ce paquetage ne dépend d'aucun autre.
Cette fois, on obtient un indice d'instabilité de 0/(0+1) = 0.
Tout ceci est cohérent : en effet, on voit bien que changer le
comportement du paquetage stable pourrait gêner le bon
fonctionnement du paquetage instable. L'inverse n'est pas possible.
22. La mesure de la qualité SI22
L'indice d’abstraction:
Introduction Métriques Exercices Conclusion
A= I/T
Trivialement, on voit que l'indice d'abstraction de chacun de ces
deux paquetages vaut 0 puisqu'ils n'ont aucune interface.
23. La mesure de la qualité SI23
La distance
Introduction Métriques Exercices Conclusion
Paquetage stable :
Instability : 0
Abstractness : 0
Paquetage instable :
Instability : 1
Abstractness : 0
En appliquant la formule, on obtient une distance
from the main sequence de |0+0-1| = 1 pour le
paquetage stable (A) et de |1+0-1| = 0 pour le
paquetage instable (B).
24. La mesure de la qualité SI24
L'indice de spécialisation
Introduction Métriques Exercices Conclusion
La classe 1 hérite de la classe Object. Sur ce
diagramme, la classe 2 hérite de la classe 1 mais
ne redéfinit aucune méthode. La classe 3 hérite
de la classe 2 et redéfinit les méthodes 1, 2 et 3.
25. La mesure de la qualité SI25
L’indice de spécialisation
Introduction Métriques Exercices Conclusion
Pour la classe 3, on a donc :
NORM = 3, puisqu'on redéfinit trois méthodes.
DIT = 3, il s'agit de la profondeur de la classe 3 dans l'arbre
d'héritage.
NOM = 3, puisqu'au total, la classe 3 possède trois méthodes (les
trois méthodes redéfinies).
Spécialisation = 3*3/3 = 3.
Il s'agit d'un indice de spécialisation élevé donc refactoring.
26. La mesure de la qualité SI26
L’indice de spécialisation
Introduction Métriques Exercices Conclusion
Solution proposée: La classe 3
implémente maintenant la même
interface que la classe 1, plutôt
que de redéfinir toutes ses
méthodes. Pour les quelques
méthodes qui restent les mêmes
(les méthodes 4 et 5), la classe 3
délègue les traitements à la
classe 1.
27. La mesure de la qualité SI27
En utilisant la métrique McCabe,
mesurez la complexité
cyclomatique du graphe à droite:
McCabe
Introduction Métriques Exercices Conclusion
28. La mesure de la qualité SI28
Introduction Métriques Exercices Conclusion
McCabe
On a la formule : CCYC = a− n +e +s
Dans notre exemple: a=16 ; n=13 ; e=1 et s=1
Donc CCYC= 16-13+1+1= 5
Condition: le nombre cyclomatic d'une fonction devrait être inférieur
à 15. Plus de 15 chemins sont difficiles à identifier et tester.
Interprétation: notre programme est stable et testable.
29. [1] Nadia Tawbi (1996) Modèles de qualité, Computer Based Learning Unit, University of Leeds,
West Yorkshire, England.
[2] Norman E. Fenton, Shari Lawrence Pfleeger. 1997. Software metrics: a rigorous and practical
approach. PWS Publishing Company.
[3] Bansiya, J. and Davis, C. G, A hierarchical model for object-oriented design quality assessment.
IEEE Trans. 2002
[4] Martin Monperrus (2008), The measurement models by models: a generative approach -
Université de Rennes 1 France.
[5] Michael Kläs, Klaus Lochmann, Lars Heinemann (2014), Evaluating a Quality Model for
Software Product Assessments – A Case Study. Germany.
[6] Roland Kaschek, Lois M.L. Delcambre (2011). Springer Science & Business Media, 4 févr. Book:
The Evolution of Conceptual Modeling.
[7] Norman E. Fenton, Shari Lawrence Pfleeger (1997). Software metrics: a rigorous and practical
approach. PWS Publishing Company.
29 La mesure de la qualité SI
Editor's Notes
Problématique et objectifs
Aujourd’hui, en raison de l'augmentation de la portée des systèmes informatiques et des exigences de la qualité, la production des logiciels est devenu complexe et difficile à contrôler.
Au file des années depuis 1977 plusieurs modèle assurances qualité ont apparu pour régler certaines problèmes de performances et des fonctionnalité systèmes,
Le progrès de la technologie, la diversité des plateformes, des Frameworks, des langages de programmation et des SE rendent le système d’information un objet complexe.
La recherche de la combinaison: temps, coût, ressources et confiance clients.
mais suite au progrès de la techno, la diversité des plateformes des frema….le SI est devenu difficile à manipuler, de nos jour, les deux axes de recheres (mesure de la qualité et ltablissement des modéles) n étét orienté vers l’approche MDA et l’ingenierie des modéles ( a titre d’exemple) qamocoo et SMM
un modèle de qualité désigne un ensemble de vues de l'utilisateur d’un système (que soit un utilisateur final, concepteur, développeur ou pilote..) qui est décomposée en plusieurs facteurs et plusieurs critères ou caractéristiques.
Chaque caractéristique est un élément fonctionnel, technique ou ergonomique, qui est définie par un ensemble de métriques.