Générer de l'UML avec l'IA
Un modèle de langage produit un diagramme UML à partir de deux phrases, et l'essentiel sera juste. Ce texte porte sur le reste : les quatre erreurs que la génération commet à chaque fois, et la vérification de deux minutes qui les attrape avant que le diagramme n'arrive à une équipe.
9 min de lectureUML 2.5.131 sur 35
La réponse courte
- Le premier jet est généralement solide sur le plan structurel. Ce qu'un modèle ignore, c'est lequel de plusieurs schémas défendables correspond à votre système.
- Quatre erreurs reviennent : composition dessinée en agrégation, multiplicités un-vers-plusieurs non demandées, interfaces inventées, et diagramme de classes là où il fallait une séquence.
- Nommez le type de diagramme, listez les noms que vous employez déjà, et énoncez la question à laquelle il doit répondre. Un prompt vague produit une fiction plausible.
- Après relecture, il est bon à transmettre. Les diagrammes qui font des dégâts sont ceux que personne n'a lus avant de les diffuser.
01Ce que la génération réussit vraiment#
Deux choses, et ce sont les deux qui coûtent le plus de temps. La première est la page blanche : nommer les huit noms d'un domaine et les poser sur une toile représente une demi-heure de travail qui ne produit rien dont quiconque discutera, et un modèle le fait en quelques secondes. La seconde est la recherche de notation : quelle pointe de flèche signifie réalisation, de quel côté va le losange, à quoi ressemble une multiplicité 0..* à côté d'un 1. Ce savoir est dans la spécification, la spécification est dans les données d'entraînement, et le retenir n'a jamais été la partie intéressante du métier.
Le diagramme en tête de cet article vient d'une description de deux phrases. Les classes sont justes, les attributs plausibles, et quelqu'un qui connaît le domaine peut le lire et commencer à discuter des parties qui comptent - ce à quoi sert exactement un premier jet.
02Les quatre échecs, dans l'ordre#
Ils se répètent d'un modèle à l'autre et d'un prompt à l'autre, parce qu'en dessous ce sont tous le même échec : le générateur choisit la réponse la plus courante, et votre système n'est pas le système le plus courant.
- Une composition dessinée en agrégation, ou en association simple. Le losange creux est le choix qui a l'air prudent, donc c'est celui qui revient. C'est aussi celui qui dit que les parties survivent au tout, une affirmation sur la suppression et sur la propriété que personne n'a vérifiée.
- Des multiplicités par défaut à un-à-plusieurs. Sans qu'on le demande, presque toute association revient en
1vers0..*. Parfois c'est juste. Quand ça ne l'est pas, c'est le genre de faux qui survit jusque dans un schéma. - Des interfaces inventées pour une seule implémentation. Les modèles ont lu énormément de Java d'entreprise. Si votre domaine a un seul prestataire de paiement, une
«interface» IPaymentProviderdans le brouillon est de la décoration. - Carrément le mauvais type de diagramme.Posez une question sur le comportement dans le temps et un diagramme de classes revient, parce que les diagrammes de classes dominent les données d'entraînement. Si la question était « que se passe-t-il quand le paiement échoue », vous vouliez un diagramme de séquence.
Aucun n'est difficile à corriger. Tous sont difficiles à remarquer, parce qu'un type de relation faux a exactement l'air aussi assuré qu'un juste, et le diagramme est soigné dans les deux cas.
03Formuler un prompt qui donne du vérifiable#
Trois ingrédients, et c'est le troisième que l'on oublie.
- Nommez le type de diagramme.« Un diagramme de classes », pas « un diagramme UML ». Si vous ne savez pas lequel vous voulez, c'est une question de modélisation et les quatorze types sont ici.
- Donnez-lui vos noms. Les mots que votre équipe emploie déjà, écrits comme votre code les écrit. Un modèle qui invente
BorrowRecordquand vous ditesLoanproduit un diagramme que personne ne peut faire correspondre à quoi que ce soit. - Énoncez la question à laquelle le diagramme doit répondre.« ...qui montre ce qui arrive aux prêts quand un exemplaire est retiré. » C'est ce qui transforme une image plausible en affirmation vérifiable, et c'est la phrase la plus rentable de n'importe quel prompt.
04La relecture de deux minutes#
Faites-la avant que le diagramme ne quitte votre écran. Elle correspond point par point aux quatre échecs ci-dessus, et c'est toute la différence entre un diagramme généré qui aide et un qui désinforme discrètement une équipe pendant un an.
À utiliser quand
- Chaque losange : la partie meurt-elle vraiment avec le tout ? Plein si oui, creux sinon
- Chaque multiplicité : lisez-la à voix haute comme une phrase et confrontez-la à un cas réel
- Chaque interface : existe-t-il une deuxième implémentation, ou pourrait-il plausiblement y en avoir une ?
- Le type de diagramme : cette forme répond-elle à la question posée, ou à une autre ?
Préférer autre chose quand
- Accepter les types d'attributs - ce sont des suppositions, et peu coûteuses à corriger ensuite
- Discuter de la mise en page avant que les relations soient justes
- Demander un nouveau tracé quand une seule arête est fausse - corrigez-la dans l'éditeur
- Le diffuser avant que quelqu'un qui connaît le domaine l'ait lu une fois
Deux minutes n'est pas une exagération : sur un diagramme de huit boîtes, ce sont quatre coups d'oeil. Ce qui le rend efficace, c'est de savoir ce que l'on cherche, d'où une liste courte et précise plutôt qu'un « relisez attentivement ».
05Comment cela fonctionne dans Archyno#
Archyno génère dans un modèle plutôt que dans une image, et c'est cette différence qui permet à cet article de se terminer là où il se termine. On donne à l'IA le même métamodèle que celui qu'applique l'éditeur, donc ce qui revient, ce sont des éléments et des relations que la notation autorise réellement : une réalisation ne peut atterrir que sur une interface, une relation de service ArchiMate ne peut relier que les couches que la spécification permet. Les catégories d'erreur ci-dessus se réduisent à celles qu'aucun outil ne peut attraper : celles qui concernent votre système.
Parce que c'est un modèle et non une image, la correction est une modification et non un nouveau prompt. Changez le losange, changez la multiplicité, renommez la classe - et le renommage atteint toutes les vues où l'élément apparaît. Le résultat s'exporte en PNG, SVG, Mermaid, XMI ou en fichier .qea Sparx, ce qui fait d'un diagramme généré quelque chose que vous pouvez remettre à une équipe qui n'utilise pas le même outil que vous.
En une ligne chacun
- 01La génération excelle sur la page blanche et sur la notation, c'est-à-dire l'essentiel du frottement.
- 02Elle n'est pas fiable sur la propriété, la multiplicité, les interfaces inventées et le type de diagramme.
- 03Nommez le type de diagramme, fournissez vos propres noms, et énoncez la question à laquelle il doit répondre.
- 04Vérifiez quatre choses : losanges, multiplicités, interfaces, et si le type convient.
- 05Générez dans un modèle plutôt que dans une image, sinon chaque correction est un prompt de plus.
- 06Rien dans la génération ne remplace quelqu'un qui connaît le domaine et le lit une fois.
La moitié ArchiMate de tout ceci - où les règles de couches rendent la génération à la fois plus difficile et plus utile - est dans générer des diagrammes ArchiMate avec l'IA. Ce que l'outil fait et ne fait pas est exposé sans détour dans pourquoi Archyno.
06Questions fréquentes#
L'IA peut-elle générer un diagramme UML à partir d'un texte ?
Oui, et le premier jet est généralement solide sur le plan structurel : classes pertinentes, noms sensés, relations qui pointent le plus souvent dans le bon sens. Ce que le modèle ignore, c'est lequel de plusieurs schémas défendables correspond à votre système : traitez la sortie comme un brouillon écrit par quelqu'un qui a lu la spécification mais pas votre code.
Quelles erreurs reviennent dans les diagrammes UML générés ?
Quatre, dans cet ordre : la composition dessinée comme une agrégation ou une simple association, des multiplicités mises à un-vers-plusieurs sans qu'on l'ait demandé, des interfaces inventées pour des classes à implémentation unique, et un diagramme de classes rendu là où la question appelait un diagramme de séquence ou de composants. Les quatre se repèrent en moins de deux minutes.
Comment formuler un prompt pour un diagramme UML ?
Nommez le type de diagramme, listez les noms que vous employez déjà, et énoncez la question à laquelle il doit répondre. « Un diagramme de classes du prêt en bibliothèque - membres, prêts, exemplaires, titres - montrant ce qui arrive aux prêts quand un exemplaire est retiré » donne du vérifiable ; « dessine l'UML d'une bibliothèque » donne une bibliothèque que personne n'exploite.
Un diagramme généré peut-il être remis à une équipe ?
Après relecture, oui, et c'est la réponse honnête. La génération supprime la page blanche et la recherche de notation, soit l'essentiel du frottement ; décider si le modèle correspond à votre système reste un jugement que personne ne génère à votre place. Les diagrammes qui font des dégâts sont ceux que personne n'a lus avant de les diffuser.
Dans cette série
- 01Qu'est-ce que UML ?
- 02Symboles UML
- 03Choisir un diagramme
- 04Diagrammes de classes
- 05Exemples de diagrammes de classes
- 06Dessiner un diagramme de classes
- 07Symboles du diagramme de classes
- 08Diagrammes de séquence
- 09Exemples de diagrammes de séquence
- 10Dessiner un diagramme de séquence
- 11Diagrammes de cas d'utilisation
- 12Exemples de cas d'utilisation
- 13Diagrammes d'activité
- 14Exemples d'activité
- 15Diagrammes états-transitions
- 16Exemples d'états-transitions
- 17Diagrammes de composants
- 18Exemples de composants
- 19Dessiner un diagramme de composants
- 20Symboles de composants
- 21Diagrammes de déploiement
- 22Exemples de déploiement
- 23Diagrammes d'objets
- 24Diagrammes de paquetages
- 25Diagrammes de structure composite
- 26Diagrammes de communication
- 27Séquence vs communication
- 28Diagrammes de temps
- 29Diagrammes globaux d'interaction
- 30Diagrammes de profil
- 31UML avec l'IA
- 32Exemple e-commerce
- 33Exemple bancaire
- 34Exemple microservices
- 35Exemple AWS
À lire aussi
Fondamentaux
Diagrammes de structure
Pratique de la modélisation
Pratique de la modélisation
Pratique de la modélisation
Diagrammes de structure