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