Qu’est-ce qu’une exigence non fonctionnelle en génie logiciel ?
⚡ Résumé intelligent
Les exigences non fonctionnelles spécifient des attributs de qualité tels que la performance, la sécurité, la facilité d'utilisation, la fiabilité, l'évolutivité et la portabilité, définissant ainsi le comportement attendu d'un système logiciel et transformant des attentes vagues en objectifs d'ingénierie mesurables, testables et applicables tout au long du cycle de vie de la livraison.
Qu'est-ce qu'une exigence non fonctionnelle ?
A Exigence non fonctionnelle Une exigence non fonctionnelle (ENF) spécifie un attribut de qualité d'un système logiciel. Les ENF évaluent le système selon sa réactivité, sa facilité d'utilisation, sa sécurité, sa portabilité et d'autres attributs de qualité essentiels à son succès. Un exemple courant d'exigence non fonctionnelle est : « à quelle vitesse le site Web se charge-t-il ? » Le non-respect des exigences non fonctionnelles engendre des systèmes qui frustrent les utilisateurs.
Les exigences non fonctionnelles en génie logiciel imposent des contraintes à la conception du système tout au long du backlog agile. Par exemple, le site doit se charger en trois secondes lorsque le nombre d'utilisateurs simultanés dépasse 10 000. La description des exigences non fonctionnelles est tout aussi cruciale que la collecte des exigences fonctionnelles.
Types d'exigences non fonctionnelles
Les principales catégories d'exigences non fonctionnelles sont :
Types d'exigences non fonctionnelles
- Convivialité
- Accessibilité et entretien
- Manageability
- Récupérabilité
- Sécurité
- Centres de données Integrity
- Capacités
- Disponibilité
- Évolutivité
- Interopérabilité
- Fiabilité
- Consommabilité
- Conformité réglementaire
- Contraintes environnementales
Exemples d'exigences non fonctionnelles
Voici des exemples concrets d'exigences non fonctionnelles :
- Les utilisateurs doivent modifier leur mot de passe initial après leur première connexion réussie, et ce mot de passe initial ne doit jamais être réutilisé.
- Il est interdit aux employés de modifier eux-mêmes leurs informations salariales, et toute tentative en ce sens sera signalée à l'administrateur de la sécurité.
- Chaque tentative infructueuse d'un utilisateur pour accéder à une donnée doit être consignée dans un journal d'audit.
- Le site web devra supporter 20 millions d'utilisateurs simultanés sans dégradation des temps de réponse.
- Le logiciel doit être portable afin que le passage d'un système d'exploitation à un autre ne pose aucun problème.
- La confidentialité des informations, l'exportation des technologies réglementées et les droits de propriété intellectuelle doivent être auditables.
Exigences fonctionnelles et non fonctionnelles
Les principales différences entre les exigences fonctionnelles et non fonctionnelles sont les suivantes :
| Paramètres | Exigence fonctionnelle | Exigence non fonctionnelle |
|---|---|---|
| Qu’est-ce que c’est? | Verbe | Attributs |
| Exigence | C'est obligatoire | Ce n'est pas obligatoire |
| Type de capture | Il est capturé dans le cas d'utilisation. | Il est capturé comme un attribut de qualité. |
| Résultat final | Caractéristique du produit | Propriétés du produit |
| Capture | Facile à capturer | Difficile à capturer |
| Objectif | Vous aide à vérifier la fonctionnalité du logiciel. | Vous aide à vérifier les performances du logiciel. |
| Domaine d'intérêt | Se concentrer sur les besoins des utilisateurs | Se concentre sur les attentes de l'utilisateur. |
| Documentation | Décrire ce que fait le produit | Décrit le fonctionnement du produit |
| Type de test | Essais fonctionnels comme les tests système, d'intégration, de bout en bout, d'API, etc. | Tests non fonctionnels comme les tests de performances, de stress, d'utilisabilité, de sécurité, etc. |
| Exécution des tests | L'exécution des tests est effectuée avant les tests non fonctionnels. | Après les tests fonctionnels |
| Information sur le produit | Caractéristiques du produit | Propriétés du produit |
Avantages des exigences non fonctionnelles
Les principaux avantages de Tests non fonctionnels sont:
- Les exigences non fonctionnelles garantissent que le système respecte les règles légales et de conformité.
- Ils protègent la fiabilité, la disponibilité et les performances du système.
- Ils offrent une bonne expérience utilisateur et une grande facilité d'utilisation.
- Ils définissent la politique de sécurité du logiciel.
Inconvénients des exigences non fonctionnelles
Les inconvénients courants des exigences non fonctionnelles sont les suivants :
- Les exigences non fonctionnelles peuvent affecter plusieurs sous-systèmes logiciels de haut niveau.
- Elles nécessitent une attention particulière lors de la conception architecturale et de la conception de haut niveau, ce qui augmente les coûts.
- L'implémentation correspond rarement à un seul sous-système logiciel.
- Elles sont difficiles à modifier une fois la phase d'architecture terminée.
Modèle FURPS+ pour la classification des exigences non fonctionnelles
FURPS+ est la taxonomie la plus utilisée pour les exigences non fonctionnelles. Développée initialement chez Hewlett-Packard, elle regroupe les attributs de qualité en cinq catégories principales, auxquelles s'ajoutent des contraintes supplémentaires marquées d'un « + ». Ce modèle aide les analystes métier à ne pas négliger des exigences entières.
- Fonctionnalité: Des capacités, une sécurité et une réutilisabilité qui vont bien au-delà de la liste des fonctionnalités de base.
- Usabilité: Facteurs humains, esthétique, cohérence, documentation et réactivité de l'expérience utilisateur.
- Fiabilité: Disponibilité, temps moyen entre les pannes, capacité de récupération, prévisibilité et précision.
- Performance : Vitesse, débit, capacité, évolutivité et consommation de ressources en charge.
- Supportabilité : Testabilité, flexibilité, installabilité, localisabilité et maintenabilité du système livré.
- Plus (+): Conception, mise en œuvre, interface et contraintes physiques telles que les plateformes, normes ou matériels requis.
Les équipes qui associent chaque exigence non fonctionnelle à une catégorie FURPS+ sont moins susceptibles de livrer un système qui répond aux exigences fonctionnelles mais qui présente des lacunes en matière de performances, de sécurité ou de maintenabilité.
Comment rédiger des exigences non fonctionnelles testables
Une exigence non fonctionnelle bien formulée est mesurable, vérifiable et assortie d'un échéancier. Des affirmations vagues telles que « le système doit être rapide » ou « l'application doit être sécurisée » relèvent de l'idéal, et non de l'exigence. Suivez les étapes ci-dessous pour transformer une intention en une exigence non fonctionnelle testable.
- Identifier l'attribut de qualité. Associez le problème à une catégorie FURPS+ afin que l'équipe sache s'il s'agit d'une exigence de performance, d'utilisabilité, de sécurité ou de fiabilité.
- Choisissez une mesure. Chaque NFR a besoin d'une unité : millisecondes, requêtes par seconde, utilisateurs simultanés, pourcentage de disponibilité ou une norme de conformité telle que l'ISO 27001.
- Définir un seuil numérique. Remplacez « rapide » par « moins de 400 millisecondes au 95e percentile ». Remplacez « haute disponibilité » par « disponibilité mensuelle de 99.9 % ».
- Décrivez l'affection. Précisez la charge, l'environnement ou le segment d'utilisateurs auquel le seuil s'applique, par exemple « pendant les pics de ventes avec 10 000 utilisateurs simultanés ».
- Définir la méthode de vérification. Notez le type de test (test de charge, test d'intrusion, expérience de chaos, audit d'accessibilité) et l'outil qui confirmera le seuil.
- Appliquer le contrôle SMART. Vérifiez que l'exigence est spécifique, mesurable, réalisable, pertinente et assortie d'un délai avant de l'intégrer à la liste des tâches en attente.
Exemple de réécriture : « Le système doit être rapide » devient « La page de paiement doit répondre en moins de 500 millisecondes au 95e centile avec 5 000 utilisateurs simultanés, vérifié par un JMeter « Effectuez des tests de charge à chaque version. » La version révisée permet aux développeurs de concevoir en conséquence, aux testeurs de vérifier et aux responsables produits de l’accepter sans discussion.


