Mesure de la qualité du code source - Algorithmes et outils
de codes). ? Approche quantitative : extraire une mesure de la qualité d'un logiciel à partir de l'analyse statistique du code source.
Métriques et critères dévaluation de la qualité du code source
C'est la mesure de la qualité structurelle du code qui nous intéresse dans le mesurée automatiquement par des outils d'analyse statique du code source.
Impact des bonnes pratiques sur la qualité du code
27 oct. 2011 1.4 Mesure préventive et amélioration de la qualité du code . ... ont pour objectif d'identifier et de compter les erreurs du code source.
Mesures des sous-caractéristiques de la maintenabilité en génie
16 juil. 2018 3. Modèle de qualité – Maintenabilité. Pour faire de la mesure de la qualité du code source durant le processus de maintenance
Rapport daudit sur la qualité du code source de GéoNature
14 juin 2021 Radon 15 est un outil regroupant plusieurs métriques de qualité de code source notamment : • le nombre cyclomatique (qui est aussi mesuré ...
Modèles de mesure de la qualité des logiciels
8 nov. 2011 Mesurer la qualité d'un logiciel consiste alors à déterminer son adéquation ... mesures obtenues grâce au code source à la documentation
Modèles de mesure de la qualité des logiciels
Mesurer la qualité d'un logiciel consiste alors à déterminer son à partir de mesures obtenues grâce au code source à la documentation
ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC LOUTIL
recommendations that will help improve code quality. permettent l'évaluation de la qualité du logiciel en effectuant des mesures sur le code source.
Siham Kadi- maintenabilité
Normes de la qualité et de l'évaluation de la qualité logicielle . qualité du code source des deux applications l'analyse des mesures fournies par cet ...
UNIVERSITÉ DU QUÉBEC MÉMOIRE PRÉSENTÉ À LUNIVERSITÉ
l'identification de clones dans un code source l'extraction des mesures de qualité et l'identification automatique des erreurs de programmation.
![Mesure de la qualité du code source - Algorithmes et outils Mesure de la qualité du code source - Algorithmes et outils](https://pdfprof.com/Listes/38/9675-38mesure-qualite-code.pdf.pdf.jpg)
Introduction
La qualité logicielle dépend de nombreux
facteurs : -Réactivité de l'équipe, portabilité, fiabilité, ergonomie, performance, sécurité... -Qualité du code source :Clarté/concision
Complexité
Couverture par les tests
Enjeux
Pourquoi doit-on se soucier de la qualité ?
-Notion de "mesure du risque" : vulnérabilité du logiciel aux changements futursApplications :
-Revues de qualités pour des développements sous-traités -Analyse de la capacité à maintenir -Comparaison du code de logiciels pour décider duquel choisir Métriques Approche quantitative de la mesure de la qualitéApproche quantitative
Métrique logicielle : mesure d'une propriété d'un logiciel (par exemple le nombre de lignes de codes)Approche quantitative : extraire une mesure de
la qualité d'un logiciel à partir de l'analyse statistique du code source. -Avantage : simplicité de mise en oeuvre. -Principal problème : il faut trouver des indicateurs significatifs et les algorithmes correspondants.Métriques
Exemples de métriques :
-Lignes de codes -Nombre de méthodes par classe -Couplage afférent/efférent -Niveau d'abstraction -InstabilitéPas de métrique "absolue" : la pertinence de
chaque métrique dépend du projet et surtout de l'interprétation qui en est faite.Métriques courantes
Indice de spécialisation
Se calcule sur une classe entière (puis
éventuellement moyenne pour le projet)
Définition :
Avec -NORM : Number of Overriden Methods -DIT : Depth of Inheritance Tree (distance depuis la classe Object) -NOM : Number of MethodsIndice de spécialisation - calcul
Indice de spécialisation
Augmente quand
-Le nombre de méthodes redéfinies ou la profondeur d'héritage augmenteDiminue quand
-Le nombre de méthodes spécifiques à la classe augmente. -Le nombre de méthodes redéfinies diminue.Indice de spécialisation - Interprétation
Trop grand : la classe redéfinit trop de
méthodes dont elle hérite : il faut penser à refactoriser en utilisant des interfaces par exemple.Moyenne : 0.05
Indice d'instabilité
Se calcule sur un paquetage ou un ensemble de
paquetages.Définition :
Avec -Ce (efferent coupling) : le nombre de classes de l'extérieur qui dépendent de classes dans ce paquetage (responsabilité) -Ca (afferent coupling) : le nombre de classes de ce paquetage qui dépendent de classes de l'extérieur. (indépendance)Indice d'instabilité - calcul
Indice d'instabilité - interprétation
Indice compris entre 0 et 1 :
-0 : le paquetage est stable. -1 : le paquetage n'est pas stable.Pour qu'un paquetage soit considéré comme
stable avec cet indice, il faut qu'il y ait plus de dépendances entrantes que sortantes (la moyenne des développeurs se situant aux alentours de ...)Niveau d'abstraction
Se calcule sur un paquetage ou un ensemble de
paquetages.Définition :
Avec -I : Le nombre d'interfaces et de classes abstraites. -T : le nombre total de types.Niveau d'abstraction - calcul
Niveau d'abstraction - Interprétation
S'utilise surtout comme élément de mesure de la "normalized distance from the main sequence"Distance from the main sequence
Se calcule sur un paquetage ou un ensemble de
paquetages.Définition :
Avec -Abstractness : l'indice d'abstraction du paquetage. -Instability : l'indice d'instabilité du paquetage.Distance from the main sequence
Un paquetage est bien conçu si ce nombre est
proche de zéro.Distance from the main sequence
Compléxité cyclomatique
Se calcule sur une méthode
Indice très courant dans les programmes
d'analyse de code sourceC'est le nombre de chemins linéairement
indépendants qu'il est possible de suivre au sein d'une méthodeCalcul d'une complexité cyclomatique
Compléxité cyclomatique - Algorithme
Calcul simple de la complexité cyclomatique :
-Il suffit de compter le nombre de points de décision (if, case, while, ...)Compléxité cyclomatique - Interprétation
Un module avec une haute complexité
cyclomatique est plus difficile à comprendre. Si une méthode a une complexité cyclomatique trop élevée (au delà de 30), elle doit être refactorisée. Une complexité cyclomatique inférieure à 30 est acceptable si la méthode est suffisament testée.Compléxité cyclomatique - Interprétation
Notion de "Code Coverage" :
-Pourcentage de chemins couvert par les tests. -A 100%, le nombre de tests unitaires d'une méthode est égal à son indice de complexité cyclomatique.Autres indicateurs "triviaux"
Ratio lignes de commentaires/nombre de lignes
Pourcentage de méthodes trop longues
Nombre de classes par paquetage
Nombre de méthodes par classe
Outils
Outils
En Java, un grand nombre d'outils libres sont
disponibles. -Cobertura -Crap4J -PMD -FindBugs -Eclipse Metrics -JDependCrap4J
Utilise une formule spécifique :
Une méthode doit être refactorisé si elle possède un indice de "crappiness" au dessus de 30.Crap4J
Crap4J autorise les complexités cyclomatiques
élevées si le code est bien couvert par les tests.Complexité
CyclomatiquePourcentage de
couverture par les tests requis0 - 50%
6 - 1042%
11-1557%
16-20 71%
21-2580%
26-30100%
31+ -PMD
Détection d'un certain nombre d'anti patterns,
connus pour poser problème.L'ensemble des règles que PMD vérifie est
disponible à l'adresse suivante :Vérifie énormément de choses :
-EmptyCatchBlock -DontImportSun -UnnecessaryParentheses -CallSuperInConstructorFindBugs
Semblable à PMD dans le principe : détection d'anti patterns. Liste des bugs détectés disponible sur le webExemple d'anti-pattern détecté :
-Null pointer dereference -Method does not check for null argument -Read of unwritten fieldEclipse Metrics
Permet de calculer beaucoup de metrics :
-Compléxité cyclomatique -Nombre de ligne de codes -Indice de spécialisation -Indice d'instabilité -Niveau d'abstraction -Distance from the main sequenceEclipse Metrics
Graphe des dépendances en 3D
Démo
quotesdbs_dbs31.pdfusesText_37[PDF] Fiche : les auteurs en management En BTS 1, il est fait référence à :
[PDF] Utilisation du cylindre gradué - Centre de développement
[PDF] Mode d'emploi 555 571 Tube à faisceau électronique - LD Didactic
[PDF] Guide du débutant: Cytométrie en flux - Interchim
[PDF] Code de l'éducation (Articles D 411-1 à D 411-9) - SNUipp-FSU 65
[PDF] L'économie-monde britanique - France examen
[PDF] Effect Size (ES) - UV
[PDF] Tests statistiques paramétriques : Puissance, taille d'e et et taille d
[PDF] Taille d'effet (effect size)
[PDF] wwwiesffr - CDEFI
[PDF] une politique pour l'inclusion sociale… - Réseau québécois des
[PDF] Introduction au calcul stochasti3ue Damien Lamberton - CERMICS
[PDF] Coordination des parcours de santé et de soins - Observatoire de la
[PDF] D (langage) — Wikipédia