web-dev-qa-db-ja.com

要件の作成中のShallおよびMustの使用に関するベストプラクティス

派生要件でのWordの「Shall」の使用は機能要件に従うべきではありません。機能要件を作成するとき、Wordの「必須」は派生要件が実行する必要がある機能を説明するために使用されます。
派生=システムが要件である
機能=システムは要件を実行する必要があります

それは私たちの先輩の一人によって送り返されました、それは間違っていて、それはすべての要件で使われるべきです。

私はここで間違っているのですか?すべての要件で使用する必要があります。それを裏付けるものを見つけることができませんでした。

24
Tim Lieberman

RFC 2119 「要件レベルを示すためにRFCで使用するキーワード」は、要件に関するさまざまな単語の意味を詳しく説明しています。

このドキュメントのキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、および「OPTIONAL」は、 RFC 2119で説明されているように解釈されます。

このドキュメントから:

  • MUSTREQUIREDおよびSHALLと同等であり、定義が絶対的な要件であることを示します。
  • MUST NOTSHALL NOTと同等であり、仕様が完全に禁止されていることを示します。
  • SHOULDRECOMMENDEDと同等です。これは、特定の要件を無視する正当な理由があることを意味しますが、その影響を考慮する必要があります。
  • SHOULD NOTおよびNOT RECOMMENDEDは、特定の動作が許容可能または有用である可能性があることを意味しますが、その影響についても検討する必要があります。
  • MAYOPTIONALを意味し、要件はtrulyオプションであることを意味します。オプションの要件を実装する場合と実装しない場合がある異なるシステムとの相互運用性を行う必要があります。

このRFC SHOULDに従って、内部ドキュメントと標準世界全体の間の通信の一貫性を確保するために実行してください。

45
user40980

shallmustが別々のレベルのドキュメントに属しているという結論にどこで到達したかわからない。これは、私が知っているどのソースにも裏付けされていないかなり恣意的な違いです。

Shallmustは字句的に同等です。必要なアクションです。

shallを使用するかmustを使用するかは、実際に書いている残りのドキュメントと、その特定の文の文法が何を意味するかによって異なります。

だから、はい、あなたは間違っています。しかし、shallの代わりに常にmustを使用することも間違っています。彼らは同じ程度の義務を表しています。

6
user53019

DO-178 または DO-254 ガイドラインの枠組みの中で作業している場合、これらには独自のrequirementsの独自の定義があり、- 派生要件。ただし、これらのガイドラインではどのWordを指定していません。 shall、should、mustは、要件の指定に使用する必要があります。

要件管理ツールが派生要件を自動的に指摘しない場合は、shallの代わりにmustを使用してこれらを機能要件と区別することは有益です。たとえば、派生要件の検証目的も満たされていることを示すため。これは、一見恣意的なドキュメント要件の理由として考えられます。

DO-178およびDO-254では、派生要件は実際にはnotがより高いレベルの要件から派生した要件を意味します。したがって、派生した要件は、本質的にトレーサビリティの新しいチェーンを開始します。

DO-178とDO-254はどちらも、アビオニクスソフトウェアと電子機器の開発に使用される商用ガイドライン文書であり、 www.rtca.org からのみ有料で入手できます。

2
Schedler