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.
Les exigences fonctionnelles peuvent comprendre :
-
des ensembles de fonctionnalités
-
des capacités
-
la sécurité
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
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)
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
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)
Une exigence de conception, souvent appelée contrainte de conception, spécifie ou limite la conception d'un
système.
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
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
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.
|