Définition des Besoins

Transcription

Définition des Besoins
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
1
Génie Logiciel
(d'après A.-M. Hugues)
Définition des Besoins
Renaud Marlet
LaBRI / INRIA
http://www.labri.fr/~marlet
màj 22/03/2007
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Position dans le cycle de vie
●
Contexte :
–
●
un problème posé chez le client (objectifs, besoins)
Phase de définition des besoins :
–
formulation de ce problème (expression des besoins)
→ cahier des charges
(si cycle de vie en V : + plan de validation des besoins)
●
Phase suivante : analyse des besoins
–
sera la formulation d'une réponse à ce problème
→ dossier d'analyse (spécifications fonctionnelles, ...)
2
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Cycle de vie :
modèle en cascade (rappel)
Définition des besoins
Maintenance
Spécification
vérification
Planification
Conception
Implémentation
tests
Intégration
Qualification
Exploitation
Retrait
3
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
4
Cycle de vie :
modèle en V (rappel)
(Expression
des besoins)
(Validation
des besoins)
Spécifications
Qualification
Conception
globale
Tests
d'intégration
Conception
détaillée
Programmation
Tests
unitaires
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Importance du cahier des charges
●
Si erreur dans le cahier des charges
(besoin inadapté, oublié, mal exprimé, etc.)
alors coût énorme si découvert trop tard
●
Élément principal d'un appel d'offres
5
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Cahier des charges
●
Objectif :
–
●
description générale des services que devra rendre le
nouveau produit (ou extension à un produit existant)
Rédigé par :
–
équipe marketing du client (interne ou externe)
–
parfois en collaboration avec un / le fournisseur
(responsable du développement)
☛ Contenu uniquement technique
–
pas de considérations économiques
6
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Sources d'information pour la
réalisation du cahier des charges
●
Spécification d'objectifs
–
●
stratégie de l'entreprise
Interview des utilisateurs potentiels du futur produit
–
infos sur leur travail actuel (sans le nouveau produit)
●
–
●
7
questionnaire d'observation des utilisateurs dans leurs tâches
souhaits pour le futur environnement
Consultation d'experts
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
8
Méthodologie
Examiner la relation entre :
–
le produit et l'utilisateur
●
description du produit vu par l'utilisateur
→ modèle conceptuel (cf. analyse des besoins)
–
le produit et l'environnement
●
brève description du monde extérieur
●
placer aussi l'utilisateur dans cet environnement
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
9
Forme du cahier des charges
cf. cours « Documentation »
●
Séparation des concepts
= 1 concept par paragraphe
●
Numérotation des paragraphes
→ facilité de référence
→ traçabilité (dans les phases ultérieures)
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Contenu du cahier des charges (1)
●
Énoncé du problème à résoudre
–
●
Liste des services requis
–
●
bref (un ou quelques paragraphes)
fonctionnalités de base
Caractéristiques techniques du produit
–
limites, performances, nombre d'utilisateurs,
ressources, interfaces avec d'autres produits,
fiabilité, disponibilité, sécurité, compatibilité
logicielle / matérielle, ...
10
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Contenu du cahier des charges (2)
●
Facteurs de qualité
–
●
●
par ex., rapidité
Critères de qualité
–
mesurables avec les métriques appropriées
–
par ex. : temps de réponse < 2s
Priorités éventuelles
11
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Les besoins doivent être... (1)
●
●
Précis
–
problème bien délimité
–
caractéristiques techniques bien définies
–
formulation non ambiguë
Cohérents
–
entre eux
–
avec l'environnement technique
(avec l'environnement économique)
12
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Les besoins doivent être... (2)
●
Complets
–
●
Testables
–
●
par une métrique
Traçables
–
●
tenir compte de tous les aspects du problème
suivre leur devenir dans les phases ultérieures
Maintenables / flexibles
–
comment prendre en compte les évolutions futures?
–
décorrélation des besoins (autant que possible)
13
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
14
Ne pas confondre :
●
●
Buts (~ intentions)
–
par ex. : « système agréable à utiliser »
–
problème : c'est difficile à évaluer (agréable...)
Besoins (~ moyens)
–
par ex. : « commandes activables par menu ou clavier »
(On dit aussi « exigences » / anglais : « requirements »)
●
Contraintes (~ seuils / choses (im)possibles)
–
par ex. : « au moins 10 connections simultanées »
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
15
Principales difficultés
●
Trouver une formulation adéquate des besoins
●
Être précis, non ambigu
malgré l'usage d'un langage naturel (≠ mathématique)
●
Être complet (pas d'omission involontaire)
●
Être cohérent (pas d'inférence de fonctionnalités)
●
Évaluer la faisabilité des besoins
→ faire éventuellement une maquette, une simulation
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet
Un bon cahier des charges...
●
Bon niveau de généralité
●
Problème bien décrit
●
Critères de validation définis
●
Distinction entre besoins, buts et contraintes
●
Facilité à exprimer un changement ou ajout de
besoins
16