出題と解説/ET教育フォーラム (末石 吾朗,根岸 永建,坂井 直美)

<今号の問題から>

仕様の変更が頻繁に発生することを前提に考案された,比較的新しいソフトウエア開発モデルがある。そのうち,仕様を厳密には定義せず,細かく分割した機能単位ごとに短期間での実装とテストを繰り返すことで,各機能の仕様を検証しながら開発していくモデルはどれか

 ア)ラピッド・プロトタイピング
 イ)アジャイル開発
 ウ)RUP
 エ)テスト駆動開発

 ソフトウエアの企画段階から,実際の製造作業,運用や保守に至る過程において,どの段階でどのような作業を行うかを規定した枠組みを開発工程と呼びます。ソフトウエアの開発や管理にかかわる人が,作業に関する共通認識を持つことを主な目的とします。

 開発工程は一般に,「要件定義・分析」「基本設計」「詳細設計」「プログラミング」「単体テスト」「結合テスト」という6工程から成ります。要件定義・分析では,ソフトウエアの機能や性能などの要件を明確にし,スケジュールやコストなどを分析します。続く基本設計では,ソフトウエアの機能分割や,入出力の設計などを行います。基本設計で分割した機能をさらに細かく分割し,具体的な機能を設計するのが詳細設計です。詳細設計書に基づいてプログラミング言語でコードを記述し,モジュールを作成する工程がプログラミングです。

 単体テストでは,作成したモジュールごとに,正しく動作するかをテストします。結合テストでは,モジュールを組み合わせて,ソフトウエア全体が問題なく機能するかを確認します。要件定義で挙げられた機能や性能を満たすことを確認できたらソフトウエアをリリースし,運用・保守に入ります。

ウオーターフォール・モデルとスパイラル・モデル

『日経エレクトロニクス』2009年3月23日号より一部掲載