連載

Visioで始めるUMLモデリング

第2回 Visioを使ったUMLクラス図の拡張 

デジタルアドバンテージ
2004/07/29

Page1 Page2 Page3 Page4

 前回はVisioのリバース・エンジニアリング機能を使ってUML要素を生成し、そこからUMLクラス図を作成した。前回の説明でVisio UMLの基本的な操作方法についてはご理解いただけただろう。そこで今回は、前回生成したクラス図に属性や操作、クラス間の関係などを追加しながら、クラス図をさらに拡張していく方法について解説しよう。

クラス図を拡張するには?

 今回はまず、前回のクラス図に何か1つ、機能を追加してみよう。具体的には、本稿で使っているサンプル・プログラムのメイン画面(前回を参照)に、次の画面のような[終了]ボタンを追加して、メイン画面を終了する機能をプログラムに付加する。

サンプル・プログラムのメイン画面の拡張
メイン画面に[終了]ボタンを追加する。

 これをUMLクラス図で表現すると、メイン画面のStartFormクラスに、次のようなフィールドとメソッドを追加することになる。

  • フィールド:[終了]ボタン・コントロールの「btnClose」オブジェクト。
  • メソッド:メイン画面の終了処理を実行する「btnClose_Click」メソッド。これは、btnCloseオブジェクトのClickイベント・ハンドラとなる。

 このフィールドはクラス図の属性(attribute)要素となり、メソッドは操作(operation)要素となる。

【コラム:C#やVB.NETのプロパティについて】
フィールド=属性要素、メソッド=操作要素は直感的に分かりやすい。しかし、ここで特に注意が必要なのは、「プロパティ」である。C#やVisual Basic .NET(以降、VB.NET)でのプロパティは、外部クラスから操作するときにはフィールド変数と同様にアクセスできるが、そのアクセスには、「アクセサ・メソッド」と呼ばれる特別なメソッドが使われる。よって、プロパティの性質はフィールド変数と同じ属性要素に近いにもかかわらず、そのプロパティのアクセス機能をつかさどるアクセサ・メソッドは操作要素となる。また、アクセサ・メソッドが使用するデータ(実際には、プロパティ・データそのもの)はフィールド変数(=属性要素)として別に定義する必要がある。このようにC#やVB.NETを対象としたUMLクラス図では、プロパティはアクセサ・メソッドとフィールド変数の2つに分離されてしまい、1つの「プロパティ」として表現することはできない。

クラスへの属性要素の追加

 それでは、クラス図に属性要素としてbtnCloseオブジェクトを追加してみよう。手順は下図を参照してほしい。

UMLクラス図に属性要素を追加する手順
クラス図に属性要素としてbtnCloseオブジェクトを追加しているところ。
  クラス図をダブルクリックすると、[UML クラス プロパティ]ダイアログが表示される。
  [UML クラス プロパティ]ダイアログの[カテゴリ]欄から「属性」を選択する。
  [新規作成]ボタンをクリックすると、[属性]欄に新しい属性が追加される。
  追加された新しい属性の項目を選択する。
  [プロパティ]ボタンをクリックすると、[UML 属性 プロパティ]ダイアログが表示される。
  [UML 属性 プロパティ]ダイアログの[カテゴリ]欄から「属性」を選択する。
  属性要素の名前(本稿の例では「btnClose」)を指定する。
  属性要素の型(本稿の例では「Forms::Button」)を選択する。
  アクセシビリティ(可視性)を「private」「protected」「public」の3つから選択する。本稿の例では「public」を選択している。
  [OK]ボタンを押して、[UML 属性 プロパティ]ダイアログを閉じる。引き続き、[UML クラス プロパティ]ダイアログで操作要素を追加するので、それ以上は閉じない。

 次のページで、さらに操作要素としてbtnClose_Clickメソッドを追加してみよう。


 INDEX
  Visioで始めるUMLモデリング
  第2回 Visioを使ったUMLクラス図の拡張
  1.クラス図に属性要素を追加するには?
    2.クラス図に操作要素を追加するには?
    3.クラス図の抽象度レベルと表現可能なクラス間の関連
    4.Visioで表現可能なクラス間の関係の種類
 
インデックス・ページヘ  「Visioで始めるUMLモデリング」

@IT Special

- PR -

TechTargetジャパン

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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH