SHOEISHA iD

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

連載記事

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

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
イベントレポート(AD)

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

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

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

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

 システムの多機能化により、プログラムの内容は複雑化している。既存コードの改修や多人数での開発における情報共有のためには、プログラム構造の理解が必須だが、ドキュメントと実装内容とが乖離している場合も多く、解析自体に工数がかかることもある。テクマトリックスの『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分で解析

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

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

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」 NEW
  2. 2
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  3. 3
    「CUDA」 ~マンガでプログラミング用語解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  1. 6
    ガートナー、日本企業が2025年に向けて押さえておくべきインフラストラクチャとオペレーションのトップトレンドを発表
  2. 7
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く
  3. 8
    約9割の企業がIT人材不足を実感、「プロリア プログラミング」による調査によって明らかに
  4. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  5. 10
    AWS、「Data Exports for FOCUS 1.0」の一般提供を開始 NEW

アクセスランキング

  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」 NEW
  2. 2
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  3. 3
    「CUDA」 ~マンガでプログラミング用語解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  6. 6
    ガートナー、日本企業が2025年に向けて押さえておくべきインフラストラクチャとオペレーションのトップトレンドを発表
  7. 7
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く
  8. 8
    約9割の企業がIT人材不足を実感、「プロリア プログラミング」による調査によって明らかに
  9. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  10. 10
    AWS、「Data Exports for FOCUS 1.0」の一般提供を開始 NEW
  1. 1
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  2. 2
    Python 3.13の新機能、対話型インタプリタの機能強化や高速化などを解説
  3. 3
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    「CUDA」 ~マンガでプログラミング用語解説
  6. 6
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  7. 7
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  8. 8
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  9. 9
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善
  10. 10
    PHPパッケージ管理ツール「Composer」の処理の仕組みを見てみよう!

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」 NEW
  2. 2
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  3. 3
    「CUDA」 ~マンガでプログラミング用語解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  1. 6
    ガートナー、日本企業が2025年に向けて押さえておくべきインフラストラクチャとオペレーションのトップトレンドを発表
  2. 7
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く
  3. 8
    約9割の企業がIT人材不足を実感、「プロリア プログラミング」による調査によって明らかに
  4. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  5. 10
    AWS、「Data Exports for FOCUS 1.0」の一般提供を開始 NEW

アクセスランキング

  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」 NEW
  2. 2
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  3. 3
    「CUDA」 ~マンガでプログラミング用語解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  6. 6
    ガートナー、日本企業が2025年に向けて押さえておくべきインフラストラクチャとオペレーションのトップトレンドを発表
  7. 7
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く
  8. 8
    約9割の企業がIT人材不足を実感、「プロリア プログラミング」による調査によって明らかに
  9. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  10. 10
    AWS、「Data Exports for FOCUS 1.0」の一般提供を開始 NEW
  1. 1
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  2. 2
    Python 3.13の新機能、対話型インタプリタの機能強化や高速化などを解説
  3. 3
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    「CUDA」 ~マンガでプログラミング用語解説
  6. 6
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  7. 7
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  8. 8
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  9. 9
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善
  10. 10
    PHPパッケージ管理ツール「Composer」の処理の仕組みを見てみよう!