[PDF] Mesure de la qualité du code source - Algorithmes et outils





Previous PDF Next PDF



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 sourceALGORITHMES ET OUTILS

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 futurs

Applications :

-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 Methods

Indice de spécialisation - calcul

Indice de spécialisation

Augmente quand

-Le nombre de méthodes redéfinies ou la profondeur d'héritage augmente

Diminue 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 source

C'est le nombre de chemins linéairement

indépendants qu'il est possible de suivre au sein d'une méthode

Calcul 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 -JDepend

Crap4J

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 requis

0 - 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 -CallSuperInConstructor

FindBugs

Semblable à PMD dans le principe : détection d'anti patterns. Liste des bugs détectés disponible sur le web

Exemple d'anti-pattern détecté :

-Null pointer dereference -Method does not check for null argument -Read of unwritten field

Eclipse 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 sequence

Eclipse Metrics

Graphe des dépendances en 3D

Démo

quotesdbs_dbs31.pdfusesText_37
[PDF] 15— Cyert RM, March JG L'élaboration des décisions dans les

[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