イベントストーミングから始めるドメイン駆動設計
by
おだかとしゆき
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
イベントストーミングから 始めるドメイン駆動設計 概念モデリングと生成AIで 加速するシステム開発 おだかとしゆき as JGEEM(@EM4326168385309) 2025.6.7 JJUG CCC 2025 Spring
Slide 2
Slide 2 text
自己紹介 おだかとしゆき 株式会社MonotaRO シニアアーキテクト as JGEEM(@EM4326168385309) 事業(J)会社(G)の元(Ex)EM / 53才 現職はアーキテクチャと格闘 定年までできることしたいことを探る日々 定年後もキャリアは続く/ AIIT 科目等履修生 / 貢献てなんだろう see also scrapbox,speakerdeck 2
Slide 3
Slide 3 text
本日の資料 ● 各種モデル: Miro ● 生成AI: Gemini, DeepResearch, GoogleAIStudio ● レポート: ○ ファストリ戦略分析とマップ骨子, ○ 有明プロジェクト業務プロセス詳細調査 ○ 業務プロセス責務と関心事の整理 3
Slide 4
Slide 4 text
セッションの 目的と背景
Slide 5
Slide 5 text
セッションの背景と目的 ● 事業の競争優位性?エンジニアが意識すること? ● ビジネスや業務のこと、もっと知りたいけど 業務エキスパートに凸るのも、、忙しそうだし ● 構造化とか抽象化とかいうけど何なん 5
Slide 6
Slide 6 text
セッションの背景と目的 ● 事業の競争優位性?エンジニアが意識すること? ○ もちろん。エンジニアリングは事業活動の一環 ● ビジネスや業務のこと、もっと知りたいけど 業務エキスパートに凸るのも、、忙しそうだし ○ 公開情報から事業理解を深め、予備知識を得る ● 構造化とか抽象化とかいうけど何なん ○ 各種モデリングの手法は、現実を扱いやすくする 6
Slide 7
Slide 7 text
セッションの背景と目的 エンジニアが公開情報から事業活動を分析し、 注力すべきビジネスプロセスを効果的に見極め、 各種モデリング手法を用いて 保守性の高いソフトウェア設計に繋げるプロセスを、 生成AIを使ってコストパフォーマンスよく進める 7
Slide 8
Slide 8 text
セッションの背景と目的 エンジニアが公開情報から事業活動を分析し、 注力すべきビジネスプロセスを効果的に見極め、 各種モデリング手法を用いて 保守性の高いソフトウェア設計に繋げるプロセスを、 生成AIを使ってコストパフォーマンスよく進める 8
Slide 9
Slide 9 text
今日、持って帰ってほしいこと 9
Slide 10
Slide 10 text
今日、持って帰ってほしいこと ● モデリングの意義 ○ なぜモデリングするのか? ○ 何がうれしいのか? 10
Slide 11
Slide 11 text
今日、持って帰ってほしいこと ● モデリングの意義 ● 特に「複数のモデル」を作成する意義 ● 各モデルを通して問題領域を眺めることで 視点を移動させる ということ ○ 具体 ⇔ 抽象 ○ 動的 ⇔ 静的 11
Slide 12
Slide 12 text
今日、お伝えしたいこと ● 各モデルの 目的は何か? ● それらのモデルを糸口に 事業をどう捉える か? 12
Slide 13
Slide 13 text
今日、お伝えしたいこと ● 各モデルの 目的は何か? ● それらのモデルを糸口に 事業をどう捉える か? 13 モデリングの本質的な価値: ● 多角的な視点(具体/抽象、動的/静的)で ドメイン (事業領域) を捉え、理解を深め、 より良いソフトウェア設計に繋げる
Slide 14
Slide 14 text
今日、お伝えしたいこと ● 各モデルの 目的は何か? ● それらのモデルを糸口に 事業をどう捉える か? 14 モデリングの本質的な価値: ● 多角的な視点(具体/抽象、動的/静的)で ドメイン (事業領域) を捉え、理解を深め、 より良いソフトウェア設計に繋げる
Slide 15
Slide 15 text
おしながき ● ドメイン駆動設計(DDD)の基本的な考え方とメリット ● 私がよく使う)モデルの目的と概要 ○ 作成手順も少しだけ ● 公開情報からビジネス理解を深めモデリングする ○ 生成AIの使いどころ 15
Slide 16
Slide 16 text
ドメイン駆動設計 (DDD)の 基本的な考え方と メリット
Slide 17
Slide 17 text
DDDの基本的な考え方 ● ドメイン(事業活動)中心 ● ドメインモデル ● ユビキタス言語 (同じ言葉) ● 境界付けられたコンテキスト (区切られた文脈) ● 関心の分離 ● 共創と進化 17
Slide 18
Slide 18 text
そのメリット ● 複雑性への対応 ● 共通理解 ● 保守性と拡張性 ● ビジネスアジリティ ● 価値への集中 18
Slide 19
Slide 19 text
ハードル高いんよ、、 ● 複雑性への対応: 「複雑」を「扱いやすく」するには多くを整理・整頓 ● 共通理解: 意思疎通は本当に難しい。いわんや複雑なものをや ● 保守性と拡張性: 具体的にどうしたら、、え?抽象化?? ● ビジネスアジリティ: 保守性と拡張性を得て初めて効果 ● 価値への集中: これが最重要なのは分かるが、誰がどうやって判断するの? 19
Slide 20
Slide 20 text
ブロッカーは裏返せ ● 複雑なものから不要なものを捨てて扱いやすくすれば、 コミュニケが捗る・コードも扱いやすくなる ○ コードが扱いやすいなら保守性・拡張性が高いはず? ならビジネスアジリティだって! ● 価値への集中って要はコスパでしょ? 業務エキスパートと事業活動を肴にわいわいしたら 見えてくるんじゃね? 20
Slide 21
Slide 21 text
真のブロッカーが見えてきた ● 複雑なものから不要なものを捨て ⊃ 捨像 つまりモデリング ● 業務エキスパートと事業活動を肴にわいわい ⊃ その前に まずエンジニアだけで素振り 21
Slide 22
Slide 22 text
量的なブロッカー ● 本来は重要な領域なのに(だからこそ?) ○ よく分からない・触りたくない ○ いざ変更するとあちこちに影響しまくる ○ 調査とテスト含めて半年かかります??? ● リアーキテクチャすべきな気はするが、、 22
Slide 23
Slide 23 text
量的なブロッカー ● 本来は重要な領域なのに(だからこそ?) ○ よく分からない・触りたくない ○ いざ変更するとあちこちに影響でまくる ○ 調査とテスト含めて半年かかります??? ● リアーキテクチャすべきな気はするが、、 23
Slide 24
Slide 24 text
なぜ素振りが必要か ● 「わいわい」と一方的に教えてもらうのもアリですが、 双方がある程度知識を持ってるほうが 盛り上がる ● 業務エキスパートはたいてい忙しい(キーマンなので) ● というわけで、まずエンジニアだけで素振りして 予備知識を仕入れたら良いことがありそう 24
Slide 25
Slide 25 text
● エンジニアの シニア・ジュニア間にも フラクタル構造が ● 業務知識を獲得済みのチームに新規参戦したジュニアが 他のメンバと同じ視点を得るには オンボーディングが重要 ○ 「ドキュメント読んどいて」では不十分 (そもそもドキュメント揃ってます?) ■ シニアエンジニアは忙しい ● メンタリングコストを捻出しにくい ○ じゃあ OJT で! ■ 個人メモ止まり・曖昧な認識 ● 永遠にドキュメント化されない ちなみに 25
Slide 26
Slide 26 text
ちなみにちなみに ● ジュニアを AI に置き換えても同じ 構造が ● AI を超上流工程 でも使いたい ○ 1shotじゃ 一般論しか 出てこない ■ 当社の事業領域や業務ルールなど、 文脈知識をインプットしたい ● ドキュメント化されていない ○ AI もまだまだだな??? 26
Slide 27
Slide 27 text
オンボーディングにおいて ● 「OJTでキャッチアップするしかないっしょ」は甘え ○ 新規参入者に(人にもAIにも) フレンドリーな体裁のインプットが不可欠 ○ 文脈知識を得た AI は最強のメンターに? ご参考: AI-Agent開発における文脈知識の獲得とモデリングの活用 さらに補足: ● モデリングと論理的推論(あるいはエンジニアリングを進歩させるナレッジとは) ● 帰納法・演繹法・アブダクションについてモデリングと抽象化の観点から考えを深める 27
Slide 28
Slide 28 text
公開情報から ビジネス理解を深め モデリングする
Slide 29
Slide 29 text
公開情報を収集/分析する (してもらう) ● ファーストリテイリング社を題材にさせていただきました ○ みんな大好きユニクロさん ○ 私もヘビーユーザーですが、ビジネス・業務面では 縁もゆかりもありません 29
Slide 30
Slide 30 text
公開情報を収集/分析する (してもらう) ● 企業選定のポイント: 公開情報が潤沢 ○ 直近1年間に統合報告書をリリースしている ○ 直近3年分程度の有価証券報告書、決算説明資料、 プレスリリースが公開されている ○ 第三者によるマーケティング分析が公開されている 30
Slide 31
Slide 31 text
公開情報を収集/分析する (してもらう) ● 企業選定: ざっくり生成AIに聞いちゃいましょう 31
Slide 32
Slide 32 text
公開情報を収集/分析する (してもらう) ● 企業選定: 生成AIの提案から選定するにあたって ○ 当然ですが)生成AIの回答はまじめに読みましょう ○ 気になりどころを質問して解像度を上げましょう ■ 興味を持てるまで聞きまくりましょう ○ 最重要)最終的には自分で選びましょう 32
Slide 33
Slide 33 text
公開情報を収集/分析する (してもらう) ● 企業情報収集のポイント ○ 生成AIにお願いするの一択 ■ 自分でイチから収集/分析する必要はないでしょう いい時代になりましたね 非上場企業を対象とする場合は自力収集しないと、、 どんな情報があったらいい?と参考にしていただければと思います。 33
Slide 34
Slide 34 text
公開情報を収集/分析する (してもらう) ● 生成AIに情報収集をお願いする( https://g.co/gemini/share/f965f6350d98 ) ○ どんな資料を分析したらいい?進め方は? ■ ファーストリテイリング社発行のIR資料(内容と確認ポイント) ● 統合報告書 / アニュアルレポート ● 決算説明会資料 / ファクトブック ● 有価証券報告書 ■ 第三者による分析レポート・記事(内容と確認ポイントと備考) ● 証券会社のアナリストレポート ● 業界レポート / 市場調査レポート ● ビジネス系メディアの記事 / 書籍 ■ 深い洞察を得るための進め方 ←これ重要 34
Slide 35
Slide 35 text
公開情報を収集/分析する (してもらう) ● 得られた回答の分析をお願いします ( https://g.co/gemini/share/fa452c3d8e6d ) ■ 収集フェーズで得たアウトプットを そのままDeepResearchへのリクエストに流用します ■ レポート: ファストリ戦略分析とマップ骨子 ● DeepReserchの仕事はまだ続きますが、一旦はここまで ● しっかり読み込みましょう 35
Slide 36
Slide 36 text
公開情報を収集/分析する (してもらう) ● さらにそのままモデリングもお願いしてみた ○ ぜんぜん無理でした ○ mermaid記法の表現力に限りがあるのか、 現時点でモデルの限界なのか、 私の指示が未熟なのか、、 36
Slide 37
Slide 37 text
概念モデリングによる事業活動の可視化 ● ざっくりと流れを紹介 ○ 活動システムマップ で事業活動全体を俯瞰し、 競争優位性の源泉となる要素を特定する ○ 対象の要素について、 ビッグピクチャー を描いて大まかな流れをつかみ、 フォーカスすべき業務領域(区切られた文脈)を特定する ○ 選定した業務領域を構成する業務間の係わりを コンテキストマップ で示し、最も重要な業務を特定する ○ 業務を代表するユースケースのプロセスを プロセスモデル で示し、 そのプロセスを構成する要素を発見する ○ 得られた要素を 構造化 し、新たな洞察を得る起点にする 37
Slide 38
Slide 38 text
概念モデリングによる事業活動の可視化 ● ポイント: 目的意識を持つ ○ 何がしたいのか? ■ 全体の俯瞰から始まり、スコープを絞り込んで 注力すべき領域を発見する ○ 何が嬉しいのか? ■ 少ないコストで高い効果を得る 38
Slide 39
Slide 39 text
概念モデリングによる事業活動の可視化 ● 競争優位性を獲得したい!!! ○ 競争優位性を獲得・維持するためには、 重要なプロセスを繰り返し改善する 必要がある ○ 対象のプロセスを構造的に捉え、高い保守性を得ることは 迅速性(→適時性)を高め・コスト効率を高める ○ 業務フローやイベントストーミングのような動的なモデルを 構造化し、静的なモデルを得て、深い洞察に至ることは 設計プロセスそのもの 39
Slide 40
Slide 40 text
【再掲】モデリングの流れ ● 活動システムマップで事業活動全体を俯瞰し、 競争優位性の源泉となる要素を特定 する ● 対象の要素について、ビッグピクチャーを描いて大まかな流れをつかみ、 フォーカスすべき業務領域(区切られた文脈)を特定 する ● 選定した業務領域を構成する業務間の係わりを コンテキストマップで示し、最も重要な業務を特定 する ● 業務を代表するユースケースのプロセスをプロセスモデルで示し、 その プロセスを構成する要素を発見 する ● 得られた 要素を構造化し、新たな洞察を得る起点にする 40
Slide 41
Slide 41 text
【再掲】モデリングの流れ ● 活動システムマップで事業活動全体を俯瞰し、 競争優位性の源泉となる要素を特定 する ● 対象の要素について、ビッグピクチャーを描いて大まかな流れをつかみ、 フォーカスすべき業務領域(区切られた文脈)を特定 する ● 選定した業務領域を構成する業務間の係わりを コンテキストマップで示し、最も重要な業務を特定 する ● 業務を代表するユースケースのプロセスを プロセスモデル で示し、 その プロセスを構成する要素を発見 する ● 得られた 要素を構造化し、新たな洞察を得る起点にする 41
Slide 42
Slide 42 text
活動システムマップ ● ここから Miro を併用していきます ● わたしの脳内都合で、活動システムマップのはずが 別のモデル(戦略マップ風)になってしまいました ● 目的: ○ 事業活動全体を俯瞰し、 競争優位性の源泉となる要素を特定する 42
Slide 43
Slide 43 text
活動システムマップ まずは無造作に要素を置いていく ● レポート (ファーストリテイリング社の競争優位性の源泉 :ビジネス戦略の分析) に出てきた要素(主要なビジネスプ ロセス)を配置します 43
Slide 44
Slide 44 text
活動システムマップ 戦略マップ 関係あんじゃね?って思われるものを「適当に」線でつなぐ ● この辺は感覚ですね (自社なら?) ● 各ビジネスプロセスの関連を 線で表します (向きは気にしない) ● 活動システムマップのはずが 戦略マップ(下位が上位に寄与する)風に なってしまいました 44
Slide 45
Slide 45 text
戦略マップ 線が集中しているところや、 起点になっているところを詳細化してみる ● ここではやはり 情報製造小売業 が 気になったので深掘りしたところ、 有明プロジェクト という 取り組みが フォーカスされたので さらに深掘りして 情報を得ています 45
Slide 46
Slide 46 text
ビッグピクチャー ● as イベントストーミング です ● 有明プロジェクトとは何者かをざっくり把握します ● 目的: ○ 大まかな流れをつかみ、フォーカスすべき 業務領域(区切られた文脈)を特定する 46
Slide 47
Slide 47 text
イベントストーミング イベントストーミングで使う付箋の意味を ● よく見るやつですね ● 業務領域を分析する観点 ● 複雑な現実を 意味付けられた付箋に合うよう捨像して 要素間の連携を分析するため 47
Slide 48
Slide 48 text
イベントストーミング ● どこかで起きた業務イベントをトリガーにして ● 何らかの業務ルールに基づき ● または更新されたリードモデルを観測したアクターにより ● コマンドが実行され ● 集約や外部システムが更新されると ● また業務イベントが起きる ● 気になりどころはワークショップで大活躍 48
Slide 49
Slide 49 text
イベントストーミング ● 時間の都合でイベストの詳細は割愛します 🙇 ● さらに深く知りたい方のために ○ 実践!モノリスからマイクロサービス!Event Stormingによる ドメイン駆動設計から実装まで | AWS Dev Day 2023 Tokyo [speakerdeck] [youtube] ○ AWS Summit Japan 2024 での福井さんのセッションも 素晴らしかったが公式の動画も資料も見つけられなかった [セッションレポート] 49
Slide 50
Slide 50 text
ビッグピクチャー ざっくりプロセスにしてみる ● 上の画像はいわゆる ビジネスモデル ● 「有明プロジェクト」で画像検索した結果 ○ ヒットしない場合は後段の要領で 生成AIに相談しましょう ■ BPMレベル2(詳細事業機能)です ● これらの情報をもとに全体の流れを ビッグピクチャーとして表してみましょう 50
Slide 51
Slide 51 text
ビッグピクチャー フォーカスすべき業務領域の見当を付ける ● プロセス(流れ)を最初から最後まで 声に出して説明してみる (ウォークスルー) ● 事業活動として価値を創出している 業務領域はここじゃね?的な 感覚がきっとある 51
Slide 52
Slide 52 text
コンテキストマップ ● いわゆるDDDのコンテキストマップとは目的が異なる ● 目的: ○ 業務領域を構成する業務間の係わりを示し、 最も重要な業務を特定する 52
Slide 53
Slide 53 text
コンテキストマップ ● DDD的コンテキストマップ(文脈の地図) ○ コンテキスト(区切られた文脈)間の 関係とその種類(緊密な関係、利用者と供給者、互い に独立)を示します(出典)※ 増田さんお借りしました ● ここでは、コンテキスト=業務領域を構成する要素 (より小さな業務領域or業務)間の責務の分離と関係性を 見ることを目的にします 53
Slide 54
Slide 54 text
コンテキストマップ ● まずはフォーカスすべき業務領域を掘り下げ、 より小さな業務領域or業務に分けます ○ もちろんDeepReserchです(chatは前出の続き ■ https://g.co/gemini/share/fa452c3d8e6d ○ レポート: 有明プロジェクト業務プロセス詳細調査 ■ しっかり読み込みましょう 54
Slide 55
Slide 55 text
コンテキストマップ ● 違和感のある記述を訂正しつつ、 各業務の 責務 と 必要な情報 を整理します ○ さらにDeepReserchです(chatは前出の続き ■ https://g.co/gemini/share/fa452c3d8e6d ○ レポート: 業務プロセス責務と関心事の整理 ■ こちらもしっかり読み込みましょう 55
Slide 56
Slide 56 text
コンテキストマップ レポートを読み下しながら業務を置き、 業務間を線でつないでみる ● まずは戦略マップを書いたときと 同じぐらいの適当さで要素を置く ● レポートを読み込み、 業務プロセスを想像しながら、 因果関係を矢印の方向として落とし込み、 業務の責務と必要な情報を書き出してみよう 56
Slide 57
Slide 57 text
コンテキストマップ ● ポイント: ○ 書いたらウォークスルーして→直して→ ウォークスルーして、、を繰り返してみましょう ○ 業務の過不足がありそう?なんか変?と 違和感の元を添削しましょう 57
Slide 58
Slide 58 text
コンテキストマップ 最もアツい業務はどれだ? ● 線が集中しているところ /起点になっているところ ● 事業活動として 価値が高そうなところ (ビッグピクチャと同じ観点) ● ご自身が担当する プロセスでも良いと思う 58
Slide 59
Slide 59 text
コンテキストマップ ● ポイント: ○ 「必要な量だけ、つくり・運び・販売する」という文脈において、 重要と目されるのは 需要予測 と 生産計画 だろう ○ 販売データやトレンドだけに依らず、VoCなども取り入れて予測す るプロセスは、まさに 情報製造小売業の中核 に相応しいだろう ■ ファストリ社は分かりやすい戦略により判断できた ■ 分かりやすい判断根拠がない場合は、 他社事例と比較して「際立って特色のあるプロセス」を 見極めるのが良いでしょう 59
Slide 60
Slide 60 text
プロセスモデリング ● 最もアツい業務を分析する ● 目的: ○ 業務を代表するユースケースのプロセスを示し、 そのプロセスを構成する要素を発見する 60
Slide 61
Slide 61 text
プロセスモデリング ● 今度は推論モデルに業務プロセスを分析してもらう ○ GoogleAIStudio(トークン消費が激しそうなので ○ prompt概要: ■ 需要予測プロセスの詳細分析 ■ DeepReserchによるレポート3種を添付 ■ OOPに精通した熟練エンジニアとしてイベスト手法で分析 ■ 画像の代わりに<アクター><コマンド>のようにタグで表現 61
Slide 62
Slide 62 text
プロセスモデリング ● ポイント: ○ 生成する粒度を揃えたかったのでビジネスプロセスモ デル(BPM)のレイヤで粒度を指定した(出典) ■ ビッグピクチャなら FL2(詳細事業機能) ■ 今回指定したレイヤは FL4(詳細業務機能) ■ 詳細なプロセスモデルでは FL7(単位操作) 62
Slide 63
Slide 63 text
プロセスモデリング ● BPM レイヤ一覧(青字は言い換え、()内は粒度の個人的な感覚) ○ FL0: 事業単位 ○ FL1: 事業機能 ○ FL2: 詳細事業機能 ○ FL3: 業務機能 業務領域(コンテキストマップ: 生産計画) ○ FL4: 詳細業務機能 業務(プロセスモデル: 日次生産計画を調整した) ○ FL5: 単位作業 作業(詳細プロセスモデル: SKUごと反復処理) ○ FL6: 要素作業 手順(詳細プロセスモデル: 仮所要量を再計算する) ○ FL7: 単位操作 操作(あれ?) ○ FL8: 要素操作 63
Slide 64
Slide 64 text
プロセスモデリング ● ともあれ生成AIってすごいですね ○ ちゃんと出てきた ○ 正直ダメかなと思ってた ○ 今回、一番助けられた(自力だと挫けてたかも?? 64
Slide 65
Slide 65 text
プロセスモデリング 検証も兼ねてイベントストーミングの体裁にしてみる ● 当初、需要予測でアプローチしましたが生産計画に変更 65
Slide 66
Slide 66 text
プロセスモデリング ● 気になるプロセスをさらに深掘りする ○ 「日次生産計画の見直しと調整 (リアルタイム反映)」が気に なりました ○ これはきっと、月次計画から日々の需要変動などを加味しつ つ、自動化されていない調整業務などを経て最終確定する業 務です ○ 「自動化されていない調整業務」が多くあり、もはや意味も 分からないままトイル的に行われているに違いありません 66
Slide 67
Slide 67 text
プロセスモデリング ● 先ほどのchatの続きで深掘りをお願いします ○ 粒度はFL.7(単位操作)を指定し、さらに注文を付けます ■ コマンドは単一責任原則を踏襲したメソッド程度の粒度 で定義し、集約とコマンドの関係性においては、カプセ ル化を強く意識して定義してください ● 生成AIってすごいですね 67
Slide 68
Slide 68 text
プロセスモデリング 検証も兼ねて(ry ● 注文が行き過ぎたせいか、アプリケーションの動作に 寄り過ぎてしまった感がありますが、、 ● イベントストーミングのお作法に沿わないところも整えます 68
Slide 69
Slide 69 text
構造化モデルへの落とし込み ● 構造化モデル=ドメインモデルでいいんですが、、 ● ドメインモデルって、業務エキスパート的に 取っつきにくい気がしませんか? ● 目的: ○ 得られた要素を構造化し、 新たな洞察を得る起点にする 69
Slide 70
Slide 70 text
構造化モデルへの落とし込み ● なので業務エキスパートの方々とわいわいするために 純粋に業務上の概念を構造化したモデルを作成します ○ 概念構成図 と呼んでます 70
Slide 71
Slide 71 text
構造化モデルへの落とし込み プロセスモデルを構造化する ● プロセスモデルから、集約・コマンド・イベントを 抜き出して並べます 71
Slide 72
Slide 72 text
構造化モデルへの落とし込み プロセスモデルを構造化する ● 「流れ」的な要素を矢印で示しつつ、要素を添削して 全体を構成します 72
Slide 73
Slide 73 text
構造化モデルへの落とし込み プロセスモデルを構造化する ● さらに構造化を進めます ● リードモデル、 集約、コマンド、 ユースケース、イベント、 外部リソースやアクターの 位置を決めて配置します 73
Slide 74
Slide 74 text
構造化モデルへの落とし込み いろいろな気付きを書き込む ● 素朴な疑問や気付き、 思ったことをどんどん 書き込みます ● ここで忖度したら 負けです。ジュニアも グイグイいきましょう 74
Slide 75
Slide 75 text
● なんかできました🎉 合ってるかどうかは知らんけど!!! ● でもいいんです。精度なんて二の次です。 目で見て、指を指して、 認識を揃えるネタができたことをまずは喜びましょう ● ゼロから認識合わせるより修正したほうがきっと早い 話にならなくても、雑絵を描き始めるきっかけにはなる 75 わいわいしに行こうぜ!
Slide 76
Slide 76 text
【おまけ】戦術的設計へ 集約、エンティティ、 値オブジェクトを識別する ● 想像の産物から ソフトウェアの設計に進むのは 狂気の沙汰ですが、この営みで 重要な集約を発見したとして、 その設計とは?という 戦術的設計とのつなぎを少しだけ 76
Slide 77
Slide 77 text
まとめ
Slide 78
Slide 78 text
● モデリングの意義 ● 特に「複数のモデル」を作成する意義 ● 各モデルを通して問題領域を眺めることで 視点を移動させる ということ ○ 具体 ⇔ 抽象 ○ 動的 ⇔ 静的 78 【再掲】 今日、持って帰ってほしいこと
Slide 79
Slide 79 text
【再掲】 今日、お伝えしたいこと ● 各モデルの 目的は何か? ● それらのモデルを糸口に 事業をどう捉える か? 79 モデリングの本質的な価値: ● 多角的な視点(具体/抽象、動的/静的)で ドメイン (事業領域) を捉え、理解を深め、 より良いソフトウェア設計に繋げる
Slide 80
Slide 80 text
戦略マップ ● 目的 ○ 競争優位性の源泉となる 要素を特定する ● 抽象度レベル ○ 事業活動全体 ● 種別 ○ 静的 80
Slide 81
Slide 81 text
ビッグピクチャー ● 目的 ○ フォーカスすべき 業務領域を特定する ● 抽象度レベル ○ 事業プロセス ● 種別 ○ 動的 81
Slide 82
Slide 82 text
コンテキストマップ ● 目的 ○ フォーカスすべき 業務を特定する ● 抽象度レベル ○ 業務領域 ● 種別 ○ 静的 82
Slide 83
Slide 83 text
プロセスモデル ● 目的 ○ 業務プロセスを 分析し、構成要素を発見する ● 抽象度レベル ○ 業務~操作 ● 種別 ○ 動的 83
Slide 84
Slide 84 text
概念構成図 ● 目的 ○ 業務上の新たな洞察を得る ● 抽象度レベル ○ 操作 ● 種別 ○ 静的 84
Slide 85
Slide 85 text
モデル別 目的まとめ 85 モデル 目的 抽象度 動的 / 静的 戦略マップ 競争優位性を特定する 事業 静的 (構造) ビッグピクチャー 重要業務領域を特定する 事業 動的 (流れ) コンテキストマップ 最重要業務を特定する 業務領域 静的 (構造) プロセスモデル プロセスを分析し、 構成要素を発見する 業務~ 操作 動的 (流れ) 概念構成図 新たな洞察を得る 操作 静的 (構造)
Slide 86
Slide 86 text
【再掲】 なぜモデリングなんて面倒なことを!? ● 競争優位性を獲得したい!!! ○ 競争優位性を獲得・維持するためには、 重要なプロセスを繰り返し改善する 必要がある ○ 対象のプロセスを構造的に捉え、高い保守性を得ることは 迅速性(→適時性)を高め・コスト効率を高める ○ 業務フローやイベントストーミングのような動的なモデルを 構造化し、静的なモデルを得て、深い洞察に至ることは 設計プロセスそのもの 86
Slide 87
Slide 87 text
ありがとうございました 87