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