SlideShare a Scribd company logo
1 of 30
UHIIC - Faculté des sciences BEN MSI’K
Master SII
Introduction
Les métriques logicielles
Exercices
Conclusion
2
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.
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
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
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
Approches de mesure
QL
Quantitative
Attributs
internes
Mesure
directe
Analyse
entité
Qualitative
Attributs
externes
Mesure
indirecte
Analyse
environnement
7 La mesure de la qualité SI
Approches de mesure
Introduction Métriques Exercices Conclusion
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
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
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
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/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
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.
 [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
Aql métriques logicielles

More Related Content

What's hot

BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPTriyadadva
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logicielMohamed Diallo
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studiohoracio lassey
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseAbderrahmane Filali
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFEDonia Hammami
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Chp5 - Les outils CASE
Chp5 - Les outils CASEChp5 - Les outils CASE
Chp5 - Les outils CASELilia Sfaxi
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratiqueAbdelouahed Abdou
 

What's hot (20)

BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPT
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
 
UML Diagrammes Dynamiques
UML Diagrammes DynamiquesUML Diagrammes Dynamiques
UML Diagrammes Dynamiques
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data Warehouse
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
Test logiciel
Test logicielTest logiciel
Test logiciel
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Talend
TalendTalend
Talend
 
Chp5 - Les outils CASE
Chp5 - Les outils CASEChp5 - Les outils CASE
Chp5 - Les outils CASE
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
Td dw1
Td dw1Td dw1
Td dw1
 
Qualité logiciel - Generalités
Qualité logiciel - GeneralitésQualité logiciel - Generalités
Qualité logiciel - Generalités
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 

Similar to Aql métriques logicielles

Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels Bilel Abed
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciellauraty3204
 
Exigences de qualité des systèmes / logiciels
Exigences de qualité des systèmes / logicielsExigences de qualité des systèmes / logiciels
Exigences de qualité des systèmes / logicielsPierre
 
ATMTL23 - La QA a-t-elle reussi à prendre le virage agile? Et saura-t-elle f...
ATMTL23 - La QA a-t-elle reussi à prendre le virage agile?  Et saura-t-elle f...ATMTL23 - La QA a-t-elle reussi à prendre le virage agile?  Et saura-t-elle f...
ATMTL23 - La QA a-t-elle reussi à prendre le virage agile? Et saura-t-elle f...Agile Montréal
 
Tra optimiser preparation_tests_v1
Tra optimiser preparation_tests_v1Tra optimiser preparation_tests_v1
Tra optimiser preparation_tests_v1SQLI
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciellauraty3204
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdfmido04
 
Master_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdfMaster_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdfBchiriAmina1
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap IInes Ouaz
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesGauthier Delamarre
 

Similar to Aql métriques logicielles (20)

20111004 02 - Présentation Sqale
20111004 02 - Présentation Sqale20111004 02 - Présentation Sqale
20111004 02 - Présentation Sqale
 
Cours1.pptx
Cours1.pptxCours1.pptx
Cours1.pptx
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
 
Exigences de qualité des systèmes / logiciels
Exigences de qualité des systèmes / logicielsExigences de qualité des systèmes / logiciels
Exigences de qualité des systèmes / logiciels
 
ATMTL23 - La QA a-t-elle reussi à prendre le virage agile? Et saura-t-elle f...
ATMTL23 - La QA a-t-elle reussi à prendre le virage agile?  Et saura-t-elle f...ATMTL23 - La QA a-t-elle reussi à prendre le virage agile?  Et saura-t-elle f...
ATMTL23 - La QA a-t-elle reussi à prendre le virage agile? Et saura-t-elle f...
 
J Unit
J UnitJ Unit
J Unit
 
Tra optimiser preparation_tests_v1
Tra optimiser preparation_tests_v1Tra optimiser preparation_tests_v1
Tra optimiser preparation_tests_v1
 
L3 2
L3 2L3 2
L3 2
 
Algorithme chap 1
Algorithme chap 1Algorithme chap 1
Algorithme chap 1
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdf
 
Master_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdfMaster_OSAE_Cours_Tests_Grolleau.pdf
Master_OSAE_Cours_Tests_Grolleau.pdf
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitaires
 

More from marwa baich

Les règles de passage
Les règles de passageLes règles de passage
Les règles de passagemarwa baich
 
diagramme d'activité
diagramme d'activitédiagramme d'activité
diagramme d'activitémarwa baich
 
Tp création-dune-ontologie
Tp création-dune-ontologieTp création-dune-ontologie
Tp création-dune-ontologiemarwa baich
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 

More from marwa baich (10)

hbase lab
hbase labhbase lab
hbase lab
 
hive lab
hive labhive lab
hive lab
 
XML
XMLXML
XML
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passage
 
diagramme d'activité
diagramme d'activitédiagramme d'activité
diagramme d'activité
 
Tp création-dune-ontologie
Tp création-dune-ontologieTp création-dune-ontologie
Tp création-dune-ontologie
 
Eucalyptus
EucalyptusEucalyptus
Eucalyptus
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
LVM "Linux "
LVM  "Linux "LVM  "Linux "
LVM "Linux "
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 

Aql métriques logicielles

  • 1. UHIIC - Faculté des sciences BEN MSI’K Master SII
  • 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

  1. Problématique et objectifs
  2. 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
  3. 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.
  4. http://mariepascal.delamare.free.fr/IMG/pdf/coursQualite.pdf