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

オブジェクト指向モデリング
[1]
2003年9月30日
オブジェクト指向モデリング
講師紹介
 児玉公信
(株)エクサ 技術部 兼 エンタープライズソリューション事業部
オブジェクト指向技術の社内・社外のコンサルテーション
生産管理システムのコンサルテーション
SPBOM(オブジェクト指向による生産管理システム)の事業化
技術士(情報工学部門)
著書
「実践ファンクションポイント法」,日本能率協会マネジメントセンター,1999
「UMLによるシステム分析設計」,日経ITプロフェッショナル連載,2002.06~ 2003.12
訳書
Date著 「データベースシステム概論」,丸善,1997
Fowler著 「アナリシスパターン」,ピアソン,1998
Ricketts著 「ソフトウエア開発のプロジェクトマネジメント入門」,日刊工業,1999
Fowler著 「リファクタリング」,ピアソンエデュケーション,2000
Stevens著 「オブジェクト指向とコンポーネントによるソフトウェア工学」,ピアソン,2000
Marshal著 「企業情報システムの一般モデル」,ピアソン,2001
Erikkson & Penker著 「UMLによるビジネスモデリング」,ソフトバンク,2002
Garmus & Herron著 「ファンクションポイントの計測と分析」,ピアソン,2003
2
オブジェクト指向モデリング
参考文献
[1] Stevens,児玉監訳,「オブジェクト指向とコンポーネントによるソフトウェア工学-
UMLを使って-」,ピアソンエデュケーション,2000,ISBN4-89471-263-6
[2] OMG,OMG Japan SIG翻訳委員会 UML作業部会訳,「UML仕様書」,アスキー,
2001
[3] Fowler,児玉ほか訳,「アナリシスパターン」,ピアソンエデュケーション,1998
[4] 児玉,「UMLによるシステム分析設計」,日経ITプロフェッショナル連載,2002.06
~2003.12
[5] Marshal,児玉監訳,「企業情報システムの一般モデル」,ピアソン,2001
[6] Erikkson & Penker,児玉ほか訳,「UMLによるビジネスモデリング」,ソフトバンク,
2002
[7] GoF,本位田,吉田監訳,「デザインパターン(改訂版)」,ソフトバンク,1999
[8] Alexander,宮本訳,「オレゴン大学の実験」,鹿島出版,1977
[9] Jacobson,西岡ほか訳,「オブジェクト指向ソフトウエア工学OOSE」,トッパン,1995
[10] Wilson,根来監訳:「システム仕様の分析学」,共立出版,1996
3
オブジェクト指向モデリング
この講義の主題と目標
 思考を支えるモデリング
ビジネス要求の本質を理解し,当事者間で共有する活動
システム思考(対象をシステムとして見る)
情報システムは成長(変化)するものだという考え方
学ぶこと
 良いモデル
ビジネス構造やビジネスルールを的確に記述
変更に耐えられる問題領域の概念構造を追求する
 モデルの書き方
要求記述,対象領域の概念構造の記述,業務フローの記述,オブジェク
トどうしの対話の記述
4
オブジェクト指向モデリング
シラバス
 授業計画
回
月日
1 9月 30日
2 10月 7日
3 10月14日
4 10月21日
5 10月28日
6 11月 4日
7 11月11日
8 11月18日
9 12月 2日
10 12月 9日
11 12月16日
12 1月13日
13 1月20日
試験 1月27日
内容
オリエンテーション:モデルとは何か
モデリング言語:UMLの概要
静的モデル1:概念とクラス
静的モデル2:関連
静的モデル3:オブジェクト図
静的モデル4:高度な関連
機能モデル1:ユースケース
機能モデル2:ユースケース記述,シナリオ
動的モデル:協調図,シーケンス図,状態図,活動図
モデル図の理解:アナリシスパターン,事例
モデリング1:モデル図の作成,モデルの評価基準
モデリング2:例題によるユースケース記述
モデリング3:例題によるモデル図の作成
UMLの基礎知識,オブジェクト図,ユースケース記述,モデル図の作成
5
大福帳
 授業の途中で,ふと疑問に思ったことなどを「大福
帳」に書いてください。もちろん,その場で質問してい
ただくことも歓迎します。
 授業の終わりに回収します。
 講師のコメントを記入して,次回の授業の始めに,教
室の前に置いておくので,取りに来てください。
 自分の大福帳がすぐに分かるようにマークを付けて
おくとよいでしょう。
 1回目は,この授業に期待することなども書いていた
だければうれしいです。
6
オブジェクト指向モデリング
1. モデルとは何か
1.1 モデル
1.2 概念モデル
1.3 認識主体
1.4 モデリングの歴史
7
1.モデルとは何か
1.1 モデル
 モデルとは,
ある人にとっての,
ある状況あるいは状況の概念の
明示的な解釈
 モデルの分類
アイコン型モデル
ミニチュア模型(or 拡大模型)
類比型モデル
実物の代わり
分析型モデル
数式表現
世界
概念モデル
8
1.モデルとは何か
1.2 概念モデル
 概念モデル
関心領域についての考察を助ける
概念を図式化する
構造と論理を定義する
設計の前提とする
 メンタルモデル
Johnson-Lairdなど
思考操作のための概念構造の表現
捨象,単純化
構造の理解→シミュレーション,予測
ミシンの上糸と下糸
 認識の共有
モデル表記上の約束事→モデリング言語
9
1.モデルとは何か
1.3 認識主体
 モデルの認識主体
システムのOwner/Observerの視点
システムの階層性
要求を持つもの
アクタと役割(Role)
視点が異なるモデルは単純に接続できない
意味/世界観のギャップ
認識主体はモデルには現れない
 モデリングする人(modeler)
概念→仕様→実装
良いモデル
本質性
耐変更性
最小かつ完備
10
1.モデルとは何か
1.4 モデリングの歴史(1)
*c==‘/’
c++
 プログラムロジックの構造
c++
*c<>‘/’
 5つの構造
sequence
if-then-else
do-while/do-until
switch
search
open
yes
*c==‘/’
no
c++
c++
c++
get c
*c==‘/’ yes
*c==‘/’
no
 構造図
c==1
i=0
c==2
yes
no
c==3
i+=i/2 i-=i/2
yes
i > b
no
i++
get c
c==‘/’
t[i]==a
get c
no
yes
c==‘*’
c=‘’
c=t[i]
PADチャート
11
1.モデルとは何か
1.4 モデリングの歴史(2)
 プログラム構造図
 モジュール構造図
請求する
モジュール呼び出しと結果
 モジュラリティ
結合度
利用
レコード
正常結合
基本料金を
計算する
データ結合
同一データ結合(構造体)
制御結合(コマンド)
共通結合(大域領域の共有)
内容結合(相手の内容を直接参照)
基本
料金
利用
レコード
追加
料金
追加料金を
計算する
モジュール図
凝集度
Factoring(単一の機能に分解)
12
1.モデルとは何か
1.4 モデリングの歴史(3)
 プログラム構造図
 バッチ処理のプログラム
*
データの並び方の構造を反映
ST ○
繰り返し
前処理
プログラム
while
~EOF
主処理
後処理
ワーニエ法
open
clear GT
clear MT
clear ST
read
sum ST
read
if ST break
sum ST
print ST
MT += ST
print MT
GT += MT
print GT
close
MT○
GT○
print ST
MT += ST
if MT break
clear ST
print MT
GT += MT
if GT break
clear MT
ジャクソン木
print GT
clear GT
ST key
MT key
GT key
13
1.モデルとは何か
1.4 モデリングの歴史(4)
 DFD(Data-flow Diagram)
データが入って出ていくまで
source と sink … 外部エンティティ しかし,そうはうまく行かなかった…
「機能」は分解できるのか
process,data store,data flow
機能分割の原理
機能を分解して,最小単位でコーディング
モジュールの再利用
再組立ては可能なのか
得られたモジュールの粒度は
D
A
A
C
B
G
F
D
C
H
E
E
B
J
14
1.モデルとは何か
1.4 モデリングの歴史(5)
 ワークフロー図
作業の順序
業務フロー
制御構造
並行処理(分岐と待ち合わせ)
作業間で渡されるデータ
注文データ
注文を受け
る
在庫を確認
する
IDEF0(SADT)
受注係
注文を受け
る
WfMC+Kodama
受注係
受注係
在庫を確認
する
出荷係
出荷指示を
する
注文
出荷する
輸送係
納入する
出荷指示書
15
1.モデルとは何か
1.4 モデリングの歴史(6)
 データモデル
キーの参照関係
バックマン線図
スキーマ図
親子関係
繰り返し(1 : n)
階層型データモデル
ERD(Entity-Relationship Diag.)
3層スキーマモデル
外部スキーマ
概念スキーマ
物理スキーマ
意味データモデル
学生
学生
学生
学生
氏名
生年月日
履修
評価
科目
N
科目
成績
N
履修
履修
履修
* 成績
科目
*
科目
科目名
単位
16
1.モデルとは何か
1.4 モデリングの歴史(7)
1970年代
前半
1980年代
後半
前半
PASCAL
smalltalk
構造化プログラミング
1990年代
後半
C(ANSI) Ada
構造化方法論
前半
Eiffel
C++
IPT
ワーニエ法
JSP
モジュール構造図
構造化チャート
DFD
バックマン線図
ペトリネット
状態遷移図
E-R図
ラショナル
統一プロセス
エクストリーム
プログラミング
CASE
NSチャート
SADT図
(IDEF0)
IDEF1
IDEF1X
デザインパターン
シーケンス図
Odell図
MDA
アナリシスパターン
ビジネスモデリング
モジュール図,
プロセス図
さまざまな
クラス図,
オブジェクト図
前半
JAVA XML
RAD
HCP,
PADなど
JSD
HIPO
後半
オブジェクト指向方法論
ウォータフォール
2000年代
1.0
UML
1.3 1.4 1.5 2.0
IDEF3
Harel図
シナリオ
ユースケース
17
1.モデルとは何か
1.4 モデリングの歴史(8)
 プログラムから「概念」へ
プログラムロジック
モジュール
プログラム構造
機能の構造
データの構造
概念の構造
要求の構造
ビジネスの仕組み
18
1.モデルとは何か
1.4 モデリングの歴史(8)
 目に見えない「情報システム」をどう記述するべきか
3つの側面
データ ERD
処理
DFD
状態
STD
互いに整合
19
1.モデルとは何か
1.4 モデリングの歴史(9)
 UMLによる「情報システム」の記述
3つの側面
クラス図,オブジェクト図
協調図,シーケンス図
ステートチャート図,活動図
要求
ユースケース(図)
20