Beyond Functional Correctness: Design Issues in AI IDE-Generated Large-Scale Projects

本論文は、FD-HITL フレームワークを用いて AI IDE(Cursor)で生成された大規模プロジェクトが機能的には高い正しさを示す一方で、コード重複や複雑性の高まりなど設計上の問題が多数存在し、長期的な保守性や拡張性にリスクをもたらすことを実証的に明らかにしたものである。

原著者: Syed Mohammad Kashif, Ruiyin Li, Peng Liang, Amjed Tahir, Qiong Feng, Zengyang Li, Mojtaba Shahin

公開日 2026-04-09✓ Author reviewed
📖 1 分で読めます☕ さくっと読める

これは以下の論文のAI生成解説です。著者が執筆したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

Each language version is independently generated for its own context, not a direct translation.

この論文は、**「AI によるプログラミングが、本当に大規模なシステムを一人で作れるのか?そして、その結果は『使える』だけで『良いもの』なのか?」**という問いに答えた研究です。

まるで**「AI という天才的な見習い職人」に、「複雑なビル(大規模プロジェクト)」**を一人で建てさせてみた実験のようなものです。

以下に、専門用語を排し、日常の例え話を使って分かりやすく解説します。


🏗️ 実験の舞台:AI 職人「Cursor」と「設計図」

研究者たちは、最新の AI 搭載 IDE(開発環境)の一つである**「Cursor」**というツールを使いました。これは、単にコードの断片を提案するだけでなく、プロジェクト全体を把握して、ファイルを読み書きし、計画を立ててコードを書くことができる「エージェント(自律的な助手)」です。

しかし、いきなり「ビルを建てて」と言っても、AI は混乱して失敗したり、粗末な小屋しか作れなかったりします。そこで研究者たちは、**「FD-HITL(機能駆動型・人間と AI の協働)」という新しい「建設マニュアル」**を開発しました。

  • 従来のやり方(Vibe Coding): 「適当に作って!」と AI に任せる。→ 結果:バラバラで、後から直すのが大変な「粗末な小屋」になる。
  • 今回のやり方(FD-HITL):
    1. 設計図を一緒に描く: 「何を作るか」「どんな技術を使うか」を人間が明確に指示する。
    2. 小分けにする: 大きなビルを「1 階の壁」「2 階の階段」など、小さくてテストしやすい部品に分解する。
    3. 一つずつ確認する: 部品ごとに AI に作らせ、人間が「OK?」とチェックしてから次に進む。

この「丁寧なマニュアル」を使って、**10 個の大規模プロジェクト(Web アプリ、スマホアプリ、ツールなど)**を AI に作らせました。


📊 結果:「機能は動く」が「設計はボロボロ」

1. 機能は素晴らしい(91% 成功!)

AI は、このマニュアルに従えば、約 1 万 7000 行ものコード(人間のプログラマーが数週間かかる量)を生成し、91% の確率で「要求された機能」を正しく動かすことができました。

  • 例え: 「レストランを開いて」と頼むと、AI は「メニューは完璧、料理は美味しい、客は満足して帰る」素晴らしいお店を作ってくれました。

2. しかし、裏側は「危険な状態」だった

機能は動くけれど、「設計(内装や構造)」に深刻な問題が大量に見つかりました。静的解析ツール(コードの健康診断機)を使ってチェックしたところ、**4,000 以上もの「欠陥」**が見つかりました。

主な問題は以下の通りです:

  • 📝 コードの「コピペ」過多(DRY 原則違反)
    • 例え: 同じ料理のレシピを、メニューの各ページに手書きで全部書き写している状態。
    • 問題: 「塩の量を 1g 増やして」と言われた時、10 箇所すべてを修正しなきゃいけなくなります。メンテナンスが地獄です。
  • 🧠 複雑すぎる関数(SRP 原則違反)
    • 例え: 一人の料理人が「包丁を握り、火加減を調整し、皿を洗い、客の注文を取り、会計まで行う」状態。
    • 問題: 役割が混雑しすぎて、誰が何をしているか分からず、バグを見つけにくい。
  • 🚧 巨大なメソッド(Large Methods)
    • 例え: 1 つのレシピが 200 行も続く、読めない長い文章になっている。
    • 問題: 修正しようとしても、どこをいじったらいいか分からない。
  • ♿ アクセシビリティの欠如
    • 例え: 車椅子の人が入れない入り口や、点字ブロックがない道。
    • 問題: 視覚障害者やキーボード操作しかできない人が使えない。

💡 重要な発見:AI は「職人」ではなく「見習い」

この研究から得られた最大の教訓は以下の通りです。

  1. AI は「設計」を任せられない:
    AI は「指示された通りに実行する」のは得意ですが、「どうすれば良い設計になるか」を自分で考えたり、長期的なメンテナンス性を考慮したりするのは苦手です。
  2. 人間の役割は「監督」から「設計者」へ:
    以前は「AI がコードを書くから、人間はチェックするだけ」でしたが、これからは**「人間が設計図(要件定義)を完璧に作り、AI に細工(実装)を任せる」**という役割分担が必要です。
  3. 「動くこと」だけがゴールではない:
    機能は動いても、中身がボロボロだと、後から「直そう」とするとコストが膨らみます。AI が作ったコードは、**「プロの職人が徹底的にリファクタリング(設計の整理)をしない限り、本格的な製品には使えない」**という結論です。

🎯 私たちへのメッセージ

AI 開発ツールは魔法の杖ではありません。それは**「非常に速く、正確に作業できる見習い職人」**です。

  • 魔法の杖だと思って「適当に作って」と頼むと: 見た目は立派でも、中身がぐちゃぐちゃの「危ない家」ができます。
  • 熟練の監督者として「設計図を渡して、一つずつ確認する」: 高品質で、長く使える「立派なビル」を建てることができます。

結論:
AI には「実装」を任せ、「設計」「要件定義」「品質チェック」は人間がしっかり行う。この**「人間と AI のタッグ」**が、未来のソフトウェア開発の正解です。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →