Transcript ppt形式
47070
オブジェクト指向モデリング
[9]
2001年12月11日
オブジェクト指向モデリング
前回 動的モデル1
8.1 ユースケース
8.2 アクタ
8.3 システム境界
8.4 ユースケース記述
8.5 ユースケースの使い方
8.6 開発プロセスとユースケース
8.7 ユースケースに潜む問題
2
動的モデル1
ユースケースの意味
ユースケース
なぜユースケースにアクタが示されなければならないのか
なぜアクタは一つだけなのか
ユースケース記述
在庫を確認する
受注係
注文を受ける
3
オブジェクト指向モデリング
第9回 動的モデル2
9.1 ユースケースを書いてみよう
9.2 コラボレーション図
9.3 シーケンス図
9.4 状態図
9.5 アクティビティ図
4
動的モデル2
9.1 ユースケースを書いてみよう
自動改札システムのユースケースを考えて
ユースケース図
ユースケース記述
自動改札システム
乗客
チェックインする
アクタは誰?
ユースケース名:乗客がチェックインする。
アクタ:乗客
目的:妥当な乗客のみを入場させる。
事前条件:その乗客は入場していない。
基本系列:
①アクタは,自分が妥当な乗客である証明をシス
テムに提示する。
②システムはその証明を確認し,妥当であればゲ
ートを開く。
③アクタはゲートを通過する。
④システムは,そのアクタが通過したとき,直ちに
にゲートを閉じる。
事後条件:その乗客が入場している。
代替系列:
備考:システムは次の乗客を停滞させないこと。
5
動的モデル2
9.1 ユースケースを書いてみよう
自動改札システムのユースケースを考えて
ユースケース図
ユースケース記述
アクタは誰?
ユースケース名:乗客がチェックインする。
アクタ:乗客
目的:妥当な乗客のみを入場させる。再入場を阻止する。
事前条件:その乗客は入場していない。
基本系列:
①アクタは,自分が妥当な乗客である証明をシステムに提示する。
②システムはその証明を確認し,妥当であれば入場を許す。同時
にその乗客が入場した旨を記録する。
③アクタは入場する。
④システムは,そのアクタが入場したとき,その証明を返却し,直
ちに,他の乗客が続いて入場しないようにする。
事後条件:その乗客が入場している。入場が記録されている。
代替系列:
備考:システムは次の乗客を停滞させないこと。
6
動的モデル2
111ページ
9.2 コラボレーション図
相互作用図
1つのユースケースに関するオブジェクト群の振る舞い
コラボレーション図
シーケンス図
インスタンスレベルなので
シナリオというべき
コラボレーション図
イニシエータ
オブジェクトどうしの関わりかた
オブジェクト(インスタンス)図
オブジェクト
アクタ(イニシエータ)
オブジェクトとロール
「その会員」
112ページ
技術注釈
:本の借り手
UsingUML:
著書
その会員:
会員
#1234:本
7
動的モデル2
112ページ
9.2 コラボレーション図
著書
1
の印刷物である
相互作用の表記
0..*
会員
受渡しメッセージとその順序
借りる/返却する
本
0..*
0..1
メッセージ番号
入れ子のナンバリング
イニシエータが最初のメッセージを発行する
メッセージを受け取るとアクティブになる
コントロール(制御権)
アクティべーション
応答
CRC
UsingUML:
著書
:本の借り手
2.1:borrowed
borrow(#1234)
責任の配置
問
イニシエータ
O
その会員:
会員
P
7.3.1:mes1
#1234:本
2:borrow
__:mes2
1:okToBorrow
8
動的モデル2
114ページ
9.3 シーケンス図
シーケンス図
オブジェクトどうしの関わりかた
オブジェクト
受渡しメッセージとその順序
オブジェクト
生存線とアクティべーション
問
矢線はなぜアクティ
べーションの先頭を
指しているか
:本の借り手
その会員:
会員
#1234:本
生存線
borrow(#1234)
アクティべーション
UsingUML:
著書
1:okToBorrow( )
2:borrow( )
2.1:borrowed( )
9
動的モデル2
9.3 シーケンス図
自分自身へのメッセージ送信
戻り値に名前をつける
オブジェクトの生成と削除
シーケンス図
コラボレーション図
タイミング
:本の借り手
122ページ
制約
時間の経過
A
{C-A < 5sec.}
117ページ
119ページ
120ページ
その会員:
会員
#1234:本
UsingUML:
著書
borrow(#1234)
1:okToBorrow( )
2:borrow( )
2.1:r =borrowed( )
制約
C
2.2:destroy(r)
10
動的モデル2
9.3 シーケンス図
コラボレーション図とシーケンス図
基本的に同じ内容
型/クラス図の修正
コラボレーション図
オブジェクト間の関連性を強調
シーケンス図
時間経過,タイミングを強調
11
動的モデル2
9.3 シーケンス図
デメテルの法則
なんでも管理者
115ページ
getJC(j:仕事):仕事の管理者 1
パネル
保守のしにくさ
仕事の管理者
0..* do( )
1
1
「仕事の管理者」と関連の変化
→「何でも管理者」とそのクライアントに影響
「何でも管理者」から先のクラス構造まで露出
モジュールの境目としては悪構造
0..*
0..*
仕事
メッセージへの応答
theJob:仕事
:O
:何でも
管理者
:仕事の
管理者
mes(n)
1:jc =getJC(theJob)
①
n:N
②
new
O
Q
2:jc .do( )
p:P
③
q:Q
④
12
動的モデル2
134-7ページ
9.4 状態図
状態
状態図(ステートチャート図)
貸出し中
状態,遷移,イベント
オブジェクトの状態
イベント
return()
書架にある
borrow()
状態を持つオブジェクト
開始,終了状態
遷移
return()/book.returned(self)
貸出し中
開始マーカ
終了マーカ
書架にある
borrow()/book.borrowed(self)
遷移
アクション
イベント[ガード]/アクション
returned()
returned()
貸出し不可
貸出し可
borrowed()[最後の本]
borrowed()[最後の本でない]
ガード
13
動的モデル2
137ページ
9.4 状態図
状態図(ステートチャート図)
状態
do/アクティビティ
entry/入状アクション
exit/出状アクション
/最初の品目を取り出す
チェック中
[未チェックの品目あり]
/次の品目を取り出す
do/品目チェック
[全品目チェック済み]
出荷中
do/出荷準備
[出荷完了]
a:注文
出荷済み
14
動的モデル2
教科書外
9.4 状態図
状態と型図
動的分類
実装
本
<<動的>>
stateパターンが利用できる
書架に
ある本
本
貸出し中
の本
{abstract}
状態
書架に
ある
貸出し中
15
動的モデル2
9.5 アクティビティ図
アクティビティ図
状態図の拡張
アクティビティ
遷移
同期バー
判断
開始マーカ
終了マーカ
レーン(アクタ)
142ページ
会員
[借りる人]
司書
書架に本を
見つける
[返却する人]
並んで待つ
[返却する]
[借りる]
返却を記録
本を書架に
戻す
制御構造を書く
ワークフロー図
split と join
loop
貸出しを記録
次の利用者
に備える
16
動的モデル2
教科書外
9.5 アクティビティ図
ビジネスプロセス
ワークフローで表現
ワークフローの基本単位
Customer-Performer
アクティビティと情報システムの支援
打診
Customer
契約
Performer
Customer
報告
Performer
実行
17
動的モデル2
教科書外
9.5 アクティビティ図
ワークフロー図で書かれないもの
アクティビティ
アクタの作業
ユースケース
情報システムの支援あり
情報システムの支援なし
状態遷移するオブジェクト
書かれないもの
システム外部のコミュニケーション
control
Customer-Performer
コミュニケーションの媒体
情報システムの本質
resource
<<Activity>>
resource
control
18
動的モデル2
教科書外
9.5 アクティビティ図
ワークフロー図
WfMC+Kodama
アクティビティ(アクタの振舞い)
システム外のアクタ間の通信
実行コスト(所要時間,必要スキル)
顧客→受注係
注文を受け
る
受注係
在庫を確認
する
受注係
出荷係
出荷指示を
する
出荷する
輸送係
納入する
cancel
出荷指示書
19
動的モデル2
教科書外
9.5 アクティビティ図
Eriksson & Penkerの拡張
プロセス図
<<goal>>
<<people>>
Process Goal:
QuantitativeGoal
PeopleObj
<<control>>
<<achieve>>
<<information>>
InputObjA
<<process>>
<<physical>
Process
OutputObj
<<physical>>
InputObjB
<<supply>>
<<physical>>
PhysicalObj
B
<<supply>>
<<information>>
InformationObj
20
動的モデル2
教科書外
9.5 アクティビティ図
ATOのモデル
Benetonのビジネスモデル
製品在庫最小化
中間製品での在庫
染色を最終工程に
(オプションを最終工程で実装する)
売れ行き,
注文
<<process>>
<<process>>
販売計画
出荷
<<発注>>
市場に対す
る情報,知
識,予測
<<process>>
生産
<<resource>>
中間製品
納品物
<<供給>>
<<process>>
最終工程
生産能力
21