La separación explícita de los requisitos facilitará el diseño del sistema correcto.
Con requisitos no funcionales (prefiero los atributos de calidad de concepto / término - debería proporcionar nuevas ideas más allá de funcional frente a no funcional), usted está más preocupado por las propiedades del software que por la funcionalidad. Así es como el sistema realiza alguna función, no simplemente lo que hace el sistema. Los requisitos de calidad tienen una influencia significativa en la arquitectura del sistema en formas que los requisitos funcionales no tienen y, por esta razón, deben tratarse de manera diferente.
Mantener los atributos de calidad separados de los requisitos funcionales le permite analizar, especificar y priorizar diferentes tipos de requisitos de diferentes maneras. Por ejemplo, los atributos de calidad normalmente se especifican usando un escenario de atributos de calidad, mientras que los requisitos funcionales pueden tomar la forma de historias, casos de uso, declaraciones o cualquier otro número de formatos. La mayoría de los sistemas en los que he trabajado tenían menos de una docena de atributos de calidad y muchos, muchos más requisitos funcionales.
En realidad, introduciría otro tipo de requisitos: restricciones técnicas . Una vez más, la separación explícita de los requisitos en estos tres grupos le da pistas sobre cómo hacer las compensaciones correctas al construir el sistema. Los requisitos funcionales a menudo son bastante negociables, los atributos de calidad influirán en gran medida en su arquitectura y las estructuras que elija, las restricciones técnicas no son negociables.
Si este fuera mi equipo, les diría que los requisitos deben estar claramente anotados por tipo para asegurarnos de que no nos perdamos algo importante en la arquitectura. Piense en los controladores arquitectónicos, no solo en la funcionalidad.
Anthony Lattanze en Arquitectura de software de sistemas intensivos: una guía para profesionales ofrece una visión general práctica de los impulsores arquitectónicos y por qué deberían tratarse de manera diferente, mucho más integral que mi resumen aquí.