オブジェクト指向による 分析と設計

47070
オブジェクト指向モデリング
[10]
2002年12月17日
オブジェクト指向モデリング
第9回 動的モデル
9.1 ユースケースを書いてみよう
9.2 協調図
9.3 シーケンス図
9.4 状態図
9.5 活動図
2
動的モデル
開発プロセスとモデル
 モデルの使われ方
 成果物ではなく,思考のツール,意思疎通の媒体
概念レベル
要求定義
仕様レベル
実装レベル
クラス図
シーケンス図
分析
因果図
プロセス図
設計
(活動図)
制作
クラス(型)図
ユースケース
協調図
シーケンス図
ステートチャート図
活動図
検査
クラス図
協調図
シーケンス図
ステートチャート図
配置図,コンポーネント図
3
動的モデル
ユースケース
 概念レベル
 情報システムによって支援されるアクティビティ
 システムとの対話(対話の目的と本質)
 要求を1つひとつ取り出す
ユースケース名:
アクタ:
目的:
事前条件:
乗客
基本系列:
事後条件:
Customer
代替系列:
備考:
 実装を指示しない
 変更要求管理
切符を買う
切符を売る
入場する
入場を許す
駅員
移動する
Ownerの
代理人(Agent)
出場する
出場を許す
検札される
検札する
4
動的モデル
相互作用図
本の借り手
会員ID=A,本ID=#123
著書
UsingUML:
著書
本を借りる
:ユースケース
1
の印刷物である
1.2.1:borrowed( )
1: borrow(#123)
0..*
会員
借りる/返却する
0..*
0..1
本
A:会員
#123:本
1.2:borrow( )
1.1: okToBorrow( )
 責任の配置
 シナリオ
 協調図
 オブジェクト図
 メッセージ
 シーケンス図
 通信
 タイミング
本を借りる
:ユースケース
A:会員
#123:本
A:本の借り手
会員ID=A,本ID=#123
UsingUML:
著書
0: find(A)
0: find(#123)
1: borrow(#123)
1.1: okToBorrow( )
1.2:borrow( )
1.2.1:borrowed( )
5
動的モデル
状態図
状態
遷移
貸出し中
 ステートチャート図
 あるオブジェクトの状態
 遷移
 イベント[ガード]/アクション
 開始状態、終了状態
 活動図
 アクティビティ
 制御の流れ
 制御構造
 split,join
イベント
return()
書架にある
borrow()
会員
司書
[借りる人] 書架に本を
見つける
[返却する人]
並んで待つ
[返却する]
[借りる]
返却を記録
 レーン
 アクタ
本を書架に
戻す
貸出しを記録
次の利用者
に備える
6
オブジェクト指向モデリング
第10回 静的モデル3
10.1 制約
10.2 関連型
10.3 型についての補足
10.4 依存性
10.5 パッケージ
10.6 知識レベル
7
静的モデル3
10.1 制約
79~81ページ
 型(クラス)図も制約がなければただの線図
 曖昧さの排除
 制約に従ったクラス群がモデル
 形式的なルールの記述
 {制約}
 ノート
貸出
0..*
0..*
 制約記述言語
 UML組み込み
 OCL
貸出
0..*
1
本
{xor}
1
雑誌
1
本
実装はどうなる?
路線
{ordered}
*
駅
制約:
雑誌は教員の会
員だけが借りられる
雑誌
8
静的モデル3
10.1 制約
 OCL(Object Constraint Language)
 OCL式
常に true でなければならない
(false である self は存在できない
 context
 self と ナビゲーション
 pre: inv: post:
 OCL型
 演算子
 collection
inv:
/借出し数 = self.the貸出->
select(oclType = 貸出中)->size
inv:
if self.対象.oclType = 雑誌 then
self.借り手.oclType = 教員
会員
/借出し数
学生
{self./借出し数 <= 6}
1
借り手
教員
0..*
貸出
貸出中
{self./借出し数 <=
12}
0..*
返却済
1
対象
本
雑誌
9
静的モデル3
82ページ
10.2 関連型
 関連に属性,操作を持たせる
 「もの-こと-もの」パターン
 2種類の記述方法
 導出関連
学生
履修している
1..*
6..*
氏名
授業科目
科目名
成績
/履修している
1..*
6..*
学生
氏名
履修
6..*
1..1
成績
授業科目
1..*
1..1 科目名
制約:
再履修は不可
10
静的モデル3
10.2 関連型
/履修している
 オブジェクト図で理解する
1..*
6..*
学生
氏名
履修
2..*
1..1
成績
授業科目
1..*
1..1 科目名
制約:
再履修は不可
:履修
成績=D
1:授業科目
a:学生
旅費交通費
氏名=小泉純二郎
8000円
:履修
科目名=オブジェク
ト指向モデリング
成績=
2:授業科目
b:学生
クレジット
氏名=竹中半平太
2000円
-5000円
c:学生
クレジット
氏名=鈴木宗光
2000円
-5000円
:履修
多重度も制
約の一種
科目名=情報倫理
成績= A
:履修
成績= B
3:授業科目
科目名=情報シス
テム概論
11
静的モデル3
10.3 型についての補足
83ページ
 ステレオタイプ
パネル
 モデル要素の分類
 事前定義
 新たな分類
<<type>>
<<interface>>
<<history>>
学生
学生
学生
 アイコンの定義
 プロパティ
<<use>>
<<include>>
87ページ パネル
 モデル要素にあらかじめ与えられている
 タグ付き値
isXxxxxxx
{abstract}
B
{isAbstract = true}
{abstract}
<<actor>>
本の借り手
=
本の借り手
12
静的モデル3
89ページ
10.4 依存性
シグニチャだけ(デー
タや実装は持たない)の
クラス
ステレオタイプ
 実現の矢印
<<implement class>>
<<interface>>
A
B
<<implement class>>
<<type>>
A
A
 抽象クラス
クラスBの拡張
 依存性の矢印
操作と属性を持つ設
計概念
(少なくとも一部は)実装を
A
{abstract}
持たないクラス
B
プロパティ
 クラスの依存関係(オブジェクトの関係ではない)
 メモ
A
B
13
静的モデル3
89,90ページ
10.5 パッケージ
 モデル要素の集まり
 4階層アーキテクチャの例
 純粋なドメイン
 一方向の可視性
ユーザーインタフェース層
インタフェース
オブジェクト
アプリケーション層
制御オブジェクト
アプリケーション層
ドメイン層
ドメイン層
実体オブジェクト
依存性の矢印
永続層
概念レベル
RDB
実装レベル
OODB
14
静的モデル3
教科書外
10.6 知識レベル
 べき集合(power set)
 著書と本
 ジャンル
 ルールの記述
従業員タイプ
型
1
インスタンス:
技術職タイプ
営業職タイプ
営業職の集合を
意味するメンバ
従業員タイプの集合
技術職の集合を
意味するメンバ
*
従業員
技術職の
集合
営業職
技術職
営業職の
集合
従業員の
集合
15
静的モデル3
10.6 知識レベル
 知識レベルの実装
従業員タイプ
1
*
従業員
従業員
従業員タイプ
*
従業員タイプ
+型 1
「クラスによる
タイプコードの置き換え」
技術職タイプ
営業職タイプ
実装
*
従業員
技術職
1
営業職
概念モデル
従業員
タイプ
「サブクラスによる
タイプコードの置き換え」
「State/Strategyによる
タイプコードの置き換え」
「フィールドによる
サブクラスの置き換え」
従業員
技術職
営業職
16
静的モデル3
演習問題
 次の型図に対応するオブジェクト図を書いてください。
 貸出のシナリオを考えて…
 前後図
 インスタンスをでっち上げて...
制約:
「未成年会員」に「成
人向き」を貸し出せない
インスタンス:
未成年会員
成年会員
ジャンル
インスタンス:
アニメ,邦画,
洋画,成人向き
ジャンル名
型
会員型
*
貸出条件
*
*
ビデオタイトル
単価
* 作品名
型
主演
{不完全}
*
会員
氏名
住所
*
*
貸出
貸出日
/返却予定日
/代金
*
*
新作
ビデオ
ビデオNo.
17
静的モデル3
演習問題
 シナリオ
未成年会員である児玉和香子は,2002年11月6日,アニメ「となりのトトロ」を7泊
借りていった。借りていったビデオはNo.2013であった。
成年:貸出条件
成年:会員型
単価=200円/泊
成年:貸出条件
単価=100円/泊
未成年:会員型
未成年:貸出条件
単価=380円/7泊
:会員
:会員
氏名=高橋尚子
住所=東京都大田区
氏名=山田太郎
住所=横浜市港北区
:会員
:会員
氏名=児玉和香子
住所=川崎市中原区
氏名=児玉和香子
住所=川崎市中原区
:ジャンル
ジャンル名=成人向け
:ジャンル
ジャンル名=アニメ
:ビデオタイトル(新作)
作品名=見ちゃだめ
:ビデオタイトル
主演
作品名=となりのトトロ
主演
:ビデオ
:ビデオ
:ビデオ ビデオNo.=2016
:ビデオ ビデオNo.=2015
ビデオNo.=2014
ビデオNo.=2013
18
静的モデル3
演習問題
 シナリオ
未成年会員である児玉和香子は,2002年11月6日,アニメ「となりのトトロ」を7泊
借りていった。借りていったビデオはNo.2013であった。
成年:貸出条件
成年:会員型
単価=200円/泊
成年:貸出条件
単価=100円/泊
未成年:会員型
未成年:貸出条件
単価=380円/7泊
:会員
:会員
氏名=高橋尚子
住所=東京都大田区
氏名=山田太郎
住所=横浜市港北区
:会員
:会員
氏名=児玉和香子
住所=川崎市中原区
氏名=児玉和香子
住所=川崎市中原区
:貸出
貸出日=2002年11月6日
返却予定日=
返却予定日=2002年11月13日
料金=
料金=380円
:ジャンル
ジャンル名=成人向け
:ジャンル
ジャンル名=アニメ
:ビデオタイトル(新作)
作品名=見ちゃだめ
:ビデオタイトル
主演
作品名=となりのトトロ
主演
:ビデオ
:ビデオ
:ビデオ ビデオNo.=2016
:ビデオ ビデオNo.=2015
ビデオNo.=2014
ビデオNo.=2013
19