Cours de Génie Logiciel - PDF
Document Details
Uploaded by ProficientSamarium
Bouassida Nadia
Tags
Summary
Ce document présente un cours de génie logiciel, se concentrant sur l'ingénierie des besoins. Il aborde des sujets tels que les définitions, les types d'exigences, et les différentes méthodes de recueil et d'analyse des besoins. Les exemples, les techniques et le plan du cours sont détaillés.
Full Transcript
COURS DE GÉNIE LOGICIEL: 1 BOUASSIDA NADIA Chapitre 2: Les fondements de l’ingénierie des besoins Définition(s) et importance Types d'exigences Activités principales Définition L‘Ingénierie des besoins/exigences vise à apporter des solutions...
COURS DE GÉNIE LOGICIEL: 1 BOUASSIDA NADIA Chapitre 2: Les fondements de l’ingénierie des besoins Définition(s) et importance Types d'exigences Activités principales Définition L‘Ingénierie des besoins/exigences vise à apporter des solutions pour maîtriser l'ensemble des problèmes de découverte et d’analyse des exigences de toutes les parties prenantes d’un projet SI et de spécification, négociation, documentation des exigences à l’égard du SI qui en résultent. 3 Définition du terme “exigence” Les exigences (parfois appelés requis) décrivent la raison d’être d’un système Les exigences expriment les idées à être incarnées dans un système ou une application en développement Un ensemble d’exigences est un cahier des charges ou une spécification des exigences (requirements document). Une exigence est une propriété ou un service: Une propriété que le système doit satisfaire Un service que le système doit offrir Distinction entre propriété et service service fonction que l’utilisateur peut invoquer ou utiliser Exemple: propriété satisfaite par l’ensemble des services du système elle se rapporte en général à plusieurs services Exemple: Les parties prenantes dans le génie logiciel (stakeholders) Les parties prenantes d’un projet sont : les utilisateurs ; Ceux qui se servent du logiciel le client (ou maître d’ouvrage) ; il peut être utilisateur du produit ou non ; le demandeur (ou donneur d’ordre) qui commande le produit ; le directeur ou chef de projet ; les développeurs ; ceux qui maintiennent ; Rq: Le maître d’ouvrage est le client qui demande la réalisation. Le maître d’oeuvre est le fournisseur qui réalise l’ouvrage. Tous ces rôles peuvent être remplis par la même personne Plan Définition(s) et importance Types d'exigences Aperçu des activités principales Types d’exigences Un but est un objectif ou une préoccupation utilisé pour découvrir et évaluer des exigences fonctionnelles et non-fonctionnelles Un but n’est pas encore une exigence.. Une exigence fonctionnelle est une exigence définissant une fonction du système en développement Décrit le quoi, c.-à-d. ce que le système doit faire Une exigence non-fonctionnelle est une exigence qui caractérise une propriété ou une qualité désirée du système telle que sa performances, sa robustesse, sa convivialité, sa maintenabilité, etc. Une contrainte qui doit être prise en compte lors du développement 8 Types d’exigences non-fonctionnelles Non-functional requir ements Product Or ganizational External requir ements requir ements requirements Ef ficiency Reliability Portability Interoperability Ethical requir ements requir ements requirements requirements requirements Usability Delivery Implementation Standards Legislative requirements requirements requir ements requirements requirements Performance Space Privacy Safety requirements requir ements requirements requirements (Sommerville & Kontoya 1998) 9 Exigences mesurables Pro pe rty Me asure Speed Processed t ransact ions/second U ser/Event response t ime Screen refresh t ime Siz e K Byt es N umber of RAM chips Ease of use Training t ime N umber of hel p frames Rel iabil it y M ean t ime t o fail ure Probabil it y of unavail abil it y Rat e of fail ure occurrence A vail abil it y Robust ness Time t o rest art aft er fail ure Percent age of event s causing fail ure Probabil it y of dat a corrupt ion on fail ure Port abil it y Percent age of t arget dependent st at ement s N umber of t arget syst ems (Sommerville & Kontoya 1998) 10 Exemple d’exigence fonctionnelle mesurable Un but du système Le système doit être facile à utiliser par des utilisateurs expérimentés et devrait être organisé de façon à minimiser les erreurs d’utilisation. Exigences non-fonctionnelles vérifiables, inférées de ce but 11 Plan Définition(s) et importance Types d'exigences Aperçu des activités principales de l’IB Ingénierie des exigences Création de l’idée Définition des objectifs Recueil des exigences Analyse Spécification Gestion des exigences 13 Création des exigences Débute le processus Identification des besoins d’affaires Nouvelles opportunités de marché Nécessité Idée géniale Implique Création d’un plan d’affaires Étude de faisabilité préliminaire Définition préliminaire de la portée du projet 14 Définition des objectifs La définition des objectifs Cette phase permettra de préciser les enjeux, la vision, le périmètre et le contexte du produit. Elle se compose des activités suivantes Définir l’importance du produit et du projet Définir et clarifier les enjeux Tracer la vision du produit Définir le périmètre actuel et futur Définir le contexte : futurs utilisateurs du produit ; priorités : contraintes, Le recueil des exigences La majeure partie de l'effort dans le cycle du développement des systèmes n'entre pas dans le processus d'écriture d’exigences (vue la diversité des technologies existantes), mais dans le processus de découverte, en essayant de répondre à la question “qu'est ce que doit faire le système?” et non pas “comment faut-il le faire ?”. Résumé recueil des exigences L’interview : Malgré sa simplicité apparente, la technique d’interview est un art difficile demandant une certaine expérience et un réel savoir-faire. Les groupes de travail : Un groupe de travail est un ensemble de personnes se réunissant pour travailler sur une question précise : dans le cas présent, exprimer des besoins pour un logiciel à venir. La durée et la fréquence des réunions sont très variables. Le choix des participants, l’organisation matérielle et l’expérience de l’animateur du groupe sont des facteurs-clés de la réussite. L’observation sur le terrain : c’est un moyen efficace de connaître leurs besoins des utilisateurs. Elle peut prendre plusieurs formes, en fonction du type d’application et de l’environnement. L’analyse de la concurrence, un des meilleurs moyens pour une organisation de découvrir ses propres besoins. Le remue-méninges (brainstorming) est une méthode créative permettant faire jaillir des idées nouvelles. Les matrices de priorité : ce sont avant tout des outils de négociation. Elles permettent de trouver un compromis entre différents besoins, et entre les manières de les satisfaire, en fonction de critères. Résumé Le rôle de « l’ingénieur des besoins », consiste à utiliser une ou plusieurs techniques et outils pour faire ressortir les besoins, les expliciter et les formaliser. Les grandes étapes sont Recueil des besoins : techniques diverses : questionnaires interviews, observation directe, réunions, brainstorming… Analyse des besoins: les besoins « bruts » sont raffinés, en éliminant les ambiguïtés, incohérences, redondances et incomplétudes entre les besoins exprimés. Résumé Spécification des exigences. rassemble dans un document unique (le cahier des charges ) l’ensemble des exigences du système sous forme cohérente. Ce document tient compte des besoins exprimés par les utilisateurs ou d’autres parties prenantes, des objectifs, du contexte, des contraintes techniques. Il inclut les exigences fonctionnelles (ce que le système doit faire) ; les exigences non fonctionnelles (fiabilité, ergonomie, …) ; des contraintes techniques. Résumé Validation des besoins: Les exigences devront être vérifiées et validées par toutes les parties prenantes.., divers moyens existent pour valider les exigences : revues de documents, les maquettes et prototypes. La rédaction de scénarios de test, le plus en amont possible, est également un excellent moyen de validation. Négociation. Les besoins peuvent être très différents d’un utilisateur à l’autre ; également entre les utilisateurs et la maîtrise d’ouvrage ; Le travail sur les exigences est un travail de négociation. Gestion des changements Nécessairepour faire face aux changements dans les exigences causés par: Changements aux processus d’affaires Changements dans les technologies, le marché, les lois Meilleure compréhension du problème Gestion des exigences: gestion des changements et évolutions. Les changements dans les exigences, à tous les stades du projet, est un phénomène inévitable, même lorsque tout a été mis en œuvre pour capter, analyser et spécifier les exigences de manière exhaustive.. Les techniques qui permettent de limiter les risques sont multiples : établissement de liens de traçabilité entre exigences à différents niveaux; établissement de processus et de procédures strictes de gestion des changements ; mise en place d’un comité de gestion des changements, qui étudie de toute demande de changement; analyses d’impact, avant toute modification de Conseils pour l’écriture d’exigences Chaque exigence doit être une phrase complète. Chaque exigence doit contenir un sujet et un prédicat: Sujet: système discuté, ou utilisateur (attention…) Prédicat: condition, action, ou résultat attendu Utilisation cohérente du verbe: doit pour exigences obligatoires peut pour exigences optionnelle L’exigence doit contenir un critère de succès ou une autre indication mesurable de la qualité. L’exigence doit décrire ce qui doit être fait, et non comment le faire. 22 Exemple d’une bonne exigence utilisateur Définit le sujet Verbe doit ou peut “Le système doit permettre à l’utilisateur d’accéder au solde de son compte en moins de 5 secondes.” Définit un résultat positif Critère de qualité Cette exigence identifie un sujet spécifique ainsi qu’un résultat attendu dans un délai maximal donné et mesurable. Votre défi consiste à définir le sujet, le résultat attendu, et la mesure de succès pour chaque exigence! 23 Exemple de mauvaise exigence utilisateur Pas d’exigence sur l’utilisateur Pas de verbe doit ou peut “L’utilisateur Internet voit rapidement le solde de de son compte sur l’écran du portable.” Critère de qualité vague Comment plutôt que Quoi 24 Spécification: Erreurs fréquentes Bruit Souhait irréaliste La présence de texte qui Texte qui définit un fonction qui n’apporte aucune information ne peut pas être vérifiable. pertinente. Casse-tête Silence Répartition d’exigences au sein Une fonction qui n’est pas de plusieurs documents, avec discutée par aucun document. références croisées. Sur-spécification Terminologie incohérente Texte qui décrit une solution plutôt Inventer et puis changer la que le problème. terminologie Contradiction Texte qui décrit une fonction de plusieurs façons incompatibles. Ambiguïté Texte qui peut être interprété d’au moins deux façons. 25