Slide 1

Slide 1 text

モデル駆動設計をやってみよう ワークショップ開催報告 UMTP モデリングフォーラム 2025

Slide 2

Slide 2 text

ワークショップ開催報告 アジェンダ • 講師、日時/会場/進行/ワークショップの様子 • ワークショップの内容 • ワークショップアンケート結果 • 開催しての感想 2

Slide 3

Slide 3 text

ワークショップ開催報告 アジェンダ • 講師、日時/会場/進行/ワークショップの様子 • ワークショップの内容 • ワークショップアンケート • 開催しての所感 3

Slide 4

Slide 4 text

講師 4

Slide 5

Slide 5 text

日時/会場/進行 2025年11月17日(月) 13:00-17:00 会場:NEC様 本社 • ワークショップ内容説明 13:00〜13:15 • モデリング 13:15〜16:15 • 増田亨さんレビュー(3組) 16:15〜17:00 5

Slide 6

Slide 6 text

ワークショップの様子 6 2〜4人のテーブルに分かれてワーク& 議論

Slide 7

Slide 7 text

ワークショップの様子 7 2〜4人のテーブルに分かれてワーク& 議論

Slide 8

Slide 8 text

ワークショップ開催報告 アジェンダ • 講師、日時/会場/進行/ワークショップの様子 • ワークショップの内容 • ワークショップアンケート結果 • 開催しての所感 8

Slide 9

Slide 9 text

9 導入部:モデリング駆動設計とは

Slide 10

Slide 10 text

10 候補日 佐藤さん 鈴木さん 高橋さん 12月3日 〇 〇 × 12月7日 〇 〇 〇 12月8日 × 〇 〇 12月7日に決定! なぜ? モデリングテーマの説明:日程調整

Slide 11

Slide 11 text

テーマ(シンプル版) 12月7日に決定するルールを、プログラミング言語で 表現してください ① 判断の元になる情報(日程調整表)を、プログラミン グ言語でどう表現するか? ② 判定結果を、プログラミング言語でどう表現するか? ③ 判定ロジックをどう記述するか? 11

Slide 12

Slide 12 text

日程の決定ルールを少しずつ複雑に a. 全員参加できる候補日が複数あった場合の決定ルール (例えば、最早)を追加 b. 出欠回答に△(出席可能だができれば避けたい)を追 加し、○△×を重みづけし参加可能人数の期待値が最 大の候補日に決定するルールを追加 c. 最大の期待値が一定以下の場合は再調整と判定する ルールを追加 12

Slide 13

Slide 13 text

ワークショップ開催報告 アジェンダ • 講師、日時/会場/進行/ワークショップの様子 • ワークショップの内容 • ワークショップアンケート結果 • 開催しての所感 13

Slide 14

Slide 14 text

申込、出席数(アンケート回収数) • 申込者数:26 • 出席者数:23 • アンケート回収数:15 14

Slide 15

Slide 15 text

ワークショップアンケート 15

Slide 16

Slide 16 text

ワークショップアンケート 16 経験あり 経験なし

Slide 17

Slide 17 text

ワークショップアンケート 17 3年以上 1〜3年 1年未満 なし

Slide 18

Slide 18 text

ワークショップアンケート 18

Slide 19

Slide 19 text

ワークショップアンケート 19

Slide 20

Slide 20 text

ワークショップアンケート 20 非常に満足 満足 普通 不満

Slide 21

Slide 21 text

何を使ってモデリングしたか 21 • Java:10 • Go :5 • UML:5 • C#:3 • Python:2 • Ruby:2 • Mermeid:2

Slide 22

Slide 22 text

参加者のコメント要約(プラス) 22 • 最後の増田さんの講評が非常に良かった。 • 他の人のモデリングへの意見や解釈、感覚を知れたのが収穫 • 人間が何となく見て分かる表からモデル、コードに落とし込む作業が予 想以上に大変で勉強になった • モデル(仕様)をコードで表現するという観点を強く意識する機会となっ た • 集中して取り組む時間になった

Slide 23

Slide 23 text

参加者のコメント要約(伸びしろ) 23 • 増田さんならどのようなコードになるのかを見てみたかった • 増田さんの講評を受けたかった(講評の時間を長くしてほしい) • コードによるモデリング方法の具体的な説明がなく、モデル駆動設計の解像度が上がらなかった。 • コードのみでドメインのルールがわかるようにというのは全面的に同意するが、モデル駆動では ないのでは • コードではなくても(例:クラス図)、レビューしてほしかった • チーム分けで得られるものが異なる。同じ境遇の人が多く、同じような設計になってしまった • テーブル以外のメンバーと話す機会がなかった • スタッフのおしゃべりが気になる時があった

Slide 24

Slide 24 text

ワークショップ開催報告 アジェンダ • 講師、日時/会場/進行/ワークショップの様子 • ワークショップの内容 • ワークショップアンケート結果 • 開催しての所感 24

Slide 25

Slide 25 text

開催しての感想 25 • モデリングを「頭で理解する」のと「体得」の間には崖がある • モデリングの「体得」のきっかけとしてワークショップは価値がある • モデリングを「体得」する必要があるのか

Slide 26

Slide 26 text

(DDDの)モデル駆動開発のポイント 26 モデル = コード モデル=コードである

Slide 27

Slide 27 text

モデル=コード 27

Slide 28

Slide 28 text

(DDDの)モデル駆動開発のポイント 28 事業、業務を表現する 事業、業務を表現する モデル = コード

Slide 29

Slide 29 text

モデル=コードにするテクニック(DDD) 29 モデル = コード 事業、業務を エンティティ、値オブジェクト、 ユビキタス言語(同じ言葉) で表現する 事業、業務を表現する

Slide 30

Slide 30 text

「モデル=コード」では無くなる時 30 手続き型で 処理を記述する 事業、業務を表現する モデル ≠ コード

Slide 31

Slide 31 text

モデリングを「頭で理解する」のと「体得」の間には崖がある 実践してみると・・・(今回のワークショップでのレビュー指摘事項の例) ・コードが意図を語っていない(処理は書いてある) ・重要概念がクラスではなく、プリミティブ型の変数で表現されている ・コメントで重要概念を説明しているが、コード上では表現されていない やってみると 頭で理解

Slide 32

Slide 32 text

モデリングのワークショップは、 体得のきっかけとして価値がある 実践 ・ワークショップで実践 ・自分で書いてみる ・実プロジェクトで実装 ・師に習う 頭で理解 体得

Slide 33

Slide 33 text

生成AIがモデリングをするにしても、 人が体得することは必要 生成AIがモデリング ↓ AIがつくったモデルの良し悪しを判断できない ↓ 知らぬうちに、歪んだ設計がソフトウェアに埋め込まれる(AIで動くものはつくれる) ↓ ソフトウェアの内側から劣化する。 ↓ 開発生産性や品質が低下し、事業に悪影響

Slide 34

Slide 34 text

生成AIがモデリングをするにしても、 人が体得することは必要 生成AIがモデリング ↓ AIがつくったモデルの良し悪しを判断し、最終的に受け入れ判断 ↓ ソフトウェアの内側が、きれいに保たれる ↓ 変更容易性が高まり、開発生産性が上がり、事業に貢献

Slide 35

Slide 35 text

参加者の方々、会場を貸していただいたNEC様、 UMTP運営の方々、ワークショップを告知頂いた方々.. ありがとうございました! 35