從程式碼建立分層圖
若要視覺化軟體系統的高階邏輯結構,請使用 Visual Studio Ultimate 建立分層圖。 若要確定您的程式碼與此設計一致,請在 Visual Studio Ultimate 或 Visual Studio Premium 驗證您的分層圖和程式碼。 您可以建立 Visual C# .NET 以及 Visual Basic .NET 專案的分層圖。
您想要執行甚麼工作?
進一步了解圖層圖表
建立圖層圖表
從成品建立圖層
管理圖層與成品之間的連結
對現有的相依性進行反向工程
編輯圖層與相依性以顯示預定設計
變更項目在圖表上的顯示方式
進一步了解圖層圖表
分層圖可讓將 Visual Studio 方案項目組織為邏輯的抽象群組,稱為圖層。 您可以使用圖層來說明這些成品所執行的工作,或系統的主要元件。 每個圖層都可以包含其他圖層以描述更詳細的工作。 您也可以指定圖層之間的預定或現有相依性。 這些表示為箭號的相依性,顯示哪些圖層可以使用或目前使用其他圖層代表的功能。 若要維持程式碼的架構控制,請在圖表上顯示預期的相依性,然後根據圖表驗證程式碼。
請參閱:
提示
當建立分層圖時,可能會考慮建立相依性圖形來協助探索和了解程式碼。這些圖形可以協助您找出程式碼中的叢集、模式、自然圖層和相依性。使您更輕鬆地將成品指派給圖層。您可能也會使用 [架構總管] 探索命名空間和類別 (這通常會正確對應至現有的圖層)。然後,您就可以使用圖層圖表來協助更新程式碼。
請參閱:
建立圖層圖表
在建立分層圖之前,請確定您的方案具有模型專案。 請參閱 建立 UML 模型專案和圖表。
重要
不要從模型專案將現有分層圖加入、拖曳、複製到其他模型專案或方案中的其他位置。即使您變更圖表,此方式仍會保存原始圖表的參考。這樣也會導致圖層驗證無法正確執行,同時可能會造成其他問題,例如項目遺失或嘗試開啟圖表時發生其他錯誤。
請改以將新分層圖加入至模型專案。將來源圖表中的項目複製到新圖表。儲存模型專案和新分層圖。
若要將新圖層圖表加入到現有模型專案
在[架構] 功能表上選擇 [新增圖表]。
在 [範本] 底下選取 [分層圖]。
命名圖表。
在 [加入至模型專案] 中,瀏覽並選取方案中的現有模型專案。
-或-
選擇 [建立新模型專案]來將新的模型專案加入至方案。
注意事項 圖層圖表必須存在於模型專案之內。但是,您可以將它連結到方案中任何位置的項目。
請務必確保儲存了模型專案和分層圖。
從成品建立圖層
您可以從 Visual Studio 方案項目 (例如,專案、程式碼檔、命名空間、類別和方法) 建立圖層。 這樣會自動建立這些圖層和項目之間的連結,將這些項目納入圖層驗證程序中。
您也可以將圖層連結至不支援驗證的項目,例如 Word 文件或 PowerPoint 簡報,使您可以將圖層與規格或計劃連結。 您也可以將圖層連結至多個應用程式所共用的專案檔案,但驗證程序不會包含這些以泛型名稱顯示的圖層,例如「Layer 1」和「Layer 2」。
若要了解連結的項目是否支援驗證,請開啟 [圖層總管],並檢查項目的 [支援驗證] 屬性。 請參閱管理成品的連結。
轉換為 |
請依照下列步驟: |
||
---|---|---|---|
建立單一成品的圖層 |
重要 將二進位檔案拖曳至分層圖並不會自動將它們的參考加入物件模型專案。您必須手動加入您要驗證模型專案的二進位檔案。 若要將二進位檔案加入至模型專案
|
||
為所有選取的成品建立單一圖層 |
同時將所有成品拖曳至分層圖。 圖層隨即出現在圖表上,並且連結到所有成品。 |
||
為每個選取的成品建立圖層 |
按住 SHIFT 鍵不放,同時將所有成品拖曳至圖層圖表。
每個成品的圖層隨即出現在圖表上,並且連結到個別成品。 |
||
將成品加入至圖層 |
將成品拖曳至圖層。 |
||
建立新的未連結圖層 |
在 [工具箱] 中,展開 [圖層圖表] 區段,然後將 [圖層] 拖曳至圖層圖表。 若要加入多個圖層,請按兩下 [圖層] 工具。 當您完成後,請選擇 [指標] 工具,或按 ESC 鍵。 -或- 開啟分層圖的捷徑功能表上,選取 [新增],然後選取 [圖層]。 |
||
建立巢狀圖層 |
將現有的圖層拖曳至另一個圖層上。 -或- 開啟圖層的捷徑功能表,選取 [新增],然後選取 [圖層]。 |
||
建立包含兩個或多個現有圖層的新圖層 |
選取圖層接著開啟您所選項目的捷徑功能表,然後選取 [群組]。 |
||
變更圖層的色彩 |
將圖層的 [色彩] 屬性設定為所要的色彩。 |
||
指定與圖層關聯的成品不可屬於指定的命名空間 |
在圖層的 [Forbidden Namespaces] 屬性中輸入命名空間。 請使用分號 (;) 來分隔命名空間。 |
||
指定與圖層關聯的成品不可相依於指定的命名空間 |
在圖層的 [Forbidden Namespace Dependencies] 屬性中輸入命名空間。 請使用分號 (;) 來分隔命名空間。 |
||
指定與圖層關聯的成品必須屬於其中一個指定的命名空間 |
在圖層的 [Required Namespaces] 屬性中輸入命名空間。 請使用分號 (;) 來分隔命名空間。 |
圖層上的數字表示圖層連結的成品數目。 然而,當您閱讀這個數字時,請記住下列各項:
如果圖層連結的成品有包含其他成品,但圖層未直接連結這些其他成品,則數字將只包含連結的成品。 然而,在圖層驗證期間會加入其他成品以進行分析。
例如,如果圖層連結到單一命名空間,即使命名空間包含類別,連結的成品數目仍為 1。 如果圖層也有命名空間中每個類別的連結,則數字將包含這些已連結的類別。
如果圖層包含已連結到成品的其他圖層,即使此容器圖層上的數字未包含那些成品,容器圖層也會連結到那些成品。
管理圖層與成品之間的連結
在分層圖開啟圖層的捷徑功能表,然後選取 [檢視連結]。
[圖層總管] 會顯示所選取圖層的成品連結。
使用下列工作來管理這些連結:
若要 |
在圖層總管中 |
---|---|
刪除圖層與成品之間的連結 |
開啟成品連結的捷徑功能表然後選取 [刪除]。 |
將連結從某個圖層移到另一個圖層 |
將成品連結拖曳至圖表上的現有圖層。 -或-
|
將連結從某個圖層複製到另一個圖層 |
|
從現有的成品連結建立新的圖層 |
將成品連結拖曳至圖表上的空白區域。 |
確認連結的成品支援針對圖層圖表進行驗證。 |
查看成品連結的 [支援驗證] 資料行。 |
對現有的相依性進行反向工程
只要與某個圖層關聯的成品參考到與另一個圖層關聯的成品,相依性便會存在。 例如,某個圖層中的類別會宣告在另一個圖層中具有類別的變數。 對於連結到圖表上之圖層的成品,您可以就其現有相依性進行反向工程。
注意事項 |
---|
您無法針對特定種類的成品進行其相依性的反向工程。例如,對連結到文字檔的圖層進行反向工程時,無法找出與該圖層之間的任何相依性。若要查看哪些成品可以進行反向工程的相依性,為其中一個或多個圖層開啟捷徑功能表,然後選取 [檢視連結]。在 [圖層總管] 中,檢查 [支援驗證] 資料行。如果成品的這個資料行顯示 [False],則無法進行該成品的相依性反向工程。 |
- 選取一個或多個圖層,開啟選取的圖層的捷徑功能表然後選取 [產生相依性]。
通常,您會看到一些不應該存在的相依性。 您可以編輯這些相依性,以便與預期的設計保持一致。
編輯圖層與相依性以顯示預定設計
您可以編輯分層圖,藉以說明您計劃對系統或預期的架構進行的變更。
轉換為 |
請執行這些步驟 |
---|---|
變更或限制相依性的方向 |
設定其 [Direction] 屬性。 |
建立新的相依性 |
使用 [相依性] 和 [雙向相依性] 工具。 若要繪製多個相依性,請按兩下工具。 當您完成後,請選擇 [指標] 工具,或按 ESC 鍵。 |
指定與圖層關聯的成品不可相依於指定的命名空間 |
在圖層的 [Forbidden Namespace Dependencies] 屬性中輸入命名空間。 請使用分號 (;) 來分隔命名空間。 |
指定與圖層關聯的成品不可屬於指定的命名空間 |
在圖層的 [Forbidden Namespaces] 屬性中輸入命名空間。 請使用分號 (;) 來分隔命名空間。 |
指定與圖層關聯的成品必須屬於其中一個指定的命名空間 |
在圖層的 [Required Namespaces] 屬性中輸入命名空間。 請使用分號 (;) 來分隔命名空間。 |
變更項目在圖表上的顯示方式
您可以藉由編輯屬性的方式,變更圖層的大小、圖形、色彩和位置,或相依性的色彩。