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
© Copyright 2024 ExpyDoc