2008-10-09 8 views
7

Al revisar la especificación de requisitos (que incluye requisitos funcionales, no funcionales, restricciones, etc.), sean pequeños o grandes, ¿cuáles son los "pecados capitales" cometidos por los autores a los que hay que prestarle atención?Al revisar la especificación de requisitos, ¿qué "pecados capitales" deben abordarse?

Por favor, enumere no más de 7 cosas esenciales (en orden de severidad decreciente) que hacer (o no hacer) en la especificación de requisitos tiene un efecto adverso en la calidad del producto de software. Menos de 7 está perfectamente bien.

Respuesta

12

OK, esto es más de 7, pero los buenos requisitos tienen los siguientes atributos:

  • Único. ¿Existen otros requisitos de que sean similares?
  • Identificable, ¿Puede el requisito ser identificado de manera única? ¿Se puede rastrear a lo largo de su proceso de desarrollo?
  • Complete. ¿Algo falta o olvidado? ¿Es completo? ¿Incluye todo lo necesario para que sea independiente?
  • Accurate. ¿Es correcto? ¿Define correctamente el objetivo ? ¿Hay algún error?
  • inequívoco. ¿Es la descripción exacta y no vaga? ¿Hay una sola interpretación? ¿Es fácil de leer y entender?
  • consistente. ¿Es la descripción de la característica escrita para que no entre en conflicto con otros elementos en la especificación?
  • Relevante. ¿Es necesaria la declaración para la función? ¿Es información adicional que debe omitirse? ¿Es trazable a una necesidad original del cliente ?
  • Factible. ¿Puede ser implementado con el personal disponible , herramientas y recursos dentro del presupuesto especificado y el horario ?
  • Sin código. ¿La especificación se adhiere a la definición del producto y no el diseño de software subyacente, la arquitectura y el código?
  • Testable. Puede ser probado? ¿Hay suficiente información de que un probador podría crear pruebas para verificar que se cumple el requisito?
  • Priorizado. ¿Es más o menos importante que otros requisitos?
  • Utiliza Active Voice. ¿La especificación usa la voz activa? Voz pasiva no siempre especifica quién o qué realiza la acción.
  • Categorizado. ¿El requisito está lógicamente agrupado con los requisitos similares? Las posibles categorías son: Comportamiento, Rendimiento, Interfaz, Estructuras de datos/Elementos, Implementación, Cumplimiento/Calidad, Operacional (Fiabilidad, Seguridad, Seguridad), Derivado/Dirigido.

Una herramienta de seguimiento de necesidades decente puede automatizar/hacer cumplir algunas de las anteriores, como Identificables, Priorizadas, Categorizadas, pero solo una revisión por parte del equipo puede verificar el resto. La clave está en capacitar a su equipo sobre estos atributos, hacer que practiquen al leer buenos y malos ejemplos de requisitos y establecer un proceso de revisión eficiente que verifique los requisitos lo suficientemente temprano en su ciclo de vida como para tener un impacto en las actividades posteriores.

+0

La lista se ve bastante sólida. ¿Lo tomaste de un libro/URL? –

+0

Lo tomé de un documento que compilé a lo largo de los años y lo uso como referencia. Probablemente debería haber citado las fuentes originales en mi documento, pero la mayoría provienen de los días anteriores a la red y nunca imaginé que estaría "publicándolo". –

+1

Esto está plagiado del libro 'Software Testing' de Ron Patton. –

1

Los requisitos deben ser específicos e inequívocos con respecto a lo que se necesita, pero no tanto sobre cómo cumplir los requisitos.

1

Hacer suposiciones: compruebe que todo lo que parece una suposición en realidad se ha verificado.

0

Mi recomendación y lo que hago siempre antes de un nuevo proyecto es doble comprobar la lista de verificación en Página de 42,43 Steve McConnell's Code Complete

1

sentances mal redactado que contienen más de un requisito. Sepárelos en algún lugar para que sean más claros y fáciles de marcar como hechos.

1

Requisitos que no son fáciles de verificar como cumplidos - Cambie a un formulario que se pueda marcar más fácilmente como cumplido o no cuando se revisa.

2

Faltan requisitos: mucho más difícil de atrapar. Separar los requisitos en secciones claras (por ejemplo, seguridad, rendimiento, diseño, etc.) puede hacer que esto sea más fácil de detectar.

2

Características, tiempo, calidad: elija dos. asegúrese de que los requisitos no impongan los tres en su equipo.

Retroceda en los requisitos que intentan controlar su proceso.

Solicite una priorización clara desde el principio.

Insista en un claro criterio de aceptación para cada requisito.

1

El requisito no especifica quién/qué hace la cosa.

"The invoice is reconciled to the purchase order." 

¿Significa esto que el sistema hace algo, o el usuario?

1

peor que he visto en un proyecto codifiqué para: -

The system shall interface to SAP as required. 

En primer lugar, con un requisito "según sea necesario" en ella es estúpida. Esa línea debe haber costado $ 400k. El cliente siguió señalando y diciendo que allí dice que vas a hacer bla, bla, bla.

1

Más riguroso: si es posible, especifique las tolerancias pertinentes.

1

Los requisitos ambiguos son malos.

Los requisitos no verificables y no cuantificables lo duplican.

0

La wikpedia que todo lo sabe tiene una buena sinopsis para los requisitos: http://en.wikipedia.org/wiki/Requirement#Good_requirements. Diría que de esos puntos, la falta de verificabilidad es lo más común. Comprender el panorama general es importante en la vida, sin embargo, debe deletrear las cosas explícitamente en sus requisitos, ej.El sistema debe responder rápidamente. En cambio, el sistema responderá a todas las solicitudes en menos de 2 segundos.

1

Naturalmente, todo esto depende del tipo de requisito que obtenga. Estoy acostumbrado a Gui típico o aplicación web, los procesos por lotes y

  • Ponga estándares en primer lugar, que no tiene que ser definido en cada especificación, se refieren a ellos
  • que sea lo más pequeño posible - rara vez se puede leer un documento de 200 páginas y mantener todo en cuenta
  • ser específico, medible, concreto
  • hacer ejemplos (dibujos, escritos contabilidad)
  • explicar el propósito antes de describir la funtction
  • inlcude p normas ENDIMIENTO, estándares de resiliencia, instrucciones de implementación, documentación de las operaciones necesarias

tengo también un solo consejo para el revisor: conocer el tema

Tienes que tener un conocimiento muy detallado del contexto de la exigencia, la necesidad del cliente específico, el entorno técnico y quizás el más importante al que se dirigirá este requisito y qué nivel de comprensión global tienen.

He tenido muy mala experiencia en proyectos con muchas personas revisando las especificaciones ya que su conocimiento individual era muy superficial. Usted obtiene la retroalimentación en el mismo nivel, en su mayoría correcciones formales, pero las profundas carencias de la especificación solo se descubrirán muy recientemente en el proyecto.

0
  • Separación de requisitos funcionales, arquitectónicos, de interfaz, no funcionales.
  • uso de la notación no ambigua y consistente para describir entidades
  • criterios de entrada y de salida clara para los casos de uso
  • contienen diagramas de flujo (mapas mentales sirven al mismo propósito que UML, y son más fáciles de dibujar)
  • definir el alcance en términos claros, lo que está cubierto y lo que no y dónde se encuentre a los que se quedan desconocido
  • tener una matriz de trazabilidad
1

Evite las "palabras de comadreja": cualquier lenguaje que se pueda quitar de su contexto y hacer sonar mal es malo.

asegurarse de que todo es absolutamente claro: == mala cosa vaga (tm)

0

usted podría considerar la lectura de algunos de Requirement management y CMMI documentos.

También visite Requirement Checklist y google para "Criterios de buenos requisitos".

Están diseñados específicamente para crear procesos que ayudan en el desarrollo de software.

Cuestiones relacionadas