Object-Oriented Analysis and Design with UML and Rational Rose

UML Rational Rose
指向 析・設計
Object-Oriented Analysis and Design
with UML and Rational Rose

Romi Satria Wahono
Department of Information and Computer Sciences
Graduate School of Science and Engineering
Saitama University
1

序論
Introduction

9
9
9



表記法



役割
2


z
z

z



実世界 概念
い 構築
使用
問題 考え 方法 あ


要求

理解 深
設計 整理


容易
抽象化 産物 あ 曓質
い詳
細 隠
複雑 問題や構造 曓質
的部
表現 問題 理解 容易

3




表記法



z

表記法
伝達
い方
ー 作業 成果物 文書化
面 必要

使
4

表記法 役割
z

コー


z

言語や実装

あ ゆ 重要 決定内容 表現



人間 論理的 考え

扱う

具体的 形式


z

自明
い あ い 推
い決定 伝達
言語
役割 果

5


UML
What is the UML

9
9
9

UML
UML
UML




い OOD ー
6

UML 歴
z


z
z

-1-

1990年 入
種類 方法論
独自 表記法
OMT法
方法論戦
Booch法 OOSE法

Method Wars
方法論 収束 始
方法論
独自 表記法 使わ

表記法 関
いえ

方法論戦
統一
ン 言語 UML)

終わ


7

UML 歴

-2-

Rumbaugh
Booch

Jacobson

UML 1.3, June 1999


OMG

Odell

(Object Management
Group)

Meyer

Shlaer and Mellor
Gamma

8

UML
z

z

z


UML 開 中
指向

果物 定義 視覚化 文書化
用い
言語 あ
UML 前


Booch法
OMT法 Objectory法 表記法 統一

方法論
暷善 概


い 方法論 あ
UML
析及び設計 成果物 あ


構文的 表記
標準化


9

UML
z
z
z
z
z
z
z



い OOD ー


Rational Rose (www.rational.com)
Together (www.togethersoft.com)
Object Domain (www.objectdomain.com)
Jvision (www.object-insight.com)
Objecteering (www.objecteering.com)
MagicDraw (www.nomagic.com/magicdrawuml)
Visual Object Modeller (www.visualobject.com)

z
10

Rational Rose
指向 析・設計
9



9
9
9
9
9
9
9




定義 問題記述
作成



関係 識
振 舞い 属性






設計

11




定義 問題記述




作成


関係



振 舞い 属性








設計

12

定義 問題記述

13

定義 問題記述
z

z

z

開始



新 い
要求
や形式




解決
問題
ー 内や顧
間 文
書化 話 合う 仮

概念
立証
法 使

立証


外部 ン

洗い出 初期
評価 及び一連
要求 あ
14

問題記述 例:
大学コー
z

z

各学期

修 録

記載

- 1-

学生
学期 必要 コー 科目
コー
請求
コー

情報 教授 学部 前
科目

学生
情報 基 い
コー
決定
新 い
使
学生 次 学期 4
コー
科目 選択
各学生 コー 科目 満


備え 代暶コー 科目
指定
コー
講人数 10人曑満3人以

希望
学生 3人 満
いコー 科目 中
学生
録処理 完了

支払請求
情報 送 学生
学期 学
費 請求

15

問題記述 例:
大学コー

z

z

教授

修 録



- 2-


定 コー
指定

学生 申 込


各学期
学生
期間 あ
期間中
コー



担当

コー 科
確認

学生

変更
削除

16





作成

17


z

z



開 中
う 機能










振 舞い






記述




外界

関係 明

機能
及び

18




z

一部



z
z

い人や物 表
ー 問題記述 中や顧 及び領域 専
門家
対話

ー UML表記法:

19

ー 識
z

特定

z
z
z

要求 利害関係 持
組織内
使わ
使う
恩恵
情報 供給

質問型識


情報 使い

情報

削除
z
z
z
z
z


外部
1人 人間
複数 人間
従来

保守

資源 使う
役割 担う
役割 担う

20


z

z

z






間 対話


機能


ービ
表現


実現
一連
処理 あ
処理結果
特定


明確利用価値 Measurable Value
生 出
う 処理 表
( 式 定義


UML記法:

21


z
z
z
z
z
z
z







質問型識



内 情報 作成 格納 変更 削除

行う
ー 存在


情報 作成 格納 変更 削除

行う
突然 外部的 変化

必要 あ
ー 存在
内 特定

通知
必要

ー 存在


ー 及び保守
機能的 要求




22


z

z
z

z



関係 -1-






関連 存在

関係



間 コ

ン 表

communicates関連



間 関係
使用 uses

extends
2種類 あ
複数


機能 部
共有
あ 場合 共通機能 必要


定義
独立
新 い ー

割定義
使用 uses 関係
新 い ー

機能
使うほ


間 使用
23


z

z

z



関係 -2-

張 extends 関係 次

使わ
– 選択的 振 舞い




特定 状況
実行
振 舞い

ー 選択 基 い 実行
能性 あ
各種

UML
概念 あ
基曓
ン 要素


い要素 作
重 不等号記号
関係直線 沿
配置
24


z






関係 -3関係

表記

Communicates関連


Communicates関連+




Uses関係+
Extends関係+
25





大学コー

z

例:

修 録: Rose 入門

Rational Rose 2000 いうソ

起動

NIMA1 NIMA9

z

z

起動
[
ー ワー ]

既 定義



設計 直
固有 部
集中





ー ワー
Rational Rose GUI
4種類

使用

表示 作成 変更 操作 定義
実行
26

27

28





定義







29








大学コー
z
z
z
z
z


修 録:

例:
ー 識

学生
修コー


教授 教え コー
選択

教務
作成
学期



教務 コー
教授 及び学生 関
あ ゆ 情報
保守

支払
支払請求情報



質問
答え 基 い
学生 Student 教授
Professor 教務 Registrar 支払請求
Billing
System

ー 識
30


大学コー

1.

2.

3.


修 録:

[ ー

例:
ー 作成

ー ビ ー]


ー 表示

[新規作成]

[
ー]
“NewClass” いう 前 新 い
配置
NewClass
ー 選択
適当

入力


状態
31

学生 いう

ー 作成

32


大学コー

1.

2.
3.


修 録:

例:
ー定義 作成

定義

表示

い場合 [表示]
ー [
定義]
定義



選択
定義

ーソ

動 定義 入力
33


大学コー

z
z
z

z


修 録:

例:






1

学生 Student

コー

使う必要 あ
コー 選択処理 完了
支払請求
Billing
System 支払請求情報 送

教授 Professor

あ 学期 相当
コー
選択
使う必要 あ コー

簿

教務 Registrar
あ 学期 コー
生成
必要
学生及び教授

全情報 保守 責任 負う
34





大学コー

z
z
z
z
z
z
z

例:

修 録:


基 い

コー

相当
コー
選択
コー
録簿 請求
コー 情報 保守
教授情報 保守
Information
学生情報 保守
コー
作成












2


Register for Courses
Select Courses to Teach
Request Course Roaster
Maintain Course Information
Maintain Professor
Maintain Student Information
Create Course Catalog
35


大学コー

1.
2.

3.



例:

修 録:

[ ー





作成

ー ビ ー]
ー 表示

[ ー
ー ]
い 新 い ー



[新規作成]

配置


選択




状態



入力
36

コー



いう ー



作成

37

38





大学コー

例:

修 録:

[ ー

1.

Main
2.

必要

3.
4.

必要

5.

ン ー

ー ビ ー]

ー 選択










作成





繰 返
選択





39


大学コー

1.
2.



例:

修 録:Communicates関連 作成


ー あ [関連]
方向 関連]
コン


ン 起動
所望




コン
[単
選択

関連直線

40

41





大学コー

1.
2.
3.
4.

例:

修 録:

[ ー

[新規作成]





追 作成

ー ビ ー]
ー 表示

[ ー




選択

前 入力

必要 応
及びや


]

い 間






42

43


大学コー



例:

修 録:



1.

直線関連

2.

4.

含 場合
[
]
Communicates 入力
Communicates
既 作成
い 場合
[
]
矢印

ー 表
示 [Communicates] 選択
[OK]
様 閉
関連直線

ー 表示

5.

[

3.

様 表示

表示]
44


大学コー

1.
2.
3.
4.

5.
6.
7.



例:

修 録:使用 Uses

作成


ー [汎化]
コン
選択
使用



使用



[汎化]
コン
汎化矢印
様 表示
様関係 始

場合 [
]
“Uses” 入力
Uses
既 作成
い 場合 [
]
矢印

ー 表示
[OK]
様 閉
汎化矢印

ー 表示
[
表示]
45


大学コー

1.
2.
3.
4.

5.
6.
7.



例:

修 録: 張 Extends

作成


ー [汎化]
コン
選択

機能 含


基曓


[汎化]
コン
汎化矢印
様 表示
張関係 初
作成
場合 [
]
“Extends” 入力
Extends
既 作

い 場合 [
]
矢印

ー 表示 [Extends] 選択
[OK]
様 閉
汎化矢印

ー 表示
[
表示]
46



47

z

z

z

実世界
概念 存在
明確 境界 適用目的 持
概念 抽
象概念
物体

共通 特性 属性 共通 振 舞
い 操作
共通 関係及び
共通


群 表

UML表記法:
属性
振 舞い

48

基曓

z
z
z
z

新 い要素 作


一般


ン 要素








entity
boundary コン

control

重 不等号記号


学生情報

49


z

z
z

見あ い 識
虎 巻
存在
い Grady Booch 骨 折
作業
! い


Rational Rose

Rational Objectory
推薦

Rational Objectory


及び ン



開 中
見あ
い 識


50

識 :
z
z
z

z


関連




一般 長い間存
情報
振 舞い

一般何
責務 果
必要

暷初




ー 定義
責務


検証

責務 記

使わ

詞句 候補
いうや 方
有効


問題領域
無関係


言語表現 過
い 詞 冗長


造 記述 あ



51
捨 選択


識 :

内部

z


外部

間 や

処理






z







z




使わ



物理的
検証
52

識 : コン
z

z

z



コン

複数


特有
序付
振 舞い

コン



定義
振 舞い 実現
必要

御 行う
コン



駆動
実行
考え
53


z

z

z

大半
多数
構成

使いや
保守性 再利用性 高
類整理
必要 あ

言わ

論理ビ ー

互い 関係
ー や



高い
視点

UML


実現


UML表記法 :

54


大学コー
z
z
z

z

例:
修 録:







教授




教授 選択 修
削除
確認
び印







教授 利


ン 含
必要 満
作成
教授用コー

ProfessorCourseOptions コー 科目追
AddACourseOption


55


大学コー

z
z

例:
修 録:





コー
コー 科目 及び教授
割 当
扱う
コー Course コー 科目 CourseOffering
び教授情報 ProfessorInformation



56


大学コー

z

例:
修 録: コン

教授用コー

ProfessorCourseManager






コン



57


大学コー

1.
2.

3.

例:
修 録:

作成

[論理ビ ー]

選択

[新規作成]

[
]
“NewClass” いう 前
配置
新 い
選択
い 状態
前 入力
58

59

60


大学コー
z

z

例:
修 録:





大学 特有 要素 人物

情報 含




論理




Interfaces 大学関連
目 UniversityArtifact 人物 People いう



61


大学コー

修 録:



作成

[論理ビ ー]

1.
2.

例:

[新規作成]


3.




選択
前 入力

選択
[

ー ]
状態

62

63

64


大学コー

例:
修 録:









1.




2.




3.
4.



選択





65

66


大学コー

例:
修 録:





作成



1.



2.






作成

3.

配置

4.





表示
選択


繰 返
67

68

69

70

関連 識

71

関連
z

関連





z

コー

z

び付
結び付


双方向

意味的 結び付

関連
関連付
複数



存在
意味
例え
関連情報
間 関連
コー
学生情報


意味

関連 多重度

72

関連 作成例:
大学コー

1.




ー [単方向 関連]又 [関連]
関連付

2.
3.

修 録: 関連 作成

関連付

う一方



一方
関連直線

73

74

集約
z
z
z

集約 関連 特

全体 部
間 関
連 あ
集約 “part-of”関係
包含関係


例え
コー 数学
学期中 異
時限


科目
コー 科目 数学1 第1部や数学1第2部

コー
コー 科目 間 関係
コー
コー 科目 持
集約 あ

75

関連 作成例:
大学コー

1.




修 録: 集約 作成

ー [単方向 関連]又 [集約]

全体

2.

役割 果
役割 果



集約

直線

76

77

関連
z 関連






z 通常
関係 意味 表 能動
態 動詞
動詞句
z 動詞句 一般
方向 伴う
関係
う 関連
理想的

78

関連 作成例:
大学コー

関係直線

1.
2.

修 録: 関連

関係

作成

選択

前 入力

79

80


z
z
z
z
z
z

結び付い 関連 端曒


関連
代わ

使う


関連
目的や役割 示
詞 あ

修飾


配置

関連直線 一方
両方 端
配置

関連
関連
両方 付
必要

81

関連 作成例:
大学コー

1.

2.
3.

修 録:

関連直線



[ ー
]

入力



作成

修飾


ー 表

82

83

多重度表示
z

多重度


指定
数 定義
互い


あ 関係 参

多重度

z 一般 多重度表示 次 示
z








1
0..*
1..*
0..1
5..8
4..7,9

厳密
0以
1以
0
指定

組 合わ

5,6,7,
4,5,6,7,

数 定

8
9
84

関連 作成例:
大学コー

修 録: 多重度 作成

1.

関係直線

2.

修飾

3.

様 表示



[詳細]
[ ー A 詳細]
[ ー

B 詳

細]
多重度 入力

85

再起的 関係

い 複数



z
再起的 関連
集約

z 再起的 関係

通常関連

使わ
z

86

関連 作成例:
大学コー

1.



修 録: 再起的 関係 作成



[単方向関連]又
関連

2.

[関連]

コン

集約 直線

外側
3.

ン 放
集約 直線

関連
再び
5. 再起的 関連
集約

多重度 入力
4.



87

88

ー 関係
z
z
z

ー 関係 追
種 関係 依存関係 あ 依存


破線 矢印 示
ー A
ー B 依存
い 場合
ー A 含

ー B 含

公開
操作

意味
ー A


ー B


89

関連 作成例:
大学コー

1.
2.


依存


修 録:

ー [依存関係]



矢印

ー 関係 作成

コン
依存

90

91

振 舞い 属性 追

92

振 舞い 属性
構造

z

規定

z

属性
属性

保持
ー 構造 あ

定義
属性 対
値 持

いえ
コー
性 保守
性 向

属性 振 舞い 操作 定義


93

振 舞い 操作

作成


1.
2.

3.

ー 表示
[新規作成]

[操作]
opname いう 前 操作
新 い操作 選択
前 入力

作成
状態

希望

94

95

96

振 舞い 操作 定義 作成
+

1.

展開
操作
3. 定義

定義 入力
2.

選択
ーソ



操作

97

属性 作成


1.
2.

3.

ー 表示
[新規作成]

[属性]
Name いう 前 属性
新 い属性 選択
前 入力

作成
状態

希望

98

99

100

101

属性定義 作成
+

1.

展開
2.
3.

属性
定義

定義 入力

選択
ーソ

置い

属性

102



103

z

z
z
z

複数
構造や振 舞い 共通


間 関係 定義
概念 あ
is-a階
kind-of階
場合 あ
複数
ー ー
形 抽象化 階
作成
ー ー
定義
い 属
性 操作及び関連


汎化及び特殊化 2

方法 あ
104

汎化
z

z

汎化
複数
共通 属性や振
舞い

ー ー

いう
例え
学生情報
及び教授情報

所 電話番号 属性

ー 情報
定義

105

特殊化
z

特殊化
ー ー



属性や振 舞い 詳細化


z
z

通常
い 追



属性や振 舞

振 舞い
ー ー
多相性 polymorphism
106

作成


1.
2.



3.
4.



作成
ー [

選択


]
状態

ー [汎化]
汎化直線

5.
6.



入力



ー ー

繰 返
107

108


z

関係
い 特殊化 行う根
理由 弁 子 discriminator いう

z



z

z

作成



一般的 有限個 値 持
各値
作成
例え
コー

弁 子
コー
場所 考え
弁 子 基 い
コー
構内コー
構外コー
作成
関係





作成
表現
109

ー 作成


1.
2.




]


選択

3.
4.

作成
ー [

入力


状態

ー [汎化]
汎化直線

5.

ー ー
110

111

112

113

単一
z

z

z
z

多重

単一
一系統 親 持



ー ー
存在
例え
自動車
ー ー付
乗 物

多重
複数
ー ー
系列 含
水陸両用車
ー ー付
乗 物 あ 水
乗 物 あ
多重

多数 問題
生 コー
保守性
能性 あ
ー ー
増え ほ

変更
ういう影響 あ


114

集約
z

z
z
z

良い
使え
コー

いう考え方


使用
問題

場合 あ
特殊
共通性
使用

一方 集約 複数 要素
構成
い 関係 示
使用

種類 関係
併用
例え
学生情報
昼間コー
夜間コー

集約 持
115



ー 設計

116

論理ビ ー
z

z

z

論理ビ ー
象概念 表


集約 汎化

開 中
関係 含
UML表記


主要 抽
関連
ビ ー 含

コー 生成

論理ビ ー 含

属性 操作 関連


属性 操作 型 戻 値 設定
117

118

119

120

コン ー ン ビ ー
z

z
z

コン ー ン ビ ー
開 環境内 実際 ソ
ー 構成 表
ビ ー


管理 再利用 及び
言語や開

約 容易
目的 作成
コン ー ン ビ ー 要素

コン
依存関係 あ
ー ン 及び
コン ー ン ビ ー

物理的 区


121

コン ー ン ビ ー
1.
2.

3.



作成

[コン ー ン ]


ー 表示
[新規作成 ]

[
ー ]
NewPackage いう

NewPackage
選択
状態

前 入力
122

123

コン ー ン
z
z

コン ー ン



種類 使用言語
C++
.h及び.cpp
.java
ン ー ン



Java


例え


124

コン ー ン
1.
2.

コン ー ン

ー [

3.
4.


コン ー ン
ン ー ン

作成



様]
コン ー ン
配置
コン ー ン

選択
状態
前 入力



125

126

コン ー ン
対応付
z

z

論理ビ ー
コン ー ン ビ ー コン
ー ン
対応付

理ビ ー 情報 コン ー ン ビ ー 情報
関連付

一般的
論理ビ ー
コン ー ン
ビ ー コン ー ン
直接対応 1対1

127

コン ー ン
対応付
1.
2.
3.

コン ー ン
ー 開
[ 様 開 ]
[実現]


4.
5.
6.



表示
[割当 ]
[OK]

[コン ー ン



様]


128

129

130

実装言語 選択
コン ー ン

ー 開
2. [ 様 開 ]
3. [基曓]
4. 言語 選択
1.

131

132

Rational Rose





Forward Engineering コー 生成
9 Reverse Engineering
ン生成
9

133

Forward Engineering

134

Forward Engineering 手

2.

コン ー ン
作成
コン ー ン

3.

コー 生成

1.

曓体コン ー ン
選択

コー

生成

ー 評価
135

コン ー ン

作成
z

z

z

曓体コン ー
1

コン ー ン
対応付
い 場合
Rational Rose
コン ー ン 型 基 い コー
生成

表 コン ー ン
定義

い場合
定義情報 記述
.h
生成
ソー
曓体 表 対応コン
ー ン
定義
い 場合

情報 記述
.cpp
生成
ソー
曓体 表 コン ー ン
対応

い 場合
.h
.cpp
生成
136

コン ー ン

作成
1.
2.

コン ー ン

ー [

3.
4.
5.

曓体



6.



曓体コン ー
2


ー 曓体]
ー 曓体 配置
選択
状態
曓体
前 入
一般的


ー [依存関係]
ー 曓体
依存関係

137

138

コン ー ン

1
z
z

z

選択

コー



コー
ー 全体
集合 対
生成 能 あ
コン ー ン
対応付
い い場合
前 コー
使用
生成
コー
論理ビ ー


保存
コン ー ン
対応付
い 場合

ン ー ン
前 コー
使用
生成
コー
コン ー ン ビ ー

対応
保存
139

コン ー ン

2

1.
2.
3.

選択


[ ー ]
ー [C++]
成]
[コー 生成

]

表示

コー



集合


[コー 生

140

141

142

143

144

145

コー 生成
z
z

z

ー 評価

Rational Rose
警告及び


記録
設計 一部 完全
い場合
Rational Rose 警告

書 込
値 使用
繰 返 型 開


行う場合
1回


全体 実装
い場合 あ
機能 特 重要
146

Reverse Engineering

147

Reverse Engineering
1.
2.
3.
4.
5.
6.
7.

参照

作成
定義 追

設定

ー 評価

ン 選択

Rose
更新




解析
Rose

148

作成

1.

2.

Rose [ ー ]
ー [C++]
[


ン ]
C++
ー 起動
[
]
ー [新規作成]



149

150

151

定義 追

1.
2.
3.

[
定義]
[
入力
[OK]

定義]

[
表示

定義]

情報
[

定義]



152

153

参照

1.

[

2.

[

3.
4.

5.






]
表示
]
現在

現在

現在

[

]

設定




[

]



現在


[



]



]




[



154

155

参照

1.




[ ー





]

[ ー
表示

]
2.

[

3.

表示

[追 ]

4.

使用

]


移動




156

157

設定


1.


[


解析

ン]




変更

ー [解析

設定]

2.

158

159

設定

1.


解析



解析





解析

設定

2.
3.

ー [コー 解析]
解析
解析
Rose 必要

ン 挿入

[
ン]
ー [コー

[

ン]


]

160

161

ー 評価


z

ー 全 [

]



記録
z

ー 確認

162



ン 選択


Rose

2.

[


ン]

3.

[



1.

ー [Rose

4.
5.

設定
[OK]


矢印

]


[ 書 ]

ー ]

表示

Rose

163

164

165

更新

Rose
1.
2.

更新
[

5.



使用
[OK]

ー ]

[

参照

3.
4.

Rose
]


.red

検索

.red
[

ー ]


166

167