Qu'est-ce qu'une exigence non fonctionnelle

Les exigences non fonctionnelles ou NFR décrivent les caractéristiques d'un logiciel qui ne sont pas définies en termes de fonctionnalités. Il s'agit généralement d'attributs ou de contraintes sur le système qui se terminent par « -ility » ou « -ilities ». Par exemple:

  • maintenabilité
  • évolutivité
  • convivialité

Types d'exigences non fonctionnelles

Il existe potentiellement des dizaines de types NFR. L'importance de chaque type de NFR dépendra du type de logiciel, du contexte et du cas d'utilisation. Certains des types de NFR les plus couramment considérés sont :

  • Sécurité
  • Performance
  • Évolutivité
  • Fiabilité
  • Convivialité
  • Légal
  • Maintenabilité
  • Portabilité

UN liste complète des NFR est disponible sur Wikipédia.

La sécurité – un cas particulier

Cela vaut la peine d’examiner de plus près la sécurité en tant que NFR. Bien que la sécurité soit généralement considérée comme non fonctionnelle, la plupart des exigences en matière de sécurité sont en réalité fonctionnelles. Par exemple, la vérification des autorisations avant d'exécuter un processus est probablement une exigence fonctionnelle. Dans nos études, plus de 90% de toutes les exigences de sécurité sont fonctionnelles.

Les avantages de la détection automatique des NFR

Les exigences non fonctionnelles sont une dimension importante du logiciel. Souvent, ils sont négligés ou de mauvaise qualité (peu spécifiques, incomplets ou incohérents). Les NFR peuvent avoir un impact significatif sur le travail de livraison d’un logiciel. Les négliger peut entraîner un risque accru pour un projet.

Lorsque vous utilisez ScopeMaster pour analyser vos besoins en matière de NFR potentiels, vous pouvez créer une liste de contrôle pour garantir que les NFR sont correctement et adéquatement couverts. Cela réduira les risques pour votre projet. Vous souhaitez également éviter de mélanger des exigences fonctionnelles avec des exigences non fonctionnelles, sauf si cela est nécessaire.

Détection NFR, automatique

ScopeMaster analyse vos exigences (ou user stories) à la recherche d'indices sur des exigences non fonctionnelles importantes.

Analyse CRUD avec ScopeMaster - capture d'écran

ScopeMaster analyse le texte de vos exigences logicielles. Il détecte les exigences non fonctionnelles les plus probables à partir de chaque exigence.

Il détermine une probabilité selon laquelle chaque exigence est ou contient une exigence non fonctionnelle.

Exemples de cas d'utilisation

La plupart des NFR sont « enfouis » dans d’autres exigences et sont difficiles à repérer. Les architectes doivent souvent passer au crible des centaines d'exigences pour tenter de filtrer les NFR susceptibles d'avoir un impact sur l'architecture d'un système. Si ces éléments ne sont pas identifiés suffisamment tôt, des décisions de conception inappropriées pourraient être prises. Ces décisions de conception peuvent entraîner des retouches coûteuses ou une dette technique. La capacité de ScopeMaster à repérer ces NFR dès le départ permet d'exposer les NFR avant que le travail de conception n'ait eu lieu. Cas d'utilisation typiques :

  • Vous avez de nombreux besoins et essayez de détecter tous les NFR d’une catégorie particulière.
  • Vous avez de nombreuses exigences et vous ne savez pas si vous y avez inclus des NFR.
  • Vous devez vérifier les NFR potentiellement conflictuels
  • Vos besoins ont été recueillis par plusieurs personnes et vous devez harmoniser les NFR.

ScopeMaster détecte la phraséologie probable à partir des exigences qui peuvent être ou déduire une exigence non fonctionnelle.

Exigences non fonctionnelles de qualité

Qu’est-ce qui rend les NFR de haute qualité ? Vous devez toujours essayer de quantifier les exigences non fonctionnelles en termes quantifiables qui ont du sens pour l'équipe et auxquels le client peut s'identifier. Ceux-ci devraient vous donner le « niveau d’acceptabilité » d’un NFR donné. Par exemple, toutes les pages Web doivent se charger en 1,5 seconde, prêtes à permettre à l'utilisateur d'interagir.  

Exemples d'exigences non fonctionnelles

Voici quelques exemples NFR, notez la spécificité de chacun. Des critères de réussite/échec sans ambiguïté sont inclus pour chacun :

Performance – Toutes les pages Web se chargeront pour interagir dans les 2 secondes sur une connexion de 5 Mbs depuis n’importe où dans le monde.

Capacité – Avec des changements négligeables, le logiciel devrait être capable de gérer 3 millions d’enregistrements de transactions.

Légal – Le système doit être conforme à la législation GDPR, y compris la possibilité de créer des rapports et/ou de supprimer des dossiers personnels sous réserve d'une demande spécifique.

Convivialité – Le site Web doit être conforme aux WCAG 2.2 niveau A