Génération

Documentation Alma (français) Index | Accueil
Version: 0.29
Date: 2001-03-05
Auteur: Guillaume Desnoix
La documentation du logiciel Alma est protégé par les lois sur les droits d'auteur de la République Française. Toute reproduction (copie, mirroir, impression, ...) est interdite sans autorisation écrite de l'auteur. Sa consultation est gratuite pour tous sur le site www.memoire.com.

Principes

Une fois que vous disposez d'un modèle en mémoire, vous pouvez demander la génération vers une cible. Une dizaine de cibles sont disponibles actuellement.

Options

Langage de génération

Equivalence ligne de commande: -g <langage>
Valeurs possibles: Java Bdl Idl UmlHierarchie UmlRelations Uxf Naturel Gui Autotest Lisp C H Cpp Hpp
Valeur par défaut: Java

Permet de sélectionner une cible parmi celles proposées. Toute génération demandée par la suite utilisera cette cible.

Mode simplifié

Equivalence ligne de commande: -s
Par défaut: désactivé

Permet d'activer le mode simplifié. Ce mode dépend de la cible, mais il est en général moins riche que le mode complet. Par exemple, les méthodes et attributs peuvent ne pas être générés, ou encore le code peut se limiter aux prototypes de fonctions.

Rappel des classes utilisées

Equivalence ligne de commande: -u
Par défaut: désactivé
Utilisé dans: toutes

Permet de choisir si un commentaire doit être généré en fin, rappelant les classes utilisées.

Commentaires de suivi

Equivalence ligne de commande: pas encore disponible
Par défaut: désactivé
Utilisé dans: toutes

Permet de choisir si des commentaires de suivi doivent être ajoutés durant la génération. Cette option permet de mieux voir les correspondances entre le résultat et le modèle objet. Elle devrait être activée pour le développement de sources ou de cibles mais désactivée en cas d'utilisation normale.

Expressions régulières appliquées

Equivalence ligne de commande: --expreg
Par défaut: désactivé

Permet d'appliquer en fin de génération une liste d'expressions régulières de type rechercher/remplacer.

Feuille de style

Equivalence ligne de commande: --css
Valeurs possibles: *.css
Valeur par défaut: DocHtml.css
Utilisé dans: DocHtml UmlHierarchie UmlRelations

Permet de choisir la feuille de style pour toutes les cibles qui générent du HTML.

Format d'images

Equivalence ligne de commande: aucune
Valeurs possibles: Gif Jpeg Png Svg Xpm
Valeur par défaut: Gif
Utilisé dans: UmlHierarchie UmlRelations

Permet de choisir le format de sauvegarde des images générées. Pour l'instant, ne sont disponibles que le GIF, le JPEG et le XPM. Le PNG est prévu et sera à terme le format par défaut pour les images point-par-point. Le SVG sera le format par défaut pour les images vectorielles.

Langue

Statut actuel: non disponible
Valeurs possibles: fr de en eo es hu it pg...
Valeur par défaut: fr

Permet de choisir la langue de génération des textes (commentaires, cible Naturel, ...).

Module

Equivalence ligne de commande: -m <module>
Valeurs possibles: id de définition de module
Valeur par défaut: vide
Utilisé dans: UmlHierarchie

Permet de spécifier un filtre par le nom de module. Les éléments dont le nom de module contient la valeur subiront un traitement différent.

Classe

Equivalence ligne de commande: -m <module>
Valeurs possibles: id de nom de classe
Valeur par défaut: vide
Utilisé dans: UmlRelations

Permet d'indiquer quelle est la classe principale. Cette classe subira un traitement particulier.

Descriptions des cibles

Langages de définition

Bdl

Statut actuel: instable

Cette cible est destinée à fournir un format résumé et clair de composants. Plutôt qu'une vue attributs/méthodes, elle propose une vue propriétés/évènements. Actuellement, elle devrait être utilisée sur le code-source de composants au formalisme JavaBeans. Le texte génèrè est en français.

Idl

Statut actuel: instable

Destinée aux outils Corba, cette cible possède les mêmes limitations que la source Idl. Pour plus d'informations, voir le site.

Odl

Statut actuel: instable

Cette cible est destinée aux bases de données objet. Pour plus d'informations, voir le site.

Langages de programmation orientée objet

Cpp

Statut actuel: instable

Cette cible génère les implantations en C++ (corps). Elle doit être utilisée conjointement avec la cible Hpp.

Delphi

Statut actuel: instable

Cette cible génère du code Delphi (Object Pascal). Il s'agit d'une contribution de Arona Kane.

Eiffel

Statut actuel: instable

Cette cible génère du code Eiffel.

Hpp

Statut actuel: instable

Cette cible génère les déclarations en C++ (entêtes). Elle doit être utilisée conjointement avec la cible Cpp.

Java

Statut actuel: instable

La version actuelle sert de référence pour la génération de code. Du coup, le code généré contient beaucoup (trop) de commentaires... Cette cible sera renommée JavaDebogage et une version sans commentaires superflus sera proposée.

Lisp

Statut actuel: instable

A destination des environements Lisp, la version actuelle utilise des fonctions de déclaration defclass , deffield , defmethod , defvariable . A terme la compatibilité Common Lisp (CLOS) et LeLisp (MicroCeyx) devraient être assurées.

Langages de programmation procédurale ou fonctionnelle

C

Cette cible génère les implantations en C (corps). Elle doit être utilisée conjointement avec la cible H.

H

Statut actuel: instable

Cette cible génère les déclarations en C (entêtes). Elle doit être utilisée conjointement avec la cible C.

Rebol

Cette cible génère du code Rebol.

Sql2

Précision: version 2 (1992)
Statut actuel: instable

Cette cible génère le script de création de tables pour un SGBDR.

Sql3

Précision: version 3 (2001?)
Statut actuel: instable

Cette cible génère le script de création de types pour un SGBDR universel.

Cibles descriptives

DocHtml

Statut actuel: instable

Cette cible génère une page HTML de description des classes. Similaire dans l'idée à javadoc, cet outil est actuellement beaucoup moins avancé. Il présente toutefois l'avantage de fonctionner avec toutes les sources disponibles (Java, Idl, Fortran, ...). La première version de cette cible est une contribution de Axel von Arnim.

Naturel

Statut actuel: instable

Cette cible génère une description en langage naturel. Actuellement, seul le français est disponible. Son but est de fournir une description, synthètique ou non, du modèle objet.

UmlHierarchie

Statut actuel: instable

Cette cible génère un graphe des relations d'héritage entre classes. Une page HTML est aussi générée, contenant une MAP pour rendre cette image cliquable sur un serveur WWW. Il est important de renseigner l'option module pour une utilisation correcte.

UmlRelations

Statut actuel: instable

Cette cible génère un graphe des diverses relations d'une classe. Une page HTML est aussi générée, contenant une MAP pour rendre cette image cliquable sur un serveur WWW. Il est important de renseigner l'option classe pour une utilisation correcte.

Xmi

Statut actuel: instable

Cette cible génère un document XML suivant la DTD écrite par le groupe XMI. Pour plus d'informations, voir le site.

Uxf

Statut actuel: instable

Cette cible génère un document XML suivant la DTD écrite par un groupe japonais. Pour plus d'informations, voir leur site.

Outils

Autotest

Statut actuel: instable

Cette cible génère le code en Java de fonctions de test automatique. On obtient un programme qui va créer une instance de chaque classe et en appeler les méthodes avec un jeu de paramètres. La comparaison journalière permet de détecter certains effets de bord, le manquement de gestion des exceptions, ... Chaque classe testée doit disposer d'un constructeur sans argument.

Déploiement

Statut actuel: en projet (prévu plus tard)

Cette cible génère la liste des classes nécessaires au déploiment d'un programme Java.

Gui

Statut actuel: instable

Cette cible génère le code en Java d'éditeurs d'objet. On obtient une boite de dialogue avec les différents champs de l'objet. Les éditeurs générés sont utilisables directement ou peuvent servir de base à des développements spécifiques.