ニュービジネスとドメインモデル- アイデアから設計へ、システム開発につながるドメインモデルの創り方 Modeling Forum 2015
2015/11/6
株式会社 シナジー研究所
依田 智夫
yoda@synergy-res.co.jp

自己紹介 株式会社 シナジー研究所
代表取締役 プリンシパル・コンサルタント「如月会2015にて」

 東洋エンジニアリング株式会社入社後、システム系技術者として、プラント建設支援のための情報システム開発に携わる。その後、加工組立系生産システムの事業立ち上げに参画。
 1997年 株式会社シナジー研究所設立、代表取締役。 以来、流通、製造、金融、サービス業向けの、システム分析設計、概念モデリング、プロジェクトマネジメント支援、ソフトウェア資産可視化等に従事。
 元総務省技術顧問（政府IT調達）
 IT-ADRセンター専門ADR委員
 要求開発アライアンス理事
 エンタープライズ・アジャイル勉強会役員
Copyright 2015 Synergy Research Corporation, All rights reserved.

2翻訳書などリーンソフトウェア開発と組織改革[著者]トム＆メアリー・ポッペンディーク[訳者]依田光江[監訳者]依田智夫[No] 15
Leading Lean Software Development: Results
Are not the Point (Addison‐Wesley Signature
Series)

実践ＵＭＬ第３版[著者] グレイグ・ラーマン[No] 12
Applying UML and Patterns, An Introduction to
Object‐Oriented Analysis and Design and
Iterative Development, Third Edition

ビジネスパターンによるモデル駆動設計
REAによる新しいモデリング手法[著者] Pavel Hruby, Jesper Kiehn, Christian Vibe
Scheller[訳者] 溝口 真理子、依田 光江[監訳者] 依田 智夫[協力] マイクロソフト株式会社[出版社] 日経BPソフトプレス社[No] 14Model‐Driven Design Using Business Patterns

要求開発
価値ある要求を導き出すプロセスとモデリング[著者] 山岸耕二・安井昌男・萩本順三・河野正
幸・野田伊佐夫・平鍋健児・細川努・依田智夫[出版社] 日経BP社[No] 13

実践ＵＭＬ第２版
パターンによる統一プロセス[著者] グレイグ・ラーマン[訳者] 依田 光江[監訳者] 依田 智夫 , 今野 陸
[出版社] 株式会社ピアソンエデュケーション[No] 11
Applying UML and Patterns: An Introduction to
Object‐Oriented Analysis and Design and theUnified Process (2nd Edition)

UMLによるXMLアプリケーションモデリング
実践的e‐ビジネスアプリケーション[著者] デビッド・カールソン[訳者] 依田 光江[監訳者] 依田 智夫[出版社] 株式会社ピアソンエデュケーション[No] 06
Modeling XML Applications with UML: Practicale‐Business Applications (Addison‐Wesley Object
Technology Series)

UMLによるWebアプリケーション開発[著者] Ｊ・コナレン[訳者] 依田 光江[監訳者] 依田 智夫[出版社] 株式会社ピアソンエデュケーション[No] 05
Building Web Applications with UML (Addison‐
Wesley Object Technology Series)

Javaエンタープライズ・コンポーネント[著者] ピーター・コード , Eric Lefebvre , Jeff
DeLuca[訳者] 依田 光江[監訳者] 依田 智夫 , 今野 陸
[出版社] 株式会社ピアソンエデュケーション[No] 04
Java Modeling in Color With Uml: EnterpriseComponents and Process (Java Series)

ビジネスオブジェクトモデリング[著者] ピーター・コード , ディビッド・ノース , マー
ク・メイフィールド
[訳者] 依田 光江[監訳者] 依田 智夫 , 今野 陸
[出版社] 株式会社ピアソンエデュケーション[No] 03
Object Models: Strategies, Patterns, andApplications (Yourdon Press Computing Series)

Javaオブジェクト設計 第２版[著者] ピーター・コード , マーク・メイフィールド[訳者] 依田 光江[監訳者] 依田 智夫 , 今野 陸
[出版社] 株式会社ピアソンエデュケーション[No] 01
Java Design: Building Better Apps and Applets(Yourdon Press Computing Series)

Copyright 2015 Synergy Research Corporation, All rights reserved.

3

アジェンダ1. ねらい2. ドメインモデルとは
3. UMLクラス図の基本
4. ワークショップ１
5. 上質なドメインモデルのための10か条
6. ワークショップ２
Copyright 2015 Synergy Research Corporation, All rights reserved.

4

ねらい• この講演は、• ビジネスモデリングのような最上流工程の成果物をもとにドメインモデルを導き、• さらにそれをシステム開発で使いまわせるレベルに拡張・精密化する方法を知ることを狙いとしています。

Copyright 2015 Synergy Research Corporation, All rights reserved.

5

ドメインモデルとは

クラス図
コンポーネント図
構造図• 特定のビジネス領域における情報構造モデル

コンポジット
構想図
配置図• 語彙・概念の整理• 抽象/具象、全体/部分、関連、役割、

オブジェクト図ダイアグラムパッケージ図MECE、・・
アクティビティ
図• データベース設計

ユースケース図• 既存情報システムの可視化• 道具は何を使うのか

振る舞い図

ユースケーステキスト

状態マシン図シーケンス図• UML• ユースケース

コミュニケーション図• クラス図相互作用図• オブジェクト図 （インスタンス図）• パッケージ「UMLモデリングのエッセンス
第3版」、
マーチン・ファウラー著、羽生田栄一監訳、
翔泳社、図1.2に着色、「ユースケーステ
キスト」を加筆• ドメインモデルの条件は？
Copyright 2015 Synergy Research Corporation, All rights reserved.

相互作用概
要図

タイミング図6

ドメインモデルの条件は？
不動産取引

出荷伝票

同心円

実装クラス図不動産仲介事業者
1

顧客

ShippingPK

＊
1

仲介
役割

同心円
＊

1

出荷伝票
売主代理人

買主代理人

1

＊

：売主代理人

両手業者：不動産仲介事業者《 EJBEntity…》
ShippingHome

出荷明細

＊

＊

同心円

1

直径

商品

《 EJBIImpl…》
ShippingBean《 EJBRemote…》
Shipping：買主代理人ドメイン度はグラデーション
Copyright 2015 Synergy Research Corporation, All rights reserved.

7

ドメインモデルの効果• ビジネスモデルをより緻密に、より具体的にすることができる。
• システム開発の立ち上がりを早めることができる。
• 語彙・概念をプロジェクトの広い範囲で共有することで、コミュニケーション・コストが大幅に低減し、かつ成果物の品質を向上させることができる。

• 人や組織に与える基盤的効果：• 学びの基本的態度が身につく• 場当たり的な情報の積み上げ（エピソードの集積）ではない、• 知識を矛盾なく集積するための一貫性のある体系を知り、• それが役に立つという経験ができる。
（「学びの構造」、佐伯 胖著、東洋館出版社、「意味論的記憶の構造」の説明を参考にした）• 顔つきが変わる！
Copyright 2015 Synergy Research Corporation, All rights reserved.

8

ビジネスモデリングとドメインモデル• ビジネスモデリングやイノベーションづくりの手法が注目されている。
「ビジネスモデル・ジェネ
レーション」、アレックス・
オスターワルダー&イヴ・ピニョール他著、小山龍介訳、翔泳社より、表紙とP49を修正して転載。

KP

パートナー

KA

コスト構造

価値提案

CR

CH

リソース

R$

顧客との関係CS

顧客セグメント「システムXデザイン思考で世界を変える」、前野隆司編著、
日経BP社より表紙とP041を転
載

チャンネル

パソコン

￥

収益の流れ

ユーザー

C$

VP

メーカー

KR

主要活動

「ピクト図解」、板
橋悟著、ダイヤモ
ンド社より表紙と帯の図柄を転載

ドメインモデル
要求
ビジネスモデリング・イノベーションづくり

分析

設計

実装

テスト

システム開発工程
Copyright 2015 Synergy Research Corporation, All rights reserved.

9でも・・・•ユースケースはいつかくのか？
•ビジネスプロセス分析との前後関係は？
•その答えはプロジェクトごとに異なるはずです。
Copyright 2015 Synergy Research Corporation, All rights reserved.

102種類のドメインモデル• ビジネスユースケースに対応した（BS）ドメインモデル• システムユースケースに対応した（IS）ドメインモデル
ビジネスモデリングとドメインモデルの接続ポイント

ビジネスシステム（BS)
情報システム（IS)IT施策の選択（IS）
ドメインモデル（BS）
ドメインモデル

適切なIT施策の選択は、要件定義工程のタスクである
Copyright 2015 Synergy Research Corporation, All rights reserved.

11

（BS）ドメインモデル V.S. （IS）ドメインモデル• （BS）ドメインモデル• （IS）ドメインモデル

参考

IT施策と無関係なドメインモデル（BS）ドメインモデルに対してIT施策が反映されたドメインモデル• IT施策とは••••人手による対応（IT投資は行わないというIT施策）
パッケージ・ソフトウェアによる対応
ビジネス・プロセス・アウトソーシング
EXCELでやってます・・

IT施策、自社の競争優位性、バリューチェーンなどを議論する最上流工程では、ISドメインモデルよりもBSドメインモデルの方がツールとしてよりふさわしい

Copyright 2015 Synergy Research Corporation, All rights reserved.

12

大規模モデル構築には
ビジネスプロセスの見極めが不可欠

参考

横軸に業界の典型的なビジネスプ
ロセスを、縦軸にユーザーの関心事を配置。
関心事を議論することで、横軸のビジネスプロセスが洗練されていく。

Copyright 2015 Synergy Research Corporation, All rights reserved.

13

ビジネスプロセスを縦横に展開しモデルの基本構造を得る 参考
ビジネスプロセスには業務とデータの2面性がある
商品
管理
BSユースケースあるいは
ISユースケースのための
UMLパッケージ構造

マーケ
ティング

モデルのUMLパッケージ構造
営業

見積

契約

配送

会計

商品
管理
マーケ
ティング
営業
見積
契約
配送

商品管理のユースケースでは、主に商品管理パッケー
ジの語彙（概念）が主に使われるが、契約パッケージの語彙も使われる

会計
Copyright 2015 Synergy Research Corporation, All rights reserved.

14

クラス図の基本 クラスとインスタンス
書籍の集合• 初心者のハードルはクラスとインスタンス• 集合（ベン図）で考えるとわかりやすい• 集合＝クラス• 集合の要素＝インスタンス（オブジェクト）• オブジェクトは必ず具体的な例を考える
UML オブジェクト図

UML クラス図

火花：書籍
書籍
タイトル
著者
発行日

吾輩は猫である：書籍経営者の条件：書籍
テクノロジストの条件：書籍
Copyright 2015 Synergy Research Corporation, All rights reserved.

15

関連も集合で考える
書籍の集合

著者の集合

夏目漱石

UML オブジェクト図

UML クラス図
著者

書籍
タイトル
著者
発行日

1..＊ 氏名
性別
執筆する
国籍

火花：書籍

又吉直樹：著者

吾輩は猫である：書籍

夏目漱石：著者

1..＊

経営者の条件：書籍
ピーター・F・ドラッカー：著者
テクノロジストの条件：書籍

Copyright 2015 Synergy Research Corporation, All rights reserved.

16さらに、継承も集合で考える
書籍の集合

UML クラス図

UML オブジェクト図

書籍
タイトル
著者
発行日

火花：和書
吾輩は猫である：和書
経営者の条件：和書

和書

洋書

和書の定義： 日本語で書かれた書籍

洋書の定義： 日本語以外の言語で書かれた書籍
Copyright 2015 Synergy Research Corporation, All rights reserved.

テクノロジストの条件：和書

17

継承はちょっと注意が必要
未分類の書籍を許すなら書籍は具象クラス、
許さないなら抽象クラス。
書籍が抽象クラスなら和書、洋書はMECE(*)となる。
(*) MECE＝もれがなくダブりもない

書籍
タイトル
著者
発行日

C

和書

X

洋書

（基本的に）多重に分類することは許されない
Copyright 2015 Synergy Research Corporation, All rights reserved.

18

ワークショップ１
1. 左右のお二人、それぞれが、「関連も集合で考える」スライドのオブジェクト図をもとに、翻訳者を加えたオブジェクト図を作成してください。
2. お二人で相談して、どちらかのオブジェクト図を採用してください。必要ならさらに改善してください。
3. 次に、お二人、それぞれが、そのオブジェクト図をもとに、クラス図を作成し、二人で合意したオブジェクト図と整合したクラス図であることを一緒に確認してください。

このワークショップのねらいの一つは、モデルを描ける人が勝手にモデルを描くのではなく、組織で協力して一つのモデルを作成する過程を体験することです。
ピーター・F・ドラッカー著、「経営者の条件」、「テクノロジストの条件」の翻訳者は、上田惇生（うえだ あつお）氏です。
Copyright 2015 Synergy Research Corporation, All rights reserved.

19上質なドメインモデルのための10か条
中級

1. 親切なモデル
2. 見通しの良いモデル
3. データ型がイケてるモデル
上級

4. ウソをつかないモデル
5. すっきりしたモデル
6. 継承がさわやかなモデル
組織で対応

7. 漂流しないモデル
8. 進化するモデル
9. 手を抜いていないモデル
10. 検証可能なモデル
Copyright 2015 Synergy Research Corporation, All rights reserved.

22

親切なモデル• クラス図だけで理解するのは相当大変• だからオブジェクト図もつくろう• 人は例（オブジェクト）を通じてのみ理解する (ピーター・コード）• 静的構造2点セット• クラス図• オブジェクト図• メモを多用する• 親切なクラス図を描くぞ、という気持ち、気合が大切
Copyright 2015 Synergy Research Corporation, All rights reserved.

23

親切なモデルクラスのノート

モデラーはドメイン専門家にもっとフィードバックを。
「話してよかった」と、言われないといけない。

関連のノート

リテレートモデリング、Dr. Jim Arlow
http://www.slideshare.net/jimarlow/literate-modelling-v-3

商品
クラス図

商品名
/合計在庫量

1

*

在庫

*

1

在庫数

拠点

拠点名

UML
ドキュメント--------－－－－－－－－－－－－－－－－－－－

属性のノート：在庫
在庫数＝10
オブジェクト図

A:商品合計在庫量=25：拠点
拠点名＝練馬
：在庫
在庫数＝15

B:商品

クラス図だけで、オブジェクトの関係を思い描ける人は少ない。
だから、オブジェクト図が必要。オブジェクト図から先にかいても良い。
Copyright 2015 Synergy Research Corporation, All rights reserved.

24見通しのよいモデル• パッケージを利用し、全体の見通しをよくし、さらに名前を簡略で本質的なものにする
テーマの
周辺

商品
商品

商品名
/合計在庫量

1

テーマ

物流

*

在庫

*

1

在庫数

拠点

拠点名

1

契約

見積

Copyright 2015 Synergy Research Corporation, All rights reserved.

25

見通しのよいモデル （トレーサブルなモデル）• ユースケースとの対応がわかる、クラス図
ユーザーと権限に関わるユースケース

ユーザー

在庫
在庫数

契約に関わるユースケース

契約

配送センター0..*1

配送センタ配送センター名

0..*

物流に関わるユースケース
1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
商品

メーカー
メーカーID
メーカー名

1

0..*

商品ID
商品名

1

0..*

在庫
在庫数

配送センター0..*1

配送センタ配送センター名

商品
メーカー

1

0..*

メーカーID
メーカー名

商品ID
商品名
商品概要
商品説明
商品画像
単価

0..*

商品ID
商品名
単価
数量

1..* 1

見積注文
受付ID
受付日時
注文日時
0..*

顧客

0..* 1

顧客ID
顧客名
1

1

物流
1

特定のユースケースだけに対応した
パーシャル（部分的）なドメインモデルがあっても良い。

注文明細
1

1..*

商品カテゴリ

商品毎項目

商品カテゴリ名

項目名

1

1..*

社員
社員ID

ログイン
ログインID

関係するユースケースすべてを合成した
ドメインモデルCopyright 2015 Synergy Research Corporation, All rights reserved.

26データ型がイケてるモデル

Mortgage（住宅ローン）

顧客

principal（元金）: MoneymonthlyPayment（支払月額）: Money
startDate: DateendDate: Date

氏名： 氏名型
住所： 住所型
契約種別： 契約種別型

《列挙》
契約種別型
専属専任媒介専任媒介
一般媒介契約

オブジェクト制約言語(OCL:Object Constraint Language)
Based on “The Object Constraint Language Second Edition by Jos Warmer and Anneke Kleppe,
Addison Wesley, 2003”

Copyright 2015 Synergy Research Corporation, All rights reserved.

27

ウソをつかないモデル• 実はクラス図はかなりの嘘つき。
• 関連のループがあったら要注意• ドメインモデルの信用を落とす前に嘘のつけないモデルにする• 静的構造3点セット• クラス図• オブジェクト図• 不変制約

Copyright 2015 Synergy Research Corporation, All rights reserved.

28

他人の家を担保にお金が借りられる？
House（住宅）
value（価値）: Money

securiry（担保） 1

Person0..*houses （住宅）

socSecNr（社会保障番号）:Integer
1 salary（給与）: Moneyowner（所有者）

borrower（借り手） 1

Mortgage（住宅ローン）

mortgages（住宅ローン）
0..*

principal（元金）: MoneymonthlyPayment（支払月額）: Money
startDate: DateendDate: Date

オブジェクト制約言語(OCL:Object Constraint Language)
Based on “The Object Constraint Language Second Edition by Jos Warmer and Anneke Kleppe,
Addison Wesley, 2003”
Copyright 2015 Synergy Research Corporation, All rights reserved.

mortgages（住宅ローン）
0..*

29

他人の家を担保にお金が借りられる？
許されるオブジェクトのリンク:住宅

Aさん：Person

許されないオブジェクトのリンク:住宅：住宅ローン

Bさん：Person：住宅ローン

Copyright 2015 Synergy Research Corporation, All rights reserved.

Aさん：Person

30

常識で理解していること• 他人の家を担保に金を借りることは出来ない• クラス図では、可能！
• 住宅ローンの開始日は、終了日の前• クラス図では、なにもいっていない• 社会保障番号は、すべての人をユニークに識別する• クラス図では、なにもいっていない

Copyright 2015 Synergy Research Corporation, All rights reserved.

31

許されないオブジェクトのリンクを制約したい
オブジェクト制約言語による記述 （これは使用しないほうが無難）• context Mortgage
inv: security.owner = borrower• context Mortgage
inv: startDate < endDate• context Person
Inv: Person::allInstances()->isUnique(socSecNr)

Copyright 2015 Synergy Research Corporation, All rights reserved.

32

制約を表現する住宅ローンの担保となっている住宅の所有者と住宅ローンの借り手は同一である

House（住宅）
value（価値）: Money

Person0..*houses （住宅）1owner（所有者）

securiry（担保） 1

socSecNr（社会保障番号）:Integersalary（給与）: Money

borrower（借り手） 1

Mortgage（住宅ローン）

mortgages（住宅ローン）
0..*

principal（元金）: MoneymonthlyPayment（支払月額）: Money
startDate: DateendDate: Date

オブジェクト制約言語(OCL:Object Constraint Language)
Based on “The Object Constraint Language Second Edition by Jos Warmer and Anneke Kleppe,
Addison Wesley, 2003”
Copyright 2015 Synergy Research Corporation, All rights reserved.

mortgages（住宅ローン）
0..*

33

すっきりしたモデル
抽象層
依頼する

顧客

売主

1

X

*

出稿する

代理人
1

売主代理人

買主

広告
*

売主広告

買主代理人

買主広告

すっきりさせるとモデルはうそをつき始める。買主代理人の顧客が、売主であってはならない。赤枠の対応関係を明確にするためには、制約記述や特別な記法が必要だが・・・
Copyright 2015 Synergy Research Corporation, All rights reserved.

34

操作レベルと知識レベル

ここも本来は制約記述の出番だが、知識レベルの明示とノートがあれば良い。あるいは、ノートも省略可能。
顧客が購入する商品の商品型は、その顧客の顧客型が購入可能な商品型でなくてはならない

顧客型

購入可能

*

*

商品型

知識レベル

1

1

操作レベル

*

*

顧客

*

購入

*

商品

推奨図書： アナリシス・パターン、マーチン・ファウラー著、堀内一、他共訳、ピアソンエデュケーション社
Copyright 2015 Synergy Research Corporation, All rights reserved.

35

継承がさわやかなモデル• 継承よりコンポジション• 役割• 日本料理も出る中華料理屋をやりたい！

レストラン

日本料理
レストラン

Copyright 2015 Synergy Research Corporation, All rights reserved.

中華料理
レストラン

36

フランス料理もできますよレストラン

レストラン役割

1

*

日本料理
レストラン

中華料理
レストラン

Copyright 2015 Synergy Research Corporation, All rights reserved.

フランス料理レストラン

37

不動産ビジネスモデルの例

不動産仲介事業者

仲介役割

1

*

売主代理人

Copyright 2015 Synergy Research Corporation, All rights reserved.

買主代理人

38

漂流しないモデル• 概念と実装のはざまで漂流しない• ドメインモデルはビジネス（専門領域）の人間の言葉をモデル化する• 実装に気兼ねしたドメインモデルは、質の悪い実装モデルとみなされる• どこへいってもアウェーなモデルとなる商品<<pk>>商品コード: String
商品名: String<<fk>>商品分類コード: String

商品分類

*

1

<<pk>>商品分類コード: String
商品分類名: String
商品分類名呼称１: String
商品分類名呼称２: String
商品分類名呼称３: String

Copyright 2015 Synergy Research Corporation, All rights reserved.

39

進化するモデル• ラウンドトリップエンジニアリング• リバースエンジニアリング• 人力モデル駆動
約15年前に私がモデル駆動を説明するために描いた図• モデル間の整合性を維持する責務が組織内に存在していることが重要。
• 整合性維持が自動化されたメカニズムで行われるかは重要ではなく、むしろ人力が方が優れてい
る。
論理
モデル
概念モデル

物理モデル
（開発環境）

Copyright 2015 Synergy Research Corporation, All rights reserved.

ソースコード40

手を抜いていないモデル• 汎用的なデータ構造はドメインモデルではない（汎用的なデータ構造は実装上有用ではあるが、ドメインモデルの代わりにはならない）

項目

1

*

属性値

*

Copyright 2015 Synergy Research Corporation, All rights reserved.

1

属性名

41

検証できるモデル• ユースケースがあるからドメインモデルが生まれる• ユースケースによってのみドメインモデルが検証できる• ドメインモデルのためのユースケースは骨太で良い。
• アンダーラインの活用• 顧客が購入する商品の商品型は、その顧客の顧客型が購入可能な商品型でなくてはならない

Copyright 2015 Synergy Research Corporation, All rights reserved.

42

モデラー心構え• チームの平均レベルを常に意識せよ• 知識をひけらかすモデルを書いてはいけない• ウケているか• 理想の図をかく必要はない• モデルは現場に力を与え、創意と信• 妥協して、チームの成長を待つことも必要

頼を醸成するものでなくてはならない• 必要としているまさにそのときに教えよ• 標準、UMLにこだわりすぎないこと• By ピーター・コード• モデルは段階的に成熟させても良い• オリジナリティーも時には必要• 周囲のレベルに合わせる• 利用可能な情報の量に合わせる

Copyright 2015 Synergy Research Corporation, All rights reserved.

43

ワークショップ２• ワークショップ１の解答を拡張し、著書も翻訳書もある人（著作者）を表現できるモデルとしてください。
• 今度は初めにクラス図を、次に具体的なオブジェクト名を使ってオブジェクト図を描いてください。
• 話し合いながら進めてください。

Copyright 2015 Synergy Research Corporation, All rights reserved.

44

ご参加いただきありがとうございました。
依田

Copyright 2015 Synergy Research Corporation, All rights reserved.

46