Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ドメイン駆動設計にRDRA2.0を活用する

8f84b7d8869ef6005d89b378e8661f7c?s=47 増田 亨
PRO
October 29, 2021
2.1k

 ドメイン駆動設計にRDRA2.0を活用する

モデルベースの要件定義手法のRDRA2.0を、ドメイン駆動設計の文脈でどう利用しているかの紹介です。
RDRA2.0で導入されたビジネスルールの視点を中心に、クラス設計に結ぶつけていくことでドメインモデルを作っていくアプローチです。

8f84b7d8869ef6005d89b378e8661f7c?s=128

増田 亨
PRO

October 29, 2021
Tweet

Transcript

  1. ドメイン駆動設計に RDRA2.0を活用する 2021年10月29日 有限会社システム設計 増田

  2. RDRA 2.0 要点定義を素早く確実に進めるための 柔軟で精度の高いモデルベースの手法

  3. 業務フロー システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル データベースの設計と実装 機能クラス データ操作クラス

    画面制御クラス API制御クラス アプリケーションの設計と実装 状態遷移 ありがちな要件定義とソフトウェア開発 画面・ユースケース・機能クラスの 一覧を作って個別に定義・開発
  4. ビジネスユースケース (業務バリエーション) 業務フロー ビジネスルール システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル

    状態遷移 データベースの設計と実装 業務機能クラス データ操作クラス 画面制御クラス API制御クラス アプリケーションの設計と実装 要件のモデル(RDRA) 区分 計算式 条件 判定表 分類 RDRA 2.0 のアプローチ ①視点を増やす
  5. 事業活動のモデル(ビジネスコンテキスト) 取引先 顧客 商品 サービス 在庫 部門 部門 業務 業務

    ビジネスユースケース (業務バリエーション) 業務フロー ビジネスルール システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル 状態遷移 データベースの設計と実装 業務機能クラス データ操作クラス 画面制御クラス API制御クラス アプリケーションの設計と実装 要件のモデル(RDRA) 区分 計算式 条件 判定表 分類 RDRA 2.0 のアプローチ ②関係で考える
  6. RDRA2.0を ドメイン駆動設計に応用する

  7. ドメイン駆動設計 第3章 モデル駆動設計(モデルと実装を一致させる) 第10章 しなやかな設計(変更を楽で安全にする) 第15章 蒸留(コアドメインに集中する)

  8. 事業活動のモデル(ビジネスコンテキスト) 取引先 顧客 商品 サービス 在庫 部門 部門 業務 業務

    ビジネスユースケース (業務バリエーション) 業務フロー システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル 状態遷移 事実の記録(不変) 状態の表現(可変) データベースの設計と実装 業務機能クラス データ操作クラス 画面制御クラス API制御クラス アプリケーションの設計と実装 要件のモデル(RDRA) ソフトウェアの対象領域である 事業活動に焦点を合わせる
  9. 事業活動のモデル(ビジネスコンテキスト) 取引先 顧客 商品 サービス 在庫 部門 部門 業務 業務

    ビジネスユースケース (業務バリエーション) 業務フロー ビジネスルールの言語化 システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル 状態遷移 事実の記録(不変) 状態の表現(可変) データベースの設計と実装 業務機能クラス データ操作クラス 画面制御クラス API制御クラス アプリケーションの設計と実装 要件のモデル(RDRA) 事業活動の 仕組と決め事 区分 計算式 条件 判定表 分類 提示 予定 実行 申込 手配 約束 事業活動の仕組み と決め事を言語化
  10. 取引先 顧客 商品 サービス 在庫 部門 部門 業務 業務 ビジネスユースケース

    (業務バリエーション) 業務フロー ビジネスルールの言語化 システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル 状態遷移 ドメインモデルの実装 事実の記録(不変) 状態の表現(可変) データベースの設計と実装 業務機能クラス データ操作クラス 画面制御クラス API制御クラス アプリケーションの設計と実装 要件のモデル(RDRA) 事業活動の 仕組と決め事 クラスで表現 区分 計算式 条件 判定表 分類 提示 予定 実行 申込 手配 約束 金額 数量 区分 範囲 集合 判定表 文脈 方針 日付 一覧 履歴 契約 計画 約束 結果 事業活動のモデル(ビジネスコンテキスト)
  11. 取引先 顧客 商品 サービス 在庫 部門 部門 業務 業務 ビジネスユースケース

    (業務バリエーション) 業務フロー ビジネスルールの言語化 システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル 状態遷移 ドメインモデルの設計と実装 事実の記録(不変) 状態の表現(可変) データベースの設計と実装 業務機能クラス データ操作クラス 画面制御クラス API制御クラス 収益構造 事業方針 アプリケーションの設計と実装 要件のモデル(RDRA) 事業活動の 仕組と決め事 クラスで表現 区分 計算式 条件 判定表 分類 提示 予定 実行 申込 手配 約束 金額 数量 区分 範囲 集合 判定表 文脈 方針 日付 一覧 履歴 契約 計画 約束 結果 事業活動のモデル(ビジネスコンテキスト)
  12. 取引先 顧客 商品 サービス 在庫 部門 部門 業務 業務 ビジネスユースケース

    (業務バリエーション) 業務フロー ビジネスルールの言語化 システム境界 (インタフェース) ユースケース 画面 外部接続 情報モデル 状態遷移 ドメインモデルの設計と実装 事実の記録(不変) 状態の表現(可変) データベースの設計と実装 業務機能クラス データ操作クラス 画面制御クラス API制御クラス 収益構造 事業方針 アプリケーションの設計と実装 要件のモデル(RDRA) 事業活動の 仕組と決め事 クラスで表現 区分 計算式 条件 判定表 分類 提示 予定 実行 申込 手配 約束 金額 数量 区分 範囲 集合 判定表 文脈 方針 日付 一覧 履歴 契約 計画 約束 結果 事業活動のモデル(ビジネスコンテキスト)