Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
大阪DDD読書会

モデリングワークショップ
vol.1
ガイダンス
2014/8/3 #dddosaka
by @kuma_nana
今日の流れ
•ガイダンス、お題説明

•ペアワークでモデリング(全員)

•2組程度発表
ガイダンス
ドメイン駆動設計
おさらい
根幹となる2つのパターン
表紙裏ナビゲーションマップ参照

!
ユビキタス言語:

ドメインモデルを取り巻いて構築され、

チームのあらゆる活動をソフトウェアと結びつけるために、

チームメンバー全員によって使用される言語(p.520)

!
...
問題空間と解決空間
!
!
!
!
!
!
!
!
[※1]
ソフトウェア開発の
モデル
ソフトウェア開発のモデル
!
!
!
!
!
!
!
!
[※2]
ソフトウェア開発のモデル
!
!
!
!
!
!
!
[※2]
モデリング
モデリングの流れ
1. 業務分析をしてシステムの全体像を把握
する(要求の収集)

 ↓

2. ドメインモデリング
!
これらは、工程として独立しているのでは
なく、行き来を繰り返しながらそれぞれ洗
練させていくことになる
業務分析ってどうやるの?
特に決まりは無いです。

例:

・システム概要図

・「三要素分析法」業務フロー図 [※3]

・マインドマップも良いですね

!
!
システムの目的、全体像をつかむ。
ドメインモデリングって?
3つのモデリングツール
(スターターキット)[※1]

!
!
1. ドメイン辞書

2. ユースケースモデル

3. 概念モデル

!
!
これらは独立している工程ではなく、行き来しながらそれぞれ洗練させ
ていく。
...
1. ドメイン辞書を作る
ドメイン知識の基盤。ドメインで利用されている言葉を

ピックアップ、認識を共通化。

!
• モノ:

  識別する必要があるもの、データ 

!
• コト:

  動作、振る舞い、制約
2. ユースケースを書く
- システムユーザーとシステムとの間の典型的なやり取り
を記述したもの。システムがどのように使われるかをス
トーリーとして提供。

- システムユーザー:人間 or 外部システム。

- ユビキタス言語の検証

!
!...
2. ユースケースを書く
ユースケースにはレイヤーがある。

アプリケーションユースケースから

ドメインユースケースを導くと分かりやすい。
!
アプリケーションユースケースの例:
https://speakerdeck.com/hidenor...
3. 概念モデルを描く
- 解決ドメインモデルの中核を構成するドメイン
オブジェクト

- ドメインオブジェクト間の関連を明らかにする

- 基本のモデル型(第4章のビルディングブロック)

- サービス

- エンティティ

!
!
ですが、...
3. 概念モデルを描く
例:DoorKeeper

イベント申込サービスは、ログイン
ユーザエンティティとイベントエン
ティティを関連付けて、参加申込
エンティティとして記録する。
ではワークショップを
はじめます
流れ
- お題の要件の抜粋を紙で配るのでまずは
読む。

- ペアワークで、業務分析・ドメインモデ
リングを紙、ペン、付箋でする。

- イテレーション2回で。

- 実装まではやりません。

- 2組発表。
イテレーション1のお題
「PHPカンファレンス2013 モデルとの向き合い方:ドメイン駆動設計体験ワークショップ」

https://speakerdeck.com/hidenorigoto/phpkanhuarensu2013-moderut...
再掲:やり方(例)
1. 業務分析(要求の収集):好きなやり方で

2. ドメインモデリング:

(1)ドメイン辞書
(2) ユースケースモデル
(3) 概念モデル
!
※決まりは無いので、できる人は好きなやり方でご自由にどうぞ!
★注意:NG例★
・システムには目的があり、対象範囲、
境界がある。モデリングもそう。

!
・ドメインの言葉として、下記のような
キーワードが出てくるのはNG☆

☓ インターネット?

☓ PC?
イテレーション2のお題
「PHPカンファレンス2013 モデルとの向き合い方:ドメイン駆動設計体験ワークショッ
プ」

https://speakerdeck.com/hidenorigoto/phpkanhuarensu2013-moderu...
オプション課題
早く終わってしまった方向け。

!
●アップグレードに「審査」を加える 

・購入履歴やその他の条件によって審査する 

・審査条件は、経営・管理層の意向により条件が変更される場合が
ある 

!
●アップグレード数集計を加える...
引用、参考資料
引用資料
[※1] PHPによるドメイン駆動設計入門 (後藤 秀宣、久保 敦啓)
(PHPメンターズトレーニングサービステキスト)
[※2] マインドマップではじめるモデリング講座(浅海智晴) p.8
[※3] 業務システムモデ...
Upcoming SlideShare
Loading in …5
×

0

Share

Download to read offline

大阪DDD読書会ワークショップvol.1ガイダンス

Download to read offline

大阪DDD読書会ワークショップvol.1ガイダンス

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

大阪DDD読書会ワークショップvol.1ガイダンス

  1. 1. 大阪DDD読書会
 モデリングワークショップ vol.1 ガイダンス 2014/8/3 #dddosaka by @kuma_nana
  2. 2. 今日の流れ •ガイダンス、お題説明 •ペアワークでモデリング(全員) •2組程度発表
  3. 3. ガイダンス
  4. 4. ドメイン駆動設計 おさらい
  5. 5. 根幹となる2つのパターン 表紙裏ナビゲーションマップ参照 ! ユビキタス言語: ドメインモデルを取り巻いて構築され、 チームのあらゆる活動をソフトウェアと結びつけるために、 チームメンバー全員によって使用される言語(p.520) ! ! モデル駆動設計: ソフトウェア要素のサブセットがモデル要素と密接に対応している 設計。また、相互に一致した状態を保ちながら、モデルと実装を共 に開発するプロセス。(p.519)
  6. 6. 問題空間と解決空間 ! ! ! ! ! ! ! ! [※1]
  7. 7. ソフトウェア開発の モデル
  8. 8. ソフトウェア開発のモデル ! ! ! ! ! ! ! ! [※2]
  9. 9. ソフトウェア開発のモデル ! ! ! ! ! ! ! [※2]
  10. 10. モデリング
  11. 11. モデリングの流れ 1. 業務分析をしてシステムの全体像を把握 する(要求の収集)  ↓ 2. ドメインモデリング ! これらは、工程として独立しているのでは なく、行き来を繰り返しながらそれぞれ洗 練させていくことになる
  12. 12. 業務分析ってどうやるの? 特に決まりは無いです。 例: ・システム概要図 ・「三要素分析法」業務フロー図 [※3] ・マインドマップも良いですね ! ! システムの目的、全体像をつかむ。
  13. 13. ドメインモデリングって? 3つのモデリングツール (スターターキット)[※1] ! ! 1. ドメイン辞書 2. ユースケースモデル 3. 概念モデル ! ! これらは独立している工程ではなく、行き来しながらそれぞれ洗練させ ていく。 ※決まりは無いので、できる人は好きなやり方でどうぞ!
  14. 14. 1. ドメイン辞書を作る ドメイン知識の基盤。ドメインで利用されている言葉を ピックアップ、認識を共通化。 ! • モノ:   識別する必要があるもの、データ ! • コト:   動作、振る舞い、制約
  15. 15. 2. ユースケースを書く - システムユーザーとシステムとの間の典型的なやり取り を記述したもの。システムがどのように使われるかをス トーリーとして提供。 - システムユーザー:人間 or 外部システム。 - ユビキタス言語の検証 ! ! ユースケースのタイトル(~~する) ! 内容(自由な文章)・・・
  16. 16. 2. ユースケースを書く ユースケースにはレイヤーがある。 アプリケーションユースケースから ドメインユースケースを導くと分かりやすい。 ! アプリケーションユースケースの例: https://speakerdeck.com/hidenorigoto/phpkanhuarensu2013-moderutofalsexiang-kihe- ifang-domeinqu-dong-she-ji-ti-yan-wakusiyotupu-suraido?slide=53 ! ドメインユースケースの例: https://speakerdeck.com/hidenorigoto/phpkanhuarensu2013-moderutofalsexiang-kihe- ifang-domeinqu-dong-she-ji-ti-yan-wakusiyotupu-suraido?slide=54
  17. 17. 3. 概念モデルを描く - 解決ドメインモデルの中核を構成するドメイン オブジェクト - ドメインオブジェクト間の関連を明らかにする - 基本のモデル型(第4章のビルディングブロック) - サービス - エンティティ ! ! ですが、ビルディングブロックを使わない記法でもモデル図 は描けるので、ご自由に!
  18. 18. 3. 概念モデルを描く 例:DoorKeeper イベント申込サービスは、ログイン ユーザエンティティとイベントエン ティティを関連付けて、参加申込 エンティティとして記録する。
  19. 19. ではワークショップを はじめます
  20. 20. 流れ - お題の要件の抜粋を紙で配るのでまずは 読む。 - ペアワークで、業務分析・ドメインモデ リングを紙、ペン、付箋でする。 - イテレーション2回で。 - 実装まではやりません。 - 2組発表。
  21. 21. イテレーション1のお題 「PHPカンファレンス2013 モデルとの向き合い方:ドメイン駆動設計体験ワークショップ」 https://speakerdeck.com/hidenorigoto/phpkanhuarensu2013-moderutofalsexiang-kihe-ifang- domeinqu-dong-she-ji-ti-yan-wakusiyotupu-suraido?slide=37 ! ! 要件の抜粋を紙で配るのでまずは読んで下さい。 ! 書かれていないけれど必要な仕様があれば、適 宜想定して下さい。
  22. 22. 再掲:やり方(例) 1. 業務分析(要求の収集):好きなやり方で 2. ドメインモデリング: (1)ドメイン辞書 (2) ユースケースモデル (3) 概念モデル ! ※決まりは無いので、できる人は好きなやり方でご自由にどうぞ!
  23. 23. ★注意:NG例★ ・システムには目的があり、対象範囲、 境界がある。モデリングもそう。 ! ・ドメインの言葉として、下記のような キーワードが出てくるのはNG☆ ☓ インターネット? ☓ PC?
  24. 24. イテレーション2のお題 「PHPカンファレンス2013 モデルとの向き合い方:ドメイン駆動設計体験ワークショッ プ」 https://speakerdeck.com/hidenorigoto/phpkanhuarensu2013-moderutofalsexiang-kihe- ifang-domeinqu-dong-she-ji-ti-yan-wakusiyotupu-suraido?slide=37 ! ! 要件の抜粋を紙で配るので読んでモデリングを して下さい。
  25. 25. オプション課題 早く終わってしまった方向け。 ! ●アップグレードに「審査」を加える ・購入履歴やその他の条件によって審査する ・審査条件は、経営・管理層の意向により条件が変更される場合が ある ! ●アップグレード数集計を加える ・アップグレード申込数の多い店舗を月別に表彰する ●山村書店アップグレードシステムの「ユビキタス言語」を作る ドメイン辞書を作っただけでは、まだユビキタス言語になっていま せん。(辞書(用語集)と言語は違う) http://phpmentors.jp/post/87045561213/practical-ddd-4 語と語を、その関係を表す言葉で結ぶような作業をやってみる。
  26. 26. 引用、参考資料 引用資料 [※1] PHPによるドメイン駆動設計入門 (後藤 秀宣、久保 敦啓) (PHPメンターズトレーニングサービステキスト) [※2] マインドマップではじめるモデリング講座(浅海智晴) p.8 [※3] 業務システムモデリング練習帳(渡辺幸三) [ワークショップのお題]「PHPカンファレンス2013 モデルとの向き合い方: ドメイン駆動設計体験ワークショップ」https://speakerdeck.com/hidenorigoto/ phpkanhuarensu2013-moderutofalsexiang-kihe-ifang-domeinqu-dong-she-ji-ti-yan-wakusiyotupu-suraido?slide=46 ! 参考資料 ジェネレーティブプログラミングの世界 http://www.slideshare.net/iteman/ss-31235579 ! ★Thanks★ PHPメンターズプログラミング道場の皆さま

大阪DDD読書会ワークショップvol.1ガイダンス

Views

Total views

2,651

On Slideshare

0

From embeds

0

Number of embeds

1,482

Actions

Downloads

7

Shares

0

Comments

0

Likes

0

×