共用方式為


定義套件和命名空間

在 Visual Studio Ultimate 中,「封裝」(Package) 是 UML 項目 (例如類別、使用案例和元件) 之定義的容器。封裝也可以包含其他封裝。

在 [UML 模型總管] 中,封裝內的所有定義都以巢狀方式列於封裝底下。UML 模型是一種封裝,並形成樹狀結構的根目錄。

本主題內容

命名空間

建立和檢視封裝

在封裝內部建立模型項目

將項目移入或移出封裝

將項目貼入封裝

封裝之間的匯入關聯性

從某個命名空間參考另一個命名空間

封裝的屬性

命名空間

封裝是用於將工作分隔成不同的區域。每個封裝都會定義命名空間,避免不同封裝中定義的名稱彼此衝突。

每個項目的限定名稱屬性就是它所屬之封裝的限定名稱,後面接著項目自己的名稱。例如,如果您的封裝名為 MyPackage,封裝內的類別就會具有類似 MyPackage::MyClass 的限定名稱。因為每個項目都包含在模型內,所以每個限定名稱都會以模型的名稱為開頭。

模型也會定義命名空間,讓模型中每個項目的限定名稱都以模型的名稱為開頭。

其他模型項目也會定義命名空間。例如,某項作業屬於其父類別所定義的命名空間,如此其限定名稱就類似於 MyModel ::MyPackage ::MyClass ::MyOperation。動作也會以相同的方式屬於其父活動所定義的命名空間。

封裝就是容器。如果您移動或刪除某個封裝,也會一併移動或刪除該封裝內所定義的類別、封裝和其他事項。定義命名空間的其他項目也是如此。

建立和檢視封裝

您可以在 UML 類別圖表上或在 [UML 模型總管] 中建立封裝。

若要在 UML 類別圖表中建立封裝

  1. 開啟 UML 類別圖表,或建立新的圖表。

  2. 按一下 [封裝] 工具。

  3. 按一下圖表上的任何位置。新的封裝圖案隨即出現。

    您可以在現有的封裝內部按一下,以便在另一個封裝中建立巢狀封裝。

  4. 輸入封裝的新名稱。

若要在 UML 模型總管中建立封裝

  1. 開啟 [UML 模型總管]。在 [架構] 功能表中指向 [視窗],然後按一下 [UML 模型總管]。

  2. 以滑鼠右鍵按一下您想要加入新封裝的封裝或模型。

    注意事項注意事項

    您可以在另一個封裝內部建立巢狀封裝。

  3. 指向 [加入],然後按一下 [封裝]。

    新的封裝隨即出現在模型中。

  4. 輸入封裝的新名稱。

如果您已經在 [UML 模型總管] 中建立封裝,就可以在 UML 類別圖表上顯示它。您也可以在多個 UML 類別圖表上顯示封裝。

若要在 UML 類別圖表上顯示現有的封裝

  • 將封裝從 [UML 模型總管] 拖曳至類別圖表。

    注意事項注意事項

    這樣就會在此圖表上建立封裝的檢視。但是,它不一定會顯示封裝所包含的所有項目。若要確定您會看到所有封裝內容,請在 [UML 模型總管] 中檢視它。

在封裝內部建立模型項目

有四種方式可讓您將模型項目放置於封裝內部:

  • 在 [UML 模型總管] 中,將新的項目加入至封裝。

  • 在 UML 類別圖表中,將類別和其他型別加入至封裝。

  • 設定圖表的 [LinkedPackage] 屬性,以便將圖表上建立的新項目放置於您所指定的封裝內部。您可以用這種方式,將類別圖表、元件圖表和使用案例圖表連結至封裝。

  • 在 [UML 模型總管] 中,將項目移入或移出封裝。

在 [UML 模型總管] 中,封裝內的項目會出現在該封裝底下,而且其限定名稱會以封裝的限定名稱為開頭。若要查看任何項目的限定名稱,請以滑鼠右鍵按一下項目,然後按一下 [屬性]。[Qualified Name] 屬性就會出現在 [屬性] 視窗中。

若要在 UML 模型總管中建立封裝內的項目

  1. 開啟 [UML 模型總管]。在 [檢視] 功能表上,指向 [其他視窗],然後按一下 [UML 模型總管]。

  2. 以滑鼠右鍵按一下您想要加入新項目的封裝或模型。

  3. 指向 [加入],然後按一下您想要加入的項目種類。

    新的項目就會出現在封裝底下。

  4. 輸入新項目的名稱。

    注意事項注意事項

    新的項目不會出現在任何圖表上。若要建立新項目的檢視,您可以將它從 [UML 模型總管] 拖曳至圖表。此圖表必須是可顯示這種項目的類型。

若要在 UML 類別圖表上建立封裝內的項目

  1. 開啟出現封裝的類別圖表。

    • 建立新的封裝 (如果您尚未完成這項作業的話)。

    • 若要讓現有的封裝出現在類別圖表上,您可以將封裝從 [UML 模型總管] 拖曳至類別圖表。

  2. 按一下類別、介面、列舉或封裝的工具。

  3. 按一下您想要放入新項目的封裝。

    新的項目就會出現在封裝內部。

若要在指定的封裝中建立圖表的所有項目

  1. 建立封裝 (如果您尚未完成這項作業的話)。

  2. 開啟元件圖表、使用案例圖表或 UML 類別圖表。

  3. 開啟圖表的屬性。在圖表的空白部分中按一下滑鼠右鍵,然後按一下 [屬性]。

  4. 在 [Linked Package] 屬性中,選擇您想要包含圖表內容的封裝。

  5. 在圖表中建立新的項目。這些項目會放入封裝中。

    • 每個項目的 [Qualified Name] 都會以封裝的限定名稱為開頭。

    • 在 [UML 模型總管] 中,每個項目都會出現在封裝底下。

將項目移入或移出封裝

您可以將一個或多個項目移入或移出封裝。

如果您移動封裝,封裝內的所有項目都會與它一起移動。

若要將項目移入或移出封裝

  • 在 [UML 模型總管] 中,將項目移入或移出其根目錄是封裝的樹狀結構。

    項目的限定名稱會變更為顯示其新的主控封裝或模型。

    -或-

  • 在類別圖表中,將項目拖曳至封裝圖案。

    項目的限定名稱會變更為顯示其新的主控封裝。

    注意事項注意事項

    如果您將封裝中的項目拖曳至圖表的空白部分,其主控封裝就不會變更。這可讓您建立顯示來自許多封裝之項目的圖表,而不需要顯示封裝本身。

將項目貼入封裝

您可以將項目貼入封裝。如果您將一組相關的項目貼入封裝,也會一併貼上這些項目之間的關聯性。

若要在 UML 類別圖表上將項目貼入封裝

  1. 在 UML 類別圖表上,選取您想要複製的所有項目。以滑鼠右鍵按一下其中一個項目,然後按一下 [複製]。

  2. 以滑鼠右鍵按一下封裝,然後按一下 [貼上]。

    注意事項注意事項

    封裝可以位於不同的圖表上。

封裝之間的匯入關聯性

您可以使用 [匯入] 工具來定義封裝之間的匯入關聯性。

匯入表示定義於匯入之封裝中的項目 (也就是位於關聯性箭號端的項目) 實際上也會定義於匯入封裝中。任何可視性定義為 [封裝] 的項目也會顯示在匯入封裝中。

請避免在匯入關聯性中建立迴圈。

從某個命名空間參考另一個命名空間

如果您想要從某個封裝參考另一個封裝的項目,就必須使用該項目的限定名稱。

例如,假設封裝 SalesCommon 定義型別 CustomerAddress。在另一個封裝 RestaurantSales 中,您想要定義型別 MealOrder (具有 Customer Address 型別的屬性)。您有兩個選項:

  • 使用完整限定名稱 SalesCommon::CustomerAddress 來指定屬性的型別。只有當 CustomerAddress 的 [Visibility] 屬性設定為 [Public] 時,您才能這樣做。

  • 建立 RestaurantSales 封裝與 SalesCommon 封裝之間的匯入關聯性。然後,您就可以使用 CustomerAddress,而不需要使用其限定名稱。

封裝的屬性

每個封裝都具有下列屬性。若要查看屬性,請在圖表上或在 [UML 模型總管] 中,以滑鼠右鍵按一下封裝,然後按一下 [屬性]。

屬性

預設值

描述

名稱

(新名稱)

封裝名稱。您可以在圖表上或在 [屬性] 視窗中進行變更。

Qualified Name

Container :: package name

完整名稱,前面加上包含此封裝之封裝或模型的名稱。如需詳細資訊,請參閱命名空間。

設定檔

(空白)

連結至此封裝的設定檔清單。這些設定檔會提供可套用至封裝內部項目的造型。如需詳細資訊,請參閱使用設定檔和造型自訂您的模型

Visibility

Public

封裝在其父封裝外部的可視性。

Work Items

(空白)

連結的工作項目清單。如需詳細資訊,請參閱連結模型項目和工作項目

Definition Location

(名稱)

儲存封裝詳細資料的檔案名稱。這些檔案都位於 [ModelDefinition] 專案資料夾內。這項資訊可用於原始檔控制目的。

描述

(空白)

封裝的描述。

Stereotypes

(空白)

套用至此封裝的造型。可用的造型清單是由您為此封裝及其父封裝所選擇的設定檔所決定。如需詳細資訊,請參閱使用設定檔和造型自訂您的模型

封裝的儲存方式

在建立新的封裝時,會在 ModelDefinition 專案資料夾中建立新的 .uml 檔案。根模型同時也是封裝,因此也會儲存在 .uml 檔案中。

此外,每個圖表都會儲存在兩個檔案中,一個是代表圖表圖案的檔案,另一個則是會記錄圖案位置的 .layout 檔案。

請參閱

參考

在版本控制下管理模型與圖形

概念

HOW TO:編輯 UML 模型和圖表

UML 類別圖表:參考

UML 類別圖表:方針