こんにちは。マニュアル作成・ナレッジ共有ツール「NotePM」ブログ編集局です。
パッケージ図のテンプレートと例文をご紹介します。

パッケージ図とは?
パッケージ図はパッケージ同士の依存関係を図示化し、論理的なグルーピングを行います。それによって、パッケージ同士の関連性が明確になります。パッケージ図はクラス図の一部として考えます。
Javaなどではネームスペースをパッケージに対応させることで、よりコードとの関連性を明確にするのが一般的です。
パッケージ図の目的
最近のシステムは大規模化が進んでおり、一つ一つのクラスを描画すると膨大な数のクラスを記述します。そして全体が込み入ってしまうことで、概要が分かりづらくなります。そこでネームスペースなどでシステムをパッケージ化することで、システム全体図を単純化します。
パッケージはクラス群はもちろん、図や文書なども対象になります。
パッケージ図の書き方
パッケージ図で使われる構成要素は次の通りです。
パッケージ
フォルダの形状で示されます。データや文書、ユーザーの操作などに基づいて共通化できる要素をパッケージとして表現します。
package “パッケージ名“
パッケージは入れ子構造も可能です。この場合、クラスを中に記述することが多いです。
package “パッケージ名” {
class “クラス名“
}
ネームスペースを利用する
PlantUMLではプログラミング側のネームスペースを利用した記述もできます。
namespace jp.notepm #DDDDDD {
.BaseClass <|– Person
Meeting o– Person
.BaseClass <|- Meeting
}
関連線
パッケージ同士の関連性を表現する場合には矢印を使います。
| 記述 | 種類 |
|---|---|
| o- / -o | 白い菱形 + 直線 |
| *– / –* | 黒い菱形 + 直線 |
| <– / –> | 黒い矢印 |
| < | — / — |
線種
線種を変更する場合には -- の間に [bold] のように線種を指定する記述をします。例えば太字の場合は -[bold]-> になります。
| 記述 | 線種 |
|---|---|
| [bold] | 太字 |
| [dashed] | 広い破線 |
| [dotted] | 細かい破線 |
| [hidden] | 描画なし |
| [plain] | 通常の線 |
線に説明を付ける場合には : の後ろに説明を記述します。例は下記の通りです。
foo -[bold]-> bar : 太字になります
パッケージ図のサンプル例
以下はWikipediaに記載されているパッケージ図の例をPlantUMLで記述した例です。
package ゼミ登録
package スケジュール
package 学生
package 教授
package 問い合わせ先
package Javaインフラストラクチャー
ゼミ登録 -[dashed]-> スケジュール
ゼミ登録 -[dashed]-> 学生
ゼミ登録 -[dashed]-> Javaインフラストラクチャー : <<import>>
ゼミ登録 -[dashed]-> 教授
教授 -[dashed]-> スケジュール
学生 -[dashed]-> 問い合わせ先
学生 -[dashed]-> Javaインフラストラクチャー : <<import>>
スケジュール -[dashed]-> Javaインフラストラクチャー : <<import>>
問い合わせ先 -[dashed]-> Javaインフラストラクチャー : <<import>>
教授 -[dashed]-> Javaインフラストラクチャー : <<import>>
実際の描画は次のようになります。


