Concept: Exigences
Une exigence est définie comme une "condition ou une capacité qu'un système doit satisfaire".
Relations
Description principale

Une exigence est définie comme « une condition ou une capacité qu'un système doit satisfaire ».

Il y a plusieurs types d'exigences. Un des moyens de les répertorier est le modèle FURPS+ [GRA92], l'acronyme FURPS désignant les principales catégories d'exigences, avec leurs sous-catégories, comme présenté ci-après.

Le signe « + » dans FURPS+ vous rappelle d'inclure également d'autres exigences, comme :

(Voir aussi [IEEE Std 610.12.1990].)

Ces catégories et ces exemples d'exigences non fonctionnelles peuvent être utilisés comme une liste de contrôle afin de vous permettre de déterminer si vous avez des exigences dans une catégorie particulière.  Mais comment créer un ensemble complet des exigences non fonctionnelles potentielles ?  Vous pouvez consultez les sources suivantes :

  • Pour obtenir une description d'une approche systématique permettant d'enregistrer les exigences en utilisant FURPS+, consultez l'article "Capturing Architectural Requirements" de Peter Eeles extrait du The Rational Edge (http://www.ibm.com/developerworks/rational/library/4706.html).  Cet article contient un questionnaire qui énumère un grand nombre d'exigences non fonctionnelles, ainsi que des questions pour déterminer leur applicabilité.
  • Le Software Engineering Institute (SEI) a aussi crée un catalogue des "scénarios généraux", qui expriment la qualité des exigences d'attribut, pouvant être réutilisé dans différents types de systèmes pour définir les exigences de qualité. Pour plus d'informations, voir aussi http://www.sei.cmu.edu/publications/documents/01.reports/01tr014.html  ou consultez l'ouvrage Software Architecture in Practice, 2ème édition, de Len Bass, Paul Clements, et Rick Kazman (Addison-Wesley, 2003).

Les exigences fonctionnelles spécifient les actions qu'un système doit être capable d'accomplir, sans prendre en considération les contraintes physiques. Celle-ci sont généralement décrites dans un modèle de cas d'utilisation et dans des cas d'utilisation. Les exigences fonctionnelles spécifient ainsi le comportement en entrée et en sortie du système.

Les exigences qui ne se rapportent pas aux fonctionnalités, comme celles énumérées ci-après, sont parfois appelées exigences non fonctionnelles. Plusieurs exigences sont non fonctionnelles et décrivent uniquement les attributs du système ou les attributs de l'environnement du système. Les exigences non fonctionnelles gèrent le type de questions décrit ci-dessous.  

Fonctionnalité

Les exigences fonctionnelles peuvent comprendre :

  • des ensembles de fonctionnalités
  • des capacités
  • la sécurité

Convivialité

Les exigences de convivialité peuvent comprendre les sous-catégories suivantes :

  • les facteurs humains
  • l' esthétique
  • la cohérence de l'interface utilisateur
  • l' aide en ligne et aide contextuelle
  • les assistants et les agents
  • la documentation utilisateur
  • le matériel d'apprentissage

Fiabilité

Les exigences de fiabilité à prendre en considération sont :

  • la fréquence et la gravité des défaillances
  • la capacité de reprise
  • la prévisibilité
  • l'exactitude
  • la moyenne des temps de bon fonctionnement (MTBF)

Performance

L'exigence de performance impose des conditions aux exigences fonctionnelles. Par exemple, pour une action donnée, des paramètres de performance peuvent être spécifiés pour :

  • la vitesse
  • l'efficience
  • la disponibilité
  • l'exactitude
  • le débit
  • le temps de réponse
  • le temps de récupération
  • l'utilisation des ressources

Prise en charge

Les exigences de prise en charge peuvent comprendre :

  • la testabilité
  • la capacité d'extension
  • la capacité d'adaptation
  • la facilité de maintenance
  • la compatibilité
  • la configurabilité
  • la facilité d'entretien
  • la capacité d'installation
  • la localisation (internationalisation)

Exigence de conception

Une exigence de conception, souvent appelée contrainte de conception, spécifie ou limite la conception d'un système.

Exigence d'implémentation

Une exigence d'implémentation spécifie ou limite la programmation ou la construction d'un système. Nous citerons les exemples suivants :

  • les normes exigées
  • les langues d'implémentation
  • les règles d'intégrité de la base de données
  • les limites de ressources
  • les environnements de fonctionnement

Exigence d'interface

Une exigence d'interface spécifie :

  • un élément externe avec lequel le système doit interagir
  • des contraintes de formats, de chronologie ou d'autres facteurs utilisés par de telles interactions

Exigence physique

Une exigence physique spécifie une caractéristique physique qu'un système doit traiter ; par exemple :

  • le support
  • la forme
  • la taille
  • le poids

Ce type d'exigence peut être utilisé pour représenter les exigences matérielles, telles que les configurations physiques de réseau exigées.