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