Bonjour,
Je compte ajouter la gestion de MySQL (et peut être ensuite Oracle) dans Bouml, et ce en commençant par le MPD afin de pouvoir générer/reverser du MySQL. Je compte plus tard ajouter le MCD, et via des plug-outs ou autre moyen faciliter le passage MCD -> MPD. J'avoue que pour le moment je ne comprends pas très bien le MLD qui ne me semble être qu'un MPD en cours de construction.
Etant ignare dans ce domaine j'ai regarder les docs d'outils pour me faire une idée de la façon de représenter les choses, mais plusieurs choses restent floues.
Bien évidement une table sera supportée par une classe UML, et une colonne par un attribut. Le stéréotype <<table>> permettra de dire que la classe n'a rien à produire pour les autres langages, et de fournir des entrées de menu comme "add column" à la place de "add attribut" etc
Bien évidemment la représentation graphique d'un MPD se fera via un diagramme de classe, et, grâce au fait que l'on peut demander que le mode de représentation de certaines/toutes classes dans le diagramme ne suive pas UML mais dépend du langage, je peux avoir une représentation dédiée à MySQL.
J'hésite concernant la database elle même, je penche plus pour un artéfact que pour une classe, surtout que l'association artéfact - classes/tables sera nécessaire pour la génération de code (comme pour les autres langages), donc autant faire d'une pierre deux coups.
Comme je peux le voir dans d'autres outils une colonne intervenant dans une clef primaire sera marquée <pk> dans sa représentation dans un diagramme de classe/MPD. Si cette colonne intervient également dans une clef étrangère ou autre faut-il aussi ajouter <fk> etc pour indiquer ces cas ?
Les clefs étrangères seront bien-sûr représentées via une relation. J'ai rarement vu apparaitre dans les diagrammes le lien entre les colonnes des deux tables, et lorsque je l'ai vu c'était une indication de la forme colpa = colen où colpa est une colonne de la table enfant, moi j'aurais plutôt inverser l'ordre. Montrer ce lien entre les colonnes est-il utile ? Faut-il en montrer plus comme par exemple PowerAMC et indiquer qu'il y a cascade en modification etc ?
Enterprise Architecte utilise des opérations pour supporter les autres types de clefs, je penche plutôt pour des attributs comme pour les colonnes.
Est-il utile de montrer la définition des clefs dans la représentation graphique de la table ? Faut-il rendre leur affichage optionnel ?
Est-il utile de modéliser les vues afin de les générer/reverser ?
Merci de me donner votre avis
Partager