連載Visioで始めるUMLモデリング第2回 Visioを使ったUMLクラス図の拡張デジタルアドバンテージ2004/07/29 |
|
|
UMLクラス図の3つの抽象度レベル
UMLのクラス図には次の3つの抽象度のレベルが考えられる。
- 概念レベル:要件定義〜分析段階でのUMLモデリング
- 仕様レベル:概要設計段階でのUMLモデリング
- 実装レベル:詳細設計〜実装段階でのUMLモデリング
UMLモデリングでは、このような3つのレベルを、1、2と順番に経て、最終の3の実装レベルに到達すればよい。
次の画面は、概念レベルのUMLモデル図である。この図では、基本的なクラス間の関係(=システム構造の概要)しか分からない。最初の概念レベルのUMLモデル図では、どのようなクラスがあり、それらがどう関連し合うのかといったシステム概要(とそこでの簡単な業務プロセス)が分かればよい。
概念レベルのUMLモデル図(クラス図) |
どのようなクラスがあり、それらがどう関連し合うのかといったシステム概要が分かる。 |
さらに次の画面は、仕様レベルのUMLモデル図である。この段階では、クラスが外部に提供するインターフェイスや機能(例えば「[発注]画面を起動する」など)を明確化する。これによりクラスの性格や機能が簡単に定義できる。ただしこの段階では、まだ、メソッドやフィールドの具体的な名前、クラスの内部処理に不可欠な細かなメソッドやフィールド、プロパティなどを考える必要はない。
仕様レベルのUMLモデル図(クラス図) |
クラスが外部に提供するインターフェイスや機能(例えば「[発注]画面を起動する」など)が明確化されている。 |
次に、この仕様レベルのUMLモデル図をさらに実装レベルにまで落とし込んで、実際にクラスとしてコーディングできる状態に仕上げる。具体的には、フィールドやプロパティの名前を決定したり、クラスに必要なメソッドやフィールド、プロパティを作成したりする。これにより完成できる最終的なUMLモデル図は、本稿がリバース・エンジニアリングで作成した(実装レベルの)UMLモデル図と同等になる。この実装レベルのUMLモデルのサンプル図面は、前回作成したUMLモデル図を参照してほしい。
以上、Visioで作成できるUMLモデリングについて、クラス図の最も基本的な部分について解説した。しかし、UMLモデリングで記述できるクラス図はこれだけではなく、もっと詳細にも記述できる。次に、Visioで表現可能なクラス間の関係や関連について解説しよう。なお、以降の解説では、UML要素自体の内容や意味についての解説は割愛させていただく。これらに対する理解を深めるには、@IT:IT Architectの「【改訂版】初歩のUML」や「ここから始めるオブジェクト指向」などを参照していただきたい。
Visioで表現可能なクラス間の関連
前回、クラス図に関連を設定し、その関連にロールや役割を割り当てた。特に必要がなければこれだけでも十分であるが、この関連をさらに詳細に定義することもできる。
例えば、「メイン画面から[発注]画面を起動する」という関連があるが、これは「メイン画面から[発注]画面を操作する(逆に[発注]画面からメイン画面が操作されることはない)」という1方向の関連である。このような関連方向性は、UMLでは「誘導可能性(Navigability)」と呼ばれ、UMLモデル図では矢印付きの実線で表される。この誘導可能性は、次の画面のようにして設定することができる。
クラス間の関連に対する誘導可能性の設定 | |||||||||
クラス間の関連に誘導可能性を設定しているところ。 | |||||||||
|
リレーショナル・データベースではテーブルとテーブルの関連が1つの外部キーで結ばれるが、これと同様に、複数のクラスを特定の1つのキーとなる属性要素に限定して関連付けることができる。UMLではこのキーは「限定子」と呼ばれ、小さな□(四角形)で表される。
例えば、商品クラスと注文クラスの関連ならば、「商品番号」というキーとなる属性要素に限定して関連付けることなどが考えられる。次の画面の例では、「id」という属性要素を限定子としてクラス間を結び付けている。
さらに前回でも説明したように、クラス間の関係には「関係」だけでなく、「汎化」や「集約」など、さまざまなものがある。続いては、Visioで表現可能なクラス間の関係の種類について解説しよう。
INDEX | ||
Visioで始めるUMLモデリング | ||
第2回 Visioを使ったUMLクラス図の拡張 | ||
1.クラス図に属性要素を追加するには? | ||
2.クラス図に操作要素を追加するには? | ||
3.クラス図の抽象度レベルと表現可能なクラス間の関連 | ||
4.Visioで表現可能なクラス間の関係の種類 | ||
「Visioで始めるUMLモデリング」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|