Prática recomendada para o uso obrigatório e obrigatório durante a redação de requisitos

22

Enviei um e-mail anteriormente lembrando aos nossos desenvolvedores que o uso da palavra 'Devemos' nos requisitos derivados não deve seguir os requisitos funcionais. Ao escrever requisitos funcionais, a palavra 'Must' é usada para descrever a função que um requisito derivado deve executar.
Derivado = O sistema deve ser requisito
Funcional = O sistema deve fazer o requisito

Foi enviado por um de nossos idosos que, que estava errado e que deveria ser usado em todos os requisitos.

Estou errado aqui e deve ser usado em todos os requisitos. Não consegui encontrar nada para sustentar isso.

Tim Lieberman
fonte
Usamos "deve" em todos os requisitos obrigatórios. Mas "deve" e "deve" significar mais ou menos a mesma coisa. Veja também tynerblain.com/blog/2009/04/22/dont-use-shall
Robert Harvey
4
Você está pensando no MUSTvs SHOULDnos RFCs? ietf.org/rfc/rfc2119.txt
user10326
Não é para ser um desmancha-prazeres, mas o que você está ganhando quando todo mundo usa a palavra correta na situação correta?
Peter

Respostas:

43

A RFC 2119 "Palavras-chave para uso em RFCs para indicar os níveis de exigência" entra em detalhes sobre o significado de diferentes palavras sobre requisitos.

As palavras-chave "DEVEM", "NÃO DEVEM", "NECESSÁRIO", "DEVEM", "NÃO DEVEM", "DEVEM", "NÃO DEVEM", "RECOMENDADO", "PODE" e "OPCIONAL" neste documento são para ser interpretado como descrito na RFC 2119.

Deste documento:

  • MUSTé equivalente a REQUIREDe SHALLindica que a definição é um requisito absoluto.
  • MUST NOTé equivalente a SHALL NOTe indica que é uma proibição absoluta das especificações.
  • SHOULDé equivalente a RECOMMENDEDsignifica que existem razões válidas para ignorar um requisito específico, mas as implicações precisam ser pesadas.
  • SHOULD NOTe NOT RECOMMENDEDsignifica que um comportamento específico pode ser aceitável ou útil, mas, novamente, as implicações precisam ser pesadas.
  • MAYsignifica OPTIONALe que o requisito é verdadeiramente opcional. A interoperabilidade com diferentes sistemas que podem ou não implementar um requisito opcional deve ser feita.

Após essa RFC, SHOULDserá feito para ajudar a garantir a consistência da comunicação entre os documentos internos e o mundo dos padrões em geral.


fonte
1
resposta sólida; adereços para desenterrar o RFC
1
@ GlenH7 Eu sabia disso (gosto de ler as RFCs de 1º de abril e parte do humor está no 'deveria' e 'deve', e 2119 está na página da wikipedia ). Procurei, encontrei e li o comentário que eu estava prestes a fazer - dois acima era a RFC novamente. Portanto, não adereços totalmente grandes para desenterrá-lo.
Meu pensamento era que os requisitos Must / requisitos funcionais devem exigir toda a funcionalidade de um objeto derivado que deve existir. Mas dado deve e definições devem e como todo mundo está usando a eles que eu estava errado
Tim Lieberman
6

Não tenho certeza de onde você chegou à conclusão disso shalle mustpertence a níveis separados de documentação. Essa é uma distinção bastante arbitrária que não é apoiada por nenhuma fonte que eu conheça.

Shalle mustsão lexicamente equivalentes. É uma ação que é necessária.

Se você usa shallou mustrealmente depende do restante do documento em que está escrevendo e do que faz sentido gramatical para essa frase em particular.

Então sim, você está errado. Mas você também está errado ao sempre usar em shallvez de must. Eles representam o mesmo grau de obrigação.


fonte
3
Shoulde maynão são bem equivalentes. Ambos indicam recursos opcionais, mas should, ao contrário may, implica que você precisa ter um bom motivo para não implementá-lo. Concordo com você em shallvs. must, no entanto.
Keith Thompson
@ KeithThompson - esse é um bom ponto, e você está certo. Puxei essa linha da resposta.
1
Meu pensamento tornou-se que os requisitos funcionais devem usar must porque, se um objeto derivado existir, toda a sua funcionalidade deve funcionar.
Tim Lieberman
Eu acho que em algum momento eu tinha incorporado um novo objeto na minha cabeça e devo funcionar.
Tim Lieberman
@ TimLieberman - essa não é uma maneira ruim de ver as coisas, especialmente porque vincula as duas camadas de especificações. Meio útil, na verdade, já que algumas pessoas ficam confusas com a semântica dos termos. Especialmente porque eu consertei documentos do processo em que "deve" costumava ser usado como substituto de "deveria". No entanto, não é muito útil o suficiente para exigir isso como um padrão específico.
2

Se você trabalha dentro da estrutura das diretrizes DO-178 ou DO-254 , elas têm suas próprias definições para requisitos em geral e requisitos derivados . No entanto, essas diretrizes não especificam qual palavra, por exemplo , deve, deve , deve ser usada para especificar os requisitos.

Se suas ferramentas de gerenciamento de requisitos não apontarem automaticamente os requisitos derivados para você, diferenciá-los dos requisitos funcionais pelo uso de uma obrigação em vez de deve ser benéfico, por exemplo, para demonstrar que os objetivos de verificação dos requisitos derivados também foram atendidos. Essa pode ser uma possível razão para o requisito de documentação aparentemente arbitrário.

Observe que nos requisitos derivados do DO-178 e DO-254 realmente significa um requisito que não foi derivado de um requisito de nível superior. Portanto, os requisitos derivados iniciam essencialmente uma nova cadeia de rastreabilidade.

O DO-178 e o DO-254 são documentos de diretrizes comerciais usados ​​para o desenvolvimento de software e eletrônicos de aviônicos e estão disponíveis apenas mediante taxa em www.rtca.org .

Programador
fonte