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

DDD時代に考えたいICONIXプロセス/ICONIX in DDD

DDD時代に考えたいICONIXプロセス/ICONIX in DDD

DDD をより駆動させるための ICONXプロセスとの付き合い方を紹介します。

BPStudy#151〜オブジェクト指向、モデリング、設計 LT大会[リモート開催]
2020/03/30

hiro@miraito

March 30, 2020
Tweet

More Decks by hiro@miraito

Other Decks in Programming

Transcript

  1. DDD時代に考えたいICONIXプロセス 3 Today's Topic ICONIX in the DDD era My

    Assumptions / Prerequisites Looking for clues on DDD modeling I will talk about What`s ICONIX ? How to Use ICONIX in DDD I will NOT talk about What`s DDD ICONIX Detail
  2. DDD時代に考えたいICONIXプロセス 4 My assumptions / Prerequisites Looking for clues on

    DDD modeling DDD ドメインを運用者と開発者がコミュニケーションをとりながら「モデル」育てる そして、そのモデルをソフトウェアとしてコードで表現する為の設計手法。 戦略設計 ドメインエキスパートと共にユビキタス言語を使いながら モデルを育てる 戦術設計 ドメインを表現したモデルをコードに落とし込む実装パターンやテクニック。 またはその考え方
  3. DDD時代に考えたいICONIXプロセス 5 My assumptions / Prerequisites Looking for clues on

    DDD modeling DDD ドメインを運用者と開発者がコミュニケーションをとりながら「モデル」育てる そして、そのモデルをソフトウェアとしてコードで表現する為の設計手法。 戦略設計 ドメインエキスパートと共にユビキタス言語を使いながら モデルを育てる 戦術設計 ドメインを表現したモデルをコードに落とし込む実装パターンやテクニック。 またはその考え方 ここ難しくないですか?
  4. DDD時代に考えたいICONIXプロセス 6 要件定義 > 基本設計 > 詳細設計 > 実装 >

    UT > ITa(ITb) > (ST) > UAT 一般的なシステム開発の流れ
  5. DDD時代に考えたいICONIXプロセス 7 要件定義 > 基本設計 > 詳細設計 > 実装 >

    UT > ITa(ITb) > (ST) > UAT 一般的なシステム開発の流れ 戦略設計ってどこからどこまで?? なんとなくこの辺ぽい
  6. DDD時代に考えたいICONIXプロセス 8 I will talk about What`s ICONIX ? How

    to Use ICONIX in DDD 今日はその辺のあまり話題にあがらない部分をフォーカスして、 プロセスの例を紹介しようというお話です。
  7. DDD時代に考えたいICONIXプロセス 9 自己紹介 林 宏勝 Twitter : @hirodragon112 株式会社ミライトデザイン CEO

    株式会社 Jocy CTO OOP/DDD/CQRS/ICONIX/Agile/ PHP/RDRA/ペチオブ/OOC らへんが好きなサーバーサイドエンジニア 上流から下流まで色々やります。
  8. DDD時代に考えたいICONIXプロセス 17 ICONIXプロセス 1. 要求 2. 分析 / 予備レビュー 3.

    予備設計レビュー 4. 詳細設計 5. 詳細設計レビュー 6. 実装
  9. DDD時代に考えたいICONIXプロセス 18 ICONIXプロセス 1. 要求 機能要求、ドメインモデリング、振る舞い要求(ドラフト版ユースケース作成)、要求レビュー 2. 分析 / 予備レビュー

    ロバストネス分析、ドメインモデル更新、論理名付け、ドラフト版ユースケース修正 3. 予備設計レビュー 4. 詳細設計 シーケンス図作成、ドメインモデル更新、静的モデル整理 5. 詳細設計レビュー 6. 実装 コーディングと単体テスト、結合テストとシナリオテスト、次フェーズ準備
  10. DDD時代に考えたいICONIXプロセス 19 要件定義 > 基本設計 > 詳細設計 > 実装 >

    UT > ITa(ITb) > (ST) > UAT 一般的なシステム開発の流れ ICONIXは開発の大半をカバーする
  11. DDD時代に考えたいICONIXプロセス 26 MDD DDD TDD RDRA 等 要件定義 分析設計 戦略設計

    戦術設計 UT UCDD (ICONIX) これがないと、いき なり戦略設計をして も精度が悪い
  12. DDD時代に考えたいICONIXプロセス 27 ICONIXプロセス 1. 要求 機能要求、ドメインモデリング、振る舞い要求(ドラフト版ユースケース作成)、要求レビュー 2. 分析 / 予備レビュー

    ロバストネス分析、ドメインモデル更新、論理名付け、ドラフト版ユースケース修正 3. 予備設計レビュー 4. 詳細設計 シーケンス図作成、ドメインモデル更新、静的モデル整理 5. 詳細設計レビュー 6. 実装 コーディングと単体テスト、結合テストとシナリオテスト、次フェーズ準備 ICONIXの分析部分を取り入れるだけでも より効率的にDDDを回せるのでは
  13. DDD時代に考えたいICONIXプロセス 29 要求 ドメインモデリング (概念モデル DDDの文脈とは粒度が違うので注意) - プロジェクトの用語集 - プロジェクトで実際に使われるすべての単語を辞書にする

    - 用語の洗い出しをしながら関連も洗い出す - システム目線ではない。現実世界に焦点を置く - ユースケースを洗い出す前に行う ※ ユースケース駆動実践ガイドより引用
  14. DDD時代に考えたいICONIXプロセス 30 要求 ユースケースモデリング (振舞要求) - 機能要求かをユースケースとドメインオブジェクトに割り当てる - 通常ケース代替ケースを考慮する -

    関連に時間をかけない。何がおきているかにのみ着目する - アルゴリズムではない。アクターとシステムの対話ステップ ※ ユースケース駆動実践ガイドより引用
  15. DDD時代に考えたいICONIXプロセス 32 分析 / 予備レビュー ロバストネス分析 - 分析でもあり設計でもある - ユースケースとオブジェクトを紐づける

    - 概念の発見 - ユースケース記述からあいまいさを取り除く - ロバストネス分析中もユースケースの修正を行う - 関連線は気にしない - シーケンスではない ※ ユースケース駆動実践ガイドより引用