システムのソフトウェア要件[ 1 ]は、システムが行うべきこと、提供するサービス、およびその動作に対する制約の説明です。IEEEソフトウェアエンジニアリング用語標準用語集では、要件を次のように定義しています。[ 2 ]
ソフトウェア要件を扱う活動は、大きく分けて要件の引き出し、分析、仕様策定、管理に分類できます。[ 3 ]
ソフトウェアリリースノートでは、 「ソフトウェア要件」という文言が、特定のソフトウェアをビルド/インストール/使用するために必要なソフトウェアパッケージを説明するためにも使用されることに注意してください。 [ 1 ]
要件の引き出しとは、利害関係者やその他の情報源から要件を収集し発見することです。共同アプリケーション設計(JAD)セッション、インタビュー、文書分析、フォーカスグループなど、さまざまな手法を使用できます。[ 4 ]要件の引き出しは、要件開発の最初のステップです。
分析とは、要件の引き出しから始まる論理的な分解作業のことです。分析では、各要件をより深く、より正確に理解し、要件の集合を複数の補完的な方法で表現します。
要件のトリアージまたは優先順位付けは、分析の後によく行われるもう1つの活動です。[ 5 ]これは、アジャイルソフトウェア開発の計画フェーズ、例えばプランニングポーカーに関連していますが、プロジェクトのコンテキストと性質、および構築中の要件または製品/サービスによっては、同じではない場合があります。
仕様策定とは、収集した要件に関する知識を、効果的なコミュニケーションと変更管理を促進する、永続的かつ整理された形で表現・保存することです。要件仕様策定においては、ユースケース、ユーザーストーリー、機能要件、ビジュアル分析モデルなどが一般的に用いられます。
Validation involves techniques to confirm that the correct set of requirements has been specified to build a solution that satisfies the project's business objectives, and to detect and correct errors in the requirements before implementation.[6]
Requirements change during projects and there are often many of them.[7]Management of this change becomes paramount to ensuring that the correct software is built for the stakeholders.
Taking into account that these activities may involve some artifacts such as observation reports (userobservation), questionnaires (interviews, surveys and polls), use cases, user stories; activities such as requirement workshops (charrettes), brainstorming, mind mapping, role-playing; and even, prototyping;[8] software products providing some or all of these capabilities can be used to help achieve these tasks.
There is at least one author who advocates, explicitly, for mind mapping tools such as FreeMind; and, alternatively, for the use of specification by example tools such as Concordion.[9] Additionally, the ideas and statements resulting from these activities may be gathered and organized with wikis and other collaboration tools such as Trello. The features actually implemented and standards compliance vary from product to product.
A Software requirements specification (SRS) document might be created using general-purpose software like a word processor or one of several specialized tools. Some of these tools can import, edit, export and publish SRS documents. It may help to make SRS documents while following a standardised structure and methodology, such as ISO/IEC/IEEE 29148:2018. Likewise, software may or not use some standard to import or export requirements (such as ReqIF) or not allow these exchanges at all.
Tools of this kind verify if there are any errors in a requirements document according to some expected structure or standard.
Tools of this kind compare two requirement sets according to some expected document structure and standard.
このようなツールを用いることで、要件文書の統合や更新が可能になります。
このようなツールを使用すると、要件をモデルやソースコードなどの他の成果物(前方トレーサビリティ)に追跡したり、ビジネスルールや制約などの以前の成果物(後方トレーサビリティ)に追跡したりすることができます。
モデルベースシステムエンジニアリング(MBSE)とは、概念設計段階から開発段階、そしてその後のライフサイクル段階に至るまで、システム要件、設計、分析、検証、妥当性確認といった活動を支援するために、モデリングを体系的に適用する手法です。要件エンジニアリングの段階によっては、モデルベースのアプローチを採用し、他の段階では従来型のアプローチを採用することも可能です。両者の組み合わせは非常に多岐にわたります。
形式性と複雑さのレベルは、関連する基盤となる方法論に依存します(例えば、i*はSysMLよりもはるかに形式的で、UMLよりもさらに形式的です)。
このカテゴリのツールは、前述の機能に加え、要件構成管理やコラボレーションといった他の機能も提供する場合があります。実際に実装されている機能や標準規格への準拠状況は、製品によって異なります。
さらに、他の段階や活動をサポートする、より高性能で汎用的なツールも存在します。これらはALMツールに分類されます。
{{cite web}}:欠落または空欄|url=(ヘルプ)