Slide 1

Slide 1 text

© 2024 ESM, Inc. Tech Boost LT大会 AI活用時代のUML再評価 1 2024年11月30日 永和システムマネジメント Agile Studio 岡本 卓也

Slide 2

Slide 2 text

© 2024 ESM, Inc. 自己紹介 ● 岡本 卓也 ● EM@AgileStudio ● スクラムコーチ兼開発者 ○ ガチWF :15 年 ○ 過渡期 :5年 ○ Agile :5年 ● アジャイル開発導入支援 WFからの移行支援 ● X:@haraguro3 好きなものはアジャイルとモデリングとトムデマルコ。 ● note:https://note.com/haraguro3 ● mail:[email protected] 2

Slide 3

Slide 3 text

© 2024 ESM, Inc. マイブーム AIに仕事を手伝ってもらう ● 調査 ● 設計 ● コーディング ● レビュー ● テスト ● デバッグ ● 不具合対応 ● 情報整理 ● アジェンダ作成 ● スライド作成 3

Slide 4

Slide 4 text

© 2024 ESM, Inc. 今日のお話 4

Slide 5

Slide 5 text

© 2024 ESM, Inc. はじめに 背景 ● UML(Unified Modeling Language)はかつて開発設計の中心だったが 時代とともにその役割が薄れた。 ● その原因には「コード自動生成の失敗」や「利用目的の曖昧さ」が挙げられる。 新たな視点 ● 近年、AI技術が急速に進化し、UMLの再評価が可能になった。 AIがUMLを「読む」「書く」能力を持ち、これをどう活用できるか? 5

Slide 6

Slide 6 text

© 2024 ESM, Inc. UMLの過去と現在 かつてのUMLの目的 ● 人間同士の設計コミュニケーションのためのツール。 ● 自動コード生成への挑戦(例:MDA - Model-Driven Architecture)も 試みられたが、大規模な失敗に終わった。 現在の状況 ● 利用頻度は減少し、特定の開発分野や学術的な場で使われる程度に。 ● UMLはオワコン。 6

Slide 7

Slide 7 text

© 2024 ESM, Inc. AIによるUMLの新しい可能性 AIがUMLを読み書きできる時代 ● AIモデル(例:ChatGPT、GPT-4など)は、UMLのモデルを解析し、 それに基づいてコードや設計文書を生成可能。 ● 人間が手書きしたUMLを画像として提供しても認識可能なマルチモーダル能力。 厳密性を提供するツール ● MermaidやPlantUMLのような記述形式なら、AIは曖昧さなくモデルを理解し、 意図を正確に再現できる。 7

Slide 8

Slide 8 text

© 2024 ESM, Inc. AIと協業する観点でUMLを再評価 人間 vs. AI:UMLの利用目的が変わる ● これまでは「人間同士」のコミュニケーション手段として利用されていた。 ● これからは「AIが理解しやすい設計モデル」としての価値が出てくる。 実際の利用シナリオ ● UMLを設計ツールとして使い、AIにコード生成やデバッグ支援を依頼。 8

Slide 9

Slide 9 text

© 2024 ESM, Inc. 実験してみました 9

Slide 10

Slide 10 text

© 2024 ESM, Inc. お題 こんなシステムを作るとしたら? ● レンタルビデオショップのシステムを設計します。 ● このシステムでは、利用者がビデオを借りたり返却したりする操作を管理します。 ● ショップのスタッフは、ビデオの在庫を確認したり、新しいビデオを追加したりする ことができます。 10

Slide 11

Slide 11 text

© 2024 ESM, Inc. クラス図を読んで要件を理解する 11 実験その1

Slide 12

Slide 12 text

© 2024 ESM, Inc. 人間がクラス図を書いた 12

Slide 13

Slide 13 text

© 2024 ESM, Inc. この画像を読み込ませてみる 13

Slide 14

Slide 14 text

© 2024 ESM, Inc. 理解できたこと 14

Slide 15

Slide 15 text

© 2024 ESM, Inc. 理解できたこと 15

Slide 16

Slide 16 text

© 2024 ESM, Inc. 理解できたこと 16

Slide 17

Slide 17 text

© 2024 ESM, Inc. 理解できたこと 17

Slide 18

Slide 18 text

© 2024 ESM, Inc. 理解できたこと 18

Slide 19

Slide 19 text

© 2024 ESM, Inc. 理解できたことをクラス図に戻してみる 19

Slide 20

Slide 20 text

© 2024 ESM, Inc. AIが書いたクラス図 20 オリジナル

Slide 21

Slide 21 text

© 2024 ESM, Inc. 実験結果(その1) ● 画像からほぼ完璧に意図を理解することができる ● 入力にない情報も文脈を汲み取って補完してくれる ● PlantUMLによる出力が可能 21

Slide 22

Slide 22 text

© 2024 ESM, Inc. 要件を理解してクラス図を書く 22 実験その2

Slide 23

Slide 23 text

© 2024 ESM, Inc. 要件を提示する 23

Slide 24

Slide 24 text

© 2024 ESM, Inc. AIが書いたクラス図 24 オリジナル

Slide 25

Slide 25 text

© 2024 ESM, Inc. コードの自動生成にチャレンジ 25

Slide 26

Slide 26 text

© 2024 ESM, Inc. AIが実装したコード 26

Slide 27

Slide 27 text

© 2024 ESM, Inc. AIが実装したコード 27

Slide 28

Slide 28 text

© 2024 ESM, Inc. AIが実装したコード 28

Slide 29

Slide 29 text

© 2024 ESM, Inc. AIが実装したコード 29

Slide 30

Slide 30 text

© 2024 ESM, Inc. AIが実装したコード 30

Slide 31

Slide 31 text

© 2024 ESM, Inc. AIが実装したコード 31

Slide 32

Slide 32 text

© 2024 ESM, Inc. 実験結果(その2) ● 自然言語からほぼ完璧に意図を理解することができる ● 入力にない情報も文脈を汲み取って補完してくれる ● PlantUMLによる出力が可能 ● プログラム言語による出力が可能(コードの自動生成が実用レベル) 32

Slide 33

Slide 33 text

© 2024 ESM, Inc. わかったこと 33

Slide 34

Slide 34 text

© 2024 ESM, Inc. 完全に実用レベル 34 人間 設計 実装 思考 自然言語 モデル ソースコード 生成 生成 解析 説明

Slide 35

Slide 35 text

© 2024 ESM, Inc. AIと協業する観点でUMLを再評価 AIの利用シナリオ ● AIを設計アシスタントとして使い、レビューとフィードバックを依頼。 ● AIをドキュメントライターとして使い、設計ドキュメント作成を依頼。 ● AIを高級コンパイラとして使い、コード生成を依頼。 ● AIをコードレビュアーとして使い、レビューとフィードバックを依頼。 ● AIをデバッグ要員として使い、エラーの調査と修正を依頼。 UMLの価値 ● 設計/実装のための中間言語として用いることで、高精度なAI支援を受ける ● プロジェクト/プロダクトの文脈を与えることで、高精度なAI支援を受ける 35

Slide 36

Slide 36 text

© 2024 ESM, Inc. でも所詮は、レンタルビデオの 簡単なサンプルでしょ? と思った人 36

Slide 37

Slide 37 text

© 2024 ESM, Inc. 実開発でもバリバリに使っています 37 実例

Slide 38

Slide 38 text

© 2024 ESM, Inc. 実装レベルの設計(クラス図) 38

Slide 39

Slide 39 text

© 2024 ESM, Inc. 39

Slide 40

Slide 40 text

© 2024 ESM, Inc. 設計レビュー 40

Slide 41

Slide 41 text

© 2024 ESM, Inc. 41

Slide 42

Slide 42 text

© 2024 ESM, Inc. 42

Slide 43

Slide 43 text

© 2024 ESM, Inc. 43

Slide 44

Slide 44 text

© 2024 ESM, Inc. AIがやっている仕事 ● 利用する技術やライブラリの調査 ● 実験用のサンプルコード生成 ● アーキテクチャのレビュー ● プロダクトコードの生成(80点くらい) ● テストコードの生成(90点くらい) ● コードレビュー 44

Slide 45

Slide 45 text

© 2024 ESM, Inc. AIと働いてみて Good ● 開発チームにシニアエンジニアが加わった感じ ● Googleによる検索を完全に置き換えた ● 思いつき→調査→実装して実験、のサイクルが爆速になる ● 結果として、エンジニアとしての学習速度が爆上がりする Note ● AIはエンジニアの力を0→1ではなく、1→10とか10→100にしてくれる ● 地力の強いエンジニアほどAIのメリットを多く受けられる ● AIの使い方は明瞭期、しかし今トライしないと確実に取り残される 45

Slide 46

Slide 46 text

© 2024 ESM, Inc. おしまい 46