Archyno
UMLPraxe modelování

Generování UML pomocí AI

Jazykový model vyrobí UML diagram ze dvou vět popisu a většina bude správně. Tohle je o té části, která ne: čtyři chyby, které generování dělá pokaždé, a dvouminutová kontrola, která je zachytí dřív, než se diagram dostane k týmu.

9 min čteníUML 2.5.131 z 35

Krátká odpověď

  • První návrh bývá strukturálně v pořádku. Model ale nemůže vědět, který z několika obhajitelných návrhů sedí na váš systém.
  • Opakují se čtyři chyby: kompozice nakreslená jako agregace, nevyžádané násobnosti jedna k mnoha, vymyšlená rozhraní a diagram tříd tam, kde byl potřeba sekvenční.
  • Pojmenujte druh diagramu, vypište podstatná jména, která už používáte, a řekněte otázku, na kterou má diagram odpovědět. Vágní prompt vyrobí věrohodnou fikci.
  • Po kontrole ho předat lze. Škodu nadělají ty diagramy, které si před rozesláním nikdo nepřečetl.
UML diagram tříd domény knihovních výpůjček, vygenerovaný z promptu. Member je v asociaci s Loan, jeden k nule nebo více. Loan je v asociaci s Copy, nula nebo více k jednomu. Title agreguje Copy.
První návrh ze dvou vět o knihovních výpůjčkách. Čtyři třídy, rozumné názvy, tři vztahy - a jeden z nich je nesprávného druhu, což je předmětem většiny tohohle článku.

01V čem je generování opravdu dobré#

Ve dvou věcech, a jsou to právě ty, které stojí nejvíc času. První je prázdná stránka: pojmenovat osm podstatných jmen v doméně a dostat je na plátno je půl hodiny práce, která nevyprodukuje nic, o čem by se někdo hádal, a model to udělá za vteřiny. Druhou je dohledávání notace - která hlava šipky znamená realizaci, na který konec jde kosočtverec, jak vypadá násobnost 0..* vedle 1. Ta znalost je ve specifikaci, specifikace je v trénovacích datech a pamatovat si ji nikdy nebyla ta zajímavá část práce.

Diagram v hlavičce tohohle článku přišel z dvouvětého popisu. Třídy jsou správné, atributy věrohodné a člověk, který doménu zná, si ho přečte a začne se hádat o ty části, na kterých záleží - a přesně na to první návrh je.

02Čtyři selhání, po pořadí#

Opakují se napříč modely i napříč prompty, protože pod povrchem jsou všechna týmž selháním: generátor vybírá nejběžnější odpověď a váš systém není nejběžnějším systémem.

  1. Kompozice nakreslená jako agregace nebo jako obyčejná asociace. Dutý kosočtverec je bezpečně vypadající volba, takže je to ta, která se vrátí. Je to zároveň ta, která říká, že části přežijí celek, což je tvrzení o mazání a o vlastnictví, které nikdo neověřil.
  2. Násobnosti výchozí na jeden k mnoha. Bez zeptání se téměř každá asociace vrátí jako 1 k 0..*. Někdy je to správně. Když ne, je to ten druh nesprávnosti, který přežije až do schématu.
  3. Rozhraní vymyšlená pro jedinou implementaci. Modely přečetly velké množství podnikové Javy. Pokud má vaše doména jednoho poskytovatele plateb, je «interface» IPaymentProvider v návrhu ozdobou.
  4. Úplně nesprávný druh diagramu.Zeptejte se na chování v čase a vrátí se diagram tříd, protože diagramy tříd dominují trénovacím datům. Pokud byla otázka „co se stane, když platba selže“, chtěli jste sekvenční diagram.
Dvě UML třídy. Title je složený z jedné nebo více instancí Copy, nakreslené s plným kosočtvercem na straně Title a násobností jeden k jeden nebo více.
První selhání, opravené. Plný kosočtverec a násobnost 1..* říkají, že Copy nemůže existovat bez svého Title a zemře s ním - což o knihovním katalogu platí a nebylo to, co tvrdil návrh.

Ani jedno z nich se neopravuje těžko. Všechna se těžko všimnou, protože nesprávný druh vztahu vypadá přesně tak sebevědomě jako správný a diagram je tak jako tak uklizený.

03Jak promptovat na něco ověřitelného#

Tři složky, a ta třetí je ta, kterou lidé vynechávají.

  1. Pojmenujte druh diagramu.„Diagram tříd“, ne „UML diagram“. Pokud si nejste jistí, který druh chcete, je to modelovací otázka a těch čtrnáct druhů je tady.
  2. Dejte mu svá podstatná jména. Slova, která váš tým už používá, napsaná tak, jak je píše váš kód. Model, který si vymyslí BorrowRecord, když vy říkáte Loan, vyprodukuje diagram, který si nikdo neumí na nic namapovat.
  3. Vyslovte otázku, na kterou musí diagram odpovědět.„...který ukazuje, co se stane s výpůjčkami, když se výtisk vyřadí.“ Právě to mění věrohodný obrázek na ověřitelné tvrzení a je to jediná věta s nejvyšší hodnotou v jakémkoli promptu.

04Dvouminutový posudek#

Projděte si to dřív, než diagram opustí vaši obrazovku. Mapuje se jedna ku jedné na ta čtyři selhání výše a je to celý rozdíl mezi vygenerovaným diagramem, který pomůže, a takovým, který rok potichu dezinformuje tým.

Sáhněte po něm, když

  • Každý kosočtverec: umírá ta část opravdu s celkem? Plný pokud ano, dutý pokud ne
  • Každá násobnost: přečtěte ji nahlas jako větu a ověřte ji proti skutečnému případu
  • Každé rozhraní: existuje druhá implementace, nebo by věrohodně mohla?
  • Druh diagramu: odpovídá tenhle tvar na otázku, kterou jste položili, nebo na jinou?

Sáhněte po něčem jiném, když

  • Přijímat typy atributů - jsou to dohady a levně se opraví později
  • Hádat se o rozvržení dřív, než jsou vztahy správné
  • Žádat překreslení, když je špatná jediná hrana - opravte ji v editoru
  • Rozesílat ho dřív, než si ho jednou přečte někdo, kdo doménu zná

Dvě minuty nejsou nadsázka: na diagramu o osmi boxech jsou to čtyři pohledy. Funguje to díky tomu, že víte, co hledáte, a proto je seznam krátký a konkrétní místo „důkladně zkontrolujte“.

05Jak to funguje v Archynu#

Archyno generuje do modelu, ne do obrázku, a právě ten rozdíl je důvodem, proč může tenhle článek skončit tam, kde končí. AI dostane tentýž metamodel, který vynucuje editor, takže se vrátí to, co notace opravdu připouští - realizace může přistát jen na rozhraní, ArchiMate vztah sloužení může spojit jen ty vrstvy, které specifikace dovoluje. Kategorie chyb výše se smrsknou na ty, které nezachytí žádný nástroj: na ty o vašem systému.

Protože je to model a ne obrázek, oprava je úprava, ne nový prompt. Změňte kosočtverec, změňte násobnost, přejmenujte třídu - a to přejmenování dorazí do každého pohledu, ve kterém se prvek objevuje. Výsledek se exportuje jako PNG, SVG, Mermaid, XMI nebo soubor .qea pro Sparx, a právě to dělá z vygenerovaného diagramu něco, co umíte předat týmu, který nepoužívá tentýž nástroj jako vy.

Po jednom řádku na každé

  1. 01Generování je vynikající na prázdnou stránku a na notaci, což je většina tření.
  2. 02Nespolehlivé je u vlastnictví, násobnosti, vymyšlených rozhraní a druhu diagramu.
  3. 03Pojmenujte druh diagramu, dodejte vlastní podstatná jména a vyslovte otázku, na kterou má odpovědět.
  4. 04Zkontrolujte čtyři věci: kosočtverce, násobnosti, rozhraní a jestli druh sedí.
  5. 05Generujte do modelu, ne do obrázku, jinak je každá oprava dalším promptem.
  6. 06Nic na generování nenahradí to, aby si ho jednou přečetl někdo, kdo doménu zná.

ArchiMate polovina tohohle - kde pravidla vrstev dělají generování zároveň těžším i užitečnějším - je v článku generování ArchiMate diagramů pomocí AI. Co nástroj dělá a co nedělá, je přímo vyloženo v proč Archyno.

06Časté dotazy#

Dokáže AI vygenerovat UML diagram z textového popisu?

Ano a první návrh bývá strukturálně v pořádku: správné třídy, rozumné názvy a vztahy, které většinou míří správně. Model ale nemůže vědět, který z několika obhajitelných návrhů odpovídá vašemu systému, takže s výstupem zacházejte jako s návrhem od člověka, který četl specifikaci, ale ne váš kód.

Co AI na UML diagramech pokazí nejčastěji?

Čtyři věci v tomto pořadí: kompozici nakreslí jako agregaci nebo obyčejnou asociaci, násobnosti nastaví na jedna k mnoha, aniž by se zeptala, vymyslí rozhraní pro třídy s jedinou implementací a vrátí diagram tříd tam, kde otázka potřebovala sekvenční diagram nebo diagram komponent. Všechny čtyři jsou vidět do dvou minut, když víte, co hledat.

Jak má vypadat prompt na UML diagram?

Pojmenujte druh diagramu, vypište podstatná jména, která už používáte, a řekněte otázku, na kterou má diagram odpovědět. „Diagram tříd půjčování v knihovně - členové, výpůjčky, exempláře, tituly - který ukáže, co se stane s výpůjčkami po vyřazení exempláře“ vyrobí něco ověřitelného, kdežto „nakresli UML pro knihovnu“ vyrobí věrohodný diagram knihovny, kterou nikdo neprovozuje.

Lze vygenerovaný diagram předat týmu?

Po kontrole ano a to je poctivá odpověď. Generování odstraní prázdný papír a listování v notaci, což je většina tření; rozhodnout, jestli model sedí na váš systém, je úsudek, který za vás nikdo nevygeneruje. Škodu nadělají ty diagramy, které si před rozesláním nikdo nepřečetl.

V této sérii

Související články

Všechny články