Sdílet prostřednictvím


Postupy: Generování kódu z diagramů tříd UML

V Visual Studio Ultimate z diagramy tříd jazyka UML může generovat kód pomocí Generovat kód příkaz. Ve výchozím nastavení generuje příkaz typ jazyka C# pro každý typ UML, kterou jste vybrali.Můžete upravit a rozšířit toto chování úpravou nebo kopírování textu šablony, které generují kód.Můžete určit různé chování pro typy, které jsou obsaženy v různých balíčků v modelu.

Generovat kód příkaz je zvláště vhodný pro generování kódu ze uživatelův výběr prvků a generování jeden soubor pro jednotlivé třídy UML nebo jiného prvku.Například obrázek ukazuje dva C# soubory, které byly vytvořeny ze dvou tříd UML.

Jako alternativu, pokud chcete generovat kód, ve kterém se soubory nemají vztah 1: 1 s prvky UML, zvažte psaní textu šablony, které jsou spuštěny se Transformovat všechny šablony příkaz.Další informace o této metodě naleznete v tématu Jak: generování souborů z modelu UML.

Soubory tříd UML diagram třídy a vygenerované C#.

Další informace o UML třída diagramy v Visual Studio Ultimate, naleznete v následujících tématech:

Pomocí příkazu generovat kód

Následující postup popisuje výchozí chování Generovat kód příkaz:

Chcete-li vytvořit samostatný soubor pro každý prvek

  1. Vytvoření modelu UML, který obsahuje třídy.Můžete chtít použít Stereotypy na prvky modelu.

    Další informace naleznete v tématu Výchozí transformace generování kódu.

  2. V diagramu třídy nebo v Průzkumníka modelů UML, vyberte prvky, ze kterých chcete generovat kód.Můžete vybrat jednu z následujících:

    • Specifickou sadu prvků.

    • Balíček nebo model pro generování kódu z jeho obsah.

    • Diagramu, chcete-li vybrat všechny elementy v diagramu.

  3. Otevření místní nabídky pro vybraný prvek a pak zvolte Generovat kód.

    Při prvním použití Generovat kód v určitém modelu se zobrazí dialogové okno.Toto dialogové okno umožňuje upravit parametry pro generování kódu modelu.

    Zvolte OK Pokud nevíte, zda mají být tyto parametry měnit.

    Chcete-li později vrátit k tomuto dialogovému oknu, otevřete místní nabídku pro diagram a pak zvolte Konfigurovat výchozí nastavení generování kódu.Další informace naleznete v tématu Vlastní nastavení příkazu generovat kód.

Soubory, které obsahují kód jazyka C# jsou generovány.V případě výchozí soubor je generován pro každý typ a soubory, které jsou generovány v projektu knihovny tříd jazyka C#.Toto chování lze nastavit.Další informace naleznete v tématu Vlastní nastavení příkazu generovat kód.

Model k zajištění toho, že ji lze přeložit do jazyka C# jsou použity některé ověřovacích testů.Tyto testy nezdaří, zobrazí se chybová zpráva a generování kódu nebude provedeno.Je-li příkaz ověření, který jste vytvořili, není generován kód pro jednotlivé prvky, které váš příkaz ověření se nezdaří.Další informace naleznete v tématu Postup: definovat omezení ověření pro modely UML.

Transformace generování kódu výchozí

V této části jsou shrnuty výsledky, které jsou vytvořeny Generovat kód příkaz, není-li příkaz vlastní nastavení.Další informace naleznete v tématu Vlastní nastavení příkazu generovat kód.

  • Typ jednoho C# je vyráběn pro každý typ, který jste vybrali v modelu UML.Každý typ je umístěn v samostatném souboru kódu v rámci GeneratedCode složky.

  • Je-li typ UML je obsažen v balíčku, generovaný typ jazyka C# je umístěn uvnitř oboru názvů a soubor je vytvořen ve složce, která má stejný název jako obor názvů.

  • Vlastnosti jazyka C# je generována pro každou Attribute třídy UML.

  • Metoda C# je generována pro každou Operation typu UML.

  • Pole C# je generována pro každou splavných přidružení třídy účastní.

Přidáním stereotypu pro každý typ UML můžete nastavit další vlastnosti generované typ jazyka C#.

Chcete-li vytvořit tento typ jazyka C#

Tento typ UML

Použít tento stereotyp

Třída

Třída

<none> nebo

Třída jazyka C#

Rozhraní

Rozhraní

<none> nebo

Rozhraní jazyka C#

Výčet

Výčet

<none> nebo

Výčet C#

Delegát

Třída

Delegát jazyka C#

Struktura

Třída

Struktura jazyka C#

Chcete-li nastavit stereotyp typu nebo jiného prvku

  1. Otevření místní nabídky pro prvek v diagramu nebo v Průzkumníka modelů UMLa pak zvolte Vlastnosti.

  2. V Vlastnosti okno, vyberte šipku rozevíracího seznamu v Stereotypy vlastnost a potom zaškrtněte políčko pro stereotyp, který chcete použít.

    Tip

    Pokud se Stereotypy C#, povolte C# profil pro model nebo balíček, který obsahuje prvky modelu, které vás zajímají.Vyberte balíček nebo kořenové modelu v Průzkumníka modelů UML.Pak v Vlastnosti okna, zvolte profila pak povolte profil jazyka C#.

  3. Rozbalte Stereotypy vlastnost, kterou chcete zobrazit další vlastnosti, které lze nastavit.

Popis vlastnosti typů atributů, operací a přidružení jsou zapisovány do <summary> poznámky do generovaného kódu.Komentář prvky, které jsou spojeny s typy jsou zapisovány do <remarks> komentáře.

Různé generovaný kód

Generovaný kód se liší závislé na vlastnostech každého typu, atribut nebo operaci.Nastavíte-li například Je abstraktní vlastnost třídy na hodnotu true, pak bude abstract klíčového slova se zobrazí na generované třídy.Nastavíte-li násobnost atributu na 0.. *, pak bude mít vlastnosti generované IEnumerable<> typu.

Kromě toho každý stereotyp poskytuje několik dalších vlastností, které lze nastavit.Tyto hodnoty jsou převedeny na odpovídající klíčová slova v kódu jazyka C#.Například pokud nastavíte vlastnost Is Static na třídy, třídy C# bude static.

Chcete-li nastavit tyto vlastnosti, vyberte v diagramu třídy nebo jiného prvku.V okně Vlastnosti rozbalte Stereotypya potom rozbalte C#, stereotyp, jako například Třída jazyka C#.Pro třídy, tyto dodatečné vlastnosti:

  • Atributy CLR

  • Je částečně

  • Statická

  • Nebezpečné

  • Viditelnost balíčku

Každý atribut a operace má také vlastnosti stereotypu, které lze nastavit.Pokud se nezobrazí vlastnosti na nový atribut, spusťte Generovat kód.

Přizpůsobení příkazu generovat kód

Generovat kód příkaz works pomocí transformace elementů modelu pomocí sady text šablony.Další informace o šablonách textu, viz Kód generace a Text šablony T4.

Šablony jsou specifikovány v sadě text šablony vazby.Vazba šablony text určuje, jaké by použita šablona, kde by mělo být umístěno generovaný výstup a další parametry Generovat kód příkaz.

Při prvním spuštění Generovat kód příkaz na určitém modelu přikládá sada výchozí šablonu vazby kořenové lokalitě modelu.Tyto vazby se vztahuje na všechny prvky v modelu.

Můžete však přepsat a přidat tyto výchozí vazby tak, že připojíte vlastní vazby na balíčky, třídy nebo jiných prvků.Vazba se vztahuje na všechny prvky uvnitř prvku, ke kterému je připojena.Například pokud chcete, aby všechny typy uvnitř konkrétní balíček, transformovat stanovením jinou sadu šablon, či výstup do jiné složky, můžete připojit šablonu vazby do balíčku.

Kontrolovat vazby šablony připojené k prvku modelu, zvolte tři tečky [...] v Text šablony vazby vlastnost v okně Vlastnosti.

Generovat kód příkaz platí šablony pro každý prvek modelu, který jste vybrali.Sadu šablon, které jsou použity pro každý prvek je kombinované sadu šablon, které jsou připojeny k balení, až do a včetně kořenové lokalitě modelu.

Dvě šablony vazby v této sadě mají stejný název, vazby do menší nádoby, má přednost před vazby ve větší nádobě.Například kořenový model má vazbu s názvem Class Template.Mít své vlastní šablony použité k obsahu konkrétní balíček, definovat vlastní šablonu vazby, který má název Class Template.

Více než jednu šablonu lze použít k prvku modelu.Generovat více než jeden soubor z každého prvku modelu.

[!POZNÁMKA]

Vazby ke kořenové lokalitě modelu jsou používány jako výchozí pro všechny prvky v modelu.Chcete-li zobrazit tyto výchozí vazby, otevřete místní nabídku pro povrch diagramu a pak zvolte Konfigurovat nastavení generování kódu výchozí.Alternativně můžete vybrat kořenové lokalitě modelu v Průzkumníku modelů UML a pak zvolte [...] v Text šablony vazby vlastnost.Vazby se nezobrazí, dokud jste použili Generovat kód příkaz nejméně jednou.Šablona vazby nelze připojit k diagramu.

Chcete-li připojit text šablony vazeb balíčku nebo jiného prvku modelu

  1. V Průzkumníka modelů UML, otevřete místní nabídku pro prvek modelu a pak zvolte Vlastnosti.Obecně by připojit text šablony vazeb balíčku nebo kořenové lokalitě modelu.

  2. V Vlastnosti okna, zvolte tlačítko se třemi tečkami ([...]) v Text šablony vazby vlastnost.

    Text šablony vazby zobrazí se dialogové okno.

  3. Zvolte Přidat k vytvoření nové vazby text šablony.

    -nebo-

    Zvolte existující vazby a upravte ji.

    Každá šablona vazba definuje použití zadané šablony k prvku modelu, který jste vybrali a jiné prvky modelu, které obsahuje.

  4. V dialogovém okně nastavte vlastnosti vazby text šablony.

    Property

    Description

    Název

    Název pro tuto vazbu.Přepsat vazby, zděděné z obsahující balíček nebo model, použijte stejný název jako vazby, kterou chcete změnit.

    Přepsat

    Pokud je hodnota true, je přepsán existující kód.

    Cílový název

    Název souboru, který je generován.

    Výrazy můžete vložit do tohoto řetězce, jako je například {Name} nebo {Owner.Name}.Můžete například napsat: {Owner.Name}_{Name}.Tento výraz je vyhodnocován na prvek modelu.Vlastnosti prvků, ale nikoli metody mohou být použity.Chcete-li zjistit, jaké vlastnosti lze použít, podívejte se na vlastnosti typy v Microsoft.VisualStudio.Uml.*.

    Důležitá poznámkaDůležité
    {Název} nebo {Owner.Name} lze použít pouze Cílový název vlastnost.Chcete-li změnit název vygenerované třídy, je nutné upravit šablonu.Další informace naleznete v tématu psaní textu šablony.

    Cesta k projektu

    Určuje cestu k Visual Studio projektu, který bude obsahovat transformace společnosti výstupní soubory.Zadávané hodnoty slouží k vytvoření nového projektu.Zvolte tlačítko se třemi tečkami ([...]) Chcete-li vybrat existující projekt.

    Pokud neexistuje, bude vytvořen nový projekt.Je projekt knihovny tříd jazyka C#.

    Chcete-li to provést, musíte zadat projektu přímo.Může obsahovat makra proměnné prostředí, například % ProgramFiles % a % LocalAppData %.

    Cílový adresář

    Složka, ve kterém je generována cílového souboru.Cesta je relativní ke složce projektu.

    Můžete použít {PackageStructure} výraz vložit cestu, která odpovídá názvy obsahující balíčky.Výchozí hodnota je \GeneratedCode\{PackageStructure}.Může také obsahovat proměnné prostředí, například % TEMP % a % HomePath %.

    Důležitá poznámkaDůležité
    {PackageStructure} lze použít pouze Cílový adresář vlastnost.

    Cesta k souboru šablony

    Šablona, která bude provádět transformace.

    Můžete použít zadané šablony nebo vytvořit vlastní.Zadané šablony lze nalézt v následujícím umístění:

    ...\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\Extensibility\Templates\Text\

  5. Je možné připojit tolik vazby na prvek, jak chcete.

Psaní textu šablony

Můžete napsat vlastní text šablony.Text šablony může generovat kód programu nebo jakékoli jiné textového souboru.

Doporučujeme začít úpravou kopie standardní šablony.Šablony můžete zkopírovat z následujících umístění:

...\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\Extensibility\Templates\Text\

Pochopit text šablony, naleznete v následujících tématech.

Chcete-li použít šablony s Generovat kód příkaz, musí obsahovat směrnice modelování.Příklad:

<#@ Modeling ElementType="Microsoft.VisualStudio.Uml.Classes.IClass" Processor="ModelingProcessor" #>

ElementType Atribut definuje typ prvku UML, ke kterému se vztahuje tato šablona.

V šabloně this patří dočasné třídu, která má následující vlastnosti:

Je možné toto užitečné při psaní textu šablony.Tato informace je podrobně popsáno v Kód generace a Text šablony T4.

  • Můžete nastavit příponu názvu souboru výsledků v Output směrnice.Jeden Output směrnice vyžaduje každý text šablony.

  • Některé sestavení automaticky odkazována v šabloně.Tyto sestavení patří například System.dll a Microsoft.VisualStudio.Uml.Interfaces.dll.

    Použití jiných sestavení v generování kódu programu, je nutné použít Assembly směrnice.Příklad:

    <#@ Assembly Name="%ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll" #>

  • Některé obory názvů, jako System jsou automaticky importovány do programového kódu.Pro ostatní obory názvů, můžete použít Import směrnice stejným způsobem jako byste použili using prohlášení.Příklad:

    <#@ Import Namespace="Microsoft.VisualStudio.Uml.Classes" #>

    <#@ Import Namespace="Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml" #>

  • Použití Include direktivu pro odkaz na text jiného souboru.

  • Části šablony uzavřený v hranatých závorkách <# ... #> jsou spouštěny Generovat kód příkaz.Části šablony mimo tyto závorky jsou zkopírovány do výsledného souboru.Je důležité rozlišovat mezi generování kódu a generovaný text.Generovaný text může být v libovolném jazyce.

  • <#= Expressions #>jsou vyhodnoceny a převedeny na řetězce.

Viz také

Koncepty

Diagramy tříd jazyka UML: odkaz

Diagramy tříd jazyka UML: pokyny

Jak: generování souborů z modelu UML