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.

  • (I.e. Définition: Une exigence non fonctionnelle (ENF) décrit les performances d'un système en termes de performance, de sécurité, de facilité d'utilisation, de fiabilité et de portabilité.
  • 🇧🇷 Types communs: L'utilisabilité, la sécurité, la fiabilité, l'évolutivité, la capacité, la disponibilité, la maintenabilité et la conformité réglementaire sont les catégories des équipes. track le plus souvent.
  • (I.e. Modèle FURPS+ : FURPS+ regroupe les exigences non fonctionnelles (NFR) en fonction de la fonctionnalité, de l'utilisabilité, de la fiabilité, des performances, de la facilité de support et des contraintes de conception ou d'interface.
  • (I.e. Énoncés vérifiables : Remplacez « rapide » ou « sécurisé » par des seuils numériques et des méthodes de vérification afin que les exigences non fonctionnelles puissent être testées et acceptées.
  • ???? Contraste fonctionnel : Les exigences fonctionnelles décrivent ce que fait le système ; les exigences non fonctionnelles décrivent comment il le fait dans des conditions réelles.
  • Impact sur les entreprises: L'absence de NFR est la principale cause d'incidents de production, de non-conformités réglementaires et de coûteuses modifications d'architecture en phase finale.

Exigences non fonctionnelles en génie logiciel

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

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 :

  1. 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é.
  2. 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é.
  3. Chaque tentative infructueuse d'un utilisateur pour accéder à une donnée doit être consignée dans un journal d'audit.
  4. Le site web devra supporter 20 millions d'utilisateurs simultanés sans dégradation des temps de réponse.
  5. Le logiciel doit être portable afin que le passage d'un système d'exploitation à un autre ne pose aucun problème.
  6. 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.

  1. 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é.
  2. 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.
  3. 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 % ».
  4. 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 ».
  5. 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.
  6. 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.

FAQ

Les outils de simulation de charge et de performance basés sur l'IA génèrent un trafic réaliste, détectent les anomalies dans la distribution des temps de réponse et prévoient les limites de mise à l'échelle avant la mise en production. L'IA analyse également les journaux et les schémas d'accès afin de signaler les incidents de sécurité que les outils traditionnels basés sur des règles ne détectent pas.

Copilot et GPT transforment les énoncés de qualité vagues en exigences non fonctionnelles (ENF) mesurables, avec des indicateurs, des seuils, des conditions et une méthode de vérification. Les analystes métier examinent chaque ébauche en fonction des catégories FURPS+ et du cadre SMART avant de l'intégrer à la liste des tâches en attente.

Les tests fonctionnels vérifient le bon fonctionnement de fonctionnalités telles que la connexion ou la recherche. Les tests non fonctionnels évaluent les performances du système sous charge, en conditions de stress et d'utilisation, et couvrent les aspects suivants : performances, sécurité, convivialité, compatibilité et fiabilité.

L'évolutivité, la disponibilité, la latence, l'élasticité et la rentabilité sont les exigences non fonctionnelles (ENF) dominantes du cloud. Les équipes tracL’observabilité de k, les objectifs de reprise après sinistre tels que RPO et RTO, et la conformité multirégionale sont essentiels car ils déterminent la plupart des décisions d’architecture cloud.

Choisissez une métrique avec une unité, définissez un seuil numérique, décrivez la condition d'application et nommez la méthode de vérification. Par exemple : temps de réponse inférieur à 400 millisecondes au 95e centile avec 5 000 utilisateurs, vérifié par JMeter.

Le chiffrement des données au repos et en transit, la robustesse de l'authentification, l'autorisation basée sur les rôles, la journalisation des audits, l'expiration des sessions et la conformité aux normes telles que ISO 27001, PCI DSS et RGPD sont les exigences non fonctionnelles de sécurité que la plupart des équipes documentent.

L’utilisation d’adjectifs vagues, l’omission de la métrique ou de la condition, le fait de lister les exigences non fonctionnelles uniquement à la fin d’un projet et le copier-coller de code standard qu’aucun test ne peut vérifier sont les erreurs les plus courantes qui conduisent à une refonte de l’architecture en phase finale.

Les exigences non fonctionnelles (ENF) figurent dans les spécifications des exigences logicielles, les documents de décision d'architecture, les accords de niveau de service et les listes de contrôle de définition de « terminé ». Les équipes agiles associent souvent des ENF mesurables aux épopées et à la définition de « prêt » pour chaque récit utilisateur.

Résumez cet article avec :