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

ソフトウェア品質特性、意識してますか?AIの真の力を引き出す活用事例 / ai-and-sof...

ソフトウェア品質特性、意識してますか?AIの真の力を引き出す活用事例 / ai-and-software-quality

こちらのイベントの登壇資料です。
AI コーディングエージェント with AWS 〜「自律的にコードを書くAI」の AWS での始め方徹底ガイド〜
https://pages.awscloud.com/eib-aiml-250522-reg.html

負債分析プロンプト「バグサーチャー」の元ネタはこちらのゲームです。
無料なので遊んでみてね。
『バグハンター2 REBOOT』
https://www.freem.ne.jp/win/game/30836

Avatar for MinoDriven

MinoDriven

May 22, 2025
Tweet

More Decks by MinoDriven

Other Decks in Programming

Transcript

  1. © DMM © DMM ソフトウェア品質特性 意識してますか? AIの真の力を引き出す活用事例 2025/05/22(木) AI コーディングエージェント

    with AWS 〜「自律的にコードを書くAI」の AWS での始め方徹底ガイド〜 合同会社DMM.com ミノ駆動
  2. © DMM 自己紹介 ミノ駆動 ( @MinoDriven ) 合同会社DMM.com プラットフォーム開発本部 第3開発部

    DeveloperProductivityGroup DMMプラットフォームの設計を改善し 開発生産性向上を図るのがミッション 2
  3. © DMM ソフトウェア品質特性とは ソフトウェア品質の評価基準です。 13 品質特性 説明 品質副特性 機能適合性 機能がニーズを満たす度合い

    機能完全性、機能正確性、機能適切性 性能効率性 リソース効率や性能の度合い 時間効率性、資源効率性、容量満足性 互換性 他のシステムと情報共有、 交換できる度合い 共存性、相互運用性 使用性 利用者がシステムを満足に利用できる度合い 適切度認識性、習得性、運用操作性、ユーザーエラー防止性、ユー ザーインターフェイス快美性、アクセシビリティ 信頼性 必要なときに機能実行できる度合い 成熟性、可用性、障害許容性、回復性 セキュリティ 不正利用から保護する度合い 機密性、インテグリティ、否認防止性、責任追跡性、真正性 保守性 システムを修正する有効性や効率の度合い モジュール性、再利用性、解析性、修正性、試験性 移植性 他の実行環境に移植できる度合い 適応性、設置性、置換性
  4. © DMM 開発プロセスと品質特性の関係性 各開発プロセスは、なんらかの品質特性に寄与します。 例えば以下です。 14 開発プロセス 寄与する品質特性 要求定義 機能適合性など

    デザインシステムの策定 使用性、再利用性 クエリパフォーマンス改善 性能効率性 リファクタリング 保守性 ロギング実装、モニタリング環境整備 解析性
  5. © DMM 25 静的解析ツールとの負債分析観点比較 静的解析ツールは「コードの意図」がわかりません。 一方、生成AIは意図を推論できます。 生成AIだからこそ可能な負債分析です。 一般的な静的解析ツールの分析観点 コード行数 サイクロマチック複雑度

    コード重複 引数の数 etc.. バグサーチャーの分析観点 カプセル化 ドメインロジックの関心の分離 ドメインモデル完全性 技術レイヤ間の関心の分離 各設計パターン毎の設計要件 interface設計 etc..
  6. © DMM スケールする負債分析の質と量 例えば約400行ほどのソースコードの負債を洗いざらい分析する場合 • ミノ駆動の目視 : 約15〜30分(ドメイン知識に依存) • バグサーチャー

    : 約1分 私は変更容易性やリファクタリングを専門としていますが、 私とほぼ同等の精度で、かつ10倍以上の生産性で分析できています。 しかも誰でもバグサーチャーを使えるので、 お手軽に「ミノ駆動の分身」を増やせる体制に。 変更容易性の専門知識のおかげで実現できたと言えます。 26
  7. © DMM 契約による設計 契約による設計とは、正確性(=機能適合性)の向上を目的に バートランド・メイヤー氏が考案した設計の方法論。 以下の3条件から構成されます。 • 事前条件:メソッド開始時に保証されるべき条件 • 事後条件:メソッド終了時に保証されるべき条件

    • 不変条件:常に維持されるべき条件 モジュールの機能適合性を保証するテストはこの3条件の検証が基本。 つまり生成AIに高品質なテストコードを実装させるには、 契約による設計を踏まえる必要があります。 31
  8. © DMM 契約による設計に基づくプロンプト実装 32 # 役割 あなたは以下の専門家として振る舞うこと - テストコード -

    契約による設計(事前条件、事後条件、不変条件) # 目的 テストコード実装 # 制約 メソッドの事前条件、事後条件、不変条件を検証するテストであること # テスト対象 (ここにテスト対象のメソッドを指定する)
  9. © DMM スケールするテストコード実装の質と量 約100行のコードにテストを書く場合、分析も含めて • ミノ駆動の実装 : 20-60分??(ドメイン知識に依存) • 前述のプロンプト:

    1分以内 数十倍のオーダーで高速化! 抜け漏れもなく、テストと検証対象が1:1になっているので、 テストコードの品質も良好。 34
  10. © DMM 関与する品質特性を生成AIに聞いてみよう 自分の仕事が何の品質特性に関係しているか分からなければ、 以下のプロンプトで生成AIに聞いてみると良いでしょう。 36 # 役割 あなたは以下の専門家として振る舞うこと -

    ISO/IEC 25010のプロダクト品質モデル - ソフトウェア開発 # 目的 以下について知りたい - 私の業務がどのソフトウェア品質特性に寄与するか - 該当する品質特性を高めるために深く知るべき技術 # 私の業務 (ここに業務内容を列挙する)