ソースコードのリバース解析にEAは欠かせない

派生開発をメインに行っていると必要になるのが、既存コードの解析作業だ。ソースコードがどのように開発されてどんな構成になっているのか、資料が有ればそれを手がかりにコードを読み砕くことが出来るのだが、多くの場合、コードの追加・拡張の連続なので資料の記載とは合致しないことが珍しくないし、そもそも満足な開発資料すら残っていないことも多い。規模の小さなプロジェクトならともかく、数十万行ものコードが相手だと、一体どこから解析したら良いのかも分からずお手上げだ。

そんな時には、ソースコードを解析するツールを使って、まずは全体像を把握するようにしている。これなら何が重要で、どこを変更すべきなのか分かりやすいからだ。そのためのツールとして、最近では特にスパークシステムズのEnterprise Archtect (EA)を使うことが多い。安価なUMLツールだけど、ソースコードのフォルダを指定すると、力強くバリバリと(?)コードを解析してクラス図を生成してくれる。もちろん、ツールの制約というものは必然的に存在するから、例えば「クラス間の関係が出てこない」という状況は頻発するけれど、その辺は適宜開発者が補えば良いと納得して使っている。少なくとも白紙の状態から自分でクラスの図面を描いていくよりはずっと効率的なはずだ。

日経SYSTEMS2010年7月号には、その機能の紹介記事が載っていた。リバース機能の概略を知るには良い記事だろう。

検証 こちら検証ラボ
UML図をどこまで復元? リバースエンジニアリング 十分に実用レベルのクラス図、シーケンス図は用途に注意(052p)
リバースエンジニアリング機能を持つツールを使うと、いったいどこまでUML図を復元できるのかを検証してみた。

日経BP SHOP|日経SYSTEMS2010年7月号

また、開発元(代理店)の方のブログにも、その記事に対する評価が載っていた。評価内容は適切なようだ。

今回、「こちら検証ラボ」のコーナーで、Enterprise Architectを利用した解析についてページを割いていただきました。堂々の6ページです。内容は、クラス図とシーケンス図の解析です。詳細な内容は実際の記事をご覧ください。内容も指摘されている問題点も、とても正確です。

http://uml.livedoor.biz/archives/51528907.html

開発ツールは、機能を求めて上を見るとキリがないけれど、そこそこ手軽な価格でUML作成はもちろん、これだけのリバース機能が利用出来るのはお買い得だと思う。

逆に、ソースコードを読込んでクラス図を生成することもできます。また、プログラムをEnterprise Architect内で動作させ、動作結果をシーケンス図として生成する「デバッグ機能」も搭載しています。

Enterprise Architectのさまざまな機能についての情報



関連