Caractéristiques
Mia-Quality propose un vaste panel de métriques permettant de couvrir les différents aspects de la qualité d'un programme.
L'analyse du vocabulaire
Il s'agit de l’analyse des opérandes et des opérateurs d'un programme dans l’objectif de : - qualifier et visualiser les variables du programme et leur fréquence d'utilisation dans les contrôles,
- vérifier rapidement la conformité de l'identification des variables par rapport aux normes de la société en fonction de leur type, de leur caractère interne ou externe,
- vérifier l'utilisation illicite de certains opérateurs compte tenu des normes de l'entreprise (DISPLAY, ACCEPT, GOTO DEPENDING, ALTER...).
L'analyse de la complexité
Le module d'analyse de complexité permet d'appréhender la qualité ou la complexité d'un programme par le biais de la métrologie.
Ce module contient les principales métriques des théories connues (HALSTEAD, Mc CABE, Mc CLURE, KNOT-COUNT), ainsi que d'autres, d'usage plus pragmatique.
Ces métriques sont produites au niveau du programme et au niveau de ses modules internes (ensemble des paragraphes "performés").
Liste des métriques disponibles: - HALSTEAD
- Nombre d'instructions
- Nombre d'opérateurs distincts
- Nombre d'opérandes distincts
- Nombre de littéraux distincts
- Nombre d'utilisations de données
- Longueur
- Longueur théorique
- Vocabulaire
- Intelligence du contenu
- Niveau du programme
- Effort de programmation :
- Volume total
- Volume des entrées-sorties
- MAC CABE
- nombre cyclomatique
- nombre cyclomatique essentiel
- MAC CLURE
- KNOT-COUNT
- Nombre de croisements de GO TO
- Structuration
- Nombre de variables de contrôle
- nombre de modules complexes
- nombre d'activation des paragraphes autres que par PERFORM
- nombre de niveaux hiérarchiques
- le nombre de segments racines
- Nombre de GO TO illicite
- nombre de lignes de commentaires
- Nombre de chemins récursifs
- Nombre de lignes de code mort
- Inventaire
- Nombre d'instructions arithmétiques
- Nombre d'instructions de terminaison de programme.
- Nombre d'instructions de manipulation de fichiers
- Nombre d'instructions de tri ou de fusion
- Nombre de COPY utilisées par le programme
- Nombre de PERFORM
- Nombre de MOVE
- Nombre de GOTO
- Nombre de CALL
- Nombre de If
- Nombre de lignes du programme
- Nombre de lignes pour les données
- Nombre de lignes pour les instructions
- Ratios
- Densité du code mort
- Densité des PERFORM
- Densité des instructions de branchement
- Nombre moyen d'instructions par module
- Complexité hiérarchique
- Nombre moyen de modules par niveau
Définir une métrique unique sensée représenter la qualité d'un programme dans l'absolu est illusoire. Suivant les points de vue, les besoins et les spécificités de chaque site, chacun aura une définition différente d'un programme de qualité.
Pour cette raison, nous ne fournissons pas une seule métrique globale mais nous mettons à disposition de l'utilisateur toutes les métriques ci-dessus et lui proposons de définir lui-même sa ou ses métriques répondant à son besoin.
Il suffit de pondérer les différentes métriques retenues, pour obtenir sa métrique personnalisée et représentant au mieux sa vision de la complexité.
Chaque société à son guide de normes. Si un certain nombre d'entre elles sont génériques et peuvent s'appliquer partout, certaines sont spécifiques à l'entreprise. Un système figé ne pourrait répondre aux besoins de chaque client.
Mia-Quality permet de prendre en compte toutes les normes, qu'elles soient génériques ou spécifiques, grâce à son système de requêtage souple et puissant. Il suffit de créer une requête pour chaque norme, puis de lancer l'analyse sur les sources.
Voici quelques exemple de normes pouvant être évaluées: - Présence d'un test de code retour après un appel de sous-programme ou un accès à une base
- Nombre de niveaux de IF imbriqués
- Nombre de lignes de code mort
- Affectation de variables alphanumériques dans des variables numériques
- Recherche d'instructions déconseillées
- Syntaxe conseillée de PERFORM
- Normes de nommage de variable ou de paragraphe
- ...
|