要件工学
要件工学とは、ソフトウェアシステムが何をすべきか、およびそれが動作しなければならない制約を、発見、分析、文書化、検証、管理する学問分野である。
PaperMindでテーマを探す近日公開Find papers & topics
Tools & resources
Learn & explore
動画近日公開
Definition
要件工学とは、ソフトウェアシステムが提供すべきサービスと、その運用および開発に関する制約を、引き出し、分析し、仕様化し、検証し、管理する体系的なプロセスである。
Scope
この分野は、ステークホルダーのニーズの引き出し、相反する目標の分析と交渉、機能要件と非機能(品質)要件の区別、自然言語記述から形式モデルに至る仕様記述技法、レビューとプロトタイピングによる検証、およびライフサイクル全体にわたる要件変更とトレーサビリティの管理を対象とする。
Sub-topics
Core questions
- ステークホルダーの真のニーズはどのように発見され、曖昧さが解消されるのか?
- 機能要件と非機能要件は、どのように正確かつ理解しやすい形で記述されるべきか?
- 相反する要件はどのように検出され、交渉され、解決されるのか?
- 要件はどのように検証され、変更されても一貫性が保たれるのか?
Key theories
- 機能要件と非機能要件
- 要件は、システムが何をすべきかを示す機能記述と、パフォーマンス、セキュリティ、ユーザビリティなど、システム全体にわたって影響を及ぼし、アーキテクチャを駆動することが多い非機能(品質)制約に分類される。
- 目標指向要件工学
- システムは、ステークホルダーの目標の観点から分析され、それらの目標はサブ目標に洗練され、要件として具体化される。これにより、高レベルの意図からシステム機能への根拠、競合検出、トレーサビリティが提供される。
Clinical relevance
要件の誤りは、設計やコードに波及するため、最も高価な欠陥の一つである。厳密な要件工学は、手戻りを減らし、提供されるソフトウェアをステークホルダーのニーズに合わせ、受け入れテストと契約合意の基礎を提供する。
Evidence & guidelines
ISO/IEC/IEEE 29148は要件工学プロセスと要件仕様の内容を規定しており、SWEBOKソフトウェア要件知識領域は合意された参照情報を提供している。
History
要件工学は、1970年代の構造化分析手法から発展し、1990年代には専門会議(RE)や学術誌の創設、目標ベースおよびシナリオベースのモデリングの台頭、非機能要件とステークホルダー交渉への関心の高まりを特徴とする、認知された下位分野へと成長した。
Debates
- 事前の要件定義と創発的要件
- 計画駆動型のアプローチでは、構築前に要件を徹底的に定義することを重視する一方、アジャイルなアプローチでは、要件を創発的なものとみなし、イテレーションを通じて洗練させる。このトレードオフは、変動性、契約上の制約、および後期の変更コストによって決まる。
Key figures
- Axel van Lamsweerde
- Bashar Nuseibeh
- Steve Easterbrook
- Michael Jackson
Related topics
Seminal works
- vanlamsweerde2009
- nuseibeh2000
- sommerville2015
Frequently asked questions
- 要件の誤りがなぜそれほど高価なのか?
- 誤解された要件や欠落した要件は、設計やコードがそれに基づいて構築された後、遅れて発見されることが多いため、それを修正するには下流の作業を巻き戻す必要がある。経験的調査では、欠陥の修正コストは発見が遅れるほど急激に上昇することが一貫して示されている。
- アジャイルプロジェクトは要件工学を行うのか?
- はい、しかしその方法は異なります。アジャイルプロジェクトでは、大規模な仕様書を事前に作成するのではなく、ユーザーストーリー、バックログの洗練、頻繁なフィードバックを通じて、要件を継続的に引き出し、分析し、検証します。