Vous pouvez fournir avec votre plugin d'extension du gestionnaire de qualité Adélia un programme qui sera en charge du calcul des métriques et de la vérification des règles décrites par votre plugin. Ce programme doit être un programme de type Visual Adélia Batch ou Serveur Adélia, implémentant un certain nombre de points d'entrée prédéfinis sous la forme de procédures publiques (qui seront appelées dans la suite "points d'extension") respectant l'interface décrite ci-dessous.
L'implémentation des points d'extension est optionnelle : le programme d'extension est valide s'il implémente au moins un des points d'extension.
Le programme d'analyse charge le programme en mémoire en début d'analyse, et appelle le point d'extension "BEGIN" pour fournir l'opportunité au programmeur d'initialiser son contexte de travail. Le programme d'analyse appelle ensuite en boucle les points d'extension adéquats pour chaque programme analysé. En fin de l'analyse, le point d'extension "END" est appelé et le programme d'extension est déchargé.
Le programme d'extension communique avec l'AGL via les fonctions de la DLL QualMgrToolBx pour accéder aux données de configuration (activation et paramètres des règles), d'exécution (valeurs actuelles de certaines métriques), et pour sauvegarder ses propres métriques et violations.
Les différents points d'extension sont les suivants :
Remarque : Dans l'environnement exemple BDCADEL, vous trouverez un exemple de programme d'extension dans le domaine OUTILS.
Point d'extension VERSION
Ce point d'extension est appelé par le programme d'analyse lors du chargement d'un plugin si un numéro de version est spécifié pour la DLL dans le fichier de description du plugin. Dans ce cas, le point d'entrée doit obligatoirement exister et la version retournée par ce point d'extension doit correspondre à celle spécifiée au niveau du plugin.
Paramètres
Nom |
Type |
I/O |
Description |
versionDll |
NUM_BIN_4 |
O |
Version de la DLL. |
Point d'extension BEGIN
Ce point d'extension est appelé par le programme d'analyse à l'initialisation de l'analyse d'un projet. Le programmeur peut faire des initialisations générales à ce point.
Paramètres
Nom |
Type. |
I/O |
Description |
nomEnv |
ALPHA(128) |
I |
Nom de l'environnement. |
nomProjet |
ALPHA(128) |
I |
Nom du projet. |
modeGen |
ALPHA(6) |
I |
Mode d'analyse (full, delta ou none). |
creatObj |
BOOL |
I |
Création des travaux de compilation. |
sonar |
BOOL |
I |
Analyse de type SONAR. |
Point d'extension BEGIN_PGM
Ce point d'extension est appelé par le programme d'analyse à l'initialisation de l'analyse d'un programme. Le programmeur peut initialiser des données spécifiques à ce point.
Paramètres
Nom |
Type. |
I/O |
Description |
nomProgramme |
ALPHA(15) |
I |
Nom du programme. |
typeProgramme |
ALPHA(4) |
I |
Type du programme. |
Point d'extension DECLARATION
Ce point d'extension est appelé par le programme d'analyse lors de l'analyse d'une déclaration d'un objet.
Paramètres
Nom |
Type. |
I/O |
Description |
||||||||||||||||||||||
nomProgramme |
ALPHA(15) |
I |
Nom du programme. |
||||||||||||||||||||||
typeProgramme |
ALPHA(4) |
I |
Type du programme. |
||||||||||||||||||||||
numLigneExp |
NUM_BIN_4 |
I |
Numéro de ligne dans le source expansé ou zéro. |
||||||||||||||||||||||
numLigne |
NUM_BIN_4 |
I |
Numéro de ligne dans le source du programme ou zéro. |
||||||||||||||||||||||
nomRegle |
ALPHA(15) |
I |
Nom de la règle de gestion ou blanc. |
||||||||||||||||||||||
numLigneRgg |
NUM_BIN_4 |
I |
Numéro de ligne dans la règle de gestion ou zéro. |
||||||||||||||||||||||
nomElement |
ALPHA(128) |
I |
Nom de l'élément de l'environnement de données. |
||||||||||||||||||||||
natureElement |
ALPHA(15) |
I |
Nature de l'élément (VAR, OBJ, PROC, etc.) |
||||||||||||||||||||||
typeAdelia |
ALPHA(2) |
I |
Type Adélia |
||||||||||||||||||||||
longueur |
NUM_BIN_4 |
I |
Longueur. Dans le cas d'un objet de nature "CONSTANT", une longueur à zéro signifie que la constante utilisateur est non typée. |
||||||||||||||||||||||
nbDecimales |
NUM_BIN_2 |
I |
Décimales. |
||||||||||||||||||||||
dim1 |
NUM_BIN_2 |
I |
Dimension 1 si tableau ou zéro. |
||||||||||||||||||||||
dim2 |
NUM_BIN_2 |
I |
Dimension 2 si tableau ou zéro. |
||||||||||||||||||||||
nomObjet |
ALPHA(15) |
I |
Nom de l'objet graphique. |
||||||||||||||||||||||
parametre |
BOOL |
I |
Paramètre d'un programme ou d'une procédure. |
||||||||||||||||||||||
zoneDS |
BOOL |
I |
Zone de DS. |
||||||||||||||||||||||
zoneListe |
BOOL |
I |
Zone de liste. |
||||||||||||||||||||||
locale |
BOOL |
I |
Visibilité locale. |
||||||||||||||||||||||
InfoAdditionnelles |
ALPHA(50) |
I |
Informations additionnelles selon le contexte : Contexte PROCEDURE : Positions 1 à 15
Positions 16 à 25
Contexte BREAK : Positions 1 à 15
|
Point d'extension SOURCE
Ce point d'extension est appelé par le programme d'analyse à l'analyse d'une ligne du source.
Paramètres
Nom |
Type. |
I/O |
Description |
nomProgramme |
ALPHA(15) |
I |
Nom du programme. |
typeProgramme |
ALPHA(4) |
I |
Type du programme. |
numLigneExp |
NUM_BIN_4 |
I |
Numéro de ligne dans le source expansé ou zéro. |
numLigne |
NUM_BIN_4 |
I |
Numéro de ligne dans le source du programme ou zéro. |
nomRegle |
ALPHA(15) |
I |
Nom de la règle de gestion ou blanc. |
numLigneRgg |
NUM_BIN_4 |
I |
Numéro de ligne dans la règle de gestion ou zéro. |
serveur |
ALPHA(15) |
I |
Nom du serveur logique. |
source |
ALPHA(5000) |
I |
Source de la ligne. |
Point d'extension END_PGM
Ce point d'extension est appelé par le programme d'analyse à la fin de l'analyse d'un programme.
Le programmeur peut par exemple sauvegarder ici des métriques cumulées au niveau du programme.
Paramètres
Nom |
Type. |
I/O |
Description |
nomProgramme |
ALPHA(15) |
I |
Nom du programme. |
typeProgramme |
ALPHA(4) |
I |
Type du programme. |
nomFichier |
ALPHA(250) |
I |
Nom du fichier XML contenant le source du programme. |
succesVerif |
BOOL |
I |
La vérification du programme a réussi. |
Point d'extension END
Appelé par le programme d'analyse à la fin de l'analyse du projet.
Le programmeur doit calculer ici les métriques associées au projet.
Les fonctions QMQueryFirstProgram et QMQueryNextProgram de la DLL QualToolBxMgr permettent de parcourir la liste des programmes à prendre en compte dans le cumul des métriques.
Remarque importante : Du fait que l'analyse peut se faire par delta, il est possible que certains programmes n'aient pas été traités dans les phases précédentes. Il faut bien se baser sur la liste des programmes faisant partie de l'analyse du projet, et non pas sur une valeur cumulée calculée au fur et à mesure.
Paramètres
Aucun.