【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

連載

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 フォーラム 新着記事

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

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?