La mejor práctica para el uso de debe y debe mientras se escriben los requisitos

22

Envié un correo electrónico antes para recordarles a nuestros desarrolladores que, el uso de la palabra 'Deberá' en sus requisitos derivados no debería seguir a sus requisitos funcionales. Al escribir requisitos funcionales, la palabra 'Debe' ​​se usa para describir la función que debe cumplir un requisito derivado.
Derivado = El sistema será un requisito
Funcional = El sistema debe cumplir el requisito

Fue enviado por uno de nuestros Seniors que, eso estaba mal y que debería ser utilizado en todos los requisitos.

Estoy equivocado aquí y se debe utilizar en todos los requisitos. No he podido encontrar nada que respalde eso.

Tim Lieberman
fuente
Usamos "deberá" en cada requisito que sea obligatorio. Pero "deberá" y "debe" significan más o menos lo mismo. Ver también tynerblain.com/blog/2009/04/22/dont-use-shall
Robert Harvey
44
¿Quizás estás pensando en el MUSTvs SHOULDen RFC? ietf.org/rfc/rfc2119.txt
user10326
Euh, no para ser el partido-pooper, pero ¿qué estás ganando cuando todos usan la palabra correcta en la situación correcta?
Peter

Respuestas:

43

RFC 2119 "Palabras clave para usar en RFC para indicar niveles de requisitos" entra en detalles de lo que significan las diferentes palabras sobre requisitos.

Las palabras clave "DEBE", "NO DEBE", "REQUERIDO", "DEBE", "NO DEBE", "DEBE", "NO DEBE", "RECOMENDARSE", "PUEDE" y "OPCIONAL" en este documento. para ser interpretado como se describe en RFC 2119.

De este documento:

  • MUSTes equivalente REQUIREDe SHALLindica que la definición es un requisito absoluto.
  • MUST NOTes equivalente SHALL NOTe indica que es una prohibición absoluta de las especificaciones.
  • SHOULDes equivalente a RECOMMENDEDsignifica que hay razones válidas para ignorar un requisito particular, pero las implicaciones deben sopesarse.
  • SHOULD NOTy NOT RECOMMENDEDsignifica que un comportamiento particular puede ser aceptable o útil, pero nuevamente, las implicaciones deben sopesarse.
  • MAYsignifica OPTIONALy que el requisito es realmente opcional. Se debe realizar la interoperabilidad con diferentes sistemas que pueden o no implementar un requisito opcional.

Después de este RFC se SHOULDdebe hacer para ayudar a garantizar la coherencia de la comunicación entre los documentos internos y el mundo de los estándares en general.


fuente
1
respuesta sólida accesorios para desenterrar el RFC
1
@ GlenH7 lo sabía (disfruto leyendo RFC del 1 de abril y algo del humor está en el 'debería' y 'debe', y 2119 está incluso en la página de Wikipedia ) Lo busqué, lo encontré y luego leí el comentario que estaba a punto de hacer: dos más arriba era el RFC nuevamente. Así que no son accesorios completamente grandes para desenterrarlo.
Mi pensamiento era que los requisitos obligatorios / requisitos funcionales deben requerir toda la funcionalidad de un objeto derivado que existirá. Pero dado las definiciones de debe y debe y cómo todos los demás las están usando, simplemente estaba equivocado
Tim Lieberman
6

No estoy seguro de donde se llegó a la conclusión de que shall, y mustpertenecen a niveles diferentes de documentación. Esa es una distinción bastante arbitraria que no está respaldada por ninguna fuente que conozca.

Shally mustson léxicamente equivalentes. Es una acción que se requiere.

Si usa shallo mustrealmente depende del resto del documento en el que está escribiendo y qué tiene sentido gramatical para esa oración en particular.

Entonces sí, te equivocas. Pero también te equivocas al usar siempre en shalllugar de must. Representan el mismo grado de obligación.


fuente
3
Shouldy mayno son del todo equivalentes. Ambos denotan características opcionales, pero should, a diferencia may, implica que debe tener una buena razón para no implementarlo. Sin embargo, estoy de acuerdo contigo en shallvs. must
Keith Thompson
@KeithThompson: ese es un buen punto, y tienes razón. Saqué esa línea de la respuesta.
1
Mi pensamiento se convirtió en que los requisitos funcionales deberían usar must porque, si un objeto derivado existiera, toda su funcionalidad debería funcionar.
Tim Lieberman
Supongo que en algún momento tuve incrustado como un nuevo objeto en mi cabeza y debo como función.
Tim Lieberman
@TimLieberman: esa no es una mala forma de ver las cosas, especialmente porque vincula las dos capas de especificaciones. Un poco útil, en realidad, ya que algunas personas se confunden con la semántica de los términos. Especialmente porque he arreglado documentos de proceso donde "deberá" se usó la mayoría de las veces como sustituto de "debería". Sin embargo, no es lo suficientemente útil como para requerir eso como un estándar particular.
2

Si trabaja dentro del marco de las directrices DO-178 o DO-254 , estas tienen sus propias definiciones de requisitos en general y requisitos derivados . Sin embargo, estas pautas no especifican qué palabra, por ejemplo , debe, debe , debe usarse para especificar los requisitos.

Si las herramientas de gestión de requisitos no le indican automáticamente los requisitos derivados, puede ser beneficioso diferenciarlos de los requisitos funcionales mediante el uso de un must en lugar de debe , por ejemplo, para demostrar que los objetivos de verificación para los requisitos derivados también se han cumplido. Esta podría ser una posible razón para el requisito de documentación aparentemente arbitraria.

Tenga en cuenta que en DO-178 y DO-254, el requisito derivado en realidad significa un requisito que no se ha derivado de un requisito de nivel superior. Por lo tanto, los requisitos derivados inician esencialmente una nueva cadena de trazabilidad.

Tanto el DO-178 como el DO-254 son documentos de pautas comerciales utilizados para el desarrollo de software y electrónica de aviónica, y solo están disponibles por una tarifa en www.rtca.org .

Schedler
fuente