Téléchargement des produits


Version anglaise


 

Le gestionnaire de qualité d'Adélia est extensible par le biais de plugins fournis par l'utilisateur. Un plugin d'extension du gestionnaire de qualité est composé d'un fichier de description décrivant les métriques et les règles de qualité fournies par le plugin, ainsi qu'optionnellement d'un programme d'extension appelé par le programme d'analyse pour calculer les métriques et générer les violations de règles.

Remarque : Le fait de fournir un programme d'extension est optionnel. Un plugin composé uniquement d'un jeu de règles de type "vérification d'une expression régulière" n'a pas besoin de fournir de DLL d'extension.

 

Les éléments de définition d'un plugin sont les suivants :

 

Fichier de description du plugin

Le fichier de description du plugin est un fichier XML contenant la liste des métriques et des règles implémentées, ainsi que la référence au programme d'extension. Ce fichier doit respecter un schéma XSD.

Un plugin se compose des éléments suivants (obligatoires sauf si indiqué a contrario) :

- Nom du fournisseur du plugin

ex : Hardis.

- Nom du plugin lui-même

ex : Métrique standard Adélia.

- Identifiant interne du plugin

ex : com.hardis.adelia

- Description du plugin

Optionnel.

- DLL d'extension

Optionnel.

- Liste des métriques

Optionnel, implique un programme d'extension.

- Liste des règles de qualité

Optionnel, implique un programme d'extension si les règles ne sont pas de type "vérification d'une expression régulière".

 

La description d'une métrique contient les informations suivantes :

- Nom de la métrique

ex : Nombre de lignes.

- Identifiant interne de la métrique

ex : nblines.

- Type de données

ex : integer.

Valeurs possibles : boolean, integer, Decimal, percentage et string

- Domaine

Optionnel pour la classification SONAR.

 

La description d'une règle contient les informations suivantes :

- Nom de la règle

ex : Données tronquées.

- Identifiant interne de la règle

ex : truncation.

- Description de la règle

Optionnel.

- Type de la règle

Optionnel.

0 = règle standard (par défaut), 1 = règle de vérification d'une expression régulière.

- Gravité d'une violation de la règle

Optionnel.

Valeur entre 1 (information) et 5 (bloquante), par défaut 3 (majeure).

- Liste des paramètres d'une règle

Optionnel.

- Domaine

Optionnel pour la classification SONAR.

 

La description d'un paramètre d'une règle de qualité contient les informations suivantes :

  • Identifiant interne du paramètre.
  • Description du paramètre.
  • Valeur par défaut du paramètre.

 

Les limites suivantes s'appliquent :

Longueur d'un identifiant interne

128

 

Longueur maximum d'un nom

128

 

Longueur maximum d'une désignation

512

 

Longueur maximum d'une valeur de paramètre

1024

 

Longueur maximum d'une valeur de métrique

96

Contrainte SONAR

 

Dans le cadre de l'intégration à SONAR, les règles de nommage supplémentaires suivantes (liées à la manière dont le plugin SONAR Adélia génère des identifiants uniques pour les règles et les métriques dans le référentiel SONAR) s'appliquent :

  • Les identifiants internes doivent respecter la syntaxe des noms de package Java (xxx.yyy.zzz).
  • La longueur de l'identifiant interne d'une métrique + la longueur de l'identifiant interne du plugin ne doit pas dépasser 62 caractères.
  • La longueur de l'identifiant interne d'une règle + la longueur de l'identifiant interne du plugin ne doit pas dépasser 198 caractères.

 

Le fichier XML prend la forme suivante (Cliquez ici pour la définition complète du schéma) :

<plugin id="com.hardis.example">
  <provider>Hardis</provider>
  <name>Plugin exemple</name>
  <dll version="1">PLUGIN.DLL</dll>
  <metrics>
    <metric id="nblines" type="integer">
      <name>Nombre de lignes de source</name>
      <description>Nombre de lignes de texte dans un fichier source</description>
    </metric>
  </metrics>
  <rules>
    <rule id="complexity" severity="2">
      <name>Bloc trop complexe</name>
      <description>Le nombre de lignes de code dans un bloc de source est trop élevé</description>
      <parameters>
        <parameter id="nbmax_lines">
          <name>Nombre de lignes</name>
          <description>Le nombre de lignes à ne pas dépasser...</description>
          <value>200</value>
        </parameter>
      </parameters>
    </rule>
  </rules>
</plugin>

Les noeuds

Nœud plugin

Ce nœud définit le plugin. Il s'agit du nœud principal du fichier.

 

Attributs

Nom

Oblig.

Valeurs

Description

id

Oui

Chaîne

Identifiant interne du plugin.

version

Non

Entier

Numéro de version (0 par défaut).

 

Données

- n/a -

 

Nœuds fils

provider

Nom du fournisseur.

name

Nom du plugin.

dll

Nom de la DLL d'extension (optionnel).

metrics

Liste des métriques (optionnel).

rules

Liste des règles (optionnel).

 

Nœud provider

Attributs

- n/a -

 

Données

Nom du fournisseur du plugin.

 

Nœuds fils

- n/a -

 

 

Nœud name

Attributs

- n/a -

 

Données

Nom d'un élément (plugin, métrique, règle).

 

Nœuds fils

- n/a -

 

↑ Haut de page

 

Nœud dll

Attributs

Nom

Oblig.

Valeurs

Description

version

Non

Entier

Numéro de version de la DLL (0 par défaut).

 

Données

Nom d'une DLL d'extension.

 

Nœuds fils

- n/a -

 

 

Nœud metrics

Attributs

- n/a -

 

Données

- n/a -

 

Nœuds fils

metric*

Liste de métriques.

 

↑ Haut de page

 

Nœud metric

Ce nœud définit une métrique.

 

Attributs

Nom

Oblig.

Valeurs

Description

id

Oui

Chaîne

Identifiant interne de la métrique.

type

Oui

Boolean

Integer

Decimal

Percentage

String

Type de données de la métrique.

domain

Non

Chaîne

Nom du domaine SONAR pour la classification de la métrique (General par défaut)

 

Données

- n/a -

 

Nœuds fils

name

Nom de la métrique.

description

Description de la métrique (optionnel).

 

 

 

Nœud rules

Attributs

- n/a -

 

Données

- n/a -

 

Nœuds fils

rule*

Liste de règles.

 

↑ Haut de page

 

Nœud rule

Ce noeud définit une règle.

 

Attributs

Nom

Oblig.

Valeurs

Description

id

Oui

Chaîne

Identifiant interne de la règle.

severity

Non

1-5

Gravité d'une violation de la règle : de Information (1) à Bloquante (5). Majeure (3) par défaut.

domain

Non

Chaîne

Nom du domaine SONAR pour la classification de la règle (General par défaut).

type

Non

0/1

Type de la règle : Normale (0) par défaut ou Vérification d'expression régulière (1).

programTypes

Non

Chaîne

Liste de types abrégés de programmes (AD_I, AD_B...) auxquels la règle s'applique, séparés par des ';'.

Si non renseigné, la règle s'applique à tous les programmes.

 

Données

- n/a -

 

Nœuds fils

name

Nom de la règle.

description

Description de la règle (optionnel).

parameters

Liste des paramètres de la règles (optionnel).

 

 

 

Nœud parameters

Attributs

- n/a -

 

Données

- n/a -

 

Nœuds fils

parameter*

Liste de paramètres.

 

 

↑ Haut de page

 

Nœud parameter

Ce noeud définit un paramètre.

 

Attributs

Nom

Oblig.

Valeurs

Description

id

Oui

Chaîne

Identifiant interne du paramètre (unique pour la règle).

 

Données

- n/a -

 

Nœuds fils

name

Nom du paramètre.

description

Description du paramètre (optionnel).

value

Valeur du paramètre.

 

 

Nœud value

Attributs

- n/a -

 

Données

Valeur d'un paramètre.

 

Nœuds fils

- n/a -

 

Vérification d'expression régulière

Le gestionnaire de qualité fournit un type de règle spécial, dont une violation est signalée lorsqu'une ligne de source vérifie une expression régulière. La vérification de ce type de règle ne nécessite pas de fournir un programme d'extension.

Une règle de type "vérification d'une expression régulière" prend la forme suivante :

 

<rule id="sql_code_non_trouve" type="1" severity="2">
  <name>Boucle *SQLCODE dangereuse</name>
  <description>Il ne faut jamais tester "non trouvé" comme sortie de boucle.</description>
  <parameters>
    <parameter id="regexpr">
      <value><![CDATA[^\s*TANT_QUE\s+\*SQLCODE\s*\<\>\s*\*NON_TROUVE]]></value>
    </parameter>
    <parameter id="casesensitive">
      <value>1</value>
    </parameter>
    <parameter id="clientserver">
      <!-- client / server / both (default) -->
      <value>both</value>
    </parameter>
  </parameters>
</rule>
 

Les paramètres de la règle sont les suivants :

regexpr

Obligatoire

Chaîne

Expression régulière. Une violation est déclenchée si l'expression est vérifiée.

casesensitive

Optionnel

0 ou 1

Sensibilité à la casse (0 par défaut – insensible à la casse).

clientserver

Optionnel

Client, server ou both

Indique si la règle s'applique en partie client, serveur, ou les deux (par défaut).

 

↑ Haut de page

  • Aucune étiquette