新着情報
採用情報
日本語
|
English
ユーザーサポート
資料ダウンロード
お問い合わせ
3つの強み
組み込みソフト開発・検証ツール
Windows開発環境向けユニットテストツール
カバレッジマスターwinAMS
カバレッジマスターwinAMS MBTオプション
Linux開発環境向けユニットテストツール
QTE(Quality Town for Embedded grade)
パフォーマンス検証ツール
PLAS-Qlite
テストデータ生成ツール
PROMPT
C/C++ 組込み用プログラム仕様書作成・解析ツール
Caseplayer2
共有変数自動解析ツール
SharedVariableChecker2
ISO 26262セーフティ&セキュリティ
Salutem(サルテム)
Safilia(セイフィリア)
Seculia
HighTec社 TriCore/Power Architecture クロスコンパイラ
HighTec社 TriCore 開発プラットフォーム
HighTec社 Power Architecture 開発プラットフォーム
動作タイミング解析ツール
Timing-Suite T1(ティーワン)
組込みシステム仮想検証環境
シミュレータベーストファミリ仮想検証ツール
実機連携 組込みソフト自動テストシステム
リアルタイムファンクションテスター
モデルガイドラインチェック製品
Model Dr. MDiA
エンジニアリングサービス
モデル中核開発事業
MBD Back-to-Backテスト 定着運用サポート
モデルベース開発(MBD+MDD)のプロセス構築とツールの導入支援
セキュリティサービス
ガイオ サイバーセキュリティサービス
(サイバーセキュリティ 現場業務)
ガイオ サイバーセキュリティサービス
(サイバーセキュリティワークパッケージ)
ガイオ サイバーセキュリティサービス
(サイバーセキュリティ 教育支援)
セキュリティ脅威分析支援サービス
セキュリティ検証支援サービス
大規模ソフトウェア開発者向けテストツール導入支援
QTE導入支援サービス
機能安全開発効率化支援
Salutem導入支援サービス
Safilia導入支援サービス
機能安全に対応した派生開発の影響分析サービス
先進品質技術ソリューション事業(SAQT)
テストパートナーSQV
ユニットテスト・オンザトラック
SAQT HILSエンジニアリングサービス
HILS テストシナリオ作成及びシナリオ実行自動化サービス
HILS 車両モデル作成サービス
HILS CANモデル作成サービス
リアルタイムハードとSimulinkモデルの割り付けソフト設定サービス
道路、交通流CGの設定・作成サービス
QEMUを使った仮想検証環境構築サービス
GAIO CLUB
導入事例
セミナーイベント
企業情報
ガイオ・テクノロジーの3つの強み
モダン型開発/従来型開発について
組込みソフト開発・検証ツール
Windows開発環境向けユニットテストツール
カバレッジマスターwinAMS
カバレッジマスターwinAMS MBTオプション
Linux開発環境向けユニットテストツール
Quality Town for Embedded grade(QTE)
パフォーマンス検証ツール
PLAS-Qlite
テストデータ生成ツール
PROMPT
C/C++ 組込み用プログラム仕様書作成・
解析ツール
CasePlayer2
共有変数自動解析ツール
SharedVariableChecker2
ISO 26262セーフティ&セキュリティ
Salutem
Safilia
Seculia
HighTec社 クロスコンパイラ
HighTec社 TriCore 開発プラットフォーム
HighTec社 Power Architecture 開発プラットフォーム
動作タイミング解析ツール
Timing-Suite T1(ティーワン)
組込みシステム仮想検証環境
シミュレータベーストファミリ仮想検証ツール
実機連携 組込みソフト自動テストシステム
リアルタイムファンクションテスター
モデルガイドラインチェック製品
Model Dr. MDiA
エンジニアリングサービス
モデル中核開発事業
リバースモデリング代行サービス
MBD Back-to-Backテスト 定着運用サポート
モデルベース開発(MBD+MDD)のプロセス構築と
ツールの導入支援
セキュリティサービス
サイバーセキュリティ 現場業務
サイバーセキュリティワークパッケージ
サイバーセキュリティ 教育支援
セキュリティ脅威分析支援サービス
セキュリティ検証支援サービス
機能安全開発効率化支援
Salutem導入支援サービス
Safilia導入支援サービス
機能安全に対応した派生開発の影響分析サービス
先進品質技術ソリューション事業(SAQT)
テストパートナーSQV
ユニットテスト・オンザトラック
SAQT HILSエンジニアリングサービス
HILS テストシナリオ作成及びシナリオ実行自動化サービス
HILS 車両モデル作成サービス
HILS CANモデル作成サービス
リアルタイムハードとSimulinkモデルの割り付けソフト設定サービス
道路、交通流CGの設定・作成サービス
QEMUを使った仮想検証環境構築サービス
企業情報
新着情報
採用情報
導入事例
セミナーイベント
資料ダウンロード
動画一覧
GAIOサイバーチャンネル
GAIO CLUB
お問い合わせ
プライバシーポリシー
情報セキュリティ基本方針
ユーザーサポート
GAIO CLUB
HOME
>
GAIO CLUB
>
フローチャートを利用したレビュー会議でソフトウエア品質を高めよう
2004年05月06日
フローチャートを利用したレビュー会議でソフトウエア品質を高めよう
GAIO CLUB 特集
GAIO CLUB【2004/5月号】製品インフォメーション
ソースコードを解析してフローチャート化
プレビュー会議でソフトウエアの品質向上を目指す
組み込み用CASEツール「CasePlayer2」
目次
ソースコードは個人管理?
ソフトウエアの品質向上のためのプレビュー会議
アルゴリズムを可視化するフローチャート
ガイオのロングセラー製品「CasePlayer2」
プログラムソースを解析して各種仕様書を自動生成
アセンブラや非ANSI仕様の組み込みCにも対応
パラメータファイルで言語拡張
自在なソース/チャートブラウズ機能
最適化されたチャート分割HTML出力もサポート
ソースコードは個人管理?
一般に、組み込みソフトの開発においては、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の基本機能であるハイパーリンクを利用して、フローチャートのボックスから、該当するソースコードの箇所へジャンプするなど、自在な連携が可能です。
関連ページ
Caseplayer2(C/C++ 組込み用プログラム仕様書作成・解析ツール)
ANSI準拠C言語、C++(※C++ 11/14対応)、組み込み向けC言語(非ANSI)を解析して、フローチャートなどのプログラム仕様書を作成するツールです。プログラム開発におけるソースコードレビューの課題を解決します。
今すぐ資料ダウンロード!
前のコラム
コラム一覧に戻る
次のコラム
人気のコラム
OSの無い環境でC言語プログラムを動かすときは、マイコンのメモリを意識する必要があります。今回は、メモリとCソースプログラムの関係についての話です。
シミュレータによる製品開発のメリットについては多く語られていますが、目的に応じたシミュレータの選択や使い方について正しく理解していないと、思ったような成果を得ることができません。ここでは、xILSの構成と利用上の注意点について簡単に説明を行います。
これまでメモリの話や変数初期化の話などをしてきましたが、今回は関数の機械語化についての話です。CコンパイラはC言語プログラムをアセンブリ言語に変換(翻訳)します。
最新のコラム
Google Test
前回は、Google Mockで子関数の戻り値をあらかじめ決めた後にテストを実施してみました。Google Mockの感じをつかんだので、今回はGoogle Mockでどんなことができるのか、いくつか見て行こうと思います。
Google Test
Google Mockは、単体テストの対象関数が使用している子関数の代理関数とその関数の振る舞いを定義する環境を提供します。今回は簡単な例を見ながらGoogle Mockの使い方を見てみます。
Google Test
単体テストをする際、対象関数の動作確認のために、その関数が使用する(読む)変数に値を入れておく必要があります。関数の動作結果は前回お話ししたアサーションによって確認しますが、繰り返しテストをする際に異なる値を設定したい時はどうするのでしょうか。また、致命的なエラーが起きた時にテストを中止する方法はあるでしょうか。今回は、Google Testを使ってテストドライバーを書く時の、そんな話です。
技術情報
近年、自動車産業を取り巻く環境は大きく変化しており、100年に1度の大変革時代と言われている。欧米をはじめとして、中国及び日本でも車載ECUの統合化(ADAS Domain Controller, Cockpit Domain Controller等)が進み、2020年頃からSDV化された車両が増えてきている。本寄稿では、車載業界のSDVされたシステムの進化の流れを説明し、SDV化の進展により新たに発生する機能安全対応の課題と対策について、事例を交えて説明する。
Google Test
前回お話ししたように、Google Testはテストドライバーを作る環境を提供しています。今回は、Google Testを使ってテストドライバーをどのように書いて動かすのか、見て行こうと思います。
Google Test
皆さんはテストがお好きでしょうか。テストは面倒かもしれません。でも、プログラムを書いたら動かしたいですよね。正しく動いてくれることを確認したくなると思います。テストが嫌いだと思っていても、テストしない開発者はいないでしょう。
静的解析/コンパイラ技術
再び、表を色分けしました。今回は静的解析ツールで見つけられそうなものを選びました。オレンジ色の行は、攻撃者による危険性と言うよりも、そもそも不具合に近いものだろうと思います(CWE-20等は抽象度の高い脆弱性なので不具合と言えないものも含みます)。
お問い合わせ・お見積りはこちら
03-4455-4767
[代表]9:00~17:30
(土・日・祝日・年末年始・夏季休暇を除く)