【AI】Claude Codeでソースを解析する

IT IT勉強
DSC_0281

Claude Codeにソースコードを解析させ、設計書の生成などを行います。

Claude Codeとは

Claude Codeは、Anthropicが提供するコード解析に特化したAIを搭載したコーディングアシスタントです。
ソースコードの理解・説明・改善提案を自然言語で行うことができ、コードの構造把握や問題点の指摘を得意としています。
開発者が効率よく作業を進めるための強力なサポートツールです。

注意事項

ソースコードをAIツールで解析する際には、Claude Codeに限らず、入力したコードがAIモデルの学習に利用されたり、外部に漏えいする可能性がある点に注意が必要です。
そのため、業務で扱うソースコードを、企業や顧客、プロジェクトの許可なくAIツールに読み込ませることは、後々トラブルや訴訟に発展するリスクがあります。

工数削減など明確な目的がある場合でも、まずは利用するAIツールの安全性やデータ取り扱いを確認したうえで、ソースコードの所有者である企業や顧客に事前相談し、了承を得てから使用するようにしてください。

なお、本手順の利用に伴ういかなる結果についても、当方では責任を負いかねます。
全て自己責任でご対応ください。

事前準備

アカウント作成

今回は、Googleアカウントを使用してClaudeのアカウントを作成します。
Claude Codeは有償プランで利用するため、Googleアカウントには事前にクレジットカードを登録しておきます。

まず、以下のページにアクセスします。
https://claude.com/ja-jp/pricing

料金プランはProを選択します。

プラン選択後、以下の画面が表示されたら[Googleで続ける]をクリックします。

続いて、使用するGoogleアカウントを選択し、Claudeからのアクセス許可を与えます。

その後、Claudeの利用規約などが表示されるので、内容を確認し、必要に応じてチェックを入れて、[続ける]をクリックします。

今回はお試し利用のため、月額払いを選択します。

手続きが完了すると、デスクトップ版のダウンロード画面が表示されます。
[Windows版をダウンロード]をクリックしてインストーラを取得します。

デスクトップ版の使用開始

前段でダウンロードしたデスクトップ版のインストーラーを、ローカル環境にインストールします。

インストールが完了したら、デスクトップ版のClaudeを起動します。

起動すると、ブラウザが立ち上がり、以下のような画面が表示されます。

また聞いてこられた。。

[Claudeの改善にご協力ください]を選択すると、入力したコードがAIモデルの学習に利用される可能性があります。
今回はコードを学習に使わせたくないため、チェックは入れずに進みます。

次に、自分の呼び名(表示名)を入力します。

その後、追加の画面が表示され、操作を受け付けなくなることがありました。
今回は一度デスクトップ版アプリを閉じ、立ち上げ直します。

ソースの解析

気を取り直して、デスクトップ版のClaudeを起動します。
初回起動時は、いくつか設定項目の入力が求められます。

Claudeの画面が表示されたら、上部の[コード]タブを選択します。

これがClaude Codeのメイン画面のようです。
今後はこの画面を使って、ソースコードの解析や設計書の作成を進めていきます。

ソース解析と設計書作成

まずClaude Codeにソースコードを解析してもらい、その後に設計書を生成してもらいます。

[フォルダを選択]ボタンをクリックし、解析対象となるソースのルートディレクトリを指定します。

選択したフォルダが画面に表示されます。

プロンプト欄に解析してほしい内容を入力し、処理を開始します。

ソースのルートディレクトリへのアクセス許可を求められるので、問題なければ[ワークスペースを信頼]をクリックします。

解析が完了すると結果が表示されます。
API の説明などは、コメントから取得できる部分はコメントを参照し、それ以外はAIが推測して補っている印象です。

続いて、設計書の作成を依頼します。

ディレクトリ作成などの許可を求められた場合は、問題なければ許可します。
設計書はデフォルト設定では、ソースのルートディレクトリに新しいフォルダが作成され、その中に出力されるようです。

ファイル書き込みの許可も求められるため、こちらも問題なければ許可します。

なお、この作業を進める前にいろいろ試していたため、Claude Code の利用上限に達してしまいました。
再開可能な20時まで待つことにします。

20時になり、再度操作を行います。
特に自動で処理が再開される様子はなかったため、改めて指示を出して作業を続行しました。

最終的に、以下のようにフォルダ内に設計書が生成されました。

設計書の内容

生成AIによって作成される設計書は、毎回まったく同じフォーマットや内容になるわけではありません。
参考として、今回Claude Codeによって生成された設計書の構成と内容を紹介します。

00_インデックス.md

設計書全体の構成と、プロジェクト情報がまとめられています。

プロジェクト情報には以下が記載されていました。

  • プロジェクト名
  • 開発言語
  • ビルドツール
  • 使用されているフレームワーク
  • DBMS

01_システム概要.md

以下の内容が記載されています。

  • システム構成
    クライアントからモジュール、DBへ至るレイヤー
  • 主要機能
    主要な機能とその概要
  • モジュール構成
    主要機能をさらに細分化した構成
  • アーキテクチャレイヤー
    モジュールを中心としたレイヤー構造の説明
  • 権限制御
    APIでの入口部分で行われる権限チェック
    コメントだけでなく、AIが解析した内容も含まれています。
  • データベース構成
    DBスキーマの説明
    こちらもコメント以外に、AIがコードから推測した内容が記載されています。
  • 技術スタック
    開発言語や内部で使用されている技術の一覧

02_ER図.md

Mermaid記法でER図が生成されています。

データモデルクラス名やDBのカラム名をもとに構成されており、
ソースにDB情報が含まれていないため、その範囲での推測となっています。

03_テーブル設計書.md

データモデルクラス名とカラム名をもとにテーブル設計がまとめられています。
以下が記載されています。

  • スキーマ構成
  • テーブル名(データモデルクラス名)
  • テーブルの論理名
  • カラム名、データ型、PK、NOT NULL、説明
    説明欄にはステータス値なども記載されており、コメントで取得できない部分はAIが解析して補っているようです。

04_API一覧.md

APIの名称、HTTPメソッド、必要権限、概要などが一覧化されています。

05_API処理フロー.md

各レイヤーごとの処理フローが記載されています。

  • 共通処理の流れ
  • 権限チェックの流れ
  • API呼び出しの全体像

API設計書

機能ごとにAPIの詳細がまとめられています。

  • 入力パラメータ、出力パラメータ
    オブジェクト内のプロパティ単位で記載
    ステータス値や文字列長なども含まれる
  • API内での処理内容
  • DBに対してどのような変更を行うかの概要

まとめ

生成AIによる設計書としては、想像以上にしっかりと解析されており、
コードの構造や処理の流れが丁寧にまとめられていました。

ただし、処理内容が本来の意図と一致しているかどうかなど、
開発に携わっていなければ判断できない部分は当然含まれていません。
そのため、必要に応じて事前にプロンプトで背景情報を与えるなどの工夫が必要です。

ソースから設計書を起こす際のベースとして利用したり、
特定の処理フローに特化した設計書を生成して問題点を洗い出すなど、
さまざまな用途で活用できると感じました。

ライセンスおよび著作権について

本記事では公開されているOSSを解析対象として使用しています。

著作権およびライセンスへの配慮のため、実際のコード・クラス名・ディレクトリ構成など、
元プロジェクトを特定できる情報は掲載していません。

タイトルとURLをコピーしました