Académique Documents
Professionnel Documents
Culture Documents
(SOFTWARE ENGINEERING)
http://perso.univ-st-etienne.fr/jacquene/gl/
Francois.Jacquenet@univ-st-etienne.fr
Plan de cette partie de cours
2
Exigences utilisateur
Enoncé en langage naturel (plus des diagrammes) des
services que le système proposera et ses contraintes
opérationnelles.
Ecrites pour les clients
Exigences système
Un document structuré décrivant en détail les fonctions
du système et les contraintes.
Définit ce qui devrait être implémenté et peut être faire
partie du contrat entre le client et l’informaticien.
Exemple1
6
Serveur SG-PSP
Base de Données
Patient
Principales caractéristiques du SG-PSP
10
Exigence utilisateur
Le SG-PSP doit générer tous les mois des rapports montrant le coût des
médicaments prescrits par chaque dispensaire durant ce mois
Exigences système
Le dernier jour de chaque mois le système doit générer une liste des médicaments
prescrits, leur coûts et les dispensaires qui les ont prescrit
Le système doit autmatiquement générer le rapport à imprimer à 17h30 du dernier
jour travaillé du mois
Un rapport doit être généré pour chaque dispensaire et doit lister les noms des
médicaments, le nombre total de perscriptions, le nombre de doses préscrites et le
coût total des médicaments prescrits
Si des médicaments sont disponibles avec différents dosages, des rapports
différents doivent être générés pour chaque dosage
L’accès aux rapports doit être limité aux personnels autorisés listés dans une liste de
contrôle d’accès gérée par la direction
Exigences utilisateur et système (SG-PSP)
16
Managers client
Ingénieurs client
Exigences Utilisateurs finaux
Utilisateur Architectes logiciel
Managers fournisseur
Ingénieurs clients
Exigences Utilisateurs finaux
Système Architectes logiciel
Développeurs logiciel
Exigences fonctionnelles et non fonctionnelles
17
Exigences fonctionnelles
Enoncé des services que le système doit fournir
Comment le système devrait réagir aux diverses entrées
Comment le système devrait se comporter dans les diverses situations
Peut également énoncer ce que le système ne devrait pas faire
Exigences non fonctionnelles
Contraintes sur les services et fonctions offertes par le système
Contraintes de temps
Contraintes sur le processus de développement
Utilisation de standards
S’applique souvent au système global plutôt qu’à des fonctions
particulières
Exigences de domaine
Contraintes sur le système dans son contexte d’utilisation
Exigences fonctionnelles
18
Exigences
Non fonctionnelles
Exigences
Exigences Exigences Exigences
d’utilisabilité
environnementales d’exécution de développement
Exigences Exigences
Exigences Exigences
de performance d’espace
comptables sécurité
Classification des exigences non fonctionnelles
25
Exigences produit
Exigences qui spécifient que le produit à concevoir doit se comporter
d’une façon particulière (vitesse, fiabilité, etc)
Exigences organisationnelles
Exigences qui résultent de politiques organisationnelles, de procédures
(standards, etc)
Exigences externes
Exigences provenants de facteurs externes au système et à son processus
de développement (lois, éthique, etc)
Exemples d’exigences non
fonctionnelles pour le SG-PSP
26
Exigences produit
Le SG-PSP doit être accessible à tous les dispensaires durant les
horaires de travail (lundi au vendredi, 8h30 à 18h). Le temps d’arrêt du
système durant les horaires de travail ne doit pas dépasser 5 secondes
par jour.
Exigences organisationnelles
Les utilisateurs du SG-PSP doivent s’authentifier en utilisant leur carte
d’identité médicale
Exigences externes
Le système doit implémenter le dispositif de protection de la vie
privée tel que décrit dans HSteNord-03-2010-priv
Différence entre objectifs et exigences
27
Propriété Mesure
Vitesse Instructions / seconde
Temps de réponse utilisateur/événement
Temps de rafraichissement écran
Taille Mbytes
Compréhensibilité
Lesexigences sont exprimées dans le langage du
domaine d’application
Cela n’est en général pas compris par l’informaticien
développant le système
Information implicite
Les spécialistes d’un domaine comprennent tellement
bien ce domaine qu’ils n’ont pas idée de rendre les
exigences de domaine explicites
Le document de spécification des exigences
33
Utilisent le document de
spécification des exigences pour
Managers planifier une négociation pour
le système et pour planifier le
processus de développement
Section Description
Préface Définit les lecteurs attendus du document et décrit l’historique de la version
Section Description
Spécification des Décrit les exigences fonctionnelles et non fonctionnelles en détail. Les interfaces
exigences système vers les autres systèmes peuvent être décrits.
Modèles du Modèles graphiques du système montrant les relations entre les composants du
système système et le système et son environnement. Exemple : use case, diagrammes
de classe, etc
Evolution du Décrit les hypothèses sur lesquelles le système est fondé et toute évolution qui
système peut être anticipée sur l’évolution du matériel, les changements des besoins
utilisateurs, etc.
Utile pour les concepteurs pour les aider à éviter des décisions de conception qui
contraindraient des changements futures du système
Annexes Contient des informations spécifiques à l’application développée, par exemple des
description de la base de données (organisation logique des données), du
matériel (configuration minimale et optimale du matériel).
Index Divers indexes au document peuvent être insérés. Index alphabétic, index des
diagrammes, index des fonctions, etc
Le standard IEEE 830-1998
39
1. Introduction
1.1 Objet (du document)
1.2 Portée (du projet)
1.3 Définitions, acronymes, abréviations
1.4 Références
1.5 Vue d’ensemble (plan de la suite du document)
2. Description générale
2.1 Environnement
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
3. Exigences spécifiques
4. Annexes
5. Index
Le standard IEEE 830-1998
section 1 - Introduction
40
1. Introduction
1.1 Objet
1.2 Portée
1.3 Définitions, acronymes, abréviations
1.4 Références
1.5 Vue d’ensemble
2. Description générale
2.1 Environnement
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
3. Exigences spécifiques
4. Annexes
5. Index
Le standard IEEE 830-1998
section 1 - Introduction
41
1. Introduction
1.1 Objet
Formuler l’objet du document
Préciser les destinataires du document
1.2 Portée
1.3 Définitions, acronymes, abréviations
1.4 Références
1.5 Vue d’ensemble
Le standard IEEE 830-1998
section 1 - Introduction
42
1. Introduction
1.1 Objet
1.2 Portée
Identifier le logiciel à développer par un nom
Expliquer ce que le logiciel fera et, si besoin, ne fera pas
Décrire l’application du logiciel spécifié (incluant avantages,
objectifs)
1.3 Définitions, acronymes, abréviations
1.4 Références
1.5 Vue d’ensemble
Le standard IEEE 830-1998
section 1 - Introduction
43
1. Introduction
1.1 Objet
1.2 Portée
1.3 Définitions, acronymes, abréviations
Définition de tous les termes qui seront utilisés. Cela peut se
faire par référence à d’autres documents
1.4 Références
1.5 Vue d’ensemble
Le standard IEEE 830-1998
section 1 - Introduction
44
1. Introduction
1.1 Objet
1.2 Portée
1.3 Définitions, acronymes, abréviations
1.4 Références
Liste complète des références utilisées dans le document
Titre, numéro de rapport), auteurs, date, éditeur
Source où les documents peuvent être obtenus
1.5 Vue d’ensemble
Le standard IEEE 830-1998
section 1 - Introduction
45
1. Introduction
1.1 Objet
1.2 Portée
1.3 Définitions, acronymes, abréviations
1.4 Références
1.5 Vue d’ensemble
Décrit le reste du document et son organisation
Le standard IEEE 830-1998
section 2 – Description générale
46
1. Introduction
1.1 Objet
1.2 Portée
1.3 Définitions, acronymes, abréviations
1.4 Références
1.5 Vue d’ensemble
2. Description générale
2.1 Environnement
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
3. Exigences spécifiques
4. Annexes
5. Index
Le standard IEEE 830-1998
section 2 – Description générale
47
2. Description générale
2.1 Environnement
Situer le produit dans le contexte des autres produits reliés
Si produit indépendant, le mentionner
Sinon :
Enoncer ici les exigences de ce système par rapport aux fonctions du logiciel
Décrire les interfaces entre le système et le logiciel
Peut être utile d’inclure un schéma fonctionnel montrant les principales composantes
du système et leurs relations, de même que les interfaces externes.
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
Le standard IEEE 830-1998
section 2 – Description générale
48
2. Description générale
2.1 Environnement
Cette section devrait également indiquer à quelles contraintes doit se plier le logiciel,
notamment :
Les interfaces avec le système
Les interfaces avec les utilisateurs
Les interfaces avec le matériel
Les interfaces avec les logiciels
Les interfaces de communication
Les contraintes de mémoire
Les activités
Les exigences d’adaptation aux sites
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
Le standard IEEE 830-1998
section 2 – Description générale
49
2. Description générale
2.1 Environnement
2.2 Fonctions
Donner un résumé des fonctions principales que le logiciel doit exécuter
Exemple : spécification d’un programme de comptabilité
maintenance des comptes des clients
relevés de compte
préparation des factures
sans mentionner les très nombreux détails qu’exige chacune de ses fonctions.
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
Le standard IEEE 830-1998
section 2 – Description générale
50
2. Description générale
2.1 Environnement
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
Caractéristiques générales des utilisateurs du produit :
niveau d’instruction
expérience
connaissances techniques
2.4 Contraintes
2.5 Hypothèses et dépendances
Le standard IEEE 830-1998
section 2 – Description générale
51
2. Description générale
2.1 Environnement
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
Décrit de manière générale tout autre élément qui risque de limiter les options offertes au
concepteur, notamment :
Politiques réglementaires
Limites imposées par le matériel (p. ex. : exigences relatives à la synchronisation du signal)
Interfaces avec les autres applications
Exploitation en parallèle
Fonctions de vérification
Fonctions de contrôle
Exigences relatives aux langages évolués
Protocoles d’échange de signaux (par ex., XON-XOFF, ACK-NACK)
Exigences de fiabilité
Niveau d’importance de l’application
Considérations relatives à la sécurité et à la sûreté
2.5 Hypothèses et dépendances
Le standard IEEE 830-1998
section 2 – Description générale
52
2. Description générale
2.1 Environnement
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
Enumère tous les facteurs qui influent sur les exigences énoncées dans la spécification. Ne
vise pas les contraintes de conception, mais les modifications éventuelles à ces
dernières, qui pourraient se répercuter sur les exigences.
Exemple, on pourrait poser comme hypothèse que le système d’exploitation sera disponible
pour le matériel que l’on choisit pour faire fonctionner le logiciel. S’il n’était pas
disponible, il faudrait modifier la spécification en conséquence.
Le standard IEEE 830-1998
section 3 – Exigences spécifiques
53
1. Introduction
1.1 Objet
1.2 Portée
1.3 Définitions, acronymes, abréviations
1.4 Références
1.5 Vue d’ensemble
2. Description générale
2.1 Environnement
2.2 Fonctions
2.3 Caractéristiques des utilisateurs
2.4 Contraintes
2.5 Hypothèses et dépendances
3. Exigences spécifiques
4. Annexes
5. Index
Le standard IEEE 830-1998
section 3 – Exigences spécifiques
54
3. Exigences spécifiques
3.1 Exigences des interfaces externes
3.2 Exigences fonctionnelles
3.3 Exigences de performance
3.4 Exigences logiques relatives aux bases de données
3.5 Contraintes de conception
3.6 Attributs
3.6 Attributs
Disponibilité : facteurs susceptibles de garantir le niveau de disponibilité spécifié pour le système dans son ensemble
point de contrôle
récupération
redémarrage
Sécurité : facteurs susceptibles de protéger le logiciel d’interventions accidentelles ou malveillantes
L’utilisation de certaines techniques cryptographiques
La conservation certains journaux de bord ou certains ensembles de données historiques
L’assignation de certaines fonctions à des modules distincts
La restriction des communications entre certaines parties du programme
La vérification de l’intégrité des données de certaines variables clés
Maintenabilité : attributs du logiciel liés à la facilité de maintenance
Modularité
Interfaces
Complexité
…
Transférabilité : attributs du logiciel liés à sa transférabilité à d’autres ordinateurs hôtes et/ou systèmes d’exploitation
% de composants dont le code est lié à l’ordinateur hôte
% du code lié à l’ordinateur hôte
utilisation d’un langage dont la transférabilité est éprouvée
utilisation d’un compilateur ou d’un sous-ensemble de langage en particulier
utilisation d’un système d’exploitation en particulier
Le standard IEEE 830-1998
61
Complète
Cohérente
Modifiable
Traçable
Spécification des exigences
62
Notation Description
Langage naturel Les exigences sont écrites sous forme de phrases ordonnées en langage
naturel. Chaque phrase devrait exprimer une exigence
Langage naturel Les exigences sont écrites avec un sous ensemble du langage naturel sous
structuré une forme standard, selon un modèle. Chaque champ fourni une information
sur un aspect de l’exigence
Langages de Utilise un langage de type langage de programmation mais d’un niveau plus
conception abstrait permettant de définir un modèle opérationnel du système. Cette
approche n’est plus beaucoup utilisée
Spécifications Basés sur des concepts mathématiques tels que les machines à états finis,
mathématiques les ensembles. Les clients ont en général de grosses difficultés de
compréhension envers ce type de formalisation. Ils ont du mal à vérifier
qu’elles représentent ce qu’ils désirent et sont peu enclin à les accepter
comme la base d’un contrat.
Exigences vs Conception
En principe
Exigence = QUOI réaliser
Conception = COMMENT le réaliser
Intuitif
Universel
Manque de clareté
Laprécision est difficile à atteindre sans rendre le
document très difficile à lire
Confusion entre les exigences
Les exigences fonctionnelles et non fonctionnelles ont
tendance à être mélangées
Amalgame entre exigences
Ilest souvent difficile de n’exprimer qu’UNE exigence.
Bien souvent plusieurs exigences sont exprimées dans
une seule phrase
Exemple d’exigence pour le logiciel de
pilotage de pompe à insuline
68
3.2 Le système doit mesurer le sucre dans le sang et déclencher l’injection d’insuline, si
besoin, toutes les 10 minutes. (Les changements du taux de sucre dans le sang sont
relativement lent et donc une mesure plus fréquente est inutile ; les mesures moins
fréquentes pourraient par contre conduire à des niveaux de sucre inutilement hauts)
3.6 Le système doit lancer une procédure automatique pour se tester lui même toutes
les minutes. Les conditions à tester et les actions associées sont définies à la table X.
(Une procédure de test peut découvrir des problèmes matériel et logiciel et alerter
l’utilisateur du fait que certaines opérations pourraient être impossible)
Spécifications structurées
69
Définition de la fonction
Description des entrées et d’où elles proviennent
Description des sorties et où elles vont
Informations nécessaires pour le traitement et autres
entités utilisées
Description de l’action à réaliser
Pré et post conditions (éventuellement)
Effets de bords (s’il y en a) de la fonction
Exemple de spécification structurée pour la
pompe à insuline
71
Condition Action
Elicitation = Découverte
Découverte
Interaction avec les parties prenantes
Classification et organisation
Regrouper les exigences et les organiser en clusters cohérents
Définition des priorités et négociation
Définition des priorités et résolution des conflits entre les exigences
Spécification des exigences
Les exigences sont documentées et servent d’entrée au prochain tour de
la spirale
Parties prenantes dans le cadre du SG-PSP
82
Fonctionnement anormal :
l’enregistrement pour le patient n’existe pas ou ne peut pas être trouvé.
Les symptômes du patient ou le traitement n’ont pas été saisies dans le menu. L’infirmière
devrait alors choisir l’option “autre” et entrer du texte libre.
Le patient ne peut/veut pas fournir ses données médicales. L’infirmière devrait entrer du
texte libre indiquant ce fait. Le système devrait imprimer un formulaire précisant que
l’absence d’information peut conduire au fait que le traitement sera limité. Ce document
doit être signé par le patient
Autres activités :
Les enregistrements peuvent être consultés mais non édités par les autres membres de
l’équipe
Etat du système à la fin de l’utilisation :
L’utilisateur est connecté. L’enregistrement du patient est ajouté à la base, une trace est
ajouté montrant l’heure de début, de fin, et l’infirmière impliquée dans l’action
Cas d’utilisation (use cases)
89
Revue d’exigences
Analyse manuelle, systématique, en groupe, des
exigences
Prototypage
Par utilisation d’un modèle exécutable du système pour
contrôler les exigences
Génération de cas de tests
Développer des tests pour chaque exigence
Revue d’exigences
94
Vérifiabilité
L’exigence est-elle testable de façon réaliste ?
Compréhensibilité
L’exigence est-elle correctement comprise ?
Traçabilité
L’origine de l’exigence est-elle clairement établie ?
Adaptabilité
L’exigencepeut-elle être changée sans avoir un impact
trop grand sur les autres exigences ?
Gestion des exigences
96
Problème Exigence
identifié Analyse du problème Analyse du Implémentation révisée
et spécification changement et du
du changement de son coût changement
102