Vous êtes sur la page 1sur 4

Introduction

• L ’une des étapes les plus importantes


Analyse des besoins • déterminante pour la suite
• sert à la définition des aspects contractuels
Spécification des exigences • L ’une des étapes les plus difficiles
• intervenants multiples : client, utilisateurs,
développeurs…
• le problème n’est pas encore formalisé
• Règle d’or à respecter : Les informaticiens sont
Cours issu du cours de J.M. Favre IMAG 02
aux services du client, pas l’inverse

O. Boissier, SMA/SIMMO/ENS Mines Saint-Etienne, Olivier.Boissier@emse.fr, Septembre 2003


2

Rôle Exigences (1)


• Identifier les différents intervenants : client(s), utilisateurs,
• Selon IEEE 610.12, une exigence est :
maître d’œuvre, développeurs, ...
• Une condition ou une capacité nécessaire à un utilisateur pour résoudre un
• Identifier le rôle de chacun, éventuellement leur associer des problème ou atteindre un objectif
priorités • Une condition ou une capacité que doit posséder un système afin de
satisfaire aux termes d'un contrat, d’une norme ou d’une spécification
• Identifie les services que le système devrait fournir et définit formellement imposée.
les contraintes sur le système. • La représentation documentée de cette condition ou capacité.
• Réunit toute l'information du domaine disponible pour les • Selon IEEE 830, une spécification d’exigences comprend :
membres du projet. • Les fonctionnalités : services et fonctions que le système doit fournir.
• Les interfaces externes : identification des interactions avec les utilisateurs
• Établit une base contractuelle sur laquelle le client et et les autres systèmes avec lesquels le nouveau système doit s'intégrer.
l'organisation du projet s'appuient lors des négociations. • La performance : contraintes d'opération du système en disponibilité et en
• Permet l'estimation des coûts et des échéanciers temps réponse.
• Les attributs du système : caractéristiques intrinsèques telles que la
• Procure les critères de validation et vérification portabilité, l'exactitude, la maintenabilité, la sécurité, etc.
• Facilite le transfert des connaissances et la gestion des • Les contraintes de conception: contraintes sur la façon de développer le
système.
configurations
3 4
• Sert de base aux améliorations futures.
Exigences non
Exigences (2)
fonctionnelles
• Exigences qui ne concernent pas spécifiquement le
• Exigences fonctionnelles comportement du système.
• Elles identifient des contraintes internes et externes du système .
• à quoi sert le système • Elles doivent avoir des valeurs quantitatives.
• ce que doit faire le système, les fonctions utiles • Types d’exigences non fonctionnelles
• Utilisabilité : Capacité pour un utilisateur d’exécuter une tâche dans
• Exigences non fonctionnelles un temps donné après une formation d’une durée déterminée.
• performance, sûreté, confidentialité, portabilité, • Performance : Temps d’attente < 10s.
• Fiabilité : Système critique
etc. • Disponibilité : 24/7
• chercher des critères mesurables • Sécurité : Accès personnalisés, connexions sécurisées
• Maintenabilité : Modularité, commentaires, complexité, interfaces
• Portabilité : Utilisable avec plusieurs systèmes d’exploitation
5 6

Etapes : Etapes :
vue d’ensemble Capture des besoins (1)
• Objectifs : comprendre le domaine, comprendre le
• Capture des besoins problème
• collecte des informations : interviews, lecture de
documentation
Æ Collecter le maximum d ’informations
• Lecture des documents fournis, Consulter les
• chercher à comprendre : (1) le domaine (2) le problème
documents pertinents au système
• Définition des besoins • Interviews du client, des utilisateurs, …discuter avec le
• restitution dans un langage compréhensible par le client client ou l’utilisateur afin de bâtir une compréhension
• identification, structuration, définition d'un dictionnaire commune des exigences du système.
• Spécification des besoins • Réunions de travail
• spécification détaillée des besoins, plus formel • Collecter des exemples pour valider
• utile pour le client, mais aussi pour les développeurs • Étudier les systèmes existants le cas échéant,
• observer l’exécution des tâches des utilisateurs que le
7 système doit soutenir. 8
Etapes : Etapes :
Capture des besoins (2) Définition des besoins (1)
• Restituer les informations sous forme synthétique
• Scénarios et cas d’utilisation :
Æ Réagir et être actif ! • Identifier une séquence d'actions effectuées par le système qui
• Établir la liste des documents consultés, les classer résultent en un résultat observable,
• Utiliser et simuler l'utilisation du système afin d’expliciter et de
• Élaborer une liste de questions précises clarifier Exigences
• les numéroter, les dater, …
• faire référence aux documents concernés
• Ce qui n’est pas écrit n’existe pas !
• Écrire un ou plusieurs documents et les diffuser • Préciser les besoins, pas la solution
• Provoquer les réunions et les mener • Préciser ce que doit faire le système
• établir l’ordre du jour • et aussi ce qu’il n’est pas sensé faire.
• prendre des notes • mais surtout pas comment il doit le faire.
• faire systématiquement des comptes rendus écrits • Etablir des priorités
9 • Arriver à un consensus avec le client 10

Etapes : Etapes :
Définition des besoins (2) Définition des besoins (3)
• Les besoins doivent être compris par tous • Définir un dictionnaire
• utiliser la langue naturelle • Indispensable d'avoir un langage commun
• Faire des phrases courtes, • définition d'un vocabulaire précis
• Eviter le conditionnel, le futur, les termes ambigus ou subjectifs, ... • client, équipe de développement, utilisateurs
• Parler en termes de rôles plutôt que de personnes • Utilisation dans les documents et aussi le logiciel !
• Numéroter les paragraphes si nécessaire, Utilisation de référenc es • analyse des besoins (clients)
précises • base pour le développement du logiciel (développeurs)
• Elaborer un dictionnaire • base pour l'interface du logiciel (utilisateurs)
• Technique simple mais efficace !
• utiliser des schémas si nécessaire
• Intérêt :
• tout schéma doit être commenté et comporter une • Outil de dialogue, Informel, facile à réaliser, facile à faire évoluer
légende • Permet de décrire la terminologie du domaine
• réutilisable dans un autre projet
• Structurer le document de définition • Permet de détecter les ambiguïtés
• suivre un plan standard si disponible • Montre l'essentiel du domaine d'application
• Permet d'assurer la traçabilité
• numéroter les sections, références, index, … 11 12
Etapes : Etapes :
Définition des besoins (4) Définition des besoins (5)
Notion Définition Nom. Info. Type entité

• Conseils pour la construction du dictionnaire : Action de piloter un avion en


Pilotage enchaînant des manoeuvres Pilotage paquetage
• Partir de la description du problème élémentaires
• Repérer les groupes nominaux -> notion Organe d’interaction entre Classe
Instrument Instrument
• Repérer les groupes verbaux -> action ou notion le pilote et l’avion abstraite

• Eliminer les synonymes Manche à Intrument permettant au MancheABa


Classe
balai pilote de diriger l’avion lai
• Eliminer les termes inutiles
Action Définition Nom info. Type entité
• Donner des définitions simples
Action permettant
• Permet de se concentrer sur l'essentiel
Augmenter d’injecter du carburant
IncrGaz opération
• Doit être complété et mis à jour ! les gaz pour augmenter la vitesse
de l’avion
13 14

Etapes :
Spécification des besoins

• Interface entre le client et les développeurs


• doit être compris par les deux
• définit dans le détail ce qui doit être réalisé
• doit être précis car contractuel
• Utilisation de techniques semi-formelles
• e.g. diagrammes de cas d'utilisation UML
• e.g. diagrammes de classes UML

15