連載

Visioで始めるUMLモデリング

第3回 Visio UMLモデリングの実力

デジタルアドバンテージ
2004/08/21

Page1 Page2 Page3 Page4

 前回は、Visio UMLを使ってUMLクラス図にさまざまな拡張を追加する方法を紹介した。最終回である今回は、本連載のまとめとして、クラス図以外のUMLモデル図について簡単に解説する。また、Visio for Enterprise Architect特有の機能や、UML以外のソフトウェア設計図としてデータベース・モデリングについても紹介しよう。

 これまでの2回の連載では、UMLクラス図のみを重点的に解説してきた。この理由は、UMLモデル図の中でクラス図が最も重要だからである。しかしUMLクラス図が、要件定義、分析、設計、実装といったすべての開発工程で用いられるわけではない。そこでまずは、各開発工程でどのようなUMLモデル図が用いられるのかを見てみよう。

各開発工程で用いられるUMLモデル図

 一般的なソフトウェア開発のプロセスでは、大きく分けて、要求、分析、設計、実装という4段階の開発工程が存在する。それぞれの開発工程で用いられるUMLモデル図を次の表にまとめた(表中のUMLモデル図の内容については後述する)。

開発工程 モデリングの内容 用いられるUMLモデル図
要求 システム化の対象範囲を明確にし、システムが提供する機能やサービスを明確にする ユースケース図、アクティビティ図
分析 システムの構造を明らかにする クラス図、オブジェクト図、シーケンス図、コラボレーション図、ステートチャート図、アクティビティ図
設計 システムの実現方法を明確にする クラス図シーケンス図、コラボレーション図、ステートチャート図、アクティビティ図
実装 システムが稼働するために必要な物理的な構成要素を定義する コンポーネント図、配置図
各開発工程で用いられるUMLモデル図
要求、分析、設計、実装の4段階の開発工程で用いられるUMLモデル図をまとめた。当然ながら、要求モデリングを基にして分析モデリングを行い、分析モデリングを基にして設計モデリングを行うというように、工程の段階が進むごとにUMLモデリングの内容も進化する。

 上表の各開発工程には、複数のUMLモデル図が記載されている。これは「その工程では、それらすべてのUMLモデル図を作成しなければならない」という意味ではない。UMLモデリングの目的は、あくまでオブジェクト指向に基づいてソフトウェアを設計し、設計した内容を開発者とのコミュニケーションや、顧客とのコミュニケーションに役立てることである。

 つまり、不必要なUMLモデル図ならば、むしろ描くべきではない。なぜそのUMLモデル図を作成するのかという目的がはっきりしているものだけを作成すべきである。例えばクラスの静的構造を設計するだけの目的ならば、UMLクラス図のみを作成すればよく、意味もなくUMLオブジェクト図を作成する必要はない。

 またシステム設計では、システムのアーキテクチャ構造や部分的な設計構造をいくつかのUMLモデル図にパターン化できることが多い(例えば、給与システムの「給与明細一覧表」と「賞与明細一覧表」は、その仕組みをパターン化できそうだと想像がつくだろう)。このようなパターン化を行えば、(複数のシステム間でも、1つのシステム内でも)UMLモデリングの使い回しが可能になり、作成するUMLモデル図の数がぐっと少なくなると考えられる。

 このようなパターン化の代表例が、システム・アーキテクチャを再利用するために作成された「アーキテクチャ・パターン」や(.NETでのアーキテクチャ・パターンについては、連載「アプリケーション・アーキテクチャ設計入門」を参照されたい)、設計構造の再利用を目的に作られた「デザイン・パターン」である(.NETでのデザイン・パターンについては、書籍『C#デザインパターン』や、Webサイト「VB.NETとC#でデザインパターン」を参照してほしい)。

 次に、先ほどの表中にあった個々の「UMLモデル図」の内容について簡単に触れておこう。

UMLモデリングのモデル図の内容

 UMLモデリングを代表する各UMLモデル図の内容について、次の表にまとめた。

分類・構成 UMLモデル図 内容 サンプル図面
静的なUMLモデル図 静的構造図 クラス図 クラスの構造と複数のクラス間の関係を定義する
オブジェクト図 オブジェクト(=クラスのインスタンス)の構造と複数のオブジェクト間の関係を定義する。ここで定義される構造と関係は、インスタンスが生成されたある特定時点でのシステムのスナップショットである
実装図 コンポーネント図 システムを構成する物理的なソフトウェア・コンポーネント(例えば、.exeファイルや.dllファイル、データベースのテーブル、ライブラリなど)の構成を定義する
配置図 システムを構成する物理的な「ノード」(例えば、サーバ、インターネット、ハブなど)の構成と、ノードの中に配置されるソフトウェア・コンポーネントを定義する
動的なUMLモデル図 要求図 ユースケース図 利用者の視点でシステムの機能(=システム要件)をまとめる
相互作用図 シーケンス図 時系列に着目して、オブジェクト間のやりとり(=相互作用)を表現する
コラボレーション図 オブジェクト間の関係に着目して、オブジェクト間のやりとり(=相互作用)を表す。シーケンス図で表現できない部分を補うことができる
振る舞い図 ステートチャート図 システムが管理する状態(=ステート)の遷移(=変化)を表現する
アクティビティ図 ビジネス・プロセス(=業務手順)やフロー・チャート(=細かな処理手順)を表現する
UMLモデル図の種類
UMLモデリングで用いられるUMLモデル図の分類と内容をまとめた。
  静的なUMLモデル図:静的な構造(関係や構成)をモデリングするための図。
  動的なUMLモデル図:動的な振る舞い(機能や相互作用、状態遷移、処理手順)をモデリングするための図。
  静的構造図:システム内部の静的な構造(関係や構成)をモデル化するための図。
  実装図:システムの物理的な静的構造(関係や構成)をモデル化するための図。
  要求図:システム要件をモデル化するための図。
  相互作用図:オブジェクト同士の相互作用(やりとり)をモデル化するための図。
  振る舞い図:システムが管理するステート(状態)やビジネス・プロセス(業務手順)の動きや変化、流れをモデル化するための図。

 前述したように、UMLモデル図は必要なもののみを作成すればよいと筆者は考える。その際に最も頻繁に使われると考えられるUMLモデル図は、「クラス図」「ユースケース図」「シーケンス図」だ。UMLモデリングを習得するには、まずはこの3つのUMLモデル図を覚えるべきである。本稿ではこれまでの連載の中で、クラス図については解説したので、今回はVisioを使ったユースケース図とシーケンス図の作成方法を説明しよう。

 それでは、さっそくユースケース図の作成に取り掛かろう!


 INDEX
  Visioで始めるUMLモデリング
  第3回 Visio UMLモデリングの実力
  1.Visioで作成可能なUMLモデル図
    2.UMLモデル図の追加とUMLユースケース図の作成
    3.UMLシーケンス図の作成とデータ互換性
    4.Visio for EAの機能とデータベース・モデリング
 
インデックス・ページヘ  「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 記事ランキング

本日 月間