連載

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モデリング」

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

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

@IT Sepcial
ソリューションFLASH