Al revisar la especificación de requisitos qué & # 8220; pecados capitales & # 8221; ¿deben abordarse? [cerrado]

StackOverflow https://stackoverflow.com/questions/186716

Pregunta

Al revisar la especificación de requisitos (que incluye requisitos funcionales, no funcionales, restricciones, etc.), por pequeños o grandes que sean, son los "pecados capitales". comprometido por los autores a tener en cuenta?

Enumere no más de 7 cosas esenciales (en orden decreciente de gravedad) que se hacen (o no se hacen) en la especificación de requisitos tienen un efecto adverso en la calidad del producto de software. Menos de 7 está perfectamente bien.

¿Fue útil?

Solución

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

  • Único . ¿Hay alguna otra requisitos que son similares?
  • Identificable , ¿puede el requisito de ser identificado de manera única? ¿Se puede rastrear a lo largo de su proceso de desarrollo?
  • Completo . ¿Falta algo o ¿olvidado? ¿Es exhaustivo? Lo hace incluir todo lo necesario para hacer ¿está solo?
  • Preciso . ¿Es correcto? ¿Define adecuadamente el ¿Gol? ¿Hay algún error?
  • inequívoco . Es la descripción exacta y no vaga? ¿Hay una interpretación única? Es ¿Es fácil de leer y entender?
  • Consistente . Es la descripción de la característica escrita para que no entra en conflicto con otros elementos en la especificación?
  • Relevante . ¿Es necesaria la declaración? a la función? Es extra información que debe quedar fuera? ¿Es trazable a un ¿necesidad original del cliente?
  • Factible . Puede ser implementado con el disponible personal, herramientas y recursos dentro del presupuesto especificado y horario?
  • Sin código . ¿La especificación seguir con la definición del producto y no el diseño de software subyacente, arquitectura y código?
  • Probable . ¿Se puede probar? Es suficiente información proporcionada que un probador podría crear pruebas para verificar que se cumple el requisito?
  • Priorizado . ¿Es más o menos importante que otros requisitos?
  • usa la voz activa . Hace el especificación utilizar la voz activa? La voz pasiva no siempre especifica quién o qué realiza la acción.
  • Categorizado . Es el requisito lógicamente agrupado con similar requisitos? Categorías posibles son: comportamiento, rendimiento, Interfaz, estructuras / elementos de datos, Implementación, Cumplimiento / Calidad, Operativo (Fiabilidad, Seguridad, Seguridad), Derivado / Diseñado.

Una herramienta de seguimiento de requisitos decente puede automatizar / hacer cumplir algunas de las anteriores, como Identificable, Priorizado, Categorizado, pero solo una revisión por parte del equipo puede verificar el resto. La clave está en entrenar a su equipo en estos atributos, hacer que practiquen leyendo 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.

Otros consejos

Requisitos faltantes: mucho más difícil de atrapar. Separar los requisitos en secciones claras (por ejemplo, seguridad, rendimiento, estilo, etc.) puede hacer que sea más fácil de detectar.

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

Retrasar los requisitos que intentan controlar su proceso.

Solicite una priorización clara desde el principio.

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

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

Hacer suposiciones: verifique que todo lo que parece una suposición haya sido verificado.

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 al revisarlo.

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

"The invoice is reconciled to the purchase order."

¿Esto significa que el sistema hace algo o el usuario?

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

The system shall interface to SAP as required.

En primer lugar, un requisito con " según se requiera " en eso es estúpido. Esa línea debe haber costado $ 400k. El cliente seguía apuntándolo y diciendo que dice que vas a hacer bla, bla, bla.

Exigido: si es posible, especifique las tolerancias relevantes.

Los requisitos ambiguos son malos.

Los requisitos no verificables y no cuantificables se duplican.

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

  • Ponga los estándares primero, que no tienen que definirse en cada especificación, refiérase a ellos
  • Que sea lo más pequeño posible: rara vez se puede leer un documento de 200 páginas y tener todo en mente
  • Sea específico, mesurable, concreto
  • Hacer ejemplos (dibujos, escritos contables)
  • Explique el propósito antes de describir la función
  • incluir estándares de rendimiento, estándares de resistencia, instrucciones de implementación, documentación para las operaciones necesarias

También tengo un solo consejo para el revisor: conoce tu tema

Debe tener un conocimiento muy detallado del contexto de los requisitos, las necesidades específicas del cliente, el entorno técnico y quizás el más importante a quién se dirigirá este requisito y qué nivel de comprensión global tienen.

Hice muy mala experiencia en proyectos con mucha gente revisando las especificaciones ya que su conocimiento individual era muy superficial. Obtiene la retroalimentación en el mismo nivel, principalmente correcciones formales, pero las profundas carencias de la especificación solo se descubrirán muy recientemente en el proyecto.

Evite las 'palabras comadrejas': cualquier lenguaje que pueda extraerse de su contexto y que suene mal es malo.

Asegúrese de que todo esté absolutamente claro: vague == Cosa mala (tm)

Mi recomendación y lo que siempre hago antes de un nuevo proyecto es verificar dos veces la lista de verificación en Página 42,43 de Código completo de Steve McConnell

La wiki que todo lo sabe tiene una buena sinopsis de los requisitos: http: //en.wikipedia. org / wiki / Requisito # 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 explicar las cosas explícitamente en sus requisitos, por ej. El sistema deberá responder rápidamente. En cambio, el sistema responderá a todas las solicitudes en menos de 2 segundos.

  • Separación de requisitos funcionales, arquitectónicos, de interfaz, no funcionales.
  • Uso de notación inequívoca y coherente para describir entidades
  • Borrar criterios de entrada y salida para los casos de uso
  • Tener diagramas de flujo (los mapas mentales tienen el mismo propósito que UML, y son más fáciles de dibujar)
  • Defina el alcance en términos claros, lo que está cubierto y lo que no está, y dónde encontrar los que quedan sin graficar
  • Tener una matriz de trazabilidad

Puede considerar leer algunos de Gestión de requisitos y documentos CMMI .

Visite también Lista de verificación de requisitos y google for " ; Criterios de buen requisito ".

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top