Une séparation explicite des exigences facilitera la conception du bon système.
Avec des exigences non fonctionnelles (je préfère le concept / terme attributs de qualité - devrait fournir de nouvelles perspectives au-delà du fonctionnel par rapport au non fonctionnel), vous êtes plus concerné par les propriétés du logiciel plutôt que par la fonctionnalité. C'est ainsi que le système remplit une fonction, pas simplement ce que fait le système. Les exigences de qualité ont une influence significative sur l'architecture du système d'une manière différente des exigences fonctionnelles et pour cette raison, elles doivent être traitées différemment.
La séparation des attributs de qualité des exigences fonctionnelles vous permet d'analyser, de spécifier et de hiérarchiser différents types d'exigences de différentes manières. Par exemple, les attributs de qualité sont normalement spécifiés à l'aide d'un scénario d'attribut de qualité, tandis que les exigences fonctionnelles peuvent prendre la forme d'histoires, de cas d'utilisation, d'instructions shall ou de tout autre nombre de formats. La plupart des systèmes sur lesquels j'ai travaillé avaient moins d'une douzaine d'attributs de qualité et beaucoup, beaucoup plus d'exigences fonctionnelles.
J'introduirais en fait un autre type d'exigences - les contraintes techniques . Encore une fois, la séparation explicite des exigences dans ces trois compartiments vous donne des indices sur la façon de faire les bons compromis lors de la construction du système. Les exigences fonctionnelles sont souvent assez négociables, les attributs de qualité influencent fortement votre architecture et les structures que vous choisissez, les contraintes techniques ne sont pas négociables.
S'il s'agissait de mon équipe, je leur dirais que les exigences devraient être clairement annotées par type pour nous assurer de ne rien manquer d'important dans l'architecture. Pensez aux pilotes architecturaux, pas seulement à la fonctionnalité.
Anthony Lattanze dans Architecting Software Intensive Systems: A Practitioners Guide donne un aperçu pratique des pilotes architecturaux et pourquoi ils devraient être traités différemment, beaucoup plus complet que mon résumé ici.