システム開発者であれば、一度は「システム関連図」を自動化できないかと考えたことがあるはずです。私も、過去の投稿記事でPDFや画像認識を使って自動生成できないか試みましたが、精度や汎用性に限界を感じました。最終的に、Excelのシェープ(円や四角)を利用して関連性を基づき作図する方法に行き着きました。結果としては十分な精度が得られたものの、シェープ同士の関係性を手作業で定義するのは非常に手間がかかり、現実的ではありません。
一方で、システム開発者として、もう一つ気になるのが「プログラム構造」です。例えば、「この関数に引数を追加したらどの部分に影響が出るのか?」や、「メソッド名を変更した際、どれだけの箇所を修正する必要があるのか?」といった悩みは、日常的に直面する問題です。もちろん、grepなどの検索ツールもありますが、それだけでは不十分だということを多くの技術者は痛感しているでしょう。
そこで今回は、「システム関連図」の代わりに「プログラム構造解析」に焦点を当て、Neo4jとgpt-4oを使ったPythonプログラムを作成してみようと思います。ここで思い浮かんだのが、かつて利用していたDoxygenです。最近は使っていませんでしたが、クラスやファイルの依存関係を高い精度で文書化でき、さらにGraphvizと連携してリッチなクラス図や依存関係図を生成できる優れたツールです。
今回は、Neo4j、gpt-4o、そしてDoxygenを組み合わせて、プログラムの構造を解析・可視化するプロセスに挑戦していきます。
詳しくはQiitaの記事をご覧ください

Comments