問題解決からビジネスモデリングへ

オブジェクト指向モデリング
[2]
2003年10月 7日
授業資料の置き場
URL http://www.crew.sfc.keio.ac.jp/
lecture/2003objmodel/index.html
2
1.モデルとは何か
1.1 モデル
 モデルとは,
ある人にとっての,
ある状況あるいは状況の概念の
明示的な解釈
 概念モデル
関心領域についての考察を助ける
構造と論理を定義する
 解釈の主体
 観察の視点
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:オブジェクト図
静的モデル4:高度な関連
機能モデル1:ユースケース
機能モデル2:ユースケース記述,シナリオ
動的モデル:協調図,シーケンス図,状態図,活動図
モデル図の理解:アナリシスパターン,事例
モデリング1:モデル図の作成,モデルの評価基準
モデリング2:例題によるユースケース記述
モデリング3:例題によるモデル図の作成
4
オブジェクト指向モデリング
2. モデリング言語
2.1 UMLの歴史
2.2 表記法の概要
2.3 開発プロセスとモデル
5
2. モデリング言語
2.1 UMLの歴史
 Three Amigos
James Rumbaugh
Grady Booch
Ivar Jacobson
 Unified Modeling Language
1995年10月
1997年 1月
1998年 6月
2001年 2月
2003年 5月
2003年12月?
Openなプロセスに
Unified Method V0.8
よって改良
UML 1.1 on OMG
UML 1.3
ISO/IEC 19501-1(DIS)
UML 1.4
UML 1.4.1
UML 1.5
UML 2.0
 UML Specification
手続き中
6
2. モデリング言語
2.2 表記法の概要(0)
 9種の表記法
関心
観点
静的側面
概念レベル
仕様レベル
実装レベル
図の要素
モデル管理
汎用拡張機構
アクションの記述
機能側面
動的側面
物理側面
③ユースケース図
①クラス図
②オブジェクト図
④協調図
⑤シーケンス図
⑥ステート
⑦活動図
チャート図
⑧コンポーネント図
⑨配置図
ノート,型-インスタンスの対応
パッケージ
制約と注釈,ステレオタイプ
アクションセマンティクス
7
2. モデリング言語
2.2 表記法の概要(1)
制約:
対応する明細の価格の合計は
1円以上であること
 共通の図形要素
 ノート
 パッケージ
 依存性の矢印
 ステレオタイプ
明細
価格
{ordered}
ノート
取引
*
パッケージ
人事
給与
厚生
《requirement》
A社の構造体に合わせる
依存性の矢印
《実装クラス》
銀行口座
《実装》
《type》
銀行口座
請求管理
口座管理
8
2. モデリング言語
2.2 表記法の概要(2)
 クラス図
 オブジェクト図
蔵書している
1
リファクタリング
2
集合と要素
6
3
アナリシスパターン
4
5
:本
蔵書番号=1
借りた日=02.06.20
返却予定日=02.07.10
:
オブジェクト
本
:書名
:本
書名=リファクタリング
著者=Fowler,M.
訳者=児玉公信
現在の貸出し可能数=2
:
蔵書番号=2
借りた日=
返却予定日=
:本
蔵書番号=3
借りた日=
返却予定日=
書名
本
蔵書番号
借りた日
返却予定日
:
is貸出し可能()
借りる()
:
書名
関連名
蔵書している
*
関連
多重度
1
書名
著者
訳者
現在の貸出し可能数
:
貸出し実施()
返却()
リンク
クラス
9
2. モデリング言語
2.2 表記法の概要(2)
 クラス図の例
カテゴリ
名称
/売上金額
/在庫
日
/在庫量
*
1
/商品別集計
日
/売上金額
/製造原価
/利益
1
1
*
商品
商品名
日 単価
原価
/在庫
1
*
{xor}
*
Entry
数量
*
1
Transaction
日
時
1
導出:
let x:Entry=self.the商品.theEntry in
/製造原価
=x->select(e| (isTypeOf(e.theTansaction)
=製造 or 廃棄)
and (e.theTransaction.日=self.日)
-> forAll(e| e.数量 * self.the商品.原価)
->sum
*
現物
製品番号
/賞味期限
1
theTransactionが
生産または廃棄
のとき,the商品は
導出
廃棄
製造
販売
/合計金額
10
2. モデリング言語
2.2 表記法の概要(3)
 ユースケース
貸出要求
司書
 ユースケース図
 ユースケース(記述)
返却情報
図書館システム
本の情報
機能要求の記述
どんな機能が必要かは分解していけばわか
る?
 シナリオ
図書館システム
本を貸出す
本の返却を受付ける
司書
本を書架に戻す
11
2. モデリング言語
2.2 表記法の概要(4)
 相互作用図
:書名
責任の配分
オブジェクト間の対話
:本の借り手
1.2:貸出し実施
借りたい
 協調(collaboration)図
 シーケンス図
:会員
:本
1:借りる
1.1: is貸出し可能
:会員
:本
:書名
:本の借り手
借りたい
1:借りる( )
1.1:is貸出し可能( )
生存線
活性期間
1.2:貸出し実施( )
12
2. モデリング言語
2.2 表記法の概要(5)
 状態図
 ステートチャート図
状態
遷移
イベント[ガード]/アクション
返却()
返却()
遷移の矢印
貸出し不可
初期状態
貸出し可
貸出し実施()[最後の本]
状態
イベント
貸出し実施()[最後の本でない]
13
2. モデリング言語
2.2 表記法の概要(6)
 状態図
会員
司書
本を検索する
貸出を確認
する
 活動(activity)図
制御構造
if-then-else
do-while / do-until
[なし]
[だめ]
[あり]
ワークフロー
書架に本を
見つける
the本:蔵書
[未貸出]
貸出を記録
する
split / join
貸出を申し出
る
オブジェクトフロー
遷移の矢印
[よし]
帯出を許可
する
許可
[不可]
[可]
帯出する
the本:蔵書
[貸出済]
オブジェクト
14
2. モデリング言語
2.2 表記法の概要(7)
 物理図
:司書モジュール
 コンポーネント図
 配置図
コンポーネント
is貸出し可能
《CORBA》
:蔵書モジュール
pc1
《LAN》
m1:
mailserver
:hub
fw1:
firewall
server1:
httpserver
ノード
15
2. モデリング言語
2.3 開発プロセスとモデル
 ソフトウエアプロセス
 ワークフロー
 フェーズ設定
制約,価値観
変換(演繹)
判断
Function
Function
Requirements
要求記述
変換
機能
機能
方向づけ
推敲
構築
移行
分析
設計
制作
検査
制約,価値観
変換(演繹)
判断
変換
Feature
Feature
Feature
機能
機能
機能
制約,価値観
変換(演繹)
判断
変換
Artifact
Artifact
Artifact
Artifact
実装
実装
実装
実装
要求記述(ユースケース)
分析
設計
概念レベル
仕様レベル
型図(クラス図)
クラス図
ワークフロー(活動図)
相互作用図
制作
検査
実装レベル
クラス図
配置図
16