SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート(AD)

400万行のコードを15分で見える化!
プログラム解析ツール『Understand』で開発効率アップ

  • このエントリーをはてなブックマークに追加

 システムの多機能化により、プログラムの内容が複雑化している。テクマトリックスの『Understand』は、プログラムの構造を可視化することで、ソースコードの解析時間を大幅に削減できる開発支援ツール。今回は同社の福永一寛氏に、Understandの機能や特徴について聞いた。

  • このエントリーをはてなブックマークに追加

 システムの多機能化により、プログラムの内容は複雑化している。既存コードの改修や多人数での開発における情報共有のためには、プログラム構造の理解が必須だが、ドキュメントと実装内容とが乖離している場合も多く、解析自体に工数がかかることもある。テクマトリックスの『Understand』は、プログラムの構造を可視化することで効率的なソフトウェア開発をサポートするソフトウェア開発環境。「組込みシステム開発技術展(ESEC)」にて、同社の福永一寛氏にその特徴を聞いた。

ソースコードの解析作業時間を大幅に削減する『Understand』

 システムの機能向上やシステム間連携など、あらゆるニーズへの対応とともに、ソースコードは複雑化していく。複数のプログラマによる開発であれば、個々の担当箇所の把握が難しいなどの課題が発生する。ドキュメントが整理されていれば問題ないが、設計書と現在の実装状況をリアルタイムに残していくのはなかなか難しいもの。ドキュメントが不十分なため、本来の開発に着手する前に、解析に時間がとられてしまうといった状況を経験した開発者も多いのではないだろうか。こうした課題を解決するのが、ソースコードの構造を解析して可視化するツール『Understand』だ。開発元は米Scientific Toolworks Inc.で、日本語化と日本国内における販売/サポートをテクマトリックスが行っている。

 福永氏は「Understandは、ソースコードのメンテナンスツールです。コメントが不十分であったり、ドキュメントも残っていなかったりする状態でメンテナンスをまかされたとしても、ある程度把握できるよう、分析結果を可視化してくれます」と語る。現在のユーザー層は、家電メーカーなど、組込み系の開発者が中心であるが、C/C++のほか、C#、Javaなどにも対応しているため、エンタープライズ系の技術者にも広まりつつあるという。

グラフィカルビュー機能でソースコードの詳細な情報も可視化

 Understandのユーザーインターフェースは、ファイルツリーやソースコード表示など、プログラムエディタのような作りになっている。

「Understand」ユーザーインターフェース
「Understand」ユーザーインターフェース

 プログラムソースを開いて解析すると、グラフィカルビュー機能により、呼び出しや参照、クラスの構成、制御フローチャートをボタン1つで作成できる。図示された解析結果の各要素をクリックすると、より詳細な情報や該当箇所のソースコードが参照可能だ。詳細情報では、ファイル単位ではなく、関数やクラス、変数なども確認できるほか、ある関数を基点として、その関数がどのように使われているかなども表示することができる。

 「解析ツールによっては、コンパイル後でないとできないものもありますが、Understandではコンパイルの必要はなくソースコードをそのまま解析できますので、編集中のコードもすぐに確認できます」と福永氏。標準のコードエディタは、スナップショット機能で差分をチェックできる。使い慣れた外部のエディタも設定可能だ。

 ソースコードの構造分析だけでなく、品質をレビューするためのメトリクス分析機能もある。分析項目は、プログラムの複雑度を測るための測定法である「Cyclomatic複雑度」や、結合性の欠如、最大継承ツリー、総行数、総空白行数、結合されたクラスの数などおよそ70種類をグラフ表示などで定量的に確認できる。プロジェクト管理者には嬉しい機能と言える。

 分析結果を共有するためのレポーティングの機能も備えている。クロスリファレンス、構造、品質、メトリクスなど30種の分析結果をHTMLやTEXT形式で出力できるほか、エディションによっては、APIを経由してユーザ独自のデータチャート(Microsoft Office Excelなど)に出力できる。

左:プログラムの構造を可視化 右:プロジェクトのメトリクスをグラフ化(製品情報のウェブページより一部抜粋)
左:プログラムの構造を可視化 右:プロジェクトのメトリクスをグラフ化(製品情報のウェブページより一部抜粋)

 なお、Understandはソースコードの可視化ツールのため、階層構造のルールに違反する依存関係の抽出や、ソフトウェアアーキテクチャの不具合などは抽出できないものの、テクマトリックス社の別製品であるアーキテクチャ分析ツール『LATTIX』へインポートができるようになっている。

次のページ
400万行のコードをわずか15分で解析

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5204 2010/06/09 12:24

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング