Sdílet prostřednictvím


Porozumění modelům, třídám a vztahům

Domény specifické pro jazyk (DSL) je definován soubor definice DSL, spolu s jakýkoli kód vlastní program, který může zapisovat.Většina kódu programu v roztoku DSL je generován z tohoto souboru.

Toto téma vysvětluje centrální funkce definice DSL.

Definice DSL

Při otevření Dsl\DslDefinition.dsl, Visual Studio okna se podobá následující obrázek.

Návrhář jazyka domény

Nejdůležitější informace v definici DSL se zobrazí v diagramu definice DSL.Další informace, které je součástí DslDefinition.dsl, se zobrazí v Průzkumníku DSL se obvykle zobrazuje na straně diagramu.Při práci s diagram nejčastějších úkolů a Explorer DSL pro pokročilejší přizpůsobení.

Definice DSL diagram znázorňuje domény třídy, které definují prvky modelu a vztahy, které definovat propojení mezi prvky modelu.Zobrazuje také obrazců a spojnic, které slouží k zobrazení prvků modelu uživateli.

Návrhář jazyka domény s dráhou

Když vyberete položku v definici DSL, diagramu nebo v Průzkumníku DSL informace se zobrazí v okně Vlastnosti.Další informace mohou zobrazit v okně Detaily DSL.

Modely jsou instance DSL, linky

A modelu je instance vaše DSL vytvořené uživatelem.Model obsahuje prvky modelu, které jsou instancemi třídy domény, které definujete a propojení mezi prvky, které jsou instancemi vztahů mezi doménami, které definujete.Model můžete mít také obrazců a spojnic, které do diagramu zobrazit odkazy a prvky modelu.DSL definice zahrnuje třídy shape, konektor třídy a třídy diagramu.

Definice DSL je známá také jako modelu domény.Definice DSL nebo domény modelu je vyjádření návrhu domény specifické pro jazyk, vzhledem k tomu, že model je spuštění instance domény specifické pro jazyk.

Definovat třídy domény prvky modelu

Třídy domény slouží k vytváření různých prvků v doméně a vztahů mezi doménami jsou odkazy mezi prvky.Vyjádření návrhu prvků a odkazy, které bude vytvořena instance uživatelé jazyk specifický návrh při vytváření jejich modely jsou.

Tento obrázek ukazuje model vytvořený uživatelem knihovny hudby DSL.Hudební alba jsou reprezentovány seznamy, které obsahují seznamy skladeb.Interpreti jsou představovány polí se zaoblenými rohy a jsou připojeny k alb, které mohly přispět.

Instance modelu systému vygenerované DSL

Definice DSL odděluje dva aspekty.Vzhled prvky modelu v modelu diagramu je definován pomocí obrazce třídy a třídy konektor.Informace v modelu je definován pomocí tříd domén a vztahů mezi doménami.

Následující obrázek znázorňuje třídy domény a vztahy v definici DSL hudební knihovny.

Vkládání a referenční vztahů

Na obrázku je znázorněno čtyř tříd domény: Hudba, alba, interpreta a skladby.Domény třídy definují vlastnosti domény, jako je například jméno, titul a podobně.V modelu instance jsou zobrazeny hodnoty některých těchto vlastností v diagramu.

Mezi třídami jsou vztahy domén: MusicHasAlbums, MusicHasArtists, AlbumbHasSongs a ArtistAppearedOnAlbums.Vztahy mají násobnosti jako 1..1, 0.. *.Například každou skladbu musí souviset s přesně jeden Album pomocí vztahu AlbumHasSongs.Každé Album může mít libovolný počet skladeb.

Změna uspořádání Diagram definice DSL

Všimněte si, že třída domény mohou objevit několikrát diagramu DSL definice jako obrázek alba.Je vždy jeden hlavní zobrazení a mohou být některé referenční zobrazení.

Chcete-li změnit uspořádání diagram definice DSL, můžete:

  • Zaměnit hlavní a odkazovat pomocí zobrazení Zde uvést stromu a Stromu rozdělit příkazy.Pravým tlačítkem myši na třídu jediné domény zobrazíte tyto příkazy.

  • Znovu uspořádat domény třídy a třídy tvaru stisknutím kláves Ctrl + šipka nahoru a Ctrl + šipka dolů.

  • Rozbalit či sbalit pomocí ikony v pravém obrazci třídy.

  • Klepnutím na znaménko minus (-) v dolní části domény třídy sbalit části stromu.

Dědičnost

Třídy domény lze definovat pomocí dědičnosti.Chcete-li vytvořit odvození dědičnosti, klepněte na nástroj dědičnosti a odvozené třídy klepněte na základní třídy.Prvek modelu má všechny vlastnosti, které jsou definovány na vlastní třídu domény, spolu s všechny vlastnosti dědí ze základní třídy.Zdědí také jeho role v relacích.

Dědičnost lze také mezi vztahy obrazců a spojnic.Dědičnost uchovává ve stejné skupině.Obrazec nemůže dědit ze třídy domény.

Vztahů mezi doménami

Vztahy mohou být propojeny prvky modelu.Odkazy jsou vždy binární; přesně dva prvky odkazů.Každý prvek může mít mnoho odkazů na jiné objekty a může dokonce být více než jeden odkaz spojuje prvky.

Stejně jako můžete definovat různé třídy prvků, můžete definovat různé třídy odkazy.Třída propojení se nazývá vztah domény.Vztah domény určuje, jaké třídy prvek jeho instance můžete připojit.Každý konec relace se nazývá role, a vztah domény definuje názvy pro dvě role, jakož i pro samotnou relaci.

Existují dva typy vztahů mezi doménami: vložení vztahů a referenční vztahy.V diagramu DSL definice vložení vztahů mít plné čáry každou roli a referenční vztahy mít přerušované čáry.

Vložení vztahů

Každý prvek v modelu, s výjimkou pro jeho kořen je cíl jeden vkládání odkazů.Proto tvoří celý model jediného stromu nevkládejte odkazy.Vkládání vztah představuje uzavření nebo vlastnictví.Dvěma prvky modelu, které souvisejí s tímto způsobem jsou také známé jako nadřazené a podřízené.Dítě se říká být vložený v nadřazené.

Vkládání odkazů se nezobrazují obvykle výslovně jako spojnice v diagramu.Místo toho jsou obvykle zobrazeny v uzavření.Kořenové lokalitě modelu diagramu představován a prvky, které jej zobrazeny jako obrazců v diagramu.

V příkladu má kořenová třída hudby vkládání vztah MusicHasAlbums na Album, které má vkládání AlbumHasSongs na skladbu.Skladby jsou zobrazeny jako položky seznamu uvnitř každé Album.Hudba má také vkládání MusicHasArtists do třídy umělce, jehož instance se také zobrazí jako obrazce v diagramu.

Standardně vložené prvky automaticky odstraněny po jejich rodičů.

Při uložení modelu do souboru XML formuláře, vložené prvky vnořené v jejich rodiče, pokud jste přizpůsobili serializace.

[!POZNÁMKA]

Vkládání není stejný jako dědičnosti.Děti ve vkládání vztahu nedědí vlastnosti nadřazeného.Vložení je typ vazby mezi prvky modelu.Dědičnost je vztah mezi třídami a vytvořit propojení mezi prvky modelu.

Pravidla vkládání

Každý prvek v instanci modelu musí být cíl přesně jedno vložení propojení, kromě kořenové lokalitě modelu.

Proto každé domény než abstraktní třídy, s výjimkou kořenová třída musí být cíl alespoň jednu relaci vkládání nebo musí dědit, vkládání ze základní třídy.Třída může být cíl některé vložené části dvě nebo více, ale jeho instance prvků modelu může mít pouze jednu nadřazenou najednou.Násobnost z cílového zdroje musí být 0..1 nebo 1..1.

Aplikace Explorer zobrazí strom vkládání

DSL Definition také vytvoří aplikace explorer, které mohou uživatelé zobrazit spolu s jejich diagramu modelu.

Vygenerovaný explorer DSL

Aplikace explorer zobrazí všechny prvky v modelu, dokonce i ty, pro které nebyly definovány žádné obrazce.Zobrazuje prvky a vkládání vztahy, ale odkaz vztahy.

Chcete-li zobrazit hodnoty vlastnosti domény prvku, uživatel vybere, prvek v diagramu modelu nebo v Průzkumníku modelů a otevře se okno Vlastnosti.Zobrazí všechny domény vlastnosti, včetně těch, které se nezobrazí v diagramu.V příkladu skladby má nadpis a určitého žánru, ale pouze hodnotu název je zobrazen v diagramu.

Referenční vztahy

Referenční vztah představuje jakýkoli druh vztahu, který není vkládání.

Referenční vztahy jsou obvykle zobrazována na diagramu jako spojnic mezi obrazci.

V reprezentaci XML modelu představuje odkaz propojení mezi dvěma prvky pomocí zástupných názvů. Zástupné názvy, jsou názvy, které jednoznačně identifikují každý prvek v modelu.Uzel XML pro každý prvek modelu obsahuje uzel, který určuje název relace a zástupný název jiného prvku.

Role

Každý vztah domény obsahuje dvě role, role zdrojové a cílové role.

Na následujícím obrázku je řádek mezi třídou Publisher doména a vztah domény PublisherCatalog role zdroje.Řádek mezi vztah domény a domény třídy alba je cílovou roli.

Role a vlastnosti.

Názvy přidružené relace jsou obzvláště důležité, když píšete kód programu přenášejícího modelu.Například při vytváření řešení DSL vygenerované třídy aplikace Publisher má vlastnost katalogu, který je kolekce alb.Třída Album má vlastnost aplikace Publisher, která je jediná instance třídy aplikace Publisher.

Při vytvoření relace v definici DSL, názvy vlastností a relace jsou uvedeny výchozí hodnoty.Můžete je však změnit.

Násobnosti

Násobnosti určit, kolik prvků může mít stejnou roli ve vztahu k doméně.V příkladu nula n (0.. *) násobnost nastavení katalogu role určuje, že všechny instance třídy domény aplikace Publisher můžete tolik PublisherCatalog vztah odkazy, které chcete přidělit ji.

Zadáním v diagramu nebo změnou konfigurace násobnost role Multiplicity vlastnost v Vlastnosti okna.Následující tabulka popisuje nastavení této vlastnosti.

Typ násobnost

Description

0.. * (Nula k mnoha)

Každá instance třídy domény může mít více instancí vztah nebo žádné instance vztahu.

0..1 (Nula na jeden)

Každá instance třídy domény může mít více než jedna instance vztahu nebo žádné instance vztahu.

1..1, (Jeden)

Každá instance třídy domény může mít jedna instance vztahu.Z libovolné instance třídy role nelze vytvořit více než jednu instanci tohoto vztahu.Pokud je povoleno ověřování, Chyba ověření zobrazí všechny instance třídy role má žádná instance vztahu.

1.. * (Jeden k mnoha)

Každá instance třídy v roli, která má tento násobnost může mít více instancí vztah a každý musí mít alespoň jednu instanci vztah.Pokud je povoleno ověřování, Chyba ověření zobrazí všechny instance třídy role má žádná instance vztahu.

Vztahy domény jako třídy

Úložiště jako instance LinkElement, která je odvozená třída ModelElement reprezentována odkaz.Tyto vlastnosti lze definovat v diagramu modelu domény v doméně vztahy.

Relaci lze také nastavit zdroj nebo cíl jiné relace.V diagramu modelu domény, klepněte pravým tlačítkem na vztah domény a klepněte na tlačítko Zobrazit jako třída.Zobrazí pole další třídy.Vztahy pak můžete připojit k němu.

Definovat relaci částečně prostřednictvím dědičnosti, stejně jako s třídami domény.Odvozené vztah vybrat a nastavit Vztah Base v okně Vlastnosti.

Odvozené vztah specializuje její základní vztah.Domény třídy toto propojení by odvozeny od nebo stejné jako propojen vztahem základní třídy.Při propojení odvozených vztahů v modelu je instance odvozené a základní vztahy.V kódu programu můžete přejít na opačném konci propojení pomocí vlastnosti generovány základní nebo odvozené třídy.

Viz také

Koncepty

[přesměrovat] Vztahy domén ve vygenerovaném rozhraní API

Další zdroje

Domain-Specific Language Tools Glossary