47070 オブジェクト指向モデリング [11] 2002年1月8日
オブジェクト指向モデリング 前回 モデル図の理解 10.1 責任関係 10.2 勘定 10.3 生産管理システム 10.4 素材発注システム
責任関係 知識レベルと操作レベル パワータイプ(ベキ型) 操作レベルの型の制約を記述 鏡像関係 モデル図の理解 人 組織 期間 作業 パーティ 責任関係 1 * パーティ型 責任関係型 型 1..* 実行者 依頼者 有効期限 inv: collx:set(責任関係)=self.the責任関係 collX->forALL( x | x.型.依頼者->includes(x.依頼者.型) and x.型.実行者->includes(x.実行者.型))
勘定 要約 ロールアップ モデル図の理解 このインスタンス図はどうなる? inv: /対象エントリ=self.構成要素./対象エントリ トランザクション 対象エントリ エントリ 数量 : 量 1 2..* /対象エントリ 構成要素 {抽象} 勘定 / 残高 : 量 明細勘定 要約勘定 * 0..1 {階層} /対象エントリ=self.対象エントリ
第11回 モデリング1 11.1 自動改札システム 11.2 CS4 11.3 モデルの良さの基準 テキスト 第6章 オブジェクト指向モデリング 第11回 モデリング1 11.1 自動改札システム 11.2 CS4 11.3 モデルの良さの基準 テキスト 第6章
11.1 自動改札システム 自動改札システムのユースケースを考えて ユースケース図 ユースケース記述 システム境界 アクタは誰? モデリング1 11.1 自動改札システム 自動改札システムのユースケースを考えて ユースケース図 ユースケース記述 システム境界 アクタは誰? 乗客 チェックインする 自動改札システム チェックアウトする 切符を買う 乗車料金を決定する 新幹線にチェックインする 検札する 事業者
11.1 自動改札システム 自動改札システム モデリング1 普通 特急 急行 グリーン 便 座席 サービス 指定席 事業者 有効期間 割引 <<多重>> 便 * 座席 サービス 指定席 事業者 有効期間 割引 * +乗車 駅 * 乗車区間 * * * * 子供 学割 通勤 回数券 乗車権 +降車 * * /料金 +経由 * * * 乗客 行使前 行使中 行使済 決済方法 1 定期券 切符 プリペイドカード *
11.1 自動改札システム ユースケース記述 モデリング1 ユースケース名:チェックインする。 アクタ:乗客 目的:妥当な乗客であることを証明し入場する。 事前条件:アクタは入場していない。 基本系列: ①アクタは,自分が妥当な乗客である証明をシステムに提示する。 ②システムはその証明を確認し,妥当であれば入場を許す(同時にその乗 客が入場した旨を記録する)。 ③アクタは入場する。 ④システムは,そのアクタが入場したとき,その証明を返却する(直ちに,他 の乗客が続いて入場しないようにする)。 事後条件:アクタは入場している(入場が記録されている)。 代替系列:A 基本系列②で証明が妥当でなかった場合,... 備考:システムは次の乗客を停滞させないこと。 システムは乗客の再入場を阻止する。
11.1 自動改札システム チェックインする アクタ 乗客か自動改札機か 現物とオブジェクトは別 モデリング1 自動改札機 切符 ドメイン U/I アクタ チェックインする アクタ 乗客か自動改札機か 現物とオブジェクトは別 自動改札機 切符 : 乗車権 : 乗車区間 乗車駅 :駅 アクタ isValid checkIn mark OK
11.2 CS4管理システム CS4の優等コースの管理を支援するシステム RFP(Request for Proposal) 契約 実行 モデリング1 166~172ページ 11.2 CS4管理システム CS4の優等コースの管理を支援するシステム RFP(Request for Proposal) 要求仕様書 複数のProposal 目的 スコープ(機能) 体制 見積もり(工数,工期,スケジュール) 入札,業者選定 契約 実行 納入 Customer Performer 打診 契約 実行 報告
11.2 CS4管理システム CS4コースの管理の現状説明 優等コース モデリング1 166ページ CS学科のシラバス策定委員会 学科主任 来年度の授業科目(module)を決定する 学科主任 授業科目の講義担当者(講師;lecturer)の割当 講師 コースハンドブックの紹介文の更新 CS4とりまとめ担当者 コースハンドブックの中核部分(紹介文以外)の更新 講師が書いたコースハンドブックの紹介文のチェック ハンドブック(LATEX)をHTMLに変換 進級以外のCS4受講者(聴講生)をUTOに通知 CS3とりまとめ担当者 進級する学生の一覧をCS4のとりまとめ担当者とUTOに通知 Customer Performer 打診 契約 実行 報告
11.2 CS4管理システム CS4コースの管理の現状 モデリング1 166ページ 学習指導担当者(DoS) 学生 教務課(UTO) 学生にアドバイスする 履修授業科目選択の相談 学生 授業科目への仮登録;履修申請書を教務課に提出 教務課(UTO) ハンドブックの印刷 CS4学生原本を保守 履修者むけメーリングリスト(cs4class)の保守 履修申請をチェック CS4の学生であること 授業科目の組み合わせの妥当性 学生との話し合い 履修者一覧を作成し,講師に渡す 開講から3週以内に渡してほしい これは単なる意味の説明 これが本音?
11.2 CS4管理システム RFPを受けての質問 調査と分析 認識の確認 提案の方向性の確認 こんな機能が欲しい? モデリング1 167ページ RFPを受けての質問 認識の確認 不明の点 記述されない状況の明示化 不合理点の指摘 提案の方向性の確認 調査と分析 こんな機能が欲しい? 全職員(特にCS4とりまとめ担当者)の業務負荷を減らしたい 学生が直接,オンラインで授業科目を登録するようにしたい 最新の正確な情報を容易に得たい 情報ソースの追跡を可能にしたい 情報作成を自動化して,講師に対する情報提供を迅速にしたい 168ページ
すなわち,基本的な現状モデル(as-is)が新モデル(to-be) モデリング1 11.2 CS4管理システム われわれの方法 基本定義 コースハンドブックの作成から履修登録までを,より迅速かつ正確に行うことを支援するシステム Customer:講師,UTO,学生,CS4とりまとめ担当 Agent:講師,UTO,学生,CS4とりまとめ担当,CS3とりまとめ担当,学科主任,DoS Transformation:コースハンドブックを作成し,履修登録を行う Weltanschauung:講師の手間を省いて,授業に集中させたい Owner:大学 Environment:CS4学科 基本課題 迅速かつ正確な情報の収集と提供 →ワークフロー自動化(コミュニケーション) →進度管理 すなわち,基本的な現状モデル(as-is)が新モデル(to-be)
11.2 CS4管理システム ワークフローの確認 コースハンドブックの作成 モデリング1 シラバス策定委員会 学科主任 講師 授業科目の設定 [問題あり] シラバス策定委員会 学科主任 講師 CS4とりまとめ担当者 コースハンドブックをチェックする コースハンドブックをHTMLに変換 UTO コースハンドブックを印刷する 担当講師を決める コースハンドブック紹介文を更新する コースハンドブックの中核部分を作成する
11.2 CS4管理システム ワークフローの確認 CS4学生一覧表の作成 モデリング1 CS3とりまとめ担当者 CS4とりまとめ担当者 UTO 進級学生一覧を とりまとめる CS4への聴講生一覧をとりまとめる CS4学生一覧表原本の保守 メーリングリストの更新
11.2 CS4管理システム ワークフローの確認 履修者一覧表の作成 モデリング1 学生 UTO DoS 履修申請書を 作成する 履修申請書を チェックする [不明点あり] or UTOと話し合う 問い合わせを受ける [不明点なし] 授業科目ごとの 履修者一覧の作成 一覧表の配付
教科書(p.168)のユースケースの粒度は大きすぎる モデリング1 11.2 CS4管理システム 教科書(p.168)のユースケースの粒度は大きすぎる ユースケースの作成 どのアクティビティを取り出すか コースハンドブックを作成する CS4学生リストを生成する 履修申請する システム境界を決める 機能の発明 概念モデルを作る ユースケースの候補 1. コースハンドブックの授業科目紹介文を書く。 2. コースハンドブックの中核部分を書く。 3. コースハンドブックを編集する。 4. コースハンドブックをHTMLに変換する。 5. コースハンドブックを印刷する。 6. CS3→CS4進級者を登録する。 7. CS4聴講生を登録する。 8. CS4登録学生を保守する。 9. CS4メーリングリストを保守する。 10. 履修申請を行う。 11. 履修申請を照会する。 12. 履修申請を確定する。 13. 履修予定者リストを作成する。 アクティビティの取り出し システム境界を決める 機能の発明 概念モデリング
11.2 CS4管理システム ユースケースの作成 モデリング1 ユースケース名:コースハンドブックの授業科目 紹介文を書く。 アクタ:講師 Actor System 打診 契約 実行 報告 ユースケースの作成 ユースケース名:コースハンドブックの授業科目 紹介文を書く。 アクタ:講師 目的:学生が授業科目を正しく選択できるように情報を提供する。 事前条件:当該年度の紹介文は登録されていない。 基本系列: ①アクタは,対象の授業科目を指定して紹介文の入力を要請する。 ②システムは授業科目のインデックス情報(と,過去の紹介文があればそれ) を表示して,紹介文の入力を促す。 ③アクタは紹介文を入力する。 ④システムは,当該年度の紹介文が入力されたことを登録する。 事後条件:当該年度の紹介文が登録されている。 代替系列:... 備考:紹介文は400文字程度であること。
11.2 CS4管理システム 概念モデリング 主要な概念から着手 時間の観念 モデリング1 学生,講師,授業科目 170ページ 聴講生 DoS 一般学生 講師 優等コース * 授業科目 担当する 1..* 6..* 学生 6 履修する 概念モデリング 主要な概念から着手 学生,講師,授業科目 時間の観念 170ページ
11.2 CS4管理システム 実装モデリング 責任の配置 操作上の人工物 冗長な参照の削除 モデリング1 Login 授業科目 講師 聴講生 DoS 学生 氏名 * 一般学生 validateChoices() 講師 teachModule() 優等コース 名称 一般説明文 isHandbookReady() isAcceptable() 履修登録 成績 registerEnroll() deregisterEnroll() chooseModule() chooseStudent() 6 授業科目 科目名 紹介文 setLecturer() checkOutDescription() checkInDescription() isUpToDate() makeStudentList() 担当する 1..* 6..* Registry getStudent() getLecturer() getDos() getModule() getCourse() getEnroll() <<Facade>> Login setup() adminstratorLogin() addStudent() addLecturer() addModule() changeLecturer() studentLogin() lecturerLogin() <<UserInterface>>
11.2 CS4管理システム ユースケース「履修申請を行う」 シーケンス図の例 モデリング1 アクタ : Registry : 優等コース : 履修登録 : 学生 getStudent( ) new setEnroll( ) chooseModule( ) isAcceptable( ) getModule( ) registerEnroll( )
モデリング1 11.2 CS4管理システム ユースケース「授業科目紹介文を書く」 シーケンス図の例
11.3 モデルの良さの基準 ユースケース 型モデル(概念レベル) 妥当なユースケース 世界(UoD)が記述できている モデリング1 11.3 モデルの良さの基準 ユースケース 妥当なユースケース 目的充足性(効果的) 型モデル(概念レベル) 世界(UoD)が記述できている 適度な抽象性 一般性 単純性(良い概念,良い構造) 耐変更性 再利用性 ユースケースが実現できている 理解の共有 無名の質
宿題 別紙の課題(酒在庫問題)を読んで, ①基本定義を想定する ②基本的なユースケースを記述する ③型モデル(概念レベル)を作ってください。 モデリング1 宿題 別紙の課題(酒在庫問題)を読んで, ①基本定義を想定する ②基本的なユースケースを記述する ③型モデル(概念レベル)を作ってください。 必要に応じてアクティビティ図などを作ってもかまいません。