| デザインレビュー |
概要
ソフトウェア開発において極めて重要な一面は、“ソフトウェアは期待通りに動作するべき”という言葉に代表されます。LDRAのデザインレビューは静的解析の対象を拡げ、コードレビューやクオリティレビューによって、ソースコードがデザインを正しく反映しているかの解析を行います。コードの構造、制御フローやデータフローは解析され、デザインに対する整合性(あるいは整合しない部分)を明らかにします。
デザインレビューにより、“欠陥の無いソフトウェア開発(LDRA社のミッションとして掲げているZero Defect Software Development)”を達成する手法が、あらゆるソフトウエアチームに提供されます。システムテストや出荷においてランタイムの欠陥がコストを押し上げてしまう前に、そのような欠陥を確実に削減させること。デザインレビューは、LDRAツールスイートの機能を用いるうえで、基本的なベースとなります。
機能
デザインの正しさ
コードレビューによって構築されるLDRAのコールグラフやフローグラフは、コード内で使用される全パラメータやデータ対象への包括的な解析によって拡張されます。この拡張されたモデルは、要求トレーサビリティやデザインの正しさを判断するためにも使用されます。自動ヘッダーコメント生成オプションも提供され、これらの作業はさらに支援されます。
デザインレビューは設計者によっても使用され、開発者やテスターに要件が配布される前に、設計の整合性を保証することになります。コードはコンパイルの必要なく解析されるので、デザインに対するシームレスなコードの解析がサポートされます。
インタフェースと結合の解析
インタフェースの解析は、プロシジャのプロトタイプ宣言のドキュメント化、これらプロシジャにより用いられるパラメータ、実装コード内におけるインターフェイスの一貫性の評価、などが含まれます。C++のクラスの場合は、メンバー変数やメソッドを含めてレポートされます。
インタフェース解析は、誤りの可能性を持つプログラム変数を特定します。ツールは、全てのプロシジャーの引数、グローバル変数や、関数毎のローカル変数などを解析します。
設計のテスト容易性を評価する、2つの主要な要素であるコントロール・カップリング、データ・カップリングは、それぞれ“spider”グラフやデータオブジェクト解析レポートで報告されます。
データ異常
データフロー異常は、誤りだと疑われるプログラム変数に関係した一連の動作のこと。データフロー解析レポートによるメッセージは、様々なデータフロー異常を検出します。
データフロー解析は、ソースファイルまたはシステムワイドに プロシジャーの境界間を越えて実行され、異常が特定された時にレポートされます。
実現可能性テスト
デザインレビューにより、フィジビリティ(実行可能性)テストと呼ばれる、どこに実行可能なパスがあるかを解析することができます。この結果は、LDRAユニットテスト機能を実行する時に、最も効果的に利用されています。
C/C++において、最も一般的なランタイムエラーは、メモリ管理システム(MMS)や、ポインタによって作り出されたメモリの使用です。LDRAはこれらの問題や、構造体リンクリスト、配列の使用の評価も行います。
利点
デザインレビューの主な利点は、以下になります:
- 要件を保証することは、正しいデザインにより満たされる
- テストが容易なレビューに対する準備
- コードプロファイリングは、“誤検出”なく解析
- インタフェース解析は、エラーの可能性を持つプログラム変数を特定
- 結果: 設計は、仕様に一致されるようになる
成果
主な成果は、デザイン仕様が意図どおりに設計されていることを検証するためのレビューを可能にすること。
|
|