Documentation
Présentation
Cette application est la version en ligne de DBConcept, un logiciel de modélisation de structures et de bases de données qui opère à partir d'une description textuelle des contraintes ensemblistes au format Mocodo.
Exemples :
L'interface propose trois vues (on passe de l'une à l'autre avec et ) :
- Documentation - Saisie du code source
- Saisie du code source - Visualisation
- Visualisation 1 - Visualisation 2 (pour comparaison)
Les panneaux de visualisation sont multifonctions : utiliser les menus et pour choisir le type de diagramme (UML, MCD, MLD, MPD) ou de code (SQL, Haxe, Java, PHP, Python).
Note pour Firefox : la fonctionnalité de presse papier est par défaut désactivée ; pour l'activer, saisir l'URL about:config et définir la valeur true pour la propriété dom.events.asyncClipboard.clipboardItem.
Positionnement des classes et associations
- Chaque ligne constitue la définition d’une boîte (classe ou association).
- Les boîtes définies sur des lignes consécutives sont tracées sur une même rangée.
- Un saut de ligne commence une nouvelle rangée.
- Les boîtes sont alignées verticalement. Une ligne réduite à un deux-points (
:) insère une boîte invisible (saut de colonne). - Ce qui est entre
/*et*/ou ce qui suit//est ignoré (commentaire).
Définir une classe
classe: attr1, attr2, attr3, ...
- Le nom de la classe est suivit par un deux-points.
- Les attributs sont séparés par des virgules.
- Le premier attribut est par défaut l’identifiant de la classe. Pour inclure un autre attribut dans l’identifiant (ou exclure le premier), préfixer le nom de l’attribut par un tiret bas ;
exemple :_attr - Le type de donnée peut être précisé entre crochets après le nom de l’attribut (la valeur par défaut est
VARCHAR(50)). Le typeCOUNTERest un mot clé pour définir un nombre auto-incrémenté ;
exemple :attr [INT]
Spécificités UML / OOP :
- La visibilité des attributs est par défaut protégée. Des accesseurs et mutateurs sont automatiquement générés à moins que la visibilité ne soit rendue explicite par le préfixe
+(publique),#(protégée) ou-(privée) - Un attribut préfixé par
~est à portée classe. - Le type
Tindique un type générique.
Définir une association
assoc, 01 ent1, 1N ent2, ... : attr1, ...
- Le nom de l’association est suivit par une virgule.
- Les “pattes” d’une association sont séparées par des virgules.
- Chaque patte est définie par ses cardinalités (
01,11,0N,1N, ouXXpour les masquer) suivies du nom de la classe impliquée dans l’association. - Les éventuels attributs d’une association sont placés à la fin après un deux-points.
- Le rôle de que joue la classe dans l’association peut être indiqué entre crochets, après les cardinalités ;
exemple :11 [role] entité - Pour indiquer un lien relatif, préfixer les cardinalités (dont la maximum devrait être 1) par un tiret bas ;
exemple :_11 entité faible
Spécificité UML / OOP :
- Pour indiquer une agrégation préfixer les cardinalités par la lettre
o(en minuscule) ; le tiret du bas_(cf lien relatif) ou l’étoile*indique une composition. - La visibilité des liens (par défaut protégée avec accesseurs et mutateurs) peut être rendue explicite en préfixant les cardinalités par
+,#ou-.
Définir une sous-classe
/\ parent - enfant1, enfant2
La ligne commence par les caractères
/et\suivis du nom de la classe parent, d’un tiret (-) puis des noms des classes enfants (sous-classes) séparées par des virgules.Des contraintes d’e
Xclusion et/ou deTotalité peuvent être placées entre les/et\;
exemple :/XT\ Personne - Eleve, ProfLe séparateur entre parents et enfants permet de spécifier un choix pour la génération du modèle relationnel :
-pour générer la relation parent et une relation par enfant ;< [champCodeType]pour supprimer les relations enfants et en faire remonter les attributs vers celle du parent ([champCodeType]est facultatif) ;>pour supprimer la relation parent (en cas deTotalité) et en faire descendre les attributs vers celles des enfants (requiert eXclusion).
Définir les méthodes d’une classe (spécificités UML / OOP)
Les méthodes doivent être définies séparément et après la classe et ses attributs. Elles ne constituent pas des boîtes.
classe(): méthode(param [type]) [type], ...
- Pour définir les méthodes d’une classe, indiquer le nom de la classe suivi de parenthèses (il peut y avoir plusieurs lignes pour une même classe).
- Un nom de méthode est suivi par la liste de paramètres entre parenthèses, et du type de la valeur retournée (entre crochet) le cas échéant.
- Par défaut, le type des paramètres est déduit de celui des attributs (si le paramètre porte le même nom) ou est chaîne de caractères.
- Par défaut, un constructeur prenant la valeur de chaque attribut en paramètre est automatiquement généré, à moins qu’un constructeur ne soit explicitement défini sous la forme d’une méthode sans nom ;
exemple :classe(): (attr, attr)