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