GAIO CLUB

2004年05月06日

 フローチャートを利用したレビュー会議でソフトウエア品質を高めよう

GAIO CLUB 特集
GAIO CLUB【2004/5月号】製品インフォメーション
ソースコードを解析してフローチャート化
プレビュー会議でソフトウエアの品質向上を目指す
組み込み用CASEツール「CasePlayer2」

ソースコードは個人管理?

一般に、組み込みソフトの開発においては、1つの製品のソフトウエアを複数の開発者が分担して開発するケースが多くあります。最近では、ソースコード管理ツールを利用して、ソースを一元管理するプロジェクトも増えつつありますが、関数ロジックの仕様やモジュールの分割単位などのソースコードの中身については、開発者個人の考え方がそのままコーディングされており、他のメンバーがソースコードの構成情報を共有しているとは言い難いのが現状です。

ソースコードの構成情報が共有されないと言うことは、他のメンバーが作った部分の機能の実現方法については分からないと言うことであり、そこに潜在的なバグがある場合に、開発者自身が見つけられなければ、永久に見つからないと言うことも起こりえます。

ソフトウエアの品質向上のためのプレビュー会議

プロジェクトメンバー全員によるソースコードのプレビューが出来れば、開発者自身が発見できなかった不具合を未然に見つけ出す事も可能になります。ただし、プレビューの方法として、ソースコードを1行1行追いかける方法では、効率が非常に悪く時間を要します。

もしも、ソースコードの機能実現方法であるアルゴリズムをチャートなどに可視化できれば、プレビューの効率を格段に上げることが出来るでしょう。

アルゴリズムを可視化するフローチャート

フローチャートは、古くからソフトウエアの処理の流れを計画・設計するために使用されて来ましたが、現在では、ソフトウエアの大規模化やモジュール化が進み、フローチャートをソフト設計に使用することは少なくなりました。しかしながら、フローチャートは、特に条件分岐やループなどのロジックを一目瞭然で把握できるため、既存のソースコードを解析して、ロジックを把握する手段としては、非常に有効です。

プレビュー会議において、その場でソースコードからフローチャートを作ることが出来れば、他のメンバーが設計したソフトウエアの構造を短時間で把握して、システム的な不具合の抽出や、より効率の良いロジックの提案をすることも可能になります。

ガイオのロングセラー製品「CasePlayer2」

「CasePlayer2」は、組み込み開発にフォーカスした、フローチャートなどのプログラム仕様書、自動作成ツールです。アセンブラへの対応や、変換スピードの速さなどで、ご好評頂いており、ガイオのロングセラー製品の1つです。

プログラムソースを解析して各種仕様書を自動生成

CasePlayer2は、C言語ソース、アセンブラソースを解析して、フローチャート、モジュール構造図、構造体仕様、モジュール仕様などのプログラム仕様書を作成するツールです。このツールには、ガイオのベーステクノロジであるコンパイラ技術が使用されています。

他社のチャート生成ツールにありがちな、チャート化のための特別なコメント行の挿入や、特殊なマーキングなどは一切不要で、C言語ソースコード、アセンブラソースコードを解析して、チャート図を生成します。 開発されたソースコードに一切手を加えることなく、そのままフローチャート化することができます。

アセンブラや非ANSI仕様の組み込みCにも対応

「CasePlayer2」は組み込み開発のプログラムに特化されており、数多くのアセンブラや、near、farと言った特殊記憶クラスのような、組み込み特有の方言にも対応しています。

パラメータファイルで言語拡張

これらは、「パラメータファイル」と呼ぶキーワード定義ファイルに記述する仕組みになっており、例えば、マイコン毎に異なる命令語が、条件分岐、無条件ジャンプ、コンペアなどの何の役割にアサインされているかを設定出来るようになっています。
新しい命令語を持つマイコンが出来た場合でも、この定義ファイルさえ作成すれば、どんなアセンブラソースでも、解析しチャート化することが出来るようになります。C言語ソースについても、クロスコンパイラ特有の非ANSIのキーワードにも、同様の方法で対応することができます。

自在なソース/チャートブラウズ機能

CasePlayer2には、ソースコードの管理、チャートの作成、ソース行とチャートの対応など、作業を統合化する専用ブラウザ「Case Viewer」が搭載されています。

プレビュー会議などに置いても、対象のソースコードを登録するだけで、瞬時にチャート化することができます。変換のスピードは、1万行のC言語ソースを、わずか2秒で処理しチャート化する性能を持っています。

最適化されたチャート分割HTML出力もサポート

CasePlayer2には、出力紙面に無駄な空白を作らない、最適化されたフローチャートのレイアウトを作り出す機能があります。この性能は、他社製CASEツールの機能を圧倒しており、出力倍率を変えるだけで、最小枚数の出力レイアウトをその場で作り出すことができます。

また、HTMLフォーマットの出力も可能で、HTMLの基本機能であるハイパーリンクを利用して、フローチャートのボックスから、該当するソースコードの箇所へジャンプするなど、自在な連携が可能です。

人気のコラム

最新のコラム