aql métriques logicielles
Post on 11-Apr-2017
45 Views
Preview:
TRANSCRIPT
AQL - LES MÉTRIQUES LOGICIELLES
UHIIC - Faculté des sciences BEN MSI’K
Master SII
Introduction
Les métriques logicielles
Exercices
Conclusion
PLAN
2
La mesure de la qualité SI3
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 »
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.
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
La mesure de la qualité SI5
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
Introduction Métriques Exercices Conclusion
La mesure de la qualité SI6
Fiabilité
Précision
Testabilité …
Maintenabilité…
Fonctionnalité Utilité…
Tolérance aux fautes
Concision
CCYC = a− n +e +s
Métrique McCabe
Simplicité…
FacteurCritère
Métrique
Relation critère/ Métrique
…
Introduction Métriques Exercices Conclusion
La mesure de la qualité SI7
Approches de mesure QL
Quantitative
Attributs internes
Mesure directe
Analyse entité
Qualitative
Attributs externes
Mesure indirecte
Analyse environnem
ent
Approches de mesure
Introduction Métriques Exercices Conclusion
La mesure de la qualité SI8
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.
Introduction Métriques Exercices Conclusion
La mesure de la qualité SI9
Type Exemple entité Sous- type Type
d’attribut Exemple de mesure
Processus TesteManagement Interne Délai
Qualité Externe Coût
Produits Code
Code source InterneNombre de lignes de code (Complexité, Fonctionnalité)
Spécifications ExterneNombre de défauts par classe (Fiabilité, Maintenabilité)
Ressources PersonnelHumaines Interne Productivité
Matérielles Externe Performance
Types des métriques
Introduction Métriques Exercices Conclusion
La mesure de la qualité SI10
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.
ProcessusCode source
Squale V7Projet initié par Air France et QualixoDétermine les modèles de qualimétrie S’interésse aux outillage de control et suivi projets.
ProcessusCode Ressource
McCabe V8
Spécialisé dans le management de la qualitéAnalyse qualimétrique, La couverture de test,Visualiser architecture système...
ProcessusRessource
Outils de mesure
Introduction Métriques Exercices Conclusion
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
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
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
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
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
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
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
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
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/BA = 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/BA= nb opérations
incohérentesB= nb total d'opérations
0 < = X < = 1Près de 1 -> plus
cohérent.
Introduction Métriques Exercices Conclusion
La mesure de la qualité SI20
Introduction Métriques Exercices Conclusion
Indice instabilité, indice d’abstraction et la distance
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.
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.
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).
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.
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.
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.
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
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.
La mesure de la qualité SI
[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
RÉFÉRENCES
MERCI POUR VOTRE ATTENTION
top related