分析しながら設計する
2017年4月12日
システム設計 増田
DDD Alliance
ドメイン駆動設計
ドメイン駆動設計
Domain-Driven Design
ソフトウェアの核心にある
複雑さに立ち向う
Tackling Complexity in the Heart of Software
ドメインロジックに集中する
focus on domain logic
プレゼンテーション層
データソース層
アプリケーション層
画面の入出力
データベース操作
データの処理手順
ドメインロジックの断片化
ドメインロジックの断片
ドメインロジックの断片
ドメインロジックの断片
プレゼンテーション層
データソース層
アプリケーション層
ドメインロジックに集中する
ドメインモデル
ドメインロジックを
ここに集約する
ドメインオブジェクトの
ネットワーク
ドメインオブジェクト
分析しながら設計する
分析活動
設計活動
ドメインオブジェクトの分析
対象領域を学習し
ドメインロジックとして実装すべき
ビジネスルールを明らかにする活動
ドメインオブジェクトの設計
ビジネスルールを
プログラミング言語で
表現する活動
分析しながら設計する
search a model
that works well as both analysis and design
分析しながら設計する
search a model that works well as both analysis and design
1章 知識をかみ砕く
2章 コミュニケーションと言語の使い方
3章 モデルと実装を結びつける
5章 ソフトウェアで表現されたモデル
9章 暗黙的な概念を明示的にする
13章 より深い洞察に向かうリファクタリング
15章 蒸留
16章 大規模な構造
分析してから設計する
情報収集
分析
設計
運用
実装
別担当者
伝言ゲーム
過去の決定の呪い
分析しながら設計する
情報収集
分析
設計
運用
実装
day-1 day-2 day-3 …
同じメンバーで
分析しながら設計
実際に動かして
情報収集
分析しながら設計する
三つの技法
リレーションシップ駆動
要件分析
ドメイン駆動設計
オブジェクト指向
分析から実装まで
DDD RDRA ICONIX
分析のアウトプット
分析整理
モデル
要件定義
仕様
情報収集
DDD
RDRA
ICONIX
ドラゴンクエスト
モデル
竜王を倒す
重要アイテムの獲得
中核のストーリー
要件定義 アレフガルドの地図 対象世界の地図
仕様 ダンジョンの探検と戦闘
詳細ルールの発見
パターンの習得
DDD
RDRA
ICONIX
分析設計:三つの技法
モデル ソフトウェアの核心に焦点をあてる
要件定義
全体像を把握する
関係性に注目する
仕様
ビジネスルールの特定
ドメインオブジェクトへの
責務の割り当て
DDD
RDRA
ICONIX
分析しながら設計する
DDD
コアドメインとドメインロジックに集中する
モデルを探求する
プログラミング言語で表現する
分析しながら設計する
RDRA
短期間でシステムの全体像をつかむ
構成要素の洗い出し
対象領域の明確化
要素間の関係で整合性と網羅性を確保
分析しながら設計する
ICONIX
分析と設計をつなぐ「予備設計」
ユースケース記述とロバストネス分析
ビジネスルールの洗い出しと詳細化
ドメインオブジェクトへの責務の割り当て
顧客
「書籍詳細」ページ
表示する
「レビューの記入」ページ
顧客レビューを審査する
書籍評価は範囲内か?
表示する確認ページ
「レビューを書く」ボタンをクリック
はい
レビューを記入して「送信」をクリックする
はい
分析しながら設計する
三つの技法
リレーションシップ駆動
要件分析
ドメイン駆動設計
オブジェクト指向
分析から実装まで
DDD RDRA ICONIX

ドメイン駆動設計 分析しながら設計する