一般社団法人 全国個人事業主支援協会

COLUMN コラム

最近話題の生成AI。私自身も日々の業務で活用する場面が増えてきました。
特に技術系のタスクでは、コードのリファクタやバグ調査、ちょっとしたコードスニペットの生成など、非常に助かっています。

そんな中、ある案件で「既存のソースコードの構造を把握したい」という作業がありました。ドキュメントが整備されておらず、コードベースもそこそこ大きい。これはAIに解析させて、関数一覧やクラス構造をざっくり把握できれば効率的だろう……と思ったわけです。

が、結果から言えば、残念ながら今回は思ったような成果が得られませんでした。


複数ファイルを読み込ませたが、構造がぐちゃぐちゃに

まず、ソースコードを複数ファイルに分けてAIに読み込ませました。各ファイルは個別に内容がわかるようになっているものの、クラス同士の継承関係や、モジュール間の依存など、全体像を把握するにはそれなりに前提知識が必要です。

AIに「各ファイルの関数名やクラス名を一覧化し、処理の概要も添えてまとめてほしい」と依頼したのですが、返ってきた内容は正直あまり実用的ではありませんでした。関数名の抽出が一部誤っていたり、関数の中に記述されているネスト構造をうまく認識できていなかったりと、精度にばらつきがありました。


ファイル間の繋がりが理解できない

さらに厄介だったのが、「ファイル間の関係性」をAIが正確に把握できなかった点です。
たとえば、あるクラスファイルが別の親クラスを継承している場合、本来であれば親クラスの内容も踏まえたうえで、その子クラスの振る舞いを判断する必要があります。しかし、AIは基本的に“そのファイル単体”でしか解析を行っていないようで、継承元のクラスにどんなメソッドがあるか、どんなプロパティを引き継いでいるかといった情報を考慮してくれませんでした。

これはおそらく、ファイルごとに切り離された情報として読み込んでいるため、コンテキストを横断的に解釈するのが難しいという制限があるのだと思います。


結局、どうしたか?

結局のところ、AIのサポートはあくまで「補助的な役割」にとどまりました。
全体構造の把握は、自分の目でコードを追いながら、手作業でクラス図や処理フローを整理していく形になりました。

ただし、一度に解析するファイル数を絞ったり、継承関係を自分で事前に説明した上で補足的に質問する形にすれば、もう少し精度を上げられたかもしれません。やはりAIに任せるには、情報の“与え方”が非常に重要だと改めて実感しました。


教訓:AIは便利だけど、魔法ではない

今回の経験を通じて感じたのは、「AIは便利だけれど、現時点では魔法のような道具ではない」ということです。
コードのような構造化された情報であっても、ファイルをまたいだ文脈を正しく理解させるには工夫が必要です。

私たち人間が、コードの文脈やプロジェクト全体の設計意図を読み解くのと同じように、AIにも「前提」を丁寧に伝えてあげる必要があります。
今後、より多くのエンジニアや個人事業主がAIを活用する中で、「AIにどこまで任せるか」「どう使えばうまくハマるのか」といった知見はどんどん重要になっていくでしょう。

ということで、今回はAIソース解析に挑戦してみたけれど、もうひと工夫必要だった……というお話でした。

The following two tabs change content below.

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア