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

オブジェクト指向モデリング
[3]
2003年10月14日
2. モデリング言語
2.2 表記法の概要(0)
 9種の表記法
関心
観点
静的側面
概念レベル
仕様レベル
実装レベル
図の要素
モデル管理
汎用拡張機構
アクションの記述
機能側面
動的側面
物理側面
③ユースケース図
①クラス図
②オブジェクト図
④協調図
⑤シーケンス図
⑥ステート
⑦活動図
チャート図
⑧コンポーネント図
⑨配置図
ノート,型-インスタンスの対応
パッケージ
制約と注釈,ステレオタイプ
アクションセマンティクス
2
2. モデリング言語
2.3 開発プロセスとモデル
 ソフトウエアプロセス
 ワークフロー
 フェーズ設定
制約,価値観
変換(演繹)
判断
Function
Function
Requirements
要求記述
変換
機能
機能
方向づけ
推敲
構築
移行
分析
設計
制作
検査
制約,価値観
変換(演繹)
判断
変換
Feature
Feature
Feature
機能
機能
機能
制約,価値観
変換(演繹)
判断
変換
Artifact
Artifact
Artifact
Artifact
実装
実装
実装
実装
要求記述(ユースケース)
分析
設計
概念レベル
仕様レベル
型図(クラス図)
クラス図
ワークフロー(活動図)
相互作用図
制作
検査
実装レベル
クラス図
配置図
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
オブジェクト指向モデリング
3. 概念とクラス
3.1 概念レベル
3.2 クラス図の背景
3.3 概念
3.4 概念と型
3.5 クラスシンボル
3.6 属性と操作
5
3. 概念とクラス
3.1 概念レベル
 概念モデル
 対象世界を深く理解する
 概念間の関係として書く
 概念の意味は関係で定まる
 最小かつ完備
世界
 なぜ概念レベルのモデルを書くのか
 対象世界を本質的に理解する
 実装技術上の都合によって,理解をゆがめない
 より良い情報システムを作りたい
世界の変化に情報システムが追随できるように
6
3. 概念とクラス
3.2 クラス図の背景
 概念データモデル
E-R図(P.P.Chen)
さまざまなE-R図の拡張
情報図(Shlaer-Mellor)
OMTのオブジェクト図(Rumbaughほか)
 記述ルール
 クラス図
概念構造
モジュール構造
学生
学生
学生
氏名
生年月日
学生
氏名
生年月日
N
履修
N
履修
科目
履修
科目
成績
履修
* 成績
科目
科目名
単位
*
科目
科目名
単位
7
3. 概念とクラス
3.3 概念(1)
 概念
「商品」というと具体的に思えるが
他の概念やプロセスとの関わりがあって,はじめて意味が定まる
その意味が,将来,変わるかもしれない
観察者によってプロセスの意味が異なる
「取引」か「販売」か
ビュー(外部表現)は概念でない
名前を持つ
 エンティティセット
 よい概念を
見つける
磨く
在庫品
製品
送り荷
サービス
商品
8
3. 概念とクラス
3.3 概念(2)
 概念を集合として扱う
辞書的定義「学校で学ぶ
人」が,そのまま問題領域
で使われることはない
たとえば,学生とは...
「本学の入学試験に合格して入学手続きをした個人」
学生である人とそうでない人を分ける・・境界を定める
 集合を特徴づける属性
 関係が概念を決める
「学生」の集合
属性の値
氏名:小泉淳之介
学部:政経
生年月日:1982年5月4日
属性
・氏名
・学部
・生年月日
属性の値
氏名:児玉公信
学部:心理学
生年月日:1983年11月11日
属性の値
氏名:田口洋介
学部:工学
生年月日:1978年8月20日
属性の値
氏名:中山美子
学部:農学
生年月日:1982年9月30日
学生でない人
9
3. 概念とクラス
3.3 概念(3)
 演習1
ファーストフード店のシステムを考えて,
重要と思われる概念を1つ挙げて,その主要な属性と,インス
タンスをいくつか示してください。
10
3. 概念とクラス
3.4 概念と型
 概念を「型」に対応づける
 「型」を「クラス」に対応づける
型:構造化された概念
クラス:プログラムを構成するモジュールの単位
概念をエンティティセットに
対応づける
エンティティセットをRDBの
「表」に対応づける
オブジェクト指向モデリング
児玉公信
生産管理システム入門
小泉淳之介
田口洋介
中山美子
「学生」の集合
学生
氏名
学部
:
0..*
問題発見と問題解決
履修する
「授業科目」の集合
履修する
授業科目
0..* 名称
教員
:
11
3. 概念とクラス
3.5 クラスシンボル
 型の構造をクラス図で表記する
クラスシンボル
クラス名→型名
データ→(型の)属性
メソッド→(型の)操作
関連
関連名
多重度
学生
氏名
学部
:
名前を教えて
年齢を教えて
:
授業科目
*
履修する
名称
教員
* :
履修申請する
教員を変更する
:
12
3. 概念とクラス
3.6 属性と操作(1)
 属性
 理解に必要な属性
本
何番め
購入日
借りた日
返却予定日
:
書名
is a copy of
0..*
書名
著者
訳者
発行日
1..1 ISBN
貸出可能数
:
13
3. 概念とクラス
3.6 属性と操作(2)
 操作
 その型が持つ責任
本
何番め
購入日
借りた日
返却予定日
:
is貸出可能()
借りる()
:
書名
is a copy of
0..*
書名
著者
訳者
発行日
1..1 ISBN
貸出可能数
:
貸出実施()
ある機能を実現
するために必要
な操作
14
3. 概念とクラス
3.6 属性と操作(2)
 操作の割当て
ユースケース「本を借りる」
書名
d:貸出
a:会員
b:本
c:書名
利用者
new
書名
著者
訳者
発行日
ISBN
/貸出可能数
:
1..1
is a copy of
0..*
会員
氏名
住所
:
isValid()
:
貸出
本
借りた日
0..* 返却予定日
1..1
:
借りる()
返却()
:
0..*
何番め
購入日
1..1 :
is貸出可能()
:
15
問題解決からビジネスモデリングへ
4. 関連
4.1 関連と多重度
4.2 ロール
4.3 再帰関連
4.4 汎化関連
4.5 集約関連
4.6 補足的な関連
16
4. 関連
4.1 関連と多重度(1)
 関連(association)
ソースを主語とし,関
連名を述語として読
めるように...
関連の方向
ソース → ターゲット
本
is a copy of
0..*
1..1
書名
実践ファンクションポイント法
1番め
2番め
リファクタリング
3番め
UMLを使って
本
書名
17
4. 関連
4.1 関連と多重度(2)
 多重度(multiplicity)
インスタンスどうしの対応(リンク)数
ターゲットの近傍に表記
0,1,*
本
最小数..最大数
is a copy of
0..*
1..1
書名
実践ファンクションポイント法
1番め
2番め
リファクタリング
3番め
UMLを使って
本
書名
18
4. 関連
4.1 関連と多重度(3)
 多重度(multiplicity)
ソースのある1つのインスタンスからリンクされるターゲットの
インスタンス数
0..*
本
書名
1..1
実践ファンクションポイント法
1番め
2番め
リファクタリング
3番め
UMLを使って
本
書名
19
4. 関連
4.1 関連と多重度(4)
 多重度の表記
最小数..最大数 「2..5」
列挙
「2,5」,「0..1,3,5」
無限
「*」
省略
「0..*」=「*」,「1..1」=「1」
 関連の表記
関連名:自明なら省略
関連の方向:自明なら省略
is a copy of
本
0..*
本
*
1..1
書名
1
書名
20
4. 関連
4.1 関連と多重度(5)
 演習2
次の条件で,多重度を埋めてください
条件:「学生」は最多で6つまでの「授業科目」を履修でき,各「授業科
目」には最多で25人の「学生」を登録できる。
学生
授業科目
21