読み方 : しようくどうかいはつ
仕様駆動開発【SDD】Speci-Driven Development
概要
仕様駆動開発とは、システムの振る舞いや要件を「仕様」として詳細かつ明確に定義し、その仕様を基準に設計・実装・検証を進める開発手法。仕様が開発工程全体の判断基準となる。

この手法では、まず機能要件や非機能要件を文書や仕様として記述し、入力と出力、前提条件、例外処理などを明確にする。仕様は自然言語による記述に留まらず、Z記法やVDM(Vienna Development Method)などの「形式的仕様記述言語」と呼ばれるプログラム処理可能な言語で書かれた「形式仕様」として記述することが多い。
仕様が曖昧さなく定義されることで、開発者やテスター、利害関係者(ステークホルダー)などの間で共通の理解基盤が形成される。仕様を機械可読な形式で記述することで、仕様からコードの雛形やテストケースを自動生成するツールと組み合わせることができるようになり、実装やテストの効率化や、仕様と実装の乖離を防ぐ効果が期待される。
設計段階では、仕様に基づいてモジュール構成やデータ構造が定められ、実装はその記述に従って行われる。開発者はコードの振る舞いが仕様と一致するかを常に確認する。検証工程では、仕様を基準としてテストケースが作成される。各テストは仕様に記述された条件や期待結果に基づいて設計され、実装が仕様どおりに動作するかを確認する。
形式仕様を用いる場合には、数理的な手法により整合性や完全性を検証することも行われる。仕様と実装の差異が見つかった場合は、いずれかを修正して一致させる。航空や鉄道、医療など高い信頼性が求められるクリティカルなシステムでは形式仕様による厳密な検証が特に重視される。ただし、形式仕様の作成や維持には通常の手法より大きなコストがかかり、要求の変化が頻繁なプロジェクトにはあまり向いていない。