Sdílet prostřednictvím


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

  1. V sadě Visual Studio Ultimate otevřete soubor kódu, který obsahuje definice metody.

  2. Přejít na definici metody klepněte pravým tlačítkem myši v editoru a zvolte možnost Generovat sekvenční Diagram.

  3. 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.

    Pořadí dialogové okno Generovat

    [!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.

  4. 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.

  5. 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.

  6. Zaškrtněte políčko, pokud chcete přidat diagramu k aktuálnímu projektu.

  7. 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á poznámkaDů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:

  1. V nástrojů, zvolte komentář, a v diagramu, klepněte na příkaz v blízkosti elementu.

  2. V nástrojů, zvolte Komentář odkaz, a potom na diagramu, zvolte komentář a pak vyberte element.

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:

  • Nakreslete kolem životností obdélník.

    - nebo -

    Podržte klávesu CTRL klíč zvolit každý životnost.

    [!POZNÁMKA]

    Pokud použijete Vybrat vše nebo CTRL+A a vyberte všechny životnosti a potom je přesunout, nebude žádné ztráty nebo nalezen zprávy, které jsou připojeny k těmto životnosti přesunout.Pokud k této situaci dojde, můžete tyto zprávy přesunout samostatně.

Přesun a změna pořadí zpráv

Přetáhněte zprávu nahoru nebo dolů na diagramu.

  1. Vyberte zprávu a pak:

  2. Chcete-li upravit umístění se zpráva, použijte Šipka nahoru a Šipka dolů klíče.

  3. Chcete-li změnit pořadí zpráv, použijte CTRL+Šipka nahoru a CTRL+Šipka dolů.

Přidání životnosti

Zvolte Životnost v nástrojů, a poté zvolte možnost diagramu.

Přidání zprávy

Postup vytvoření zprávy
  1. V nástrojů, zvolte synchronní nebo asynchronní zprávy.

    Chcete-li přidat nalezen zprávy nebo ke ztrátě zprávy, použijte asynchronní zprávy.Nalezená zpráva pochází z neznámého zdroje událostí a ztracená zpráva vysílá neznámému příjemci.

  2. V diagramu zvolte životnost zdroje.

  3. Vyberte cíl životnost.

    - nebo -

    Chcete-li vytvořit nalezena zpráva nebo ke ztrátě zprávy, zvolte na prázdnou oblast na diagramu životnost zdroje před nebo za ním, v uvedeném pořadí.

  4. Zadejte nový název 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.

[!POZNÁMKA]

Kopírujete-li životnosti ze sekvenčního diagramu UML v projektu modelování do generovaného sekvenčního diagramu, mohou se objevit pouze záhlaví životnosti nebo může být nutné upravit jejich barvy.Chcete-li tento problém vyřešit, vyberte vložených životnosti a nastavte jejich Barva vlastnosti.

Uzavření zpráv do kombinovaného fragmentu

  1. Vyberte jednu nebo více zpráv.

  2. Otevřete místní nabídku pro váš výběr, přejděte na Prostorový s, a pak zvolte typ Kombinovaný fragment.

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

  1. Otevřete místní nabídku pro plochu diagramu sekvence a zvolte Vlastnosti.

  2. Nastavte Zobrazit ruční změny vlastnost, která má False.

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

  • Otevřete místní nabídku pro jeden nebo více prvků, zvolte vytvořit pracovní položku, a poté zvolte typ pracovní položky, které chcete vytvořit.

    Otevře se nová pracovní položka, abyste ji mohli dokončit.

Propojení životností, zpráv nebo jiných prvků s pracovními položkami

  1. Otevřete místní nabídku pro jeden nebo více prvků a zvolte odkaz k pracovní položce.

  2. V odkazu na pracovní položky dialogového okna Spustit dotaz pro hledání pracovní položku nebo zadejte jeho ID přímo.Můžete vybrat libovolný počet pracovních položek.

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

  1. Otevřete místní nabídku pro element a zvolte Odebrat pracovní položky.

  2. V odeberte odkazy na pracovní položky dialogové okno Zvolte odkazy pracovní položky, které chcete odebrat.

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:

void ILinkedWorkItemExtension.OnWorkItemCreated( ) {}

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

Koncepty

Vizualizace kódu

Mapování závislostí ve vašem kódu v grafech závislostí

Vytváření diagramů vrstev z kódu