Page4UMLクラス図の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要素自体の内容や意味についての解説は割愛させていただく。Architectの「【改訂版】初歩のUML」や「ここから始めるオブジェクト指向」などを参照していただきたい。前回、クラス図に関連を設定し、その関連にロールや役割を割り当てた。必要がなければこれだけでも十分であるが、この関連をさらに詳細に定義することもできる。「メイン画面から[発注]画面を起動する」という関連があるが、これは「メイン画面から[発注]画面を操作する(逆に[発注]画面からメイン画面が操作されることはない)」という1方向の関連である。このような関連方向性は、UMLでは「誘導可能性(Navigability)」と呼ばれ、UMLモデル図では矢印付きの実線で表される。この誘導可能性は、次の画面のようにして設定することができる。クラス間の関連に対する誘導可能性の設定クラス間の関連に誘導可能性を設定しているところ。関連プロパティ]ダイアログが表示される。操作される方(誘導可能性がある方)の関連端の[IsNavigable]チェック・ボックスにチェックを入れる。チェックを入れた方の関連端が矢印に変わる。リレーショナル・データベースではテーブルとテーブルの関連が1つの外部キーで結ばれるが、これと同様に、複数のクラスを特定の1つのキーとなる属性要素に限定して関連付けることができる。UMLではこのキーは「限定子」と呼ばれ、小さな□(四角形)で表される。商品クラスと注文クラスの関連ならば、「商品番号」というキーとなる属性要素に限定して関連付けることなどが考えられる。次の画面の例では、「id」という属性要素を限定子としてクラス間を結び付けている。クラス間の関連に対する限定子の設定クラス間の関連に限定子を設定しているところ。関連プロパティ]ダイアログが表示される。関連プロパティ]ダイアログの[カテゴリ]欄から「関連」を選択する。関連プロパティ]ダイアログの[関連端]欄から限定子を設定したいクラスの関連端を選択する。関連端プロパティ]が表示される。関連端プロパティ]ダイアログの[カテゴリ]欄から「限定子属性」を選択する。[新規作成]ボタンをクリックすると、[限定子属性]欄に新しい限定子が追加される。追加された新しい限定子属性の項目を選択する。属性プロパティ]ダイアログが表示される。属性プロパティ]ダイアログの[カテゴリ]欄から「属性」を選択する。限定子属性の名前(本稿の例では「id」)を入力する。限定子属性の型(本稿の例では「VB::Integer」)を選択する。[OK]ボタンをクリックして、すべてのダイアログを終了する。選択した方の関連端が□(四角形)に変わる。前回でも説明したように、クラス間の関係には「関係」だけでなく、「汎化」や「集約」など、さまざまなものがある。続いては、Visioで表現可能なクラス間の関係の種類について解説しよう。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。