問題解決からビジネスモデリングへ

オブジェクト指向モデリング
[9]
2003年12月2日
9. 問題解決とモデリング
8.3 ソフトシステムズ方法論
 ソフトな問題を扱う
○○のために,○○を行って,
複雑系,人間活動システム
○○するシステム
合意形成(accommodation)
 基本定義(root definition)
CATWOEによるチェック
Customer
Actor
Transformation
Weltanschauung
Owner
Environment
基本定義の改訂
 基本課題
 解決策の“発明”
0.世界認識
1.基本定義
2.CATWOE
解決の
ビジョン
[合意]
3.基本課題
課題
4.問題解決案作成
プラン
2
9. 機能モデル2
9.1 協調図
 相互作用図
ユースケース(シナリオ)に関するオブジェクト群の振る舞い
 協調図
オブジェクトどうしの関わりかた
オブジェクト図+メッセージフロー
オブジェクト
アクタ(イニシエータ)
メッセージ番号
イニシエータ
UsingUML:
書名
:本の借り手
2.1:borrowed
borrow(#1234)
入れ子のナンバリング
:会員
#1234:本
2:borrow
1:okToBorrow
3
9. 機能モデル2
9.2 シーケンス図
 シーケンス図
 オブジェクトどうしの関わりかた
オブジェクト
受渡しメッセージとその順序
結果の戻り
オブジェクト
 生存線と活性区間
:本の借り手
:会員
#1234:本
生存線
borrow(#1234)
活性区間
時間の流れ
UsingUML:
書名
1:okToBorrow( )
2:borrow( )
2.1:borrowed( )
4
10. 状態モデル
10.1 ステートチャート図
 状態図
オブジェクトの状態変化
ステートチャート図
活動図
 ステートチャート図
状態,遷移,イベント
オブジェクトの状態
状態
遷移
イベント
return()
貸出し中
書架にある
borrow()
return()/book.returned(self)
貸出し中
書架にある
borrow()/book.borrowed(self)
状態を持つオブジェクト
アクション
開始,終了状態
returned()
開始マーカ
終了マーカ
遷移
イベント[ガード]/アクション
returned()
貸出し不可
貸出し可
borrowed()[最後の本]
ガード
borrowed()
[最後の本でない]
5
オブジェクト指向モデリング
シラバス
 授業計画
回
1
2
3
4
5
6
7
8
9
10
11
12
13
月日
9月 30日
10月 7日
10月14日
10月21日
10月28日
11月 4日
11月11日
11月18日
12月 2日
12月 9日
12月16日
1月13日
1月20日
内容
オリエンテーション:モデルとは何か。
モデリング言語:UMLの概要
静的モデル1:概念とクラス
静的モデル2:関連
静的モデル3:オブジェクト図
静的モデル3:オブジェクト図(続き),モデリング
機能モデル1:ユースケース,シナリオ
機能モデル2:要求抽出,協調図,シーケンス図,状態モデル:状態図
機能モデル2:活動図,静的モデル4:ユースケースに基づくモデリング
実装レベル:実装モデルとプログラム
モデリング1:モデル図の理解:アナリシスパターン,事例
モデリング2:モデル図の作成,モデルの評価基準
モデリング3:例題によるモデル図の作成
6
10. 状態モデル
10.2 活動図(1)
 活動図
状態図の拡張
活動(activity)
遷移
同期バー
判断
開始マーカ
終了マーカ
レーン(アクタ)
会員
[書名が
わかっている]
[書名がわからない]
文献を検索する
書架に本を見つける
図書館の職員に貸出を申し出る
本
[帯出許可前]
貸出の申し出を受ける
貸出を記録する
制御構造を書く
ワークフロー図
図書館の職員
本を受け取って帯出する
本
[帯出許可後]
本の帯出許可をする
split と join
loop
オブジェクトフロー
7
10. 状態モデル
10.2 活動図(2)
 ビジネスプロセス
ワークフローで表現
ワークフローの基本単位
Customer-Performer
 活動と情報システムの支援
打診
Customer
契約
Performer
Customer
報告
Performer
実行
8
10. 状態モデル
10.2 活動図(3)
 ワークフロー図で書かれるもの
活動(アクタ自身の作業)
情報システムの支援あり
情報システムの支援なし
ユースケース
状態遷移するオブジェクト(オブジェクトフロー)
cf. IDEF0
 ワークフロー図書かれないもの
システム外部のコミュニケーション
Customer-Performer
コミュニケーションの媒体
control
《Activity》
resource
resource
情報システムの本質
control
9
10. 状態モデル
10.2 活動図(4)
受注係
出荷係
 ワークフロー図
WfMC+Kodama
Object
出荷指示をする
[状態]
活動(アクタの振舞い)
システム外のアクタ間の通信
実行コスト(所要時間,必要スキル)
顧客→受注係
注文を受け
る
受注係
在庫を確認
する
出荷する
受注係
出荷係
出荷指示を
する
出荷する
輸送係
納入する
cancel
出荷指示書
10
10. 状態モデル
10.2 活動図(5)
 Eriksson & Penkerの拡張
 プロセス図
=
《goal》
《people》
Process Goal:
QuantitativeGoal
PeopleObj
《control》
《achieve》
《information》
《process》
InputObjA
《physical》
Process
OutputObj
《physical》
InputObjB
《supply》
《supply》
《physical》
《information》
PhysicalObjB
InformationObj
11
10. 状態モデル
10.2 活動図(6)
 ATOのモデル
 Benetonのビジネスモデル
製品在庫最小化(中間製品での在庫)
染色を最終工程に(オプションを最終工程で実装する)
売れ行き,
注文
市場に対する
情報,知識,
予測
《physical》
材料,部品
《process》
《process》
販売計画
販売
発注
《physical》
製品
[出荷済]
《供給》
《process》
《process》
生産
染色
《physical》
最終製品
《physical》
中間製品
12
10. 状態モデル
10.2 活動図(7)
 演習13
プロセス図を使って,ファーストフード店のビジネスプロセスを
書いてください
窓口業務だけでなく周辺のプロセスも考えて
13
オブジェクト指向モデリング
11. 静的モデル4
11.1 世界認識
11.2 基本定義
11.3 基本課題
11.4 ユースケース記述
11.5 概念レベルのモデリング
11.6 モデルの揺さぶり
14
6.高度な関連
6.6 型モデルの演習(2)
 手順
基本定義から基本課題を発明
する
基本課題からユース
ケースを発明する
ワークフローを書い
て,隠れたユース
ケースを洗い出す
初期の概念モデルを書く
モデルを揺さぶる
疑問点を考える
本質的な概念モデルを導く
15
11. 静的モデル4
11.1 世界認識
 ファーストフード店の窓口システム
 世界認識
メニューから商品を選択する
その都度商品(現物)を作る
同時に0個以上の商品を注文する
その場で精算する
利益の源泉は…
16
11. 静的モデル4
11.2 基本定義
 ファーストフード店の窓口システム
 基本定義
お客様の注文を聞いて,販売するシステム
 CATWOE
Customer:窓口係,調理係
Actor:窓口係
Transformation:商品を販売する
Weltanschauung:商品がたくさん売れることはいいことだ
Weltanschauung:利益率の高い商品が売れることはいいことだ
Owner:店長
Environment:他にもファーストフード店がある
 基本定義(再定義)
お客様の注文を素早くさばく(回転率を上げる)ことを支援し,売上
げを確保するシステム
17
11. 静的モデル4
11.3 基本課題
 ファーストフード店の窓口システム
 基本課題
簡単に注文を入れるためには,どうすればいいか。
品質を維持しつつ,素早く注文品を出すにはどうすればいいか。
 機能
客がメニューから自分で注文を入れるようにする。
客が入ってきた時点で(注文を聞く前に),何を注文するかを予想し
て商品を作り始める。
窓口係の報酬を,扱った客数を基準にして支払う。
:
:
18
11. 静的モデル4
11.4 ユースケース記述
 ユースケース「需要を予測する」
ユースケース名:需要を予測する
アクタ:調理担当者
目
的:需要に合わせて,あらかじめ商品を作っておきたい。
事前条件:なし(需要モデルがある)。
基本系列:①アクタがこのユースケースを起動する。
②システムは予測パラメタの指定を要求する。
③アクタはそれらの値を提示する。
④システムは商品別の需要予測量を求めて提示する。
代替系列:なし。
事後条件:なし(予測量が提示されている)。
備
考:①実績データが必要
たぶん,意味の
ない機能
19
11. 静的モデル4
11.4 ユースケース記述
 ユースケース「販売を記録する」
ユースケース名:販売を記録する
アクタ:窓口係
目
的:実績を記録して,売上げ額,利益を知りたい。統計情報を得て,販売戦略に
活かしたい。
事前条件:その販売実績は記録されていない。
基本系列:①アクタがこのユースケースを起動する。
②システムは販売した商品,数量,顧客タイプの入力を促す。
③アクタはそれらの値を提示する。
④システムはそれらの値と日時,担当者を記録する。
代替系列:なし。
事後条件:その販売実績が記録されている。
備
考:①顧客タイプとは,顧客の分類で,性別×年齢層で表現する。年齢層とは,
20才未満,20歳代,30歳代,40歳以上。
②担当者情報は,このユースケース起動以前(ログイン時)にシステムに設
定されているものとする。
20
11. 静的モデル4
11.5 概念レベルのモデリング
 演習14
前のユースケース「販売を記録する」を考慮して,概念レベル
の型モデルを書いてください。
[解答例]
21