Vizualizace kódu u sekvenčních diagramů
Chcete-li vizualizovat, jak kód implementuje konkrétní metody, vytvořte sekvenční diagram z metody v sadě Visual Studio Ultimate.Sekvenční diagram ukazuje interakci mezi objekty jako řadu životností a zpráv.Životnosti představují instance objektů a zprávy představují volání metod mezi těmito objekty.Sekvenční diagramy můžete generovat z kódu Visual C# .NET nebo Visual Basic .NET, nikoli však z projektů, které sdílejte kód na více aplikací.
Generovaný sekvenční diagram zobrazuje prvky podobné těm v sekvenčním diagramu UML.Sekvenční diagram, který je generován z kódu, existuje nezávisle na modelu UML a může být přidán do jakéhokoli projektu .NET.Naopak ručně kreslený sekvenční diagram UML je vždy součástí modelu, ve kterém jste jej vytvořili.Další informace naleznete v tématu Sekvenční diagramy UML: Referenční dokumentace.
Generovat sekvenčním diagramu z zdrojového kódu
Prozkoumejte kódu pro sekvenční diagramy
Upravit diagramu na navrhnout změny návrhu
Přejít do kódu z diagramu
Odkaz na sekvenčním diagramu s pracovními položkami
Vztahy, které mají ostatní diagramy
Poradce při potížích s sekvenční diagramy
Generovat sekvenčním diagramu z zdrojového kódu
V sadě Visual Studio Ultimate otevřete soubor kódu, který obsahuje definice metody.
Přejít na definici metody klepněte pravým tlačítkem myši v editoru a zvolte možnost Generovat sekvenční Diagram.
V maximální hloubku volání zadejte maximální počet úrovní volání, které chcete zobrazit.Pokud chcete zobrazit například pouze první úroveň volání, zadejte maximální hloubku volání úrovně 1.
[!POZNÁMKA]
Sekvenční diagram zobrazí druhou úroveň volání jako zprávy, které nemají žádnou cílovou životnost a kterým se říká ztracené zprávy.Po vytvoření diagramu můžete rozbalit konkrétní ztracené zprávy.Další informace o zprávách ztraceny, naleznete v části Sekvenční diagramy UML: Referenční dokumentace.
V části obsahovat volání v, zvolte možnost obor z v následující tabulce:
Chcete-li zobrazit
Zvolte
Volání položek v okamžitém projektu
Aktuální projekt
Volání položek v řešení
Aktuálním řešení (výchozí)
Volání položek uvnitř a vně řešení
Řešení a externí odkazy
Například můžete začít s jednoduchým sekvenčním diagramem a porovnávat pouze volání metod na položky v okamžitém projektu.Rozsah diagramu můžete rozšířit generováním nového rozsahu, který ukazuje volání položek v rámci řešení.Pokud chcete zobrazit volání položek, které nejsou v řešení, je nutné generovat diagram, který obsahuje externí odkazy.
V části vyloučit volání, můžete zjednodušit diagramu další vynecháním volání na následující položky:
Chcete-li vynechat volání
Vyberte
Vlastnosti a události
Vlastnosti a události (výchozí)
System obor názvů
Systémový obor názvů (výchozí)
Určité obory názvů
Ostatní obory názvů, a poté zadejte obory názvů v poli pomocí čárkou (,) k jejich oddělení.Nepoužívejte zástupný znak (*) znaků jako nejsou podporovány.
Chcete-li zahrnout volání těchto položek, zrušte zaškrtnutí příslušných políček.
Zaškrtněte políčko, pokud chcete přidat diagramu k aktuálnímu projektu.
Jestliže jste dokončili, zvolte OK ke generování sekvenční diagram.
Informace o problémech s generování sekvenční diagramy naleznete v tématu Poradce při potížích s sekvenční diagramy.
[!POZNÁMKA]
Deklarace polí se v generovaných sekvenčních diagramech nezobrazují.
Chcete-li identifikovat a komunikovat změny, které chcete provést bez dopadu kód, můžete Prozkoumat a Upravit generovaného sekvenčním diagramu.Například můžete přidat nové životnosti, zprávy, použití interakcí a fragmenty.Chcete-li vytvořit a sledovat úlohy, které chcete provést u odpovídajícího kódu, můžete vytvořit nebo propojit pracovní položky s prvky diagramu.Další informace naleznete v tématu Propojení prvků modelu a pracovních položek.
Důležité |
---|
Po vytvoření diagramu se v kódu nezobrazí žádné změny provedené v diagramu a stejně tak se žádné změny provedené v kódu nezobrazí v diagramu.Chcete-li tyto změny zobrazit, je nutné vygenerovat nový sekvenční diagram.Nový sekvenční diagram můžete z téže metody vygenerovat tolikrát, kolikrát chcete. |
Prozkoumejte kódu pro sekvenční diagramy
Sekvenční diagram vám pomůže prozkoumat kód a předložit jej ostatním.Chcete-li dosáhnout co nejužitečnějšího diagramu pro tyto účely, experimentujte při generování diagramu s různými rozsahy.Diagram lze po jeho vygenerování upravovat.Například je možné odstranit zprávy, které nejsou zajímavé pro prezentaci a diskusi týkající se návrhu.
V sekvenčním diagramu lze provádět následující změny.
Chcete-li |
Proveďte tyto kroky |
---|---|
Zobrazení další úrovně volání |
Otevřete místní nabídku pro zprávu, která nemá žádné životnost cíl a zvolte rozbalte odchozí. |
Rozbalení zprávy v novém diagramu |
Otevřete místní nabídku pro zprávu a zvolte Generovat sekvenční Diagram. Nový diagram se přidá do aktuálního projektu. |
Sbalte skupinu zpráv do jedné životnosti. |
Vyberte životnosti, které chcete seskupit, otevřete místní nabídku pro výběr a pak zvolte Sbalit. Skupinu lze přejmenovat, ale po rozbalení se název ztratí. Chcete-li rozbalte skupinu, otevřete místní nabídku pro něj a potom vyberte Expand. |
Odstranění prvků |
Otevřete místní nabídku pro tvar a zvolte Odstranit. |
Zlepšení rozložení |
Otevřete místní nabídku pro prázdnou oblast diagramu a zvolte změnit uspořádání rozložení. Tento příkaz lze také vrátit zpět. |
Zvýraznění vybraných prvků |
Otevřete místní nabídku pro element a pak zvolte Vlastnosti.V Vlastnosti okně, nastavte Barva pole. |
Přidání poznámek k diagramu |
Zvolte komentář nástroj, klikněte na tlačítko v diagramu a poté zadejte poznámku do komentář.Použití Komentář odkaz nástroj pro připojení k jeden nebo více bodů na životnosti nebo fragmenty komentář. |
Úprava diagramu na navrhnout změny návrhu
Diagram lze změnit pomocí přidání a odstranění prvků, což vám může pomoci zvážit alternativní návrhy.Část diagramu můžete rovněž kopírovat do sekvenčního diagramu UML, který jste vytvořili v projektu modelování UML.Takto můžete přidružovat životnosti k typům, komponentám a objektům aktor modelu UML.
Následující tabulka shrnuje změny, které jsou užitečné pro popis navrhovaných návrhů.Další podrobnosti naleznete v tématu Sekvenční diagramy UML: Pokyny.
Chcete-li |
Proveďte tyto kroky |
---|---|
Zvýraznění životností, zpráv a dalších prvků |
Změnit elementu Barva vlastnost. -nebo- Odkaz komentář elementu:
|
Přesun životností |
Přetáhněte životnost do jiné oblasti diagramu. Chcete-li přesunout skupinu životnosti, které došlo ke ztrátě nebo nalezen zprávy, proveďte následující kroky k výběru životnosti před jejich přesunutím:
|
Přesun a změna pořadí zpráv |
Přetáhněte zprávu nahoru nebo dolů na diagramu.
|
Přidání životnosti |
Zvolte Životnost v nástrojů, a poté zvolte možnost diagramu. |
Přidání zprávy |
|
Kopírování životností a zpráv do jiných diagramů nebo z nich |
Zkopírujte a vložte životnosti. Zároveň se automaticky zkopírují také zprávy mezi nimi.
|
Uzavření zpráv do kombinovaného fragmentu |
Kombinované fragmenty slouží k reprezentaci alternativních sekvencí, smyček a jiných sestavení zpráv. |
Přesun zprávy do nového diagramu |
Otevřete místní nabídku pro zprávu a zvolte přesunout do diagramu. Je vytvořen nový diagram, který obsahuje zprávu a její podpůrné zprávy.Původní diagramu zpráva nahrazuje použití interakce. |
Kopírování diagramu |
Zkopírujte diagram v Průzkumníku řešení nebo zkopírujte soubory v Průzkumníku Windows.Ke každému diagramu jsou přidruženy dva soubory. Vygenerovaný sekvenčním diagramu lze upravit pomocí všechny instance Visual Studio Ultimate, a lze je číst pomocí Visual Studio Ultimate nebo Visual Studio Premium. |
Nezvýrazňování určitých ručních změn, jako jsou dodatky a změny názvu |
|
Přejít do kódu z diagramu
Chcete-li |
Proveďte tyto kroky |
---|---|
Přechod ze životnosti nebo zprávy k definici třídy nebo metody |
Otevřete místní nabídku pro životnost nebo zprávy a zvolte Přejít na definici. |
Nalezení třídy nebo metody v Průzkumníku architektury |
Otevřete místní nabídku pro životnost nebo zprávy a zvolte Zobrazit v Průzkumníku architektury. Další informace naleznete v tématu Mapování závislostí ve vašem kódu v grafech závislostí. |
Odkaz na sekvenčním diagramu s pracovními položkami
Plánování práce provádění změn, vám usnadní propojení elementy jakéhokoli druhu v sekvenčním diagramu na pracovní položky Team Foundation Server.Než začnete, ujistěte se, zda jste připojeni k serveru Team Foundation Server.Další informace naleznete v tématu Propojení prvků modelu a pracovních položek.
Chcete-li |
Proveďte tyto kroky |
---|---|
Vytvoření a propojení nových pracovních položek s životnostmi, zprávami nebo jinými prvky |
|
Propojení životností, zpráv nebo jiných prvků s pracovními položkami |
Později můžete tento příkaz zopakovat a přidat další propojení s pracovními položkami do stejného prvku modelu. |
Zobrazení propojených pracovních položek |
Otevřete místní nabídku pro jeden nebo více prvků a zvolte zobrazení pracovních položek. |
Odebrání propojení s pracovními položkami |
Propojení mezi prvkem modelu a zvolenou pracovní položkou se odstraní.Pracovní položky a prvky modelu odebrány nejsou. |
Pokyny k používání generované sekvenční diagramy
Následující pokyny mohou být užitečné, pokud zkoumáte kód s generovanými sekvenčními diagramy.
Prozkoumat kód
Generujte diagramy závislostí za účelem získání celkového přehledu o hlavních skupinách a závislostech ve velké části kódu.Pak vytvořte sekvenční diagramy, pomocí nichž se lze zaměřit na jednotlivé části návrhu.Další informace naleznete v tématu Mapování závislostí ve vašem kódu v grafech závislostí.
Interpretovat diagramu
Algoritmus, který vytváří diagram, provádí symbolické spouštění kódu.Existují určité situace, které tato technika nepokrývá.Mezi takové situace patří zejména:
Dvě nebo více životností se může zobrazit v diagramu, kde se vaše spouštění kódu zabývá pouze jednou instancí.Obecně platí, že se samostatná cílová životnost generuje pro každou zprávu.
Typ životnosti je typ deklarovaný v programovém kódu i v případě, že váš kód vždy používá podtyp.
Zaměřte se na aspekt návrh
Zvolte jeden aspekt návrhu, na který se chcete zaměřit.Můžete vygenerovat různé diagramy se zaměřením na různé aspekty a vytvářet kopie souborů diagramu v jakékoli fázi práce.
Chcete-li získat užitečné diagramu, která zveřejňuje jasně aspekt návrh, bude pravděpodobně vyzkoušet filtry obor názvů a generování.
Odstraňte zprávy, které nejsou důležité pro aspekt zaměření, a rozbalte příslušné zprávy zobrazující více podrobností.
Použití Sbalit příkazu k životnosti skupiny, které představují spolupráce skupiny objektů, pokud jsou zajímavé pro daný aspekt se zaměřením na jejich interní interakce.
Aktualizovat návrh
Na diagramu můžete spolupracovat pomocí správy verzí.Během úprav doporučujeme diagram uzamknout, aby jej nemohlo upravovat více uživatelů současně.
Pomocí generovaného sekvenčního diagramu lze často určit funkce existujícího kódu, které lze obtížně měnit nebo upravovat.Například si můžete všimnout, že jedna životnost odešle všechny zprávy, ale ostatní na ně pouze odpovídají, aniž by zasílaly mnoho vlastních zpráv.Zvažte, zda by nebylo možné práci, kterou provádí tento objekt, efektivněji rozdělit mezi ostatní objekty.Každá třída objektu by měla mít jednu jasně definovanou úlohu.Obecně lze pomocí této zásady snadněji určit, které části programu je třeba změnit, když dojde ke změně potřeb uživatelů, nebo změnit uspořádání částí v jiné variantě aplikace.
V případě diagramu, který se zaměřuje na specifický aspekt návrhu, můžete vytvořit jeho kopie a upravit je, chcete-li vytvořit alternativní návrhy na změny.
Prvky generovaného sekvenčního diagramu můžete zkopírovat do sekvenčního diagramu UML.Nejprve je nutné vytvořit sekvenční diagram UML v projektu modelování UML.Zde lze modelovat různá zobrazení aktualizovaného návrhu a propojovat životnosti s komponentami nebo třídami v modelu.Rovněž je možné rozšířit interakci za účelem zahrnutí externích objektů aktor.
Poradce při potížích s sekvenční diagramy
Následující tabulka popisuje problémy, které mohou nastat při generování sekvenčních diagramů, a jejich možná řešení:
Problém |
Řešení |
---|---|
Sekvenční diagram nelze vytvořit. |
Sekvenčním diagramu nemusí generovat, pokud System obor názvů je vyloučena a kód obsahuje volání metody modelu COM, který přijme ref nebo out parametry a předá parametr s použitím new klíčové slovo.Nechcete-li tento problém, změnit kód, nebo při generování diagramu zahrnout System oboru názvů. |
Po zobrazení následující zprávy se vygeneruje prázdný sekvenční diagram: „Odkaz na objekt není nastaven na instanci objektu.“ K tomuto problému dochází, když je sekvenční diagram generován z explicitní implementace metody rozhraní a diagram není do zdrojového projektu přidán automaticky.V explicitní implementaci předchází názvu metody název rozhraní a tečka (.). Můžete například k tomuto problému dochází při generování sekvenčním diagramu z následujících podpisu a nepřidávejte sekvenční diagram do projektu automaticky:
|
Pokud je to možné, nezahrnujte název rozhraní a tečku (.). -nebo- V dialogovém okně generování sekvenčního diagramu nezapomeňte do projektu automaticky přidat sekvenční diagram. |
Vytváření sekvenčního diagramu trvá velmi dlouho. - nebo - Při opětovném otevírání sekvenčního diagramu dochází k chybě. V závislosti na konfiguraci počítače sekvenční diagram může být příliš velký pro generování rychle a může být příčinou Visual Studio k vyčerpání paměti a havárií v případě zavřete a znovu otevřete diagramu.Například sekvenční diagram, který má 390 životnosti a 19 000 zpráv, způsobí vytvoření souboru diagramu o velikosti více než 85 MB. |
Omezte rozsah diagramu snížením hloubky volání, odfiltrováním zbytečných oborů názvů, odebráním vlastností a událostí atd. |
Viz také
Referenční dokumentace
Sekvenční diagramy UML: Referenční dokumentace