連載

Visioで始めるUMLモデリング

第1回 「習うより慣れよ」方式で学ぶUMLモデリング

デジタルアドバンテージ
2004/06/05
Page1 Page2 Page3 Page4

 Visioで線を引くには、UMLモデル図のステンシルから「線」図形を図面ページにドラッグ&ドロップすればよい。ステンシルの中を見ると「線」図形に相当する図形が複数あるが、ここでは「2項関連」の図形を用いる。次の画面は実際にクラス間に線を引いているところだ。

クラス図における関連の設定
メイン画面(StartFormクラス)と[出荷指示]画面(ShipFormクラス)との間に、「2項関連」を示す線を引いているところ。
  「2項関連」図形を図面ページへドラッグ&ドロップすると、図面ページ内に「線」図形が配置される。
  「線」図形の片方の終端をメイン画面(StartFormクラス)の枠までドラッグ&ドロップして線を結び付ける。
  「線」図形のもう片方の終端を[出荷指示]画面(ShipFormクラス)の枠までドラッグ&ドロップして線を結び付ける。

 上の画面の例を見ると分かるように、「線」図形を使ってクラス間に線を引くと、その「線」図形には「-終端1」「-終端2」や「*」という文字列が一緒にくっついてくる。この「-終端」はロール(役割)と呼ばれるもので、クラス間の関係におけるクラスの役割を表現する。

 例えば、[出荷指示]画面(ShipFormクラス)には「出荷指示の業務処理を行う画面」という役割があり、メイン画面(StartFormクラス)には「各種業務処理画面を起動するメインの画面」という役割があるが、そういった役割をこのロールで表現できる。

 また、「*」は多重度と呼ばれるもので、クラス間の関係におけるクラスのインスタンス数(=オブジェクト数)を表す。つまり、そのクラスが同時に何個存在できるかということだ。

 例えば、メイン画面は当然1つしか存在せず、メイン画面(StartFormクラス)から起動される[出荷指示]画面(ShipFormクラス)も1つしか存在しないので、どちらのクラスも多重度は「1」となる。多重度の表現としては、

  • 「1」(1つ)
  • 「0..*」(0以上の多数)
  • 「1..*」(1以上の多数)
  • 「*」(多数。0以上か1以上かはっきりしない場合)
  • 「0..1」(0〜1。つまり0か1)
  • 「12..18」(12〜18)
  • 「2,7,8」(2か7か8)
  • 「2,7..9」(2か7〜9)

などがある。

 クラスのロールと多重度の設定は、次の画面の例のように、先ほど配置した「線」図形をダブルクリックして[UML関連プロパティ]ダイアログを表示し、そのダイアログを使って行う。

 なお今回の例では、[出荷指示]画面(ShipFormクラス)のロール名は「業務処理画面」に設定し、メイン画面(StartFormクラス)は「メイン画面」に設定する。また、それぞれの多重度は先述したように「1」である。

クラスのロールと多重度の設定
メイン画面(StartFormクラス)と[出荷指示]画面(ShipFormクラス)との間に引いた「2項関連」における2つのクラスのロールと多重度を設定しているところ。
  「線」図形をダブルクリックすると[UML関連プロパティ]ダイアログが表示される。
  [終端名]を編集して、それぞれのクラスに対するロール名を設定する。今回の例では、[出荷指示]画面(ShipFormクラス)には「業務処理画面」を、メイン画面(StartFormクラス)には「メイン画面」を設定する。
  [多重度]を編集して、それぞれのクラスに対する多重度を設定する。今回の例ではそれぞれ「1」を設定する。

 また、そのほかのすべての関係に対して、前述の例と同様に「クラス図における関連の設定」と「クラスのロールと多重度の設定」を行うと、次のようなクラス図が完成する。

クラス間の関係を記述したUMLクラス図
クラス間のすべての関係に対して、「関連の設定」と「ロールと多重度の設定」を行ったUMLクラス図。

 以上で、ユーザー・インターフェイスにおけるシステム構造をUMLクラス図によって表現でき、クラス間の簡単な構造と関係が明確になった。

 今回は、Visioのリバース・エンジニアリング機能を使ってUML要素を生成して、そこからUMLクラス図を作成した。次回は今回生成した図を拡張しながら、UMLについて解説していくことにしよう。End of Article


 INDEX
  Visioで始めるUMLモデリング
  第1回 「習うより慣れよ」方式で学ぶUMLモデリング 
    1.Visioを使ったUMLモデリングの導入
    2.VS.NETプロジェクトのリバース・エンジニアリング
    3.UML要素を使ったUMLクラス図の作成
  4.UMLクラス間の関連の設定
 
インデックス・ページヘ  「Visioで始めるUMLモデリング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間