Cuando cada requisito tiene la misma prioridad / peso (particularmente "Obligatorio"), entonces probablemente tenga más de qué preocuparse que simplemente dividir los requisitos funcionales y no funcionales.
Sin embargo, hay varias razones para separar Las dos categorías de requisitos:
Responsabilidad de la implementación
He descubierto que muchos requisitos no funcionales, particularmente aquellos centrados en el rendimiento, solo son moderadamente aplicables al desarrollador. Si bien un diseño puede admitir la escalabilidad y la velocidad (y se pueden ajustar secciones de código específicas), en general, cumplir con los requisitos de rendimiento depende de la arquitectura y, a menudo, del tiempo de la configuración del hardware.
Responsabilidad de las pruebas
¿Qué tan experto es el usuario o el equipo de control de calidad para verificar que se cumplen los requisitos de seguridad, tolerancia a fallas, seguridad y confiabilidad?
No se repita La
documentación debe seguir el mismo principio DRY que el código. Los requisitos comunes de diseño de la interfaz de usuario deben agruparse. Si la persona responsable de los requisitos realmente quiere, puede hacer referencia a los requisitos no funcionales (individualmente o en grupo) en los requisitos funcionales.
Control de versiones
Si está en un entorno corporativo con muchos "estándares", puede escribir documentos de requisitos específicos de IU o seguridad (por nombrar un par) que se puedan versionar. De esa manera, podría escribir los requisitos específicos de la aplicación (en su mayoría Requisitos funcionales): "La aplicación debe cumplir con la V2.3 de los Requisitos de seguridad definidos en XYZ-Company-SecReq-DocumnentNamingStandard.docx".