Quelle est la différence entre les exigences fonctionnelles et non fonctionnelles? [fermé]


283

Quelle est la différence entre les exigences fonctionnelles et non fonctionnelles dans le contexte de la conception d'un système logiciel?

Donnez des exemples pour chaque cas.



@TravisJ Encore une fois, gardons le tag sur les questions jusqu'à ce que nous ayons terminé avec la première phase de gravure du tag.
TylerH

Réponses:


525

Une exigence fonctionnelle décrit ce qu'un système logiciel doit faire, tandis que des exigences non fonctionnelles imposent des contraintes sur la façon dont le système le fera.

Permettez-moi de développer.

Un exemple d' exigence fonctionnelle serait:

  • Un système doit envoyer un e-mail chaque fois qu'une certaine condition est remplie (par exemple, une commande est passée, un client s'inscrit, etc.).

Une exigence non fonctionnelle connexe pour le système peut être:

  • Les e-mails doivent être envoyés avec une latence d'au plus 12 heures après une telle activité.

L'exigence fonctionnelle décrit le comportement du système en ce qui concerne la fonctionnalité du système. L'exigence non fonctionnelle élabore une caractéristique de performance du système.

Les exigences généralement non fonctionnelles relèvent de domaines tels que:

  • Accessibilité
  • Capacité, actuelle et prévue
  • Conformité
  • Documentation
  • Reprise après sinistre
  • Efficacité
  • Efficacité
  • Extensibilité
  • Tolérance aux pannes
  • L'interopérabilité
  • Maintenabilité
  • Intimité
  • Portabilité
  • Qualité
  • Fiabilité
  • Résistance
  • Temps de réponse
  • Robustesse
  • Évolutivité
  • Sécurité
  • Stabilité
  • Prise en charge
  • Testabilité

Une liste plus complète est disponible à l'entrée de Wikipedia pour les exigences non fonctionnelles .

Les exigences non fonctionnelles sont parfois définies en termes de paramètres (c'est-à-dire quelque chose qui peut être mesuré sur le système) pour les rendre plus tangibles. Les exigences non fonctionnelles peuvent également décrire des aspects du système qui ne sont pas liés à son exécution, mais plutôt à son évolution dans le temps (par exemple, maintenabilité, extensibilité, documentation, etc.).


Je m'en remettrai à vous, bien sûr, compte tenu de votre réputation et de vos antécédents professionnels (que j'ai examinés avant d'écrire ceci): votre exemple d' exigence non fonctionnelle ne pourrait-il pas être considéré comme un comportement? Ou voulez-vous plutôt dire que les exigences non fonctionnelles décrivent les contraintes liées aux comportements?
Thomas

1
Pour clarifier un peu ma question (et elle peut ne pas être répondue): existe-t-il un moyen de mieux élucider la frontière de ce qui constitue un comportement?
Thomas

plus 1 pour donner un bel exemple de système de messagerie. :)
Ahtisham

33

les exigences fonctionnelles sont les principales choses que l'utilisateur attend du logiciel, par exemple si l'application est une application bancaire, cette application devrait pouvoir créer un nouveau compte, mettre à jour le compte, supprimer un compte, etc. les exigences fonctionnelles sont détaillées et spécifiées dans la conception du système

Les exigences non fonctionnelles ne sont pas directement les exigences du système, elles sont plutôt liées à la convivialité (d'une certaine manière), par exemple pour une application bancaire, une exigence non fonctionnelle majeure sera disponible, l'application devrait être disponible 24h / 24 et 7j / 7 sans interruption si possible.


27

Exigences fonctionnelles

  1. Les exigences fonctionnelles spécifient une fonction qu'un système ou un composant système doit être en mesure d'exécuter. Il peut être documenté de différentes manières. Les plus courants sont les descriptions écrites dans les documents et les cas d'utilisation.

  2. Les cas d'utilisation peuvent être des listes d'énumération textuelles ainsi que des diagrammes décrivant les actions de l'utilisateur. Chaque cas d'utilisation illustre des scénarios comportementaux à travers une ou plusieurs exigences fonctionnelles. Souvent, cependant, un analyste commence par obtenir un ensemble de cas d'utilisation, dont l'analyste peut déduire les exigences fonctionnelles qui doivent être mises en œuvre pour permettre à un utilisateur d'effectuer chaque cas d'utilisation.

  3. Les exigences fonctionnelles sont ce qu'un système est censé accomplir . C'est possible

    • Calculs
    • Détails techniques
    • Manipulation de données
    • Traitement de l'information
    • Autres fonctionnalités spécifiques
  4. Une exigence fonctionnelle typique contiendra un nom et un numéro uniques, un bref résumé et une justification. Ces informations sont utilisées pour aider le lecteur à comprendre pourquoi l'exigence est nécessaire et pour suivre l'exigence tout au long du développement du système.

Prérogatives non fonctionnelles

LBushkin a déjà expliqué plus sur les exigences non fonctionnelles. J'ajouterai plus.

  1. Les exigences non fonctionnelles sont toute autre exigence que les exigences fonctionnelles. Ce sont les exigences qui spécifient les critères qui peuvent être utilisés pour juger du fonctionnement d'un système, plutôt que des comportements spécifiques .

  2. Les exigences non fonctionnelles se présentent sous la forme de "système doit être" , une propriété globale du système dans son ensemble ou d'un aspect particulier et non une fonction spécifique. Les propriétés globales du système marquent généralement la différence entre la réussite ou l'échec du projet de développement.

  3. Exigences non fonctionnelles - peuvent être divisées en deux catégories principales:

    • Qualités d'exécution , telles que la sécurité et l'utilisabilité, qui sont observables au moment de l'exécution.
    • Qualités d'évolution , telles que la testabilité, la maintenabilité, l'extensibilité et l'évolutivité, qui sont incorporées dans la structure statique du système logiciel.
  4. Les exigences non fonctionnelles imposent des restrictions sur le produit en cours de développement, le processus de développement et spécifient les contraintes externes auxquelles le produit doit répondre.
  5. L' IEEE-Std 830 - 1993 répertorie 13 exigences non fonctionnelles à inclure dans un document des exigences logicielles.
  1. Exigences de performance
  2. Exigences d'interface
  3. Exigences opérationnelles
  4. Besoins en ressources
  5. Exigences de vérification
  6. Conditions d'acceptation
  7. Exigences en matière de documentation
  8. Exigences de sécurité
  9. Exigences de portabilité
  10. Exigences de qualité
  11. Exigences de fiabilité
  12. Exigences de maintenabilité
  13. Exigences de sécurité

Le fait qu'une exigence soit exprimée comme une exigence fonctionnelle ou non fonctionnelle peut dépendre:

  • sur le niveau de détail à inclure dans le document d'exigences
  • le degré de confiance qui existe entre un client système et un développeur système.

Ex. Un système peut être nécessaire pour présenter à l'utilisateur un affichage du nombre d'enregistrements dans une base de données. Il s'agit d'une exigence fonctionnelle. La mise à jour de ce numéro doit être une exigence non fonctionnelle. Si le nombre doit être mis à jour en temps réel, les architectes du système doivent s’assurer que le système est capable de mettre à jour le nombre d’enregistrements [affiché] dans un intervalle suffisamment court du nombre d’enregistrements changeant.

Références:

  1. Exigence fonctionnelle
  2. Exigence non fonctionnelle
  3. Quantification et traçabilité des exigences

1
bien expliqué. Merci!
Arslan Ramay

1
Belle réponse avec de bonnes références. Je veux seulement ajouter la norme la plus mise à jour, car l'IEEE 830-1993 a été remplacée. La norme la plus récente est ISO / IEC / IEEE 29148: 2018 "Ingénierie des systèmes et du logiciel - Processus du cycle de vie - Ingénierie des exigences" ( iso.org/standard/72089.html )
fermeture de session le

8

Les exigences fonctionnelles sont celles qui sont liées à la fonctionnalité technique du système.

une exigence non fonctionnelle est une exigence qui spécifie des critères qui peuvent être utilisés pour juger du fonctionnement d'un système dans des conditions particulières, plutôt que des comportements spécifiques.

Par exemple, si vous envisagez un site d'achat, ajouter des articles au panier, parcourir différents articles, appliquer des offres et des offres et passer des commandes avec succès relève des exigences fonctionnelles.

Où en tant que performances du système aux heures de pointe, temps nécessaire au système pour récupérer les données de la base de données, sécurité des données utilisateur, capacité du système à gérer si un grand nombre d'utilisateurs se connecte sous des exigences non fonctionnelles.


Excellente réponse.
Iftekhar

3

EXIGENCES FONCTIONNELLES les activités que le système doit effectuer

  • l'entreprise utilise les fonctions que les utilisateurs remplissent
  • exemple de cas d'utilisation si vous développez un système de paie fonctions requises
  • générer des transferts électroniques de fonds
  • calcul des montants des commissions
  • calculer les charges sociales
  • déclarer la déduction fiscale à l'IRS

2

Je pense que l'exigence fonctionnelle est du client au développeur qui concerne la fonctionnalité à l'utilisateur par le logiciel et l' exigence non fonctionnelle est du développeur au client, c'est-à-dire que l'exigence n'est pas donnée par le client mais elle est fournie par le développeur pour faire fonctionner le système en douceur, par exemple sûreté, sécurité, flexibilité, évolutivité, disponibilité, etc.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.