読み方 : しようくどうかいはつ

仕様駆動開発【SDD】Speci-Driven Development

概要

仕様駆動開発とは、システムの振る舞いや要件を「仕様」として詳細かつ明確に定義し、その仕様を基準に設計・実装・検証を進める開発手法。仕様が開発工程全体の判断基準となる。
仕様駆動開発のイメージ画像

この手法では、まず機能要件非機能要件を文書や仕様として記述し、入力と出力、前提条件、例外処理などを明確にする。仕様は自然言語による記述に留まらず、Z記法やVDM(Vienna Development Method)などの「形式的仕様記述言語」と呼ばれるプログラム処理可能な言語で書かれた「形式仕様」として記述することが多い。

仕様が曖昧さなく定義されることで、開発者やテスター利害関係者ステークホルダー)などの間で共通の理解基盤が形成される。仕様を機械可読な形式で記述することで、仕様からコードの雛形やテストケースを自動生成するツールと組み合わせることができるようになり、実装やテストの効率化や、仕様と実装の乖離を防ぐ効果が期待される。

設計段階では、仕様に基づいてモジュール構成やデータ構造が定められ、実装はその記述に従って行われる。開発者はコードの振る舞いが仕様と一致するかを常に確認する。検証工程では、仕様を基準としてテストケースが作成される。各テストは仕様に記述された条件や期待結果に基づいて設計され、実装が仕様どおりに動作するかを確認する。

形式仕様を用いる場合には、数理的な手法により整合性や完全性を検証することも行われる。仕様と実装の差異が見つかった場合は、いずれかを修正して一致させる。航空や鉄道、医療など高い信頼性が求められるクリティカルなシステムでは形式仕様による厳密な検証が特に重視される。ただし、形式仕様の作成や維持には通常の手法より大きなコストがかかり、要求の変化が頻繁なプロジェクトにはあまり向いていない。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。