3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

既存コードの理解が速くなる:ChatGPTを使ったコード解析テクニック

3
Posted at

1. この記事でわかること

• 保守改修業務におけるコード解析を、ChatGPTを使って効率化する具体的な方法がわかる

2. 業務での課題(なぜAIを使おうと思ったか)

  • 保守改修では、既存コードの調査に多くの時間がかかり、特に仕様書が古い・担当者が不在といった状況では理解が難しいことが多い

  • 条件分岐が複雑、依存関係が多い、SQLが長いなど、コードの読み解きに時間を取られ、修正作業に着手するまでのリードタイムが長くなっていた

  • 影響範囲の洗い出しや調査メモの作成も属人化しやすく、抜け漏れのリスクが常に存在していた

  • これらの課題を解消するため、「コードの理解」「要点整理」「文章化」を高速化できるAIの活用を検討した

3. 前提となる業務内容

  • 主に業務系システムの保守・改修を担当し、既存コードの調査、仕様変更対応、バグ修正、テスト設計などを日常的に行っている

  • 使用言語は VB.NET や C#、SQL が中心で、既存資産の解析や影響範囲の把握が業務の大部分を占める

  • 仕様書が最新ではない、過去担当者が不在、コードが複雑化しているといった“保守現場あるある”の状況が多い

  • そのため、コード解析の効率化や調査の標準化が業務改善の重要なテーマとなっている

4. ChatGPTを使ったコード解析

実務で使える6つの活用ポイント

1. 処理概要の高速把握

コード全文(または対象メソッド)をそのままAIに渡す

既存コードの読み解きは保守改修で最も時間がかかる作業のひとつです。

ChatGPTにコードを渡すと、処理の流れ・役割・依存関係を短時間で整理できます。

  • 使い方の流れ

1. コードをそのまま貼る
2.「概要」「主要関数」「データの流れ」を説明させる
3. 依存関係や外部影響を推測させる

  • プロンプト例

以下のコードの処理概要を、初心者にも分かるレベルで説明してください。
また、主要な関数の役割、外部ファイル・DB・他クラスへの依存があれば推測して一覧化してください。

  • 効果
    • 調査の初動が圧倒的に早くなる

2. 変更箇所の特定と影響範囲の推測

変更内容の説明文+関連コードをAIに渡す

仕様変更やバグ修正時に「どこを直せばいいか」「どこに影響するか」をAIに補助させると漏れが減ります。

  • 使い方の流れ

1.変更内容を文章で説明

2.関連しそうなコードを貼る

3.ChatGPTに影響範囲を列挙させる

  • プロンプト例

この機能に「○○のチェックを追加する」変更を行います。
以下のコードに対して、影響しそうな箇所を列挙し、理由も説明してください。

  • 効果

    • 影響範囲の抜け漏れ防止

    • レビュー前のセルフチェックにも使える

3. 複雑な条件分岐の読み解き

条件分岐部分のみを抜き出してAIに渡す

保守案件では「if がネストして読みにくい」「条件が複雑すぎる」コードがよくあります。

ChatGPTは条件分岐の整理が得意です。

  • 使い方の流れ

    • 条件分岐部分だけ抜き出して貼る

    • 条件の意味・分岐の意図を説明させる

    • フローチャート風にまとめさせる

● プロンプト例

以下の条件分岐を、フローチャート風に分かりやすく説明してください。
また、冗長な部分や改善できるポイントがあれば指摘してください。

  • 効果

    • 読みにくいコードの理解が一気に進む

    • リファクタリングのヒントも得られる

4. SQL・正規表現の解析

SQL文または正規表現をそのままAIに渡す

保守改修では「複雑なSQL」「読みにくい正規表現」が頻出します。

ChatGPTはこれらの解析にも強いです。

● プロンプト例(SQL)

以下のSQLの処理内容を日本語で説明してください。
どのテーブルをどう結合し、どの条件で絞り込んでいるかを分かりやすくまとめてください。

● プロンプト例(正規表現)

この正規表現がどのような文字列を許可・拒否するか、例を交えて説明してください。

  • 効果

    • SQLの意図がすぐ理解できる

    • 正規表現の仕様確認が容易になる

5. コードの問題点・改善点の指摘

修正後のコードをAIに渡す

ChatGPTはコードレビューの観点で問題点を洗い出すのが得意です。

  • 使い方の流れ

    1. 修正したコードを貼る

    2.「レビュー観点で指摘して」と依頼する

    3. 可読性・保守性・例外処理などの観点で改善案を得る

  • プロンプト例

以下の修正コードについて、レビュー観点で改善点を指摘してください。
可読性・保守性・例外処理・命名の4観点でお願いします。

  • 効果

    • 自分の修正の品質が安定する

    • レビュー前のセルフチェックとして有効

6. ログ解析と原因推測

ログ全文をAIに渡す(長い場合は分割)

コード解析とセットで必要になるのがログ解析。

ChatGPTは長いログを要約し、原因候補を整理するのが得意です。

  • プロンプト例

以下のログから、エラー発生箇所と原因の可能性を3つに絞って説明してください。
また、再現手順が推測できれば併記してください。

  • 効果
    • 調査の初動が早くなる
    • 原因候補を短時間で整理できる

🧪 実際に使ってみた感想

実務で使ってみて感じたのは、「コード理解の初動が圧倒的に早くなる」という点です。

特に、処理概要の説明や条件分岐の整理は人間が読むよりも早く、要点を短時間で把握できます。

また、影響範囲の洗い出しやSQLの解析など、普段時間がかかる作業も“たたき台”として十分なレベルの回答が返ってきます。

最終的な判断は人間が行う必要がありますが、調査の方向性が明確になるため、作業のスタートがとてもスムーズになりました。

「コードを貼って質問するだけ」でここまで効率化できるのは、保守改修の現場では非常に大きなメリットだと感じています。

⚠️ 注意点(必ず守るべきポイント)

  • ChatGPTを業務で使う際は、以下の点に注意する必要があります
    • 機密情報を入力しない

    • ソースコード

    • 顧客名

    • 個人情報

    • 社内固有の情報

など、外部に出せない情報は必ずマスクするか、サンプル化して入力する。

  • 最終判断は必ず人間が行う

ChatGPTは便利ですが、

  • 依存関係の推測

  • 影響範囲の推定

  • SQLの解釈

などで誤りが出ることもあります。

AIの回答はたたき台として扱い、最終的な判断は必ず人間が行うことが重要です。

  • プロンプトの工夫で精度が変わる

曖昧な質問だと曖昧な回答になるため、

「目的」「前提」「求める形式」を明確に伝えると精度が上がります。

📝 まとめ

ChatGPTは、保守改修におけるコード解析の初動を大幅に短縮できる強力なツールです。

処理概要の把握、影響範囲の整理、条件分岐の可視化など、実務でそのまま使える場面が多くあります。

ただし、機密情報の扱いと最終判断は必ず人間が行うことが前提です。

たたき台作成ツールとして活用することで、調査の質とスピードを同時に向上できます。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?