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は、保守改修におけるコード解析の初動を大幅に短縮できる強力なツールです。
処理概要の把握、影響範囲の整理、条件分岐の可視化など、実務でそのまま使える場面が多くあります。
ただし、機密情報の扱いと最終判断は必ず人間が行うことが前提です。
たたき台作成ツールとして活用することで、調査の質とスピードを同時に向上できます。