Transcript ppt形式
オブジェクト指向モデリング
[8]
2003年11月18日
7. 機能モデル1
7.1 ユースケース
型モデルに文脈を与える
ソフトウエアに割り当てられた要求
アクタとシステムの関わり
アクタ
システム内部は書かない
ユースケース(記述)
機能要求の記述
ユーザが読んで分かる
相互作用図を書く起点
型モデルの検証
ユースケース図
ユースケース
在庫を確認する
受注係
注文を受ける
システムの機能の網
羅性をみる
アクタ
ユースケース名
開発のスコープ(要求セット)
2
7. 機能モデル1
7.5 ユースケース記述(1)
ユースケース記述の形式
「(アクタが)○○したい」と書く
と,目的らしくなる
ユースケース名 ・・・・・「○○する」
アクタ
目的 ・・・・・・・・アクタまたはシステムのownerにとっての目的。
事前条件 ・・・・UC実行前の主要なオブジェクトの状態
基本系列 ・・・・アクタとシステムのやりとり
代替系列 ・・・・例外のやりとり
事後条件 ・・・・UC実行後の主要なオブジェクトの状態
備 考・・・・・・・ UC理解のためなら何でも書く。非機能要求もここで
シナリオを付加することもある
そのままテストケースになる
アクタとシステムとのやりとり
実装を書かない(設計者の仕事)
実装を示唆するなら備考で
3
オブジェクト指向モデリング
シラバス
授業計画
回
1
2
3
4
5
6
7
8
9
10
11
12
13
月日
9月 30日
10月 7日
10月14日
10月21日
10月28日
11月 4日
11月11日
11月18日
12月 2日
12月 9日
12月16日
1月13日
1月20日
内容
オリエンテーション:モデルとは何か。
モデリング言語:UMLの概要
静的モデル1:概念とクラス
静的モデル2:関連
静的モデル3:オブジェクト図
静的モデル3:オブジェクト図(続き),モデリング
機能モデル1:ユースケース,シナリオ
機能モデル2:要求抽出,協調図,シーケンス図,状態モデル:状態図
機能モデル3:活動図,静的モデル4:ユースケースに基づくモデリング
実装レベル:実装モデルとプログラム
モデリング1:モデル図の理解:アナリシスパターン,事例
モデリング2:モデル図の作成,モデルの評価基準
モデリング3:例題によるモデル図の作成
4
オブジェクト指向モデリング
8. 要求抽出
8.1 問題認識と問題解決のプロセス
8.2 SWOT分析
8.3 ソフトシステムズ方法論
8.4 課題から解決策へ
5
8. 要求抽出
8.1 問題認識と問題解決のプロセス(1)
何を問題と思うか
人がいる
主題
理想状態(to-be)と現実(as-is)とのギャップ
ヴィジョン
創造的緊張
価値観,価値評価
理想状態は人によって異なる
テンション
世界の範囲(Universe of Discourse)
解決すべき問題はたくさんあるし
すべてが解決できるわけではない
解決の見通し
現状
問題認識と解決の見通しは表裏一体
6
8. 要求抽出
8.1 問題認識と問題解決のプロセス(2)
問題認識
状況は末端や周辺に表れる
状況が問題と感じるにはヴィジョンが必要
ボトムアップに問題を収集できない
トップダウンでは状況が見えない
繰り返し
対象領域に関する知識の更新
解決の見通し
問題を見定める
関わる人々の合意
徐々にあぶり出されてくる問題と課題
問題を構造としてとらえる
7
8. 要求抽出
8.2 SWOT分析
ビジョン策定の技法
戦略定義:SWOT/TOWS
主題:全体戦略に対して
内部的な強み(Strength),弱み(Weakness)
外部的な機会(Opportunity),脅威(Threat)
を対応づけて,具体的戦略を決める
全体戦略
一見,トップダウンに戦略
を立てているように見える
が,実は整理をして,納得
させるための手段
外
部
機
会
脅
威
内部
強み
弱み
戦略
戦略
戦略
戦略
8
8. 要求抽出
8.3 ソフトシステムズ方法論
ハードシステムとソフトシステム
基本プロセス
理想状態とは
限らない
現実世界をシステム(ホロン)として認識する
要素に分解できない全体
人間活動システム
目的的活動(purposeful activity)
現実世界の状況
基本定義
認識
概念活
動モデル
活動の中で世界を見る
概念(活動)モデルを記述する
システムの基本定義(root definition)
「○○のために,○○することで,○○にする」
CATWOEによるチェック
基本定義の改訂
改善のための活動
基本課題の生成
Customer
Actor
Transformation
Weltanschauung
Owner
Environment
比較
CATWOE
Accommodation
改善のための活動
基本課題
9
8. 要求抽出
8.4 課題から解決策へ(1)
問題を改善する活動
基本課題:活動の成否を握る課題(task)
課題を解決する機能とマッピング
ビジネスのルールを変える,組織を変える
情報システムを使う/使わない
情報システム
課題
概念
現実世界
設計判断
課題
概念
課題
解決策の発明
分析判断
概念
要求
概念
概念活動モデル
UC
UC
概念レベル
設計レベル
10
8. 要求抽出
8.4 課題から解決策へ(2)
大学の図書館システム
基本定義(Root Definition)
「利用者に保有図書の貸出を行うシステム」
CATWOE分析
Customer:利用者
Actor:図書館職員
Transformation:図書を貸す
Weltanschauung:目的にふさわしい図書を貸し出すことで,効率的な教育
および研究を促す
Owner:大学
Environment:大学内の図書館および他大学の図書館
基本定義の改訂
「教育および研究を促進するために,大学が保有する図書を利用者
に効率よく貸出すことを管理するシステム」
課題:目的にふさわしい図書を取りそろえること(他大学との協力も)
課題:それによってどの程度効率化したかを計測する方法を考えること
11
8. 要求抽出
8.4 課題から解決策へ(3)
Accommodation
もう一度CATWOE分析
Customer:利用者
Agent:図書館職員
Transformation:図書を貸す
Weltanschauung:図書館職員の作業量を減らし,コストを削減する
Owner:大学
Environment:大学内の図書館および他大学の図書館
基本定義の再改訂
「図書館運営のコストを削減するために,図書の貸出しから返却まで
を,容易に追跡できるようにするシステム」
課題:タイミング良く貸し出すためには?
課題:確実に返却させるためには?
課題:
:
12
8. 要求抽出
8.4 課題から解決策へ(4)
演習12
大学の図書館システムの基本課題,
「タイミング良く貸し出す」または「確実に返却させる」
のために必要な機能を考えて,それをユースケースで記述し
てください。
13
オブジェクト指向モデリング
9. 機能モデル2
9.1 協調図
9.2 シーケンス図
14
9. 機能モデル2
9.1 協調図
相互作用図
1つのユースケースに関するオブジェクト群の振る舞い
協調図
シーケンス図
インスタンスレベルなので
シナリオというべき
責務の配置を決める
協調図
イニシエータ
オブジェクトどうしの関わりかた
オブジェクト図+メッセージフロー
オブジェクト
アクタ(イニシエータ)
メッセージ番号
入れ子のナンバリング
UsingUML:
書名
:本の借り手
2.1:borrowed
borrow(#1234)
:会員
#1234:本
2:borrow
1:okToBorrow
15
9. 機能モデル2
9.2 シーケンス図(1)
シーケンス図
オブジェクトどうしの関わりかた
オブジェクト
受渡しメッセージとその順序
結果の戻り
オブジェクト
生存線と活性区間
:本の借り手
:会員
#1234:本
生存線
borrow(#1234)
活性区間
時間の流れ
UsingUML:
書名
1:okToBorrow( )
2:borrow( )
2.1:borrowed( )
16
9. 機能モデル2
9.2 シーケンス図(2)
自分自身へのメッセージ送信
戻り値に名前をつける
オブジェクトの生成と削除
シーケンス図
協調図
タイミング
:本の借り手
制約
時間の経過
A
{C-A < 5sec.}
その会員:
会員
#1234:本
UsingUML:
書名
borrow(#1234)
1:okToBorrow( )
2:borrow( )
2.1:r =borrowed( )
制約
C
2.2:destroy(r)
17
9. 機能モデル2
9.2 シーケンス図(3)
協調図とシーケンス図
基本的に同じ内容
型/クラス図の修正
責務の配置
ナビゲーション可能性の確認
到達できるか
迷わないか
協調図
オブジェクト間の関連性を強調
シーケンス図
時間経過,タイミングを強調
18
オブジェクト指向モデリング
10. 状態モデル
10.1 ステートチャート図
10.2 活動図
19
10. 状態モデル
10.1 ステートチャート図(1)
状態図
オブジェクトの状態変化
ステートチャート図
活動図
ステートチャート図
状態,遷移,イベント
オブジェクトの状態
状態
遷移
イベント
return()
貸出し中
書架にある
borrow()
return()/book.returned(self)
貸出し中
書架にある
borrow()/book.borrowed(self)
状態を持つオブジェクト
アクション
開始,終了状態
returned()
開始マーカ
終了マーカ
遷移
イベント[ガード]/アクション
returned()
貸出し不可
貸出し可
borrowed()[最後の本]
ガード
borrowed()
[最後の本でない]
20
10. 状態モデル
10.1 ステートチャート図(2)
状態内のアクション
do/活動
entry/入場アクション
exit/退場アクション
/最初の品目を取り出す
チェック中
[未チェックの品目あり]
/次の品目を取り出す
do/品目チェック
[全品目チェック済み]
出荷中
do/出荷準備
[出荷完了]
a:注文
出荷済み
21
10. 状態モデル
10.1 ステートチャート図(3)
状態と型図
動的分類
本
本
状態
{abstract}
状態
《動的》
書架に
ある本
貸出し中
の本
書架に
ある
貸出し中
22