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