{\fonttbl{\f0\froman\fprq2\fcharset128 Times New Roman;}{\f1\froman\fprq2\
fcharset128 Times New Roman;}{\f2\fswiss\fprq2\fcharset128 Arial;}{\f3\fnil\fprq2\ fcharset128 Arial;}{\f4\fnil\fprq2\fcharset128 MS Mincho;}{\f5\fnil\fprq2\ fcharset128 Tahoma;}{\f6\fnil\fprq0\fcharset128 Tahoma;}} {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\ fcs1 \af25\afs24\alang1033 \ltrch\fcs0 \fs24\lang1033\langfe255\cgrid\langnp1033\ langfenp255 \snext0 Normal;} {\s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel0\ rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs32\alang1033 \ltrch\fcs0 \b\fs32\lang1033\ langfe255\loch\f1\hich\af1\dbch\af26\cgrid\langnp1033\langfenp255 \sbasedon15 \ snext16 \slink21 heading 1;} {\s2\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel1\ rin0\lin0\itap0 \rtlch\fcs1 \ab\ai\af0\afs28\alang1033 \ltrch\fcs0 \b\i\fs28\ lang1033\langfe255\loch\f1\hich\af1\dbch\af26\cgrid\langnp1033\langfenp255 \ sbasedon15 \snext16 \slink22 heading 2;} {\s3\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel2\ rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs28\alang1033 \ltrch\fcs0 \b\fs28\lang1033\ langfe255\loch\f1\hich\af1\dbch\af26\cgrid\langnp1033\langfenp255 \sbasedon15 \ snext16 \slink23 heading 3;} {\s4\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel3\ rin0\lin0\itap0 \rtlch\fcs1 \ab\ai\af0\afs23\alang1033 \ltrch\fcs0\b\i\fs23\ lang1033\langfe255\loch\f1\hich\af1\dbch\af26\cgrid\langnp1033\langfenp255 \ sbasedon15 \snext16 \slink24 heading 4;} {\s5\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel4\ rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs23\alang1033 \ltrch\fcs0 \b\fs23\lang1033\ langfe255\loch\f1\hich\af1\dbch\af26\cgrid\langnp1033\langfenp255 \sbasedon15 \ snext16 \slink25 heading 5;} {\s6\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\outlinelevel5\ rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs21\alang1033 \ltrch\fcs0 \b\fs21\lang1033\ langfe255\loch\f1\hich\af1\dbch\af26\cgrid\langnp1033\langfenp255 \sbasedon15 \ snext16 \slink26 heading 6;}} { ^information Guide d'\u233?laboration du cahier des charges EYROLLES\par\pard\ plain\hyphpar} { Pr\u233?Face D'apr\u232?s le Standish Group, les projets informatiques connaissent un taux d'\u233?chec qui ne saurait \u234?tre tol\u233?r\u233? dans aucun autre domaine de l'ing\u233?nierie : de ses enqu\u234?tes, on peut retenir qu'en gros 25 % des projets \u233?chouent. 50 % aboutissent avec un d\u233?lai et un co\u251?t tr\u232?s sup\u233?rieurs \u224? la pr\u233?vision, 25 % seulement sont convenablement r\u233?ussis. En cas d'\u233?chec, on entend souvent dire \u171? c'est la faute de l'informatique \u187?. mais en fait, il convient de dire que, par principe, c'est toujours la faute du m\u233?tier que le produit informatique devait outiller (ma\u238?trise d'ouvrage. MOA). Certes, il arrive que le r\u233?alisateur du produit (ma\u238?trise d'oeuvre. MOE) soit d\u233?faillant, mais alors la MOA aurait d\u251? prendre en temps utile des mesures pour redresser la situation. Souvent d'ailleurs, le seul tort de la MOE sera d'avoir accept\u233? un contrat impossible, car l'ing\u233?nierie des besoins a \u233?t\u233? d\u233?faillante et le projet \u233?tait donc condamn\u233? d\u232?s le d\u233?part : la MOA s'est lanc\u233?e dans le projet sans savoir ce qu'elle voulait faire, sans avoir exprim\ u233? ses priorit\u233?s ni lev\u233? les ambigu\u239?t\u233?s du vocabulaire, puis par la suite elle a \u233?t\u233? versatile, etc. Une expression de besoin bien faite garantit le succ\u232?s ou du moins (car on ne peut jamais se pr\u233?munir contre toutes les surprises) une probabilit\u233? de succ\u232?s de l'ordre de 90 % : on mesure l'enjeu si l'on compare ce taux aux donn\u233?es du Standish Group. lean-Pierre Meinadier est l'un des ma\u238?tres fran\u231?ais les plus respect\ u233?s en ing\u233?nierie des syst\u232?mes industriels1. Invit\u233? \u224? participer \u224? un projet de syst\u232?me d'information (SI), il fut imm\u233? diatement cong\u233?di\u233? pour avoir pos\u233? une question jug\u233?e incongrue : \u171? qui est responsable ? \u187?. Il a alors compris que contrairement \u224? un projet d'automobile ou d'avion, dont les enjeux techniques sont mesurables et < froids \u187?. un SI est \u171? chaud \u187? : chaque projet comporte implicitement de tels enjeux \u171? politiques \u187? de l\u233?gitimit\u233?, de d\u233?coupage des pouvoirs et de responsabilit\u233?, que l'entreprise pr\u233?f\u232?re souvent laisser implicites les donn\u233?es n\u233?cessaires \u224? son succ\u232?s. C'est cette \u171? chaleur \u187? du SI qui explique le taux d'\u233?chec extravagant des projets. Les acteurs ne manquent ni de bon sens ni d'intelligence, mais ils les mettent au service de priorit\u233?s qui ne sont pas celles de l'efficacit\u233? de la production de l'entreprise ni de la qualit\u233? de ses produits - objectifs qui, en revanche, sont pr\u233?cis\u233?ment ceux que sert un SI. 1. Jean-Pierre Meinadier, Ing\u233?nierie et int\u233?gration des syst\u232?mes, Herm\u232?s, 1998.\par\pard\plain\hyphpar} { ion des besoins pour le syst\u232?me d'information L'enjeu de l'ing\u233?nierie des besoins n'est donc pas purement technique : il s'agit de promouvoir des priorit\ u233?s (efficacit\u233?, qualit\u233?) qui sans doute devraient \u234?tre celles de toute entreprise, mais \u224? qui s'opposent d'autres formulations de sa mission (produire < de l'argent \u187? ou \u171? de la valeur pour l'actionnaire \u187?) ainsi que les int\u233?r\u234?ts des corporations professionnelles. Pour pouvoir agir dans les sables mouvants de la sociologie et de l'id\u233?ologie, il faut des id\u233?es claires et des principes fermes : c'est ce que nous propose ici Yves Constantinidis. On peut en effet d\u233?samorcer les pi\u232?ges de la \u171? politique \u187? si l'on sait s'y prendre \u224? temps, dans l'\u233?tape pr\u233? liminaire et relativement < froide \u187? de l'expression de besoins, si l'on se donne la peine d'\u233?liminer les d\u233?fauts du vocabulaire et les malentendus qu'ils provoquent, si l'on s'est enquis de la pertinence des besoins et priorit\ u233?s, si l'on a obtenu les validations qui. \u233?tant authentiques, scellent l'accord ult\u233?rieur des dirigeants et leur soutien au projet. Le pivot de cette affaire, c'est la personne morale que Constantinidis nomme \u171? assistance \u224? ma\u238?trise d'ouvrage \u187? et que je pr\u233?f\u232?re nommer < ma\u238?trise d'ouvrage d\u233?l\u233?gu\u233?e \u187? (MOAD), car elle a re\u231?u du directeur, strat\u232?ge et responsable supr\u234?me de la MOA qu'il engage par sa signature, d\u233?l\u233?gation du soin de l'expertise en SI. La MOAD a trois interlocuteurs : les strat\u232?ges (celui du m\u233?tier et le DG. strat\u232?ge de l'entreprise), les utilisateurs (qui se subdivisent en plusieurs cat\u233?gories) et l'informatique (c'est-\u224?-dire la MOE qui peut \u234?tre, selon les cas. soit la DSI de l'entreprise, soit un fournisseur). Elle doit savoir parler les langages de ces divers interlocuteurs et assurer entre eux la fonction d'interpr\u232?te. La MOAD est donc une vraie sp\u233?cialit\u233?, et celui qui a exerc\u233? cette fonction pendant quelques ann\u233?es acquiert une connaissance approfondie de l'entreprise et du m\u233?tier pour lesquels il travaille, y compris dans leurs dimensions < politiques \u187? et symboliques qu'il sait g\u233?rer avec souplesse et discr\u233?tion. Malheureusement, les entreprises n'ont pas encore toutes compris la n\u233?cessit\u233? de cette fonction, ni per\u231?u les comp\u233? tences qu'elle exige : sa d\u233?nomination change d'une entreprise \u224? l'autre, et cela montre bien la perplexit\u233? des DRH. L'outil fondamental de la MOAD est un mod\u232?le, une mise en forme qui concr\u233?tise l'expression de besoin en sch\u233?matisant le m\u233?tier tel qu'il fonctionnera une fois outill\u233? par le SI. Tout comme une base de donn\u233?es, ce mod\u232?le est un \u234?tre que personne ne peut voir en entier, mais qui pr\u233?sente \u224? chaque cat\u233? gorie d'acteurs la vue qui lui convient : \u224? l'informaticien, le diagramme de classe, \u233?tape initiale de la programmation dans un langage \u224? objets (et quelques autres diagrammes) : au strat\u232?ge, le diagramme d'activit\u233? qui d\ u233?crit le processus. Pour les utilisateurs, la vue pourra \u234?tre audiovisuelle : en pla\u231?ant sur l'intranet un dessin anim\u233? compl\u233?t\ u233? par une documentation et un outil d'autoformation, on aide chacun \u224? percevoir la finalit\u233? du syst\u232?me et l'\u233?tendue de sa responsabilit\ u233? personnelle,\par\pard\plain\hyphpar} { Pr\u233? Face on \u233?lucide le processus de production dans lequel il intervient. Le cahier des charges est, sur ce mod\u232?le, la vue qui pr\u233?cise et r\u233? capitule toutes les exigences auxquelles le produit doit satisfaire, qu'elles soient propres au m\u233?tier ou \u224? la plate-forme technique de l'informatique. Ce document peut prendre une forme contractuelle, mais mieux vaut le concevoir comme une \u233?tape n\u233?cessaire de la coop\u233?ration entre la MOE et la MOAD. Pour prendre une m\u233?taphore dans la vie courante, supposons que vous fassiez construire une maison. Vous avez \u233?tabli son plan avec l'aide d'un architecte et dites : \u171? dans cette pi\u232?ce, il faudra quatre prises de courant et une applique command\u233?e par un interrupteur \u187?. Ce sont l\u224? des sp\u233?cifications g\u233?n\u233?rales, produites par la MOAD avec le conseil de la MOE et valid\u233?es par le strat\u232?ge. Puis la MOE demande \u224? la MOA de dire o\u249? installer les prises, les interrupteurs et l'applique. Marquer ces emplacements sur le plan, c'est \u233?tablir les sp\u233?cifications d\u233?taill\ u233?es, produites par la MOE et valid\u233?es par la MOAD. Enfin, la MOE fera le plan de c\u226?blage qui pr\u233?cise le parcours des goulottes et saign\u233?es : ce sont des sp\u233?cifications techniques qui n'int\u233?ressent pas la MOA. mais qui sont indispensables pour passer \u224? la r\u233?alisation. Il importe de respecter cette progression : comme le dit Donald Knuth. \u171? l'optimisation pr\ u233?matur\u233?e est la racine de tous les maux \u187? et certains projets s'enlisent parce que l'on se pr\u233?occupe, d\u232?s une phase initiale, de choix techniques qui devraient intervenir plus tard. Il faut, nous l'avons dit, que les validations soient authentiques : chacun des responsables doit pouvoir comprendre les documents qu'on lui soumet, et se savoir engag\u233? par sa signature. Il ne convient pas, par exemple, de soumettre le diagramme de classe \u224? un strat\ u232?ge, car cette vue sur le mod\u232?le n'est pas faite pour lui : comme il ne la comprendra pas, sa signature sera passive et il n'h\u233?sitera pas par la suite \ u224? remettre le mod\u232?le en question alors que les travaux sont d\u233?j\u224? engag\u233?s. La MOAD doit donc lui pr\u233?senter \u224? l'appui du diagramme d'activit\u233? une synth\u232?se en fran\u231?ais, claire et en quelques pages, qui indique ce qu'il s'agit de faire, comment on envisage de le faire et pourquoi il ne convient pas de le faire autrement. Il sera \u233?galement utile de lui pr\ u233?senter le processus sous la forme d'un dessin anim\u233?, m\u234?me si certains strat\u232?ges prennent cela comme une atteinte \u224? leur \u171? s\u233? rieux \u187?. Entre le strat\u232?ge et la MOAD, le rapport est celui qui existe entre le d\u233?cideur et l'expert. La d\u233?cision revient au strat\u232?ge qui, ayant la vue d'ensemble, peut tenir compte de contraintes et d'opportunit\u233?s que l'expert ignore ; mais le strat\u232?ge doit \u233?couter l'expert qui, mieux que lui. se tient au courant de l'\u233?tat de l'art des SI. Il ne suffit pas de r\ u233?ussir des projets : il faut encore que l'informatique soit bien utilis\u233?e. La MOAD a donc avec les utilisateurs une relation continue : elle les forme, observe leur relation avec le poste de travail, promeut les bonnes pratiques et combat les mauvaises. Pour la MOE. QD\par\pard\plain\hyphpar} { ion des besoins pour le syst\u232?me d'information la MOAD doit \u234?tre un client comp\u233?tent qui sait ce qu'il veut et qui conna\u238?t assez l'informatique pour en comprendre les contraintes, mais qui se garde d'imposer des choix techniques. Enfin, et m\u234?me si le cahier des charges pr\u233?cise les obligations de chacun, la relation entre la MOAD et la MOE doit \u234?tre plus partenariale que contractuelle. Il convient qu'elles travaillent en tandem d\u232?s le d\u233?but du projet, la responsabilit\u233? du travail passant de l'une \u224? l'autre selon l'\ u233?tape consid\u233?r\u233?e. Certains SI sont \u233?tonnamment bien r\u233? ussis. Lorsqu'on interroge les utilisateurs, ils disent < on sait ce qu'on a \u224? faire \u187?, < le travail est clair \u187?, \u171? l'entreprise est bien dirig\ u233?e \u187?, \u171? on est bien outill\u233?s \u187?. etc. Et si l'on s'en- quiert de la cause de cette r\u233?ussite, on re\u231?oit toujours la m\u234?me r\ u233?ponse : \u171? le DG (ou le directeur) s'est impliqu\u233? personnellement, il a mis le poids de son autorit\u233? dans la balance, il a r\u233?gl\u233? les probl\u232?mes politiques \u187?. Un SI n'est pas en effet seulement une affaire d'informatique : sa conception inclut la d\u233?finition du travail humain, l'organisation du processus de production et de son contr\u244?le. C'est pourquoi il faut consid\u233?rer que la responsabilit\u233? globale du SI appartient \u224? la MOA. personne morale, et nomm\u233?ment \u224? son directeur, personne physique qui engage la MOA par sa signature. Nos entreprises auront fait un grand pas lorsqu'elles sauront qu'un directeur ou un DG qui dit \u171? c'est la faute de l'informatique \u187? r\u233?v\u232?le une incomp\u233?tence... Michel Volle, pr\ u233?sident d'honneur du Club des Ma\u238?tres d'Ouvrage des Syst\u232?mes d'Information CI\u207?\u207?\u207?\par\pard\plain\hyphpar} { Remerciements le tiens \u224? remercier les confr\u232?res qui m'ont apport\u233? leurs remarques et leurs id\u233?es, en particulier Dominique Le p\u232?re, Benjamin Lemoine, losselin Coupard et Jean-Fran\u231?ois Goglin. Merci \u224? tous mes clients, ma\u238?tres d'\u339?uvre, ma\u238?tres d'ouvrage et utilisateurs qui, en se pr\u234?tant \u224? des interviews ou en participant \u224? des groupes de travail, m'ont permis d'am\u233?liorer ma d\u233?marche. Merci \u224? Suzanne Robertson et Karl Wiegers. qui m'ont encourag\u233? lors de l'\u233?criture de cet ouvrage. Merci \u224? Michel Voile, qui en a \u233?crit la pr\u233?face. Merci \ u224? Nicolas, M\u233?lina et Karin pour leurs id\u233?es fra\u238?ches et leur soutien moral.\par\pard\plain\hyphpar} { (fable des mati\u232?res) Guide de lecture 1 Quiz : \u234?tes-vous pr\u234?t ? 5 R\ u233?ponses au quiz 7 Partie 1 - M\u233?thodologie Chapitre 1 - La m\u233?thode en action 11 Un exemple imaginaire, mais concret Il Le point sur les concepts 18 Chapitre 2 - Les enjeux d'une bonne d\u233?finition des besoins 21 L'utilit\u233? d'un cahier des charges 21 Un investissement tr\u232?s rentable 21 Les gains \u171? cach\u233?s \u187? 23 Les difficult\u233?s 23 Les risques 24 Am\u233?liorer les pratiques d'\u233?laboration 26 Chapitre 3 - Comp\u233?tences et savoir-faire 27 Le savoir 27 Le savoir-faire 29 Le savoir-\u234?tre 30 Chapitre 4 - Exigences et cycle de vie du logiciel 35 Le cycle de vie du logiciel 35 Ma\u238?tres d'ouvrage et ma\ u238?tres d'ceuvre 36 B\u226?tisseurs et exploitants 38 La phase d'exigences 38 Les engagements r\u233?ciproques 39 O\par\pard\plain\hyphpar} { Expression des besoins pour le syst\u232?me d'information Chapitre 5 - La d\u233? marche 41 D\u233?crire, documenter, communiquer 41 Les diff\u233?rents niveaux d'exigences 42 Les \u233?tapes de l'\u233?laboration 43 Description formelle du processus global 44 Le processus en pratique 45 Check-list 47 Chapitre 6 - D\u233? finir le concept et les objectifs 49 Une activit\u233? pr\u233?alable indispensable 49 Objectifs, p\u233?rim\u232?tre et parties prenantes 50 Recueillir les objectifs 51 D\u233?terminer le p\u233?rim\u232?tre 52 Analyser les parties prenantes 54 Grille de questionnement 56 Tableau des parties prenantes 57 Le document de cadrage 58 Check-list 58 Chapitre 7 - Planifier le projet d'\u233?laboration 59 Le plan projet 59 Cadrer la m\u233?thodologie 60 \u201?laborer le plan projet 61 Check-list 64 Partie 2 - D\u233?veloppement des exigences Chapitre 8 - L'\u233?tape de recueil 67 L'enjeu 67 Le processus de recueil 68 Le plan de recueil 70 Risques li\u233?s au recueil et att\u233?nuation 70 D\u233?termination des profils utilisateurs 71 Recherche des sources d'exigences 72 Techniques de recueil 73 L'analyse de documents 74 La r\u233?union d'un groupe de travail 75\par\pard\plain\hyphpar} { Table des mati\u232?res L'interview structur\u233?e individuelle 76 Le brainstorming 83 Le diagramme des affinit\u233?s 83 L'observation directe 84 Les questionnaires 85 La r\u233?utilisation d'exigences 86 L'analyse de produits existants 86 Rechercher l'information l\u224? o\u249? elle se trouve 86 Les bonnes pratiques 87 Check-list de fin d'\u233?tape de recueil 91 Chapitre 9 - Les cas d'utilisation 93 Qu'est-ce qu'un cas d'utilisation ? 93 Le contenu d'un cas d'utilisation 94 Avantages des cas d'utilisation 96 \u201?laboration des cas d'utilisation 96 Un exemple 98 Difficult\u233?s et risques des cas d'utilisation 99 Les diagrammes de cas d'utilisation 100 Chapitre 10 - L'\u233?tape d'analyse 103 Utilit\u233? de l'\u233?tape d'analyse 103 Le processus d'analyse 104 Structurer et organiser les exigences 105 \u201?tablir un dictionnaire de donn\u233?es 107 Analyser les r\u232?gles m\u233?tier 107 D\u233?finir les priorit\u233?s d'un projet 109 Mod\u233?liser sous forme graphique 112 Maquettes et prototypes 122 Matrices CRUD et RACI 124 \u201?valuer la faisabilit\u233? et le co\u251?t 124 Check-list d'analyse 126 Chapitre 11 - Les exigences non fonctionnelles 127 Les caract\u233?ristiques de qualit\u233? 127 La norme ISO/CEI 25000 128 Zoom sur l'utilisabilit\u233? 133 CTTI\par\pard\plain\hyphpar} { Expression des besoins pour le syst\u232?me d'information Chapitre 12 - Exigences projet et contraintes techniques 137 Contraintes de projet 137 Contraintes d'environnement 138 Services d'accompagnement 139 Chapitre 13 - L'\u233?tape de sp\ u233?cification 143 Le processus de sp\u233?cification 143 La formulation 144 La structuration 149 Cas des exigences non fonctionnelles 151 Check-list de sp\u233? cification d'une exigence 152 Check-list d'\u233?tape de sp\u233?cification 153 Chapitre 14 - Structure du cahier des charges 155 Le mod\u232?le de cahier des charges 155 Le mod\u232?le IEEE 830 156 Le mod\u232?le AFNOR X50-151 158 Le mod\ u232?le de Wiegers 160 Le mod\u232?le Volere (Robertson & Robertson) 162 Construire son propre mod\u232?le 164 Check-list : cahier des charges 165 Chapitre 15 - L'\ u233?tape de validation 167 Int\u233?r\u234?t de la validation 167 Le processus de validation 168 Les techniques 168 V\u233?rification par check-lists 169 Relecture simple 170 Relecture crois\u233?e 170 Revue formelle et inspection 171 \u201? laboration de cas de test 173 Contr\u244?le qualit\u233? des exigences 174 Impliquer les personnes concern\u233?es 174 Check-list : validation 175 Chapitre 16 - Un mod\u232?le de processus 177 Un processus-type 177 \u201?tape 1 : cadrer 178\ par\pard\plain\hyphpar} { Table des mati\u232?res \u201?tape 2 : planifier 179 \u201?tape 3 : analyser l'existant 180 \u201?tape 4 : recueillir et analyser les besoins 182 \u201?tape 5 : sp\u233?cifier les exigences 184 \u201?tape 6 : valider les exigences 184 \u201? tape 7 : capitaliser 185 Chapitre 17 - Am\u233?liorer le processus 187 Pourquoi le processus peut \u234?tre am\u233?lior\u233? ? 187 Comment le processus peut \u234? tre am\u233?lior\u233? 189 La m\u233?thode du document navette 191 Partie 3 - Faire vivre les exigences Chapitre 18 - La gestion des exigences 197 La gestion des changements 197 Une discipline n\u233?cessaire et rentable 203 Chapitre 19 - Les outils 205 Check-list : votre projet en a-t-il besoin ? 205 Les bonnes raisons d'utiliser les outils 206 Fonctions de base et fonctions avanc\u233?es 206 Attention aux mirages 210 Quand et comment choisir un outil ? 210 Chapitre 20 - Au- del\u224? des exigences 213 \u201?tude de choix 213 \u201?tude comparative complexe 214 \u201?tude d'opportunit\u233? complexe 216 \u201?tude d'int\u233?grabilit\u233? et design 218 Chapitre 21 - Neuf conseils 221 1. Ayez toujours l'objectif en t\ u234?te 221 2. Analysez et validez au plus t\u244?t 222 3. Lancez-vous un d\u233?fi et donnez-vous les moyens de le r\u233?ussir 222 4. Conciliez concepts et action de terrain 223 5. Concentrez-vous sur votre livrable 223 6. Sachez r\u233?ussir presque \u224? coup s\u251?r 224 7. Mettez en avant votre client 224\par\pard\ plain\hyphpar} { Expression des besoins pour le syst\u232?me d'information 8. Perdez un peu de temps pour en gagner beaucoup 225 9. Faites de la d\u233?finition des besoins un projet en soi 225 Annexe - Les questions \u224? large spectre 227 Comment utiliser ces questions ? 227 Liste de questions 227 Glossaire fran\u231?ais 231 Glossaire bilingue 235 Bibliographie 237 Index 239 GD\par\pard\plain\hyphpar} { Guide de lecture ) Cet ouvrage pr\u233?sente une d\u233?marche structur\u233?e d'ing\u233?nierie des exigences pour les syst\u232?mes d'information, en suivant une logique qui va des concepts g\u233?n\u233?raux jusqu'aux conseils pratiques. Il a l'ambition de guider le lecteur depuis les objectifs strat\u233?giques jusqu'\ u224? la validation finale du cahier des charges, et au-del\u224?. Il gagne donc \ u224? \u234?tre lu d'un bout \u224? l'autre, dans l'ordre des chapitres. Parall\ u232?lement, cet ouvrage a pour vocation de servir de guide de terrain que tout consultant ou analyste, quelle que soit son exp\u233?rience, peut utiliser dans sa pratique quotidienne. Il doit donc \u234?tre consultable de mani\u232?re non lin\ u233?aire. La carte heuristique de la figure I page 3 tente de concilier ces deux approches, en permettant au lecteur de naviguer plus facilement entre les \u233? tapes et les techniques. La premi\u232?re partie de ce livre d\u233?crit le m\u233? tier, la d\u233?marche et les \u233?tapes pr\u233?paratoires \u224? la d\u233? finition des besoins, n\u233?cessaires pour mener \u224? bien une mission d'\u233? laboration d'un cahier des charges. Le premier chapitre donne un exemple concret (bien que fictif) qui permet de mettre en situation tout lecteur, qu'il soit d\ u233?butant ou exp\u233?riment\u233?. Il introduit les notions de base et le vocabulaire, qui n'est pas encore bien stabilis\u233? dans notre m\u233?tier. Le chapitre 2 est le seul \u224? s'occuper du pourquoi. Il pr\u233?sente les enjeux, les co\u251?ts, les gains et les risques. Le chapitre 3 \u233?num\u232?re et d\ u233?taille les comp\u233?tences n\u233?cessaires \u224? l'\u233?laboration d'un bon cahier des charges. Il faut la voir comme une check-list qui sert \u224? s'am\ u233?liorer, voire \u224? recruter un consultant. Le chapitre 4 situe l'ing\u233? nierie des exigences dans le cycle de vie du logiciel ; il permet de mieux comprendre les enjeux et met en lumi\u232?re les rapports de force entre les diff\ u233?rents acteurs. On pr\u233?sente au chapitre 5 la d\u233?marche de d\u233? veloppement des exigences, qui part de l'objectif et va jusqu'au cahier des charges. Cette d\u233?marche est g\u233?n\u233?rique : elle concerne la quasi- totalit\u233? des activit\u233?s d'\u233?laboration O\par\pard\plain\hyphpar} { ion des besoins pour le syst\u232?me d'information d'un cahier des charges. L'enjeu est de l'adapter \u224? son organisation pour ensuite pouvoir l'optimiser. Le chapitre 6 d\u233?taille l'\u233?tape pr\u233?alable de d\u233?finition des objectifs et du concept, cruciale et souvent n\u233?glig\u233?e, dont d\u233?pend grandement la r\u233?ussite d'un projet. D\u233?finir les besoins pour un logiciel est un projet \u224? part enti\u232?re. Le chapitre 7 parle de gestion de projet, sp\u233?cifiquement pour la phase d'exigences. La deuxi\u232?me partie de cet ouvrage d\u233?crit les quatre activit\u233?s de d\u233?veloppement des exigences : recueil (chapitre 8), analyse (chapitre 10), sp\u233?cification (chapitre 13) et validation (chapitre 15). Des chapitres interm\u233?diaires permettent de faire un zoom sur des techniques tr\u232?s utiles, comme les cas d'utilisation (chapitre 9). Le chapitre 11 est enti\u232?rement consacr\u233? aux exigences non fonctionnelles, beaucoup trop souvent n\u233?glig\u233?es. Le chapitre 14 donne la description de plusieurs mod\u232?les de sp\u233?cification d'exigences (cahier des charges) qu'une organisation pourra reprendre en y apportant les adaptations n\u233? cessaires. Le lecteur aura alors pris connaissance de la d\u233?marche g\u233?n\ u233?rale et des diff\u233?rentes techniques qui permettent d'aller du recueil des besoins jusqu'au cahier des charges. Pour \u234?tre efficace, il devra articuler ces techniques entre elles, c'est-\u224?-dire s'appuyer sur un processus formalis\ u233?. Le chapitre 16 donne un exemple de processus, que tout consultant ou assistant \u224? la ma\u238?trise d'ouvrage devra adapter \u224? son contexte de travail. Ce processus peut toujours \u234?tre am\u233?lior\u233?. Le chapitre 17 offre quelques pistes. Une fois sp\u233?cifi\u233?s, les besoins ne sont pas grav\ u233?s dans le marbre. En r\u233?alit\u233?, ils ne vont cesser d'\u233?voluer. La gestion des exigences, activit\u233? transversale qui consiste \u224? g\u233?rer les demandes de modification, pendant et apr\u232?s l'\u233?laboration du cahier des charges, fait l'objet du chapitre 18. Les outils de gestion des exigences progressent et changent rapidement. C'est pourquoi nous n'allons pas lister les outils pr\u233?sents sur le march\u233?, mais exposer l'utilit\u233? qu'ils peuvent avoir au cours d'un projet et les crit\u232?res pour les choisir (chapitre 19). L'activit\u233? de l'analyste ou de l'assistant \u224? la ma\u238?trise d'ouvrage ne s'arr\u234?te pas \u224? l'\u233?laboration du cahier des charges. L'\u233?tude de l'opportunit\u233?, de la faisabilit\u233? ou de l'int\u233?grabilit\u233? d'une solution dans le syst\u232?me d'information fait partie de son m\u233?tier. Les diff\u233?rentes techniques de choix, de s\u233?lection d'un progiciel et de l'\ u233?tude de son int\u233?gration dans le syst\u232?me d'information sont trait\ u233?es au chapitre 20. Enfin, nous donnons au chapitre 21 neuf conseils pratiques qui proviennent de l'exp\u233?rience de l'auteur.\par\pard\plain\hyphpar} { Guide de lecture V Industrialiser ces chapitres permettent de comprendre \u187? et d'am\u233?liorer la d\u233?marche - I Professlonnallser Ces chapitres d\u233? crivent les aspects humains et organisationnels Ma\u238?triser Ces chapitres d\ u233?crivent la d\u233?marche de d\u233?veloppement des exigences Ch. 21 : neuf conseils Figure 1 : La carte de lecture de ce livre\par\pard\plain\hyphpar} { r Quiz : \u234?tes-vous pr\u234?t ? Ce test vous permettra de vous situer dans le m\u233?tier du business analysis. quel que soit votre titre (consultant, analyste. AMOA. expert m\u233?tier...). Pour chaque question, donnez la r\u233?ponse qui vous para\u238?t la plus juste. Nous vous sugg\u233?rons de r\u233?pondre aux questions une premi\u232?re fois avant de lire ce livre, et de noter vos r\u233?ponses. Puis une deuxi\u232?me fois apr\u232?s l'avoir lu, de noter les r\u233?ponses et de comparer les r\u233?sultats. 1. Dans la constitution d'un cahier des charges, les difficult\u233?s proviennent surtout : A. De la complexit\u233? technique. B. Des aspects humains. C. De la gestion des changements des exigences. 2. Pour \u233? laborer un cahier des charges, les qualit\u233?s requises sont : A. Une bonne connaissance du domaine d'application. B. Des bases solides en informatique. C. La connaissance des techniques d'ing\u233?nierie des exigences. 3. Lorsque vous devez \u233?laborer un cahier des charges, le mieux est : A. D'utiliser tel quel un mod\u232?le de cahier des charges pr\u233?d\u233?fini. B. D'adapter le mod\u232?le de cahier des charges \u224? votre cas. C. De cr\u233?er un mod\u232?le sp\u233? cifique de cahier des charges. 4. L'essence d'un cahier des charges est : A. Un texte clair en fran\u231?ais. B. Des sch\u233?mas rigoureux et lisibles. C. Une structuration syst\u233?matique et m\u233?thodique du document.\par\pard\plain\ hyphpar} { Expression des besoins pour le syst\u232?me d'information 5. On vous demande d'\ u233?laborer un cahier des charges. Votre premi\u232?re t\u226?che consiste \ u224? : A. Faire pr\u233?ciser les objectifs. B. Analyser le contexte. C. Conna\ u238?tre les parties prenantes. 6. Dans le travail d'\u233?laboration d'un cahier des charges, les deux qualit\u233?s indispensables sont : A. L'empathie et l'\u233? coute. B. La rigueur et l'organisation. C. La cr\u233?ativit\u233? et l'imagination. 7. Dans le recueil des besoins, tout est dans : A. La pr\u233? paration. B. L'\u233?coute active. C. Le feedback donn\u233? aux int\u233?ress\ u233?s. 8. Dans l'analyse des exigences, il faut constamment surveiller : A. La coh\u233?rence entre exigences. B. La tra\u231?abilit\u233? des exigences. C. La priorit\u233? entre exigences. 9. S'il ne fallait utiliser qu'un seul type de diagramme, ce serait : A. Le diagramme de classes (ou entit\u233?-association). B. Le diagramme d'\u233?tats. C. Le diagramme de flux. 10. Les exigences qui demandent le plus d'attention sont : A. Les exigences fonctionnelles. B. Les exigences non fonctionnelles. C. Les contraintes. O\par\pard\plain\hyphpar} { R\u233?ponses au quiz) Voici les r\u233?ponses au quiz pr\u233?c\u233?dent. 1. Dans la constitution d'un cahier des charges, les difficult\u233?s proviennent surtout... Si vos connaissances techniques sont faibles, il se peut que A soit la bonne r\u233?ponse. Mais dans la majorit\u233? des cas. les probl\u232?mes humains (r\u233?ponse B) sont les plus d\u233?licats \u224? traiter, du moins dans un premier temps. \u192? long terme, lorsqu'il s'agit de maintenir le cahier des charges ou de faire \u233?voluer les exigences, le suivi des modifications des exigences pose de r\u233?elles difficult\u233?s. 2. Pour \u233?laborer un cahier des charges, les qualit\u233?s requises sont... Une bonne connaissance du domaine d'application (r\u233?ponse A) est indispensable, et des bases solides en informatique (r\u233?ponse B) sont fort utiles. La connaissance des techniques d'ing\u233?nierie des exigences est aussi importante que les deux autres qualit\ u233?s, mais est tr\u232?s souvent n\u233?glig\u233?e. 3. Lorsque vous devez \u233? laborer un cahier des charges, le mieux est... Si un mod\u232?le de cahier des charges pr\u233?d\u233?fini est bien adapt\u233? au contexte et aux objectifs, il n'y a pas de raison de s'en priver. Sinon, il faudra adapter le mod\u232?le de cahier des charges \u224? votre cas (r\u233?ponse B). en essayant de garder un maximum de coh\u233?rence. Il est rare de devoir cr\u233?er un mod\u232?le sp\u233? cifique de cahier des charges. M\u234?me dans ce dernier cas. on combinera des mod\ u232?les existants. Cela va sans dire, il vaut mieux investir du temps \u224? adapter un mod\u232?le existant qu'\u224? \u171? r\u233?inventer la poudre \u187?. 4. L'essence d'un cahier des charges est... Tout d\u233?pend du domaine d'application, de la r\u233?ponse recherch\u233?e (choix de progiciel ou d\u233? veloppement sp\u233?cifique). Mais on oublie trop souvent que la langue naturelle est une merveilleuse invention et un outil de sp\u233?cification universel. O\par\ pard\plain\hyphpar} { ion des besoins pour le syst\u232?me d'information 5. On vous demande d'\u233? laborer un cahier des charges. Votre premi\u232?re t\u226?che consiste \u224?... Sans objectif, vous n'irez pas loin. La r\u233?ponse A est donc a priori la correcte. Mais qui va vous donner l'objectif ? Celui qui finance, celui qui d\u233? cide ou celui qui r\u233?ceptionne le produit ? Et comment allez-vous interpr\u233? ter cet objectif en termes op\u233?rationnels ? D'o\u249? la n\u233?cessit\u233? d'analyser des parties prenantes et le contexte. Les trois t\u226?ches sont donc imbriqu\u233?es. 6. Dans le travail d'\u233?laboration d'un cahier des charges, les deux qualit\u233?s indispensables sont... ... les v\u244?tres ! L\u224? aussi, il n'y a pas de meilleure r\u233?ponse. Si chez vous certaines qualit\u233?s sont nettement pr\u233?dominantes, utilisez-les. bien s\u251?r, et essayez aussi de cultiver les autres. 7. Dans le recueil des besoins, tout est dans... Les trois r\ u233?ponses sont les bonnes, bien s\u251?r. La pr\u233?paration m\u233?thodique et syst\u233?matique tient une place importante dans cet ouvrage. Elle vous fera gagner \u233?norm\u233?ment de temps et vous \u233?vitera de disperser votre \u233? nergie et celle des participants. L'\u233?coute est un don du ciel, le meilleur outil de l'analyste, qu'il faut toujours cultiver. Le feedback donn\u233? aux int\ u233?ress\u233?s est une bonne pratique qui contribue \u224? l'efficacit\u233? et \ u224? la fiabilit\u233? de l'activit\u233? de recueil que vous pouvez tout de suite mettre en application, \u224? tous les niveaux. 8. Dans l'analyse des exigences, il faut constamment surveiller... ... \u224? vous de deviner la r\u233?ponse (vous vous en doutiez maintenant) ! Pour savoir ce qu'il faut surveiller, il suffit d'imaginer ce qui se passerait si vous ne le surveilliez pas ! 9. S'il ne fallait utiliser qu'un seul type de diagramme, ce serait... Un diagramme n'est pas une fin en soi. c'est un mode d'expression. Il s'agit d'\u234?tre le plus clair et pr\u233? cis possible pour ceux qui vont vous lire. Ce que vous devez exprimer d\u233?pend de vos objectifs, du contexte, des parties prenantes, du domaine d'application et du niveau de d\u233?tail exig\u233?. 10. Les exigences les plus importantes \u224? sp\u233?cifier sont... Toutes, bien s\u251?r ! La seule chose que l'on peut dire est que les exigences non fonctionnelles sont difficiles \u224? \u233?crire et beaucoup trop souvent n\u233?glig\u233?es. Pour les contraintes, cela est tr\u232?s d\u233?pendant du type de prestations que l'on attend du fournisseur.\par\pard\ plain\hyphpar} { PARTI E M\u233?thodologie L'ing\u233?nierie des exigences consiste, dans une large mesure, \u224? cr\u233?er des mod\u232?les abstraits \u224? partir d'un relev\u233? de faits g\u233?n\u233?ralement beaucoup plus concrets, puis \u224? les pr\u233? senter de mani\u232?re claire, structur\u233?e et intelligible par tous les acteurs, donc dans un langage souvent diff\u233?rent que celui de d\u233?part. La capacit\u233? \u224? effectuer des voyages aller-retour dans l'abstraction, \ u224? \u233?laborer des mod\u232?les, tout en restant proche du m\u233?tier de ses interlocuteurs, constitue la principale difficult\u233?, mais aussi tout l'attrait du m\u233?tier d'analyste des exigences. Pour exercer ce m\u233?tier et mener \ u224? bien les missions qui lui sont confi\u233?es, celui-ci va faire appel \u224? ses comp\u233?tences et \u224? son savoir-faire acquis par l'exp\u233?rience, ainsi qu'\u224? une d\u233?marche rigoureuse. Dans cette partie, nous allons introduire, puis d\u233?finir pr\u233?cis\u233?ment, les notions de besoin et d'exigence, les enjeux d'une bonne d\u233?finition des besoins, les comp\u233?tences n\u233? cessaires \u224? ce travail de d\u233?finition, et sa position dans le cycle de vie du logiciel. L'efficacit\u233? de ces activit\u233?s d\u233?pend dans une large mesure du soin apport\u233? \u224? leur pr\u233?paration. Celle-ci comprend les activit\u233?s de planification, inh\u233?rentes \u224? tout projet, et que nous allons d\u233?tailler pour le cas particulier du d\u233?veloppement des exigences. La pr\u233?paration comprend \u233?galement la d\u233?termination pr\u233?cise des objectifs, du champ de l'\u233?tude et des parties prenantes. Ces trois activit\ u233?s, auxquelles nous consacrons un chapitre, sont cruciales.\par\pard\plain\ hyphpar} { Chapitre 1 La m\u233?thode en action Dans ce chapitre, nous allons tenter d'introduire \u224? la fois le vocabulaire, la probl\u233?matique et les concepts. La situation prise comme exemple est fictive, mais pr\u233?sente toutes les difficult\u233?s auxquelles est confront\u233? un analyste ou assistant \u224? ma\ u238?trise d'ouvrage au cours de sa mission. Ces difficult\u233?s rendent n\u233? cessaire une approche organis\u233?e et syst\u233?matique, appel\u233?e ing\u233? nierie des exigences. Un exemple imaginaire, mais concret Supposons que la direction du marketing d'un constructeur automobile envisage de mettre sur le march\u233? un nouveau v\u233?hicule r\u233?volutionnaire, \u233?quip\u233? d'un pilote automatique. Plus rien \u224? faire pour le conducteur, ou alors si peu... Supposons que nous sommes \u224? la t\u234?te d'une \u233?quipe charg\u233?e de sp\ u233?cifier1 ce que le syst\u232?me de pilotage automatique doit faire, doit \u234? tre ou doit avoir pour \u234?tre op\u233?rationnel. Supposons que nous- m\u234?mes ne connaissons rien, ou presque rien, \u224? la m\u233?canique automobile, ni m\ u234?me aux syst\u232?mes embarqu\u233?s dans les v\u233?hicules, domaines r\u233? serv\u233?s des techniciens et ing\u233?nieurs. Notre challenge est de d\u233?finir les besoins et de les sp\u233?cifier sous forme d'exigences. 1. Le challenge: d\ u233?aire le besoin sans d\u233?aire la solution. Le m\u233?tier de la d\u233? ^ffion des besoins est d anafystou business unizrj^ consultant m\u233?tier, parfo\ u232?d"^ assistant \u224? la niaftrise d'ouvrage r^^ indifl\u233? ienirneiit<r^tefme& Pour nous, la direction du marketing est le ma\u238?tre d'ouvrage op\u233?rationnel. Les techniciens et ing\u233?nieurs sont le ma\u238?tre d'\u339?uvre. La direction\par\pard\plain\hyphpar} { ie 1 - M\u233?thodologie g\u233?n\u233?rale, n\u233?cessairement impliqu\u233?e dans un projet d'une telle envergure, est le ma\u238?tre d'ouvrage strat\u233? gique. Le document que nous allons produire, et qui s'adressera \u224? l'ensemble de ces acteurs, appel\u233?s parties prenantes, s'appelle cahier des charges. L'analyse de l'existant La premi\u232?re t\u226?che \u224? laquelle nous allons nous atteler consiste \u224? examiner tout ce qui existe en mati\u232?re d'automatismes embarqu\u233?s dans les v\u233?hicules. En effet, bien qu'aucune voiture actuellement sur le march\u233? ne dispose \u224? proprement parler d'un pilote automatique, de nombreux m\u233?canismes, qu'ils soient m\u233?caniques, \ u233?lectrom\u233?caniques, ou informatis\u233?s, existent d\u233?j\u224?. Cette premi\u232?re t\u226?che, donc, appel\u233?e analyse de l'existant, est indispensable et va nous occuper pour un bon moment. Elle est indissociable de l'activit\u233? de recueil des besoins, car l'existant d'une automobile pourra servir \u224? sp\u233?cifier les besoins d'une automobile \u224? venir. Concr\u232? tement, l'analyse de l'existant va consister \u224? : \u8226? \u233?tudier la documentation des automobiles existantes ; \u8226? examiner les sp\u233?cifications des automobiles d\u233?j\u224? con\u231?ues, mais qui n'ont jamais vu le jour ; \ u8226? visiter les ateliers, les usines, les cha\u238?nes de montage : \u8226? examiner les automobiles de la concurrence : \u8226? examiner ce qui se fait, en mati\u232?re de pilotage automatique, dans d'autres domaines que l'automobile. Le cahier des charges Apr\u232?s avoir \u233?tudi\u233? l'existant, nous allons passer \u224? la partie la plus longue et la plus difficile de notre travail, l'\u233? laboration du cahier des charges. Comme indiqu\u233?, le cahier des charges est un document que tous les acteurs en pr\u233?sence doivent \u234?tre capables de comprendre facilement, et qui servira de contrat entre plusieurs parties prenantes. Pour ce faire, il devra donc \u234?tre \u233?crit dans un langage clair et concis. Pour l'essentiel, il sera constitu\u233? d'un ensemble de phrases telles que. par exemple : En mode automatique, le v\u233?hicule doit se conformer au Code de la route. Il s'agit l\u224? de ce que l'on appelle une exigence de haut niveau. \u201? nonc\u233?e ainsi, elle para\u238?t \u233?vidente, mais doit n\u233?anmoins \u234? tre sp\u233?cifi\u233?e de mani\u232?re pr\u233?cise, non ambigu\u235?, dans un langage que tous les acteurs comprennent.\par\pard\plain\hyphpar} { Chapitre 1 - La m\u233?thode en action Les r\u232?gles de gestion Plus loin dans le cahier des charges, cette exigence de haut niveau sera exprim\u233?e en exigences de plus bas niveau, comme : En mode automatique, le syst\u232?me fera en sorte que le v\u233?hicule respecte les limitations de vitesse impos\u233?es par la signalisation. En mode automatique, le syst\u232?me fera en sorte que le v\u233? hicule n'acc\u233?l\u232?re pas lorsqu'un v\u233?hicule plac\u233? derri\u232?re lui tente de le d\u233?passer. Dans ces phrases, qui constituent un \u233? chantillon parmi des centaines d'autres, le marketing (ma\u238?tre d'ouvrage) demande au bureau d'\u233?tudes (le ma\u238?tre d'ceuvre) que le syst\u232?me fasse en sorte qu'\u224? tout moment, lorsque le v\u233?hicule est sous contr\u244?le du pilote automatique, le Code de la route soit respect\u233?. Ces phrases sont des exigences d'un type particulier. Dans cet ouvrage, et dans le vocabulaire consacr\ u233? de l'ing\u233?nierie des exigences, on les appelle r\u232?gles de gestion (en anglais, business ruks). Si les r\u232?gte cfe o^stwn r\u233? extraits te textes r\ u233?gienwmta^ feutfl n\u233?cessai- - itemerrtlesrepen^ fatier\u234?f\u233? ieftce ? la question est loin d'\u234?tre triviale, elleitepas d\u233? r\u233? poiised\u233?fimth^dfe d\u233?pend 4t plusieurs farteurs : o^ suffisamment daire^\ u234?^^^ qui se (^\u249?iedisementre eux? Les contraintes Il ne suffit pas de recopier le Code de la route, ou de le paraphraser, ou d'y faire r\u233?f\u233? rence, pour \u233?laborer le cahier des charges d'un pilote automatique pour automobile. Dans le cahier des charges, on trouvera des exigences telles que : Lorsque le r\u233?gime du moteur d\u233?passe un seuil maximum not\u233? Rs. le syst\u232?me devra faire en sorte que le v\u233?hicule change de r\u233?gime en passant \u224? la vitesse sup\u233?rieure. Lorsque le r\u233?gime du moteur passe sous un seuil minimum not\u233? Rm. le syst\u232?me devra faire en sorte que le v\ u233?hicule change de r\u233?gime et r\u233?trograde. Notons en passant que ces exigences permettent de percevoir une fronti\u232?re entre deux mondes : le syst\ u232?me, que nous sommes en train d'\u233?tudier\par\pard\plain\hyphpar} { ie 1 - M\u233?thodologie (parfois appel\u233? SAE. syst\u232?me \u224? l'\u233? tude) et le contexte, qui est l'ensemble des syst\u232?mes ext\u233?rieurs au syst\ u232?me \u224? l'\u233?tude, et avec lesquelles il r\u233?agit. Le contexte peut \ u234?tre constitu\u233? de logiciels, de mat\u233?riels, et d'humains (comme le conducteur du v\u233?hicule). La d\u233?termination du contexte est une activit\ u233? indispensable que nous allons d\u233?tailler dans un prochain chapitre. Les exigences fonctionnelles Exigences r\u233?glementaires et contraintes techniques sont des exigences ext\u233?rieures \u224? l'organisation qui exprime les besoins. La majorit\u233? des besoins internes \u224? l'organisation vont se traduire par des exigences fonctionnelles. Par exemple : En l'absence d'exigences r\u233? glementaires et de contraintes m\u233?caniques, la vitesse du v\u233?hicule sera celle d\u233?termin\u233?e par 1'utilisateur. Si la vitesse n'a pas \u233?t\u233? d\u233?termin\u233?e par l'utilisateur, et en l'absence d'exigences plus prioritaires, le v\u233?hicule acc\u233?l\u233?rera jusqu'\u224? atteindre la vitesse maximale autoris\u233?e par la signalisation ou la r\u233?glementation. Les exigences m\u233?tier Ni le Code de la route, ni une quelconque contrainte m\u233? canique n'obligent un v\u233?hicule \u224? circuler \u224? la vitesse maximale autoris\u233?e. L'exigence que nous venons de citer est une exigence m\u233?tier (en anglais, business require- ment). Dans notre exemple, la \u171? direction m\ u233?tier \u187? est le marketing. Cette derni\u232?re exigence, d\u233?terminant la vitesse maximale, peut se rapporter \u224? une exigence de plus haut niveau telle que : En l'absence de contraintes m\u233?caniques ou r\u233?glementaires, le v\u233?hicule circulera \u224? la vitesse maximale possible. Cette exigence peut elle-m\u234?me se rapporter \u224? une exigence de niveau sup\u233?rieur, c'est-\ u224?-dire \u224? un objectif : Les performances du v\u233?hicule devront d\u233? passer celles des v\u233?hicules de la concurrence de la m\u234?me cat\u233?gorie. On remarquera en passant que les exigences peuvent former une cascade, entre les exigences de plus haut niveau, les objectifs, et les exigences du niveau le plus op\u233?rationnel. Une des difficult\u233?s de l'ing\u233?nierie des exigences consiste \u224? maintenir la tra\u231?abilit\u233? entre les exigences de diff\ u233?rents niveaux.\par\pard\plain\hyphpar} { Chapitre 1 - La m\u233?thode en action T<xBlesm\u233?tiefv\u224?fiitstardu^ Itf direction du d^veloppemem durabte vou^ tk>n en \u233?ner^eraj\u244?fs qu'une autre exigence: les besoins sont ceuxdespe^ Les autres exigences Les syst\u232?mes informatiques manipulent des donn\u233?es. Les exigences sur les donn\u233?es, comme les formats de donn\u233?es, les seuils de d\u233?clenchement, les relations entre donn\u233?es, constituent une cat\u233?gorie \u224? part. Les exigences fonctionnelles d\u233?crivent ce que le syst\u232?me doit faire, en d'autres termes son comportement. Une autre cat\u233?gorie d'exigences, ais\u233?es \u224? comprendre, mais difficiles \u224? d\u233?crire, concerne la qualit\u233? du syst\ u232?me. On les appelle exigences non fonctionnelles. a plusieura rriam\u232?r\ u235?^te ilkistr\u233? la stnjduratwa d W\u238?\u234?gerl Elle dasse les exigen<^ d o^rtsfune des neuf cat\u233?gorks suivantes: mies, gains). \u8226? Sc\u233?narios et cas d'utilisation : ib amesporolent \u224? o^ te \u8226? R\u232?gles de gestion (r\u232?^ m\u233?^er) : fe logjdel dor^ une loi, un ;f^g^nM^n^;' tite;ducs^tiKf^4\ u224?ffii- uhe:|\u238?iiri\u251?\u202?duKL.-, \u8226? Exigent fbndiorin^ comportement du syst\u232?me. \u8226? Attributs de \u251?^it\u233?, \u233?galement appela te taract\u233?ristia^ ex\u224?^ rK^'ie)tmpsouvert n\u233?glig\u233?e \ u8226? Exigenttdlirtertaces externes: in^^ ouun\u224?utrelbgidel \u8226? Contraintes : ete contraintes l\u201?&a\u249? n^^ trop de \u339?rrtraintes apparaissent k\u171? du reaid \u224? la recherche de la sdiition ad\u233?quate ;U est ir\u244?te \u8226? P\u233?firtiti^ite^ \u171?fuit num\u233?ro de S\u233?ajrit\ u233?sodale ou d'un rujme^ de s\u233?rie).\par\pard\plain\hyphpar} { ie 1 - M\u233?thodologie \u8226? Suggestions de Mutions, fwmrf\u233?es comme des e^^ un utilisa- teurauneki\u233?ep\u239?fejrt\u231?uedete l'ana^ des exigenc^JI est important de les ftotit\u224?tiote^ D'autres exigences peuvemv\u234?Tr\u235? fbnwl\ u233?es et a d\u233?lais, mais elles sont distim\u238?es des exigences pro^ Nousieyi\u232?nd^^ a\u233?> au d\u233?velopperr^itto^ exigence Le m\u233?tier : g\ u233?rer une combinaison d'exigences Une combinaison d'exigences (r\u232?gles m\ u233?tier, exigences m\u233?tier, contraintes techniques) peut donner naissance \ u224? de nouvelles exigences, bien r\u233?elles, mais jamais formul\u233?es comme telles. C'est l\u224? une des grandes difficult\u233?s de l'analyse des exigences. Reprenons notre exemple fictif du cahier des charges d'un pilote automatique pour automobile. Le Code de la route, ou du moins son sous- ensemble concernant la conduite automobile, constitue un ensemble de r\u232?gles m\u233?tier. En voici une (pas toujours respect\u233?e des automobilistes !) : Article R412-31 du Code Tout conducteur doit de la route marquer signalisation jaune fixe. l'allumage dudit son v\u233?hicule dans feu. le sauf Tarr\u234?t dans le conducteur ne des conditions devant cas peut un o\u249?. plus feu lors de de arr\u234?ter de s\u233?curit\u233? suffisantes. Le \u171? feu de signalisation jaune fixe \u187? est ce que l'on appelle commun\u233?ment un feu orange. Pourquoi cette r\u232?gle de gestion ne peut-elle pas \u234?tre reprise telle quelle dans le cahier des charges ? Il y a \ u224? cela plusieurs raisons : \u8226? Le vocabulaire du Code de la route n'est pas le m\u234?me que celui du cahier des charges. Bien s\u251?r, on pourrait s'aligner sur ce vocabulaire juridique, puisque c'est la loi. Mais pourquoi pas sur celui de l'industrie automobile, qui est plus pr\u233?cis sur le plan de la m\u233?canique ? \u8226? La r\u232?gle n'est centr\u233?e ni sur le syst\u232?me \u224? l'\u233?tude (le pilote automatique), ni sur le v\u233?hicule, ni sur l'utilisateur du syst\ u232?me. Elle est centr\u233?e sur le couple conducteur-v\u233?hicule, repr\u233? sent\u233? par c le conducteur \u187?, seul responsable, devant la loi. du comportement de son v\u233?hicule (en cas de d\u233?faillance du v\u233?hicule, il pourra par la suite se retourner contre le constructeur automobile, comme cela peut \u234?tre le cas lors de toute d\u233?faillance d'un syst\u232?me automatis\u233?). \u8226? Surtout, l'article fait r\u233?f\u233?rence \u224? une autre r\u232?gle ou contrainte, qui est d\u233?crite ailleurs ou est cens\u233?e \u234?tre compr\u233? hensible par tous. Cette contrainte\par\pard\plain\hyphpar} { Chapitre 1 - La m\u233?thode en action concerne les conditions de s\u233?curit\ u233? \u171? suffisantes >. Elle est sans doute facile \u224? interpr\u233?ter (quoique...) par les automobilistes, qui doivent respecter la loi. et par les autorit\u233?s, qui doivent la faire respecter. Mais elle est beaucoup trop floue pour d\u233?crire le comportement attendu d'un syst\u232?me. En r\u233?alit\u233?, l'article cit\u233? fait appel \u224? d'autres articles, ainsi qu'\u224? la jurisprudence, qui permet \u233?galement de d\u233?terminer ce que sont des conditions de s\u233?curit\u233? suffisante, dans quelles circonstances le v\u233? hicule pouvait ou non \u234?tre arr\u234?t\u233? sans danger, etc. Tentons de traduire cette r\u232?gle m\u233?tier en exigence syst\u232?me. Cela donne : Si le feu de signalisation dont d\u233?pend le v\u233?hicule passe \u224? 1'orange. et si le syst\u232?me dispose du temps n\u233?cessaire pour arr\u234?ter le v\u233?hicule \u224? 1'aplonb du signal et si en s'arr\u234?tant, le v\u233?hicule ne met pas en danger le conducteur, les passagers et l'environnement du v\u233?hicule et si les conditions de s\u233?curit\u233? telles que d\u233?finies par [un ensemble de r\ u232?gles de gestion pr\u233?alablement d\u233?finies] sont respect\u233?es alors le syst\u232?me fait en sorte que le v\u233?hicule ralentisse progressivement jusqu'\u224? s'arr\u234?ter \u224? l'aplomb du signal. Il s'agit l\u224? d'une traduction encore tr\u232?s approximative de la r\u232?gle, qu'il faudra certainement retravailler. Le but de l'exercice est de montrer \u224? quel point une r\u232?gle de gestion qui nous para\u238?t simple, par ce que nous vivons tous les jours avec, se traduit en une exigence syst\u232?me qui peut \u234?tre extr\ u234?mement complexe. En particulier, une analyse rapide de la r\u232?gle de gestion, en interaction avec les contraintes m\u233?caniques, fait \u233?merger de nouvelles conditions qui \u233?taient cach\u233?es ou sous-entendues jusque-l\ u224?. Dans notre exemple, c'est le facteur temps qui \u233?merge. D'autres contraintes peuvent \u233?merger, comme la notion de risque. La r\u232?gle de gestion peut tr\u232?s bien s'\u233?crire : Si. en arr\u234?tant le v\u233?hicule \ u224? l'aplomb du signal, le syst\u232?me cause moins de d\u233?g\u226?ts qu'il n'en aurait caus\u233?s en ne s'arr\u234?tant pas. alors le syst\u232?me doit arr\ u234?ter le v\u233?hicule \u224? l'aplomb du signal.\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Cette derni\u232?re formulation de l'exigence est sans doute moins \u171? politiquement correcte \u187?, mais beaucoup plus proche de la r\u233?alit\u233? que l'article de loi. En effet, un conducteur automobile fait en permanence un calcul de risques. Il ne se contente pas de s'assurer que les conditions de s\u233?curit\u233? sont v\u233?rifi\u233?es (elles ne le sont jamais \u224? 100 %). il estime les risques \u224? passer \u224? l'orange et \u224? ne pas passer, puis compare les deux en temps r\u233?el (souvent, il compare aussi le risque de rater son rendez-vous avec celui de se faire pincer par un agent de la circulation, mais cela nous \u233?loigne du strict respect de la loi). Selon le niveau de cahier des charges \u224? \u233?laborer, l'article R412-31 du Code de la route se traduira par quelques dizaines, centaines, voire milliers d'exigences logicielles, qui tiendront compte d'exigences aussi diff\u233?rentes que le Code de la route, la psychologie du comportement des pi\u233?tons, ou les contraintes m\ u233?caniques. La notion de partie prenante Cet exemple fait ressortir la notion de partie prenante, extr\u234?mement importante et trop souvent n\u233?glig\u233?e. Un ing\u233?nieur m\u233?canicien, un juriste et le repr\u233?sentant d'une association d'automobilistes sont tous trois des parties prenantes au projet. Consid\u233?rons chacun de ces acteurs comme une personne d'exp\u233?rience, de bonne foi, dou\u233?e de bon sens. Cela ne les emp\u234?chera pas d'exprimer des besoins contradictoires, car le bon sens est une question de point de vue. L'analyste devra trouver et faire approuver un consensus entre des expressions de besoins conflictuels, en g\u233?rant des priorit\u233?s entre exigences. Sa t\u226? che sera grandement facilit\u233?e si, au lieu de devoir g\u233?rer des contradictions, voire des conflits tout au long du recueil des besoins, il anticipe sur ces \u233?ventuels conflits en analysant les int\u233?r\u234?ts et les rapports de force des diff\u233?rents acteurs. Cette t\u226?che s'appelle analyse des parties prenantes. Le point sur les concepts Besoin, demande, exigence et sp\u233? cification On a vu, gr\u226?ce \u224? l'exemple pr\u233?c\u233?dent, les diff\u233? rences entre besoin, demande et exigence. Le besoin est interne \u224? une organisation ou une personne. Dans le cas d'une personne physique, il peut \u234? tre ressenti, intellectuellement ou physiquement. Il peut \u234?tre exprim\u233? plus ou moins clairement, sous-entendu, pass\u233? sous silence, ignor\u233? ou ni\ u233? par son auteur. La demande est l'expression d'un besoin. Elle peut \u234?tre sup\u233?rieure au besoin, en termes de co\u251?t, de qualit\u233?, de fonctions, ou lui \u234?tre inf\u233?rieure. O\par\pard\plain\hyphpar} { Chapitre 1 - La m\u233?thode en action Par rapport \u224? la demande, une exigence tient compte des contraintes, et introduit une notion de consensus, de cible \u224? atteindre. Elle est demand\u233?e par le client et doit \u234?tre accept\u233?e par le fournisseur. Elle doit \u234?tre mesurable, ou du moins v\u233?ritable. Enfin, la sp\u233?cification est la traduction des exigences dans un langage convenu entre le client et le fournisseur. Elle permet d'\u233?viter les effets pervers qui perturbent leurs relations, y compris dans le cas o\u249? les deux parties, client et fournisseur, sont de bonne foi. La sp\u233?cification des exigences est une d\ u233?marche industrielle. Ing\u233?nierie des exigences L'ing\u233?nierie des besoins, ou ing\u233?nierie des exigences, est donc la discipline, vue comme un ensemble de techniques, consistant \u224? recueillir les besoins, \u224? les transformer en exigences, et \u224? les sp\u233?cifier dans un cahier des charges. Quand on parle d'ing\u233?nierie, on pense souvent \u224? des techniques complexes. Cependant, sur le plan conceptuel, les diff\u233?rentes techniques d\u233?crites dans cet ouvrage sont simples. Comme nous le verrons, les vraies difficult\u233?s proviennent essentiellement : \u8226? du choix entre plusieurs techniques ; \u8226? de la n\u233?cessit\u233? d'un suivi rigoureux des exigences ; \u8226? des aspects humains. Cahier des charges Un cahier des charges peut donc \u234?tre d\u233?fini de trois fa\u231?ons : \u8226? C'est l'expression des besoins, apr\u232?s qu'ils aient \u233?t\u233? recueillis, analys\u233?s, n\u233?goci\u233?s, prioris\u233?s. sp\u233?cifi\u233?s, class\u233?s. \u8226? C'est un ensemble de demandes, apr\u232? s traitement et arbitrage. \u8226? C'est un ensemble structur\u233? d'exigences, qu'un client pr\u233?sente \u224? un fournisseur.\par\pard\plain\hyphpar} { Chapitre 2 Les enjeux d'une bonne d\u233?finition des besoins Le cahier des charges est un document constitu\u233? d'un ensemble structur\u233? d'exigences, transmis d'un client \u224? un fournisseur, et qui a un caract\u232?re contractuel. Comme nous le verrons tout au long de cet ouvrage, son \u233?laboration est un travail collectif n\u233?cessitant la collaboration de nombreux acteurs. Le processus de cette \u233?laboration est aussi important que le document qui en r\u233?sulte. L'utilit\u233? d'un cahier des charges Un bon cahier des charges est un document clair, facile \u224? lire et \u224? comprendre par les diff\u233?rents acteurs, qui a \u233?t\u233? \u233?tabli sur la base d'un consensus. \u201?tant donn\u233?e la complexit\u233? de certaines situations que ce document repr\u233?sente, il peut \ u234?tre tr\u232?s complexe, mais il n'est jamais \u171? compliqu\u233? \u187? : c'est un document relativement facile \u224? maintenir et \u224? modifier. Ce document, \u233?labor\u233? de mani\u232?re participative, d\u233?finissant clairement les exigences d'un client vis-\u224?-vis d'un fournisseur, sera utile au choix, \u224? la conception, \u224? la r\u233?alisation, au param\u233?trage d'une application ou d'un syst\u232?me informatique, ainsi qu'\u224? sa mise en \u339? uvre op\u233?rationnelle, sa maintenance et son exploitation. Un investissement tr\ u232?s rentable L'ensemble des activit\u233?s d'\u233?laboration qui part du recueil des besoins et aboutit \u224? un cahier des charges est appel\u233? d\u233? veloppement des exigences. Les enjeux li\u233?s au d\u233?veloppement des exigences sont tr\u232?s importants. Les personnes qui \u233?laborent un cahier des charges pour la premi\u232?re\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie 1. Ces chiffres \u233?ma- nent de plusieurs \u233? tudes, en particulier celles de Boehm et de Crady. fois, ou demandent de l'assistance pour son \u233?laboration, sont rarement conscientes de l'importance de cette phase, et en sous-estiment les cons\u233?quences. Plut\u244?t qu'un long discours, voici quelques faits1 : Environ les trois quarts des erreurs dans le choix, la mise en \u339?uvre et la construction d'un logiciel sont dues \u224? des exigences mal formul\u233?es ou \u224? un cahier des charges mal construit (nous verrons plus loin ce que cela signifie). Le co\u251?t de la correction d'une erreur produite lors de la phase d'exigences est beaucoup plus important (jusqu'\u224? cent fois) lorsque cette erreur est d\u233?couverte en phase d'exploitation que pendant la phase d'exigences elle-m\u234?me (voir figure 2-1 ). Ce constat, statistiquement d\u233?montr\u233?, est apparemment contre-intuitif, puisque nombre de donneurs d'ordres n'investissent pas suffisamment de temps et d'argent dans cette phase, pensant sans doute que c'est du temps et de l'argent perdus, et qu'on pourra toujours corriger le tir et rattraper les petites erreurs par la suite. Or. corriger le tir co\u251?te largement plus cher que de viser juste du premier coup. 100 c Exigences Concept Real. Tests Phases de d\u233?veloppement Figure 2-1 : Augmentation exponentielle des erreurs Exploit Si le cahier des charges est utilis\ u233? pour le choix d'un logiciel sur \u233?tag\u232?re (progiciel), le co\u251?t d'un mauvais choix est nettement sup\u233?rieur au co\u251?t d'un bon cahier des charges. Enfin, la r\u233?\u233?criture de sp\u233?cifications ou de programmes (le rework) suite \u224? des sp\u233?cifications erron\u233?es ou insuffisamment pr\ u233?cises peut co\u251?ter jusqu'\u224? la moiti\u233? du co\u251?t total du d\ u233?veloppement. Sp\u233?cifier les besoins de mani\u232?re scrupuleuse est donc un investissement extr\u234?mement rentable. Il peut rapporter plus de cent fois ce qu'il aura co\u251?t\u233?.\par\pard\plain\hyphpar} { Chapitre 2 - Les enjeux d'une bonne d\u233?finition des besoins Sans \u234?tre ambitwtix, on petit tabler sur imretow la drteefttt eritre un <ahier d\u171? m\ u171?k)cm\'5ca rapporter au rtw df\u233?l\u226?bbii\u238?t\u224?tiMn^dM; c^^' d\ u232?s- \u171?\u226?hia^p\u226?s-iul4^n^Vf\u235?:-\u235?b4Qt.4*9J\u171? retravail \ u187? \'5c'7bfcwtoty des exig^rices en phase ofer\u233?^isatkM^ Les gains \u171? cach\u233?s \u187? Les gains que nous venons de mentionner sont les plus visibles. Mais obtenir de bonnes sp\u233?cifications d\u232?s le d\u233?but apporte de nombreux b\u233?n\u233?fices secondaires, et pas seulement sur le plan financier. R\u233?ussir du premier coup est beaucoup plus motivant et encourageant pour les utilisateurs que de revenir sur des sp\u233?cifications. De plus, le processus m\ u234?me d'\u233?laboration d'un cahier d'exigences permet aux diff\u233?rentes parties prenantes, \u224? commencer par les utilisateurs, de participer \u224? une d\u233?marche collaborative de recueil, de sp\u233?cification, de validation des besoins, et de r\u233?fl\u233?chir \u224? l'impact de la mise en \u339?uvre d'un nouveau syst\u232?me sur les processus actuels. D'autres gains sont induits par le processus m\u234?me de l'\u233?laboration. \u201?laborer un cahier des charges est un travail d'\u233?quipe qui. bien men\u233?, va souder cette derni\u232?re autour d'un projet commun. L'effort ult\u233?rieur de mise en \u339?uvre du produit, de formation, de conduite du changement en sera grandement facilit\u233?. Enfin, last but mi least, un cahier des charges bien construit co\u251?te beaucoup moins cher qu'un cahier des charges \u233?labor\u233? de mani\u232?re empirique, avec des allers-retours incessants entre les diff\u233?rentes parties prenantes. \u201? laborer un cahier des charges n'est jamais chose ais\u233?e, suivre une m\u233? thode rigoureuse et des techniques \u233?prouv\u233?es va grandement faciliter les choses. Les difficult\u233?s Inutile de se voiler la face. Le travail d'\u233? laboration est long et difficile. M\u234?me avec une bonne m\u233?thode et des t\ u234?tes bien faites, c'est une \u233?preuve, et on passe toujours par des moments de d\u233?couragement. Il est important de conna\u238?tre par avance certaines difficult\u233?s pour mieux pouvoir s'en pr\u233?munir. La premi\u232?re difficult\ u233? vient du donneur d'ordres. Ce peut \u234?tre la direction g\u233?n\u233?rale d'une entreprise, ou une administration centrale dans le secteur 0\par\pard\plain\ hyphpar} { Partie 1 - M\u233?thodologie public. Le donneur d'ordres doit s'impliquer, d\u233? finir les objectifs, donner une lettre de mission claire \u224? l'\u233?quipe qui va d\u233?finir les besoins. Ce n'est pas toujours le cas. Si la direction ne s'implique pas. il faudra tout faire pour qu'elle s'engage dans ce projet, car sa r\u233?ussite en d\u233?pend. La deuxi\u232?me difficult\u233? provient du rythme de travail, qu'il convient de c\u226?dencer pour conserver la motivation des acteurs jusqu'au bout et \u233?viter l'essoufflement. En effet, l'enthousiasme de d\u233?part ne dure pas \u233?ternellement, surtout lorsque la d\u233?finition des besoins devient un exercice routinier, avec ses lectures crois\u233?es et ses revues formelles. L'inspiration peut aussi manquer au d\u233?marrage du projet, pendant les phases cr\u233?atives de recueil des besoins, lorsque les futurs utilisateurs manquent d'id\u233?es. Dans les deux cas, c'est le talent de l'analyste des besoins qui est requis. Une autre difficult\u233? concerne les pressions ext\u233?rieures aux groupes de travail. Le donneur d'ordres peut \u234? tre press\u233? d'avoir des r\u233?sultats rapides, et pr\u233?f\u233?rer un travail vite fait, mal fait, \u224? un document conclusif. \u192? d'autres moments, le donneur d'ordres peut au contraire l\u226?cher la tension, pris par d'autres priorit\u233?s. Or, la d\u233?finition des besoins est un exercice qui doit \u234? tre rythm\u233?. Enfin, une difficult\u233? importante vient du fait que les gains engendr\u233?s par une bonne d\u233?finition des besoins ne seront visibles qu'\ u224? tr\u232?s long terme, c'est-\u224?-dire lorsque le logiciel sera en production. Pourquoi un dirigeant investirait-il dans une activit\u233? qui n'est visible que lorsqu'elle est d\u233?faillante ? Les risques Quels que soient la rigueur m\u233?thodologique et le talent de l'analyste, les risques existent et sont nombreux. En voici quelques-uns, parmi les plus importants. Les sp\u233? cifications rampantes Il est normal que les exigences \u233?voluent. Dans un tel cas, les sp\u233?cifications du produit changent en cons\u233?quence, et le produit lui-m\u234?me \u233?voluera par la suite. Les sp\u233?cifications rampantes adviennent lorsque l'\u233?volution des exigences n'est pas contr\u244?l\u233?e. Le produit ainsi couvert de < rustines \u187? risque de perdre en robustesse et en coh\u233?rence. Souvent, les phases d'exigences et de conception sont bien s\u233? par\u233?es. C'est en particulier le cas des appels d'offres publics, o\u249? le cahier des clauses techniques particuli\u232?res (le CCTP) doit \u234?tre finalis\ u233? et approuv\u233? et o\u249? toute modification doit en principe faire l'objet d'un avenant au o\par\pard\plain\hyphpar} { Chapitre 2 - Les enjeux d'une bonne d\u233?finition des besoins contrat initial. M\ u234?me dans ce cas. les sp\u233?cifications peuvent \u233?voluer de mani\u232?re incontr\u244?l\u233?e. Le cahier des charges devient alors un patchwork, avec tous les risques d'incoh\u233?rences que cela peut entra\u238?ner. Pour \u233?viter cette d\u233?rive, il faut d'une part que les objectifs du logiciel aient \u233?t\ u233? clairement d\u233?finis, et d'autre part que les modifications du cahier des charges fassent partie d'un processus contr\u244?l\u233?. Le perfectionnisme (sursp\u233?cification) Donner trop de d\u233?tails ne sert \u224? rien, et peut \ u234?tre nuisible. C'est en particulier le cas lorsque les utilisateurs ou leurs repr\u233?sentants donnent des d\u233?tails sur la mani\u232?re dont une fonction sera mise en \u339?uvre, en particulier en sp\u233?cifiant l'interface utilisateur (comme \u171? cliquer avec le bouton droit de la souris \u187?). De tels d\u233? tails n'ont rien \u224? faire dans un cahier des charges. S'il faut absolument sp\ u233?cifier des contraintes techniques, ce sera dans une annexe, et non dans la description fonctionnelle des exigences. Une autre forme de sursp\u233?cification consiste \u224? exiger des fonctions superflues. Cela augmentera inutilement le co\ u251?t du logiciel et les d\u233?lais de livraison. G\u233?n\u233?ralement, un utilisateur ne conna\u238?t pas le co\u251?t de ses exigences. Pour \u233?viter cette d\u233?rive, il est indispensable d'avoir cadr\u233? le projet, en temps, en co\u251?t et en qualit\u233?. Le travail de l'assistant \u224? la ma\u238?trise d'ouvrage consiste alors \u224? rappeler \u224? son client les objectifs que ce client a lui-m\u234?me fix\u233?s. Les sp\u233?cifications insuffisamment d\u233? taill\u233?es Le risque est ici de d\u233?crire les exigences de mani\u232?re tr\ u232?s globale (sous- sp\u233?cification), en esp\u233?rant que les concepteurs et r\u233?alisateurs vont avoir suffisamment de < bon sens \u187? pour faire un produit conforme \u224? ces besoins sous-entendus. C'est une utopie. Si un besoin est insuffisamment explicit\u233?, un d\u233?veloppeur fera appel \u224? sa cr\ u233?ativit\u233?, essaiera de deviner ce que veut le client, avec de fortes chances de se tromper. N\u233?gliger certains profils utilisateurs Un m\u234?me logiciel s'adresse g\u233?n\u233?ralement \u224? des types d'utilisateurs diff\ u233?rents2, avec des besoins parfois tr\u232?s distincts. Bien que pouvant acc\ u233?der aux m\u234?mes informations, un comptable et un conseiller de client\u232? le ne travaillent pas du tout de la m\u234?me fa\u231?on. Pour construire un logiciel qui soit au service de plusieurs cat\u233?gories d'utilisateurs, il est indispensable de tenir compte de leurs besoins particuliers, et pour cela de les faire participer \u224? l'expression des exigences. 2. Voir le Chapitre 6, \u9632? Analyser des parties prenantes \u187?.\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Am\u233?liorer les pratiques d'\u233?laboration Des bonnes pratiques d'expression et de gestion des exigences am\u233?lioreront consid\ u233?rablement la qualit\u233? du cahier des charges, et partant de l'application finale. Cela est vrai dans tous les cas, qu'il s'agisse de d\u233?velopper une application sur mesure ou de choisir, param\u233?trer et installer un progiciel. Cet ouvrage n'a d'autre ambition que d'\u234?tre un manuel de bonnes pratiques qui permettront : \u8226? de donner aux personnes en charge de l'\u233?laboration des sp\u233?cifications d'exigences (cahier des charges) une approche et des outils qui faciliteront leur travail ; \u8226? d'am\u233?liorer la communication entre client (ma\u238?trise d'ouvrage), fournisseur (ma\u238?trise d'\u339?uvre) et analyste (assistant \u224? la ma\u238?trise d'ouvrage) -, \u8226? d'\u233?viter le ph\u233? nom\u232?ne des sp\u233?cifications rampantes ; \u8226? d'am\u233?liorer l'efficacit\u233? en choisissant la technique ad\u233?quate de recueil, d'analyse, de sp\u233?cification des exigences : \u8226? de minimiser l'effort en \u233?vitant d'effectuer certaines t\u226?ches trop t\u244?t. ou de descendre trop vite dans les d\u233?tails, ce qui obligera de revenir dessus une deuxi\u232?me fois ; \u8226? de s\u233?curiser ce processus, gr\u226?ce \u224? des check-lists de fin d'\u233? tape ; \u8226? de conserver la motivation des participants tout au long de l'\u233? laboration ; \u8226? de pr\u233?parer le terrain \u224? l'\u233?laboration de cas de test. o\par\pard\plain\hyphpar} { Chapitre 3 Comp\u233?tences et savoir-Faire \u201?laborer un cahier des charges exige de solides connaissances techniques et m\u233?thodologiques, ainsi que des qualit\u233?s humaines. Pour cette raison, il n'y a pas un parcours type pour devenir analyste des exigences. On trouve dans ce m\u233?tier des anciens utilisateurs de produit, des ex-d\u233?veloppeurs, des experts du domaine d'application. L'analyste doit apprendre, puis ma\u238?triser, les techniques de l'ing\u233?nierie des besoins. C'est un animateur, un n\u233?gociateur, un interpr\ u232?te qui va \u233?couter les besoins des futurs utilisateurs et les reformuler dans un langage clair (figure 3-1 ). mod\u233?Hse conceptualise MOA observe reformule \u233?coute sp\u233?cifie cr\u233?e MOE analyse Q ^ synth\u233?tise anime Analyste Figure 3-1 : Les comp\u233?tences de l'analyste Le savoir La connaissance du m\u233?tier du client Sans \u234?tre un expert, l'analyste doit \u234?tre familiaris\u233? avec le m\u233?tier de son client. En fonction des domaines d'activit\u233?, du niveau de d\u233?tails attendu\par\pard\plain\hyphpar} { ie 1 - M\u233?thodologie et du type d'application, cette connaissance se doit d'\ u234?tre plus ou moins approfondie. Tr\u232?s souvent, l'expertise est chez le client. Sans \u234?tre expert, l'analyste doit \u234?tre capable de faire appel aux experts, de comprendre leur langage, de se plonger dans leurs proc\u233?dures, d'analyser leurs processus ; en d'autres termes, de conna\u238?tre leur m\u233?tier sans pour autant le pratiquer. La connaissance des techniques de mod\u233?lisation La repr\u233?sentation graphique des processus, des proc\u233?dures, des donn\u233? es, des traitements sont souvent n\u233?cessaires, lorsque le langage \u233?crit ne suffit pas ou manque de pr\u233?cision. Dans un tel cas. un bon sch\u233?ma vaut mieux qu'un long discours. Cependant, il ne suffit pas de savoir dessiner un sch\ u233?ma ou un diagramme pour savoir mod\u233?liser. Encore faut-il comprendre la s\ u233?mantique, et les cons\u233?quences profondes de certains choix. Ainsi, sans empi\u233?ter sur ie travail des techniciens, \u233?laborer un mod\u232?le graphique demande quelques connaissances techniques. Par exemple, pour \u233? laborer un mod\u232?le de donn\u233?es, il est utile de conna\u238?tre les principes des bases de donn\u233?es relationnelles. Les sch\u233?mas seront lus par les futurs utilisateurs qui ont besoin de clart\u233? et de simplicit\u233?, mais aussi par les futurs d\u233?veloppeurs qui ont besoin de coh\u233?rence et de pr\ u233?cision. La connaissance des m\u233?tiers du d\u233?veloppement L'analyste des exigences ne \u171? d\u233?veloppe \u187? pas de logiciel au sens courant du terme (on a vu que l'analyse des exigences fait partie du cycle de d\u233?veloppement). Avoir pratiqu\u233? le d\u233?veloppement est cependant un avantage qui permet de savoir si un besoin exprim\u233? est r\u233?aliste, et \u224? quel prix il peut \ u234?tre r\u233?alis\u233?. Cela permet aussi, chaque fois que n\u233?cessaire, de dialoguer avec les d\u233?veloppeurs et de se faire comprendre. Enfin, cela permet de comprendre certaines contraintes et des compromis \u224? faire : plus de s\u233? curit\u233? au d\u233?triment de la facilit\u233? d'utilisation, plus de richesse fonctionnelle au d\u233?triment de la fiabilit\u233?... La connaissance des technologies Il n'est pas indispensable d'\u234?tre un bon technicien pour sp\u233? cifier des exigences et \u233?laborer un cahier des charges. C'est souvent l'inverse qui est vrai, car un bon technicien a tendance \u224? rechercher des solutions techniques plut\u244?t que de chercher \u224? comprendre le besoin de son client. De bonnes connaissances techniques constituent n\u233?anmoins un s\u233? rieux atout. Cela \u233?vite de chercher l'impossible l\u224? o\u249? des solutions toutes pr\u234?tes sont sur le march\u233?. Cela permet aussi de conna\u238?tre les limites impos\u233?es par certaines techniques. o\par\pard\plain\hyphpar} { Chapitre 3 - Comp\u233?tences et savoir-faire Le savoir-Faire L'art de poser les bonnes questions La question est \u224? l'analyste ce que le bistouri est au chirurgien : un outil de travail quotidien, tr\u232?s simple, mais difficile \u224? manier. Comme le bistouri, la question doit \u234?tre tranchante, bien aff\u251?t\ u233?e, et faire le moins de d\u233?g\u226?ts possible. Poser la bonne question au bon moment est une affaire de talent, d'entra\u238?nement, mais aussi, et surtout, de logique et de m\u233?thode. On peut avoir un r\u233?pertoire de questions g\ u233?n\u233?riques \u171? pr\u234?tes-\u224?-poser \u187?' pour \u233?viter d'\ u234?tre pris au d\u233?pourvu. Mais un bon analyste parcourt mentalement un arbre de d\u233?cision et sait lier les questions entre elles dans un ordre logique, en coh\u233?rence avec le point qu'il examine et les objectifs \u224? atteindre. Une aptitude \u224? n\u233?gocier La personne charg\u233?e du recueil des besoins et de l'\u233?laboration du cahier des charges joue un r\u244?le d'interm\u233?diaire entre ma\u238?trise d'ouvrage et ma\u238?trise d'ceuvre. Elle doit \u234?tre < bilingue \u187? ; non seulement conna\u238?tre le vocabulaire, comprendre le m\ u233?tier, mais \u233?galement pouvoir se mettre dans la peau des diff\u233?rents acteurs pour comprendre leur point de vue. les contraintes de chacun, la mani\u232? re de s'exprimer. Sp\u233?cifier des exigences, c'est avant tout < traduire \u187? le langage du m\u233?decin, du juriste ou du banquier en un langage interm\u233? diaire compris de tous les acteurs. Les qualit\u233?s d'animateur Le talent d'animateur est indispensable, car le recueil des exigences est souvent une activit\u233? d'\u233?quipe. Savoir animer un groupe de travail est une qualit\ u233? essentielle. Diff\u233?rents moyens vont permettre aux participants de s'exprimer : brainstorming, maquettage sur papier, narration de situations v\u233? cues, discussions, jeux de r\u244?le. Certaines techniques sont tr\u232?s efficaces. Il faut aussi savoir cr\u233?er la motivation, puis la maintenir, souvent pendant de longs mois, au fil des r\u233?unions. La qualit\u233? d'organisateur et de chef de projet D\u233?finir les exigences demande une planification soign\u233?e, une pr\u233?paration minutieuse, une organisation de son propre travail et de celui de son \u233?quipe, en tenant compte des contraintes du client et des autres parties prenantes. Une fois que le projet est lanc\u233?, on doit faire face \u224? l'impr\u233?vu. \u192? l'image de tout chef de projet, l'analyste des exigences doit \u234?tre capable de mener \u224? bien ces deux activit\u233?s. Plus la planification sera rigoureuse, et plus il sera facile de parer l'impr\u233?vu. 1. Voir en annexe la liste de questions g\u233?n\u233?rales. Q\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie L'expression \u233?crite La capacit\u233? \u224? \ u233?crire avec aisance et pr\u233?cision est fondamentale. Parmi les nombreuses mani\u232?res de repr\u233?senter les exigences, diagrammes, tableaux ou sch\u233? mas, la plus usit\u233?e, et g\u233?n\u233?ralement la plus efficace, demeure la langue fran\u231?aise. C'est en effet la seule repr\u233?sentation facilement compr\u233?hensible par les gens de tous les m\u233?tiers. La langue fran\u231?aise (et toute autre langue \u171? naturelle \u187?. en fonction du pays o\u249? l'on se trouve et du milieu professionnel) est un outil extr\u234?mement complexe et puissant, qui demande un long apprentissage et une longue pratique. Nous la ma\ u238?trisons tous, avec plus ou moins de talent, mais \u233?laborer un cahier des charges exige l'utilisation d'un langage pr\u233?cis et non ambigu. Le savoir-\ u234?tre Une attitude de chef de projet Trois dangers menacent l'analyste des exigences : \u8226? En manquant de rigueur, vouloir toujours faire plaisir \u224? tout le monde ; cela conduit \u224? l'enlisement du projet. \u8226? En manquant de souplesse, se faire un ennemi parmi les parties prenantes ; il risque de se faire < griller \u187?. \u8226? Face \u224? des besoins mal d\u233?finis, laisser le flou s'installer, voire l'amplifier ; or, sa mission exige de la pr\u233?cision. Face \ u224? ces trois menaces, la bonne attitude consiste \u224? \u234?tre rigoureux sur le processus et souple avec les personnes. Cest cette neutralit\u233? bienveillante qui lui permettra de s'en sortir indemne. La curiosit\u233? Le don d'observation et la cr\u233?ativit\u233? vont de pair avec la curiosit\u233?. Faire de la veille technologique est indispensable, et il faut la faire activement. La curiosit\u233? m\u234?l\u233?e de cr\u233?ativit\u233? donne envie de < piquer des id\u233?es \ u187? et de les formaliser ensuite. Rappelons que les id\u233?es n'appartiennent \ u224? personne. Copier les id\u233?es en y ajoutant les siennes propres est l\u233? gitime (surtout si, par respect du travail des autres, on cite ses sources). L'\ u233?coute Pour recueillir les besoins, il est plus important de savoir \u233? couter que de savoir bien parler. Une bonne \u233?coute est pourtant une qualit\ u233? rare, et tr\u232?s appr\u233?ci\u233?e des utilisateurs. Un analyste doit \ u234?tre capable de mettre son interlocuteur en confiance ; de l'encourager \u224? parler de son m\u233?tier ; de formuler une question en Q\par\pard\plain\hyphpar} { Chapitre 3 - Comp\u233?tences et savoir-faire tenant compte du contexte et du m\ u233?tier de son interlocuteur ; de le relancer pour avoir des pr\u233?cisions ; de stimuler son imagination et de le mettre en situation pour d\u233?crire une situation r\u233?elle ou imaginer une situation \u224? venir ; de l'encourager \ u224? descendre dans les d\u233?tails ou, \u224? l'inverse, de prendre de la hauteur par rapport \u224? sa situation. Une bonne \u233?coute est li\u233?e au talent, \u224? l'exp\u233?rience et \u224? la personnalit\u233? de l'analyste. Mais des interviews bien pr\u233?par\u233?es et bien structur\u233?es aident le talent \ u224? s'exprimer et les moins talentueux \u224? s'en sortir honn\u234?tement. Nous donnerons quelques r\u232?gles simples de pr\u233?paration des interviews dans le chapitre consacr\u233? au recueil des besoins. Un excellent relationnel Cette qualit\u233? est principalement utile lors de l'animation de groupes de travail. Lors d'une telle r\u233?union, un analyste doit \u234?tre capable de maintenir la motivation, de laisser chacun s'exprimer, de cadrer et de recadrer pour rester align\u233? sur les objectifs, de r\u233?soudre les conflits, de maintenir la bonne humeur, de permettre aux plus timides de s'exprimer, et de canaliser les plus bavards. Comme les qualit\u233?s d'\u233?coute, les qualit\u233?s relationnelles sont grandement d\u233?pendantes du talent et de la personnalit\u233? de l'analyste. Et comme pour l'\u233?coute, une bonne pr\u233?paration et des techniques d'animation peuvent pallier le manque d'exp\u233?rience. L'observation Une des nombreuses mani\u232?res de recueillir les besoins consiste \u224? observer les personnes en train de travailler, dans leur milieu professionnel. Mais le don d'observation est utile \u224? tout moment. Lors d'une interview, il est utile d'observer comment l'interlocuteur r\u233?agit, et comment les participants \u224? une r\u233?union interagissent et communiquent entre eux ; tout noter, sur le papier ou dans sa t\u234?te, sous forme \u233?crite ou sous forme de croquis. Parfois, deux yeux et deux oreilles ne suffisent pas, et lors de certaines r\u233? unions un coanimateur peut \u234?tre utile. La cr\u233?ativit\u233? L'analyste des exigences n'est pas toujours un \u234?tre neutre et incolore. Il est l\u224? pour aider le client et l'utilisateur \u224? d\u233?finir, pr\u233?ciser et formaliser le besoin. Mais le futur produit peut aussi contenir des caract\u233?ristiques nouvelles auxquelles le client seul ne pensera jamais. L'analyste ou le consultant, qui est en contact avec des clients parfois tr\u232?s diff\u233?rents, peut, et doit, apporter des id\u233?es nouvelles. Il peut adaptera un domaine des id\u233?es tir\u233?es d'un autre domaine. Par exemple, l'exigence fonctionnelle < relancer p\ u233?riodiquement les prospects \u187? d'un\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie logiciel commercial peut \u234?tre adapt\u233?e \u224? un logiciel de cabinet dentaire pour relancer les patients. Ce sera ensuite aux futurs utilisateurs (en l'occurrence, les dentistes) de dire si cette id\u233?e est \u224? conserver. Encore faut-il que cette id\u233?e soit propos\u233?e. Si tous les concepteurs se contentaient d'\u233?couter < la voix du client \u187?, il n'y aurait que tr\u232?s peu d'innovations. Cela est particuli\u232?rement le cas des clients qui sont des utilisateurs exp\u233?riment\u233?s d'un produit existant. Souvent, ils demandent \u224? ce que le nouveau produit fasse < la m\u234?me chose \u187? que le pr\u233?c\u233?dent, mais en mieux. Il faut \u234?tre capable de leur proposer le < mieux \u187?, qui peut aller du simple lifting de l'interface graphique \u224? des am\u233?liorations fonctionnelles cons\u233?quentes. L'esprit d'analyse et de synth\u232?se Un cahier des charges est une arborescence d'exigences. Il faut \u234?tre capable de travailler sur les branches de haut niveau pour d\u233?finir les grandes fonctions, puis descendre dans le d\u233?tail de chacune jusqu'aux branches les plus fines, sans se perdre, puis remonter \u224? nouveau pour donner une vision globale au donneur d'ordres. Tout cela doit \u234? tre fait avec un \u171? scalpel mental \u187? \u224? la main, qui va permettre de s\u233?parer ce qui appartient \u224? l'univers des exigences (\u224? conserver dans un cahier des charges) de ce qui est de l'ordre de la solution (\u224? manier avec pr\u233?caution). L'analyste des exigences doit \u233?galement poss\u233?der une sorte d'alarme int\u233?rieure qui le pr\u233?vient de toutes les contradictions entre exigences (son bon relationnel doit l'aider \u224? \u233?viter que ces contradictions se transforment en conflits de personnes) et un \u171? d\ u233?tecteur de flou \u187?, ou plut\u244?t une aversion caract\u233?ris\u233?e pour les formulations floues, ambigu\u235?s, aux interpr\u233?tations multiples. La clart\u233? Le m\u233?tier d'expression des exigences est un m\u233?tier de communication. Pour faire passer des messages entre client et fournisseur, et aussi entre utilisateurs de m\u233?tiers diff\u233?rents, il est donc primordial de s'exprimer avec aisance et clart\u233?, oralement et par \u233?crit. L'ing\u233? nieur des exigences utilise toute une palette d'outils : la parole dans un premier temps, puis le langage \u233?crit ou graphique. Dans tous les cas, il doit utiliser le moins de jargon possible. Ouand un mot nouveau ou \u171? barbare \u187?2 (c'est-\u224?-dire, appartenant au m\u233?tier de \u171? l'autre \u187?, et qui n'a pas la m\u234?me signification pour toutes les parties prenantes) doit appara\u238? tre dans le discours, il doit devenir p\u233?dagogue et clarifier le concept. L'analyste des exigences doit manier plusieurs langages. Le langage parl\u233? et \ u233?crit en est un et occupe une place pr\u233?pond\u233?rante. Mais il existe 0 2. \u9632? Chacun appelle barbarie ce qui n'est pas de son usage \u9632?, Montaigne.\par\pard\plain\hyphpar} { Chapitre 3 - Comp\u233?tences et savoir-faire de nombreux langages graphiques, plus ou moins adapt\u233?s aux interlocuteurs des diff\u233?rentes parties prenantes. Il doit savoir les manier avec discernement. Certaines personnes, de par leur profession, sont tr\u232?s familiaris\u233?es avec le langage graphique. C'est le cas des ing\u233?nieurs. D'autres professions, comme les juristes, pr\u233?f\u232? rent l'\u233?crit. Un sch\u233?ma qui para\u238?tra limpide \u224? l'un pourra \ u234?tre abscons pour l'autre. Il en est de m\u234?me des tableaux. Repr\u233? senter les informations sous forme tabulaire va souvent de soi pour un ing\u233? nieur ou un comptable, moins pour un juriste. Inversement, d\u233?aire un processus op\u233?rationnel au moyen d'un long discours \u233?crit peut couler de source pour un homme de loi et rebuter un ing\u233?nieur qui a besoin de s'appuyer sur des sch\ u233?mas pour faciliter sa compr\u233?hension. Ces diff\u233?rences culturelles doivent \u234?tre imp\u233?rativement respect\u233?es si l'on veut \u233?viter les incompr\u233?hensions, voire les conflits.\par\pard\plain\hyphpar} { Chapitre 4 Exigences et cycle de vie du logicie Dans ce chapitre, nous allons situer les activit\u233?s de l'ing\u233?nierie des exigences dans le cycle de vie du logiciel. Cela va nous permettre de prendre la mesure de l'importance de ces activit\u233?s, et de mieux comprendre les r\u244?les et responsabilit\u233?s des diff\u233?rents acteurs, ainsi que ceux du ma\u238?tre d'oeuvre, du ma\u238?tre d'ouvrage, et de l'analyste et de leurs engagements r\u233?ciproques. Le cycle de vie du logiciel Il existe plusieurs fa\u231?ons de repr\u233?senter le cycle de vie du logiciel. Le terme de cycle est d'ailleurs souvent utilis\u233? abusivement. Voici (source : IEEE Std 982.2-1988) un mod\u232?le de cycle de vie en huit phases : \u8226? Objectifs et concepts : d\u233?finition des objectifs du produit \ u224? construire, et premi\u232?re vision du logiciel. \u8226? Exigences : recueil, analyse et formalisation des besoins, \u233?laboration du cahier des charges. \ u8226? Conception : sp\u233?cifications d\u233?taill\u233?es fonctionnelles et techniques, en fonction des objectifs et des exigences pr\u233?c\u233?demment d\ u233?finis. \u8226? R\u233?alisation : programmation et tests unitaires. \u8226? Tests et validation : tests fonctionnels, d'int\u233?gration et validation. \u8226? Installation : mise en \u339?uvre op\u233?rationnelle et d\u233?ploiement. \u8226? Exploitation et maintenance : mise \u224? disposition aupr\u232?s des utilisateurs. \u8226? Retrait : arr\u234?t de l'exploitation, \u233?ventuellement migration vers un autre logiciel ou nouvelle version du m\u234?me logiciel. Ce cycle en huit phases est v\u233?ritablement circulaire, ce qui permet de prendre conscience que. dans la vraie vie. un logiciel arrive rarement sur\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie un terrain vide, et ne laisse pas souvent un vide en partant (figure 4-1). Bien avant de mettre un logiciel hors service, on se pr\u233? occupe de son successeur. C'est en g\u233?n\u233?ral l'occasion de red\u233?finir le concept et les objectifs, ainsi que les exigences qui en d\u233?coulent. Retrait _^ Objectifeet .concepts Exploitation et maintenance / \'5c \'5c ExlQenoes Installation et \'5c * / conception d\u233?ploiement . ^.^ ., R\u233?alisation et validation Figure 4-1 : Le cycle de vie, mod\u232?le IEEE 982.2 Ce cycle en huit phases donne, bien s\u251?r, une vision sch\u233?matique de la r\u233?alit\u233? (c'est pr\u233?cis\u233?ment ce qui est demand\u233? \u224? un mod\u232?le). Dans la pratique, les phases ne sont \u233?gales ni en temps ni en co\u251?ts, et elles ne sont pas s\u233?par\u233?es par des cloisons \u233?tanches. Entre deux versions d'un m\u234?me logiciel, ou entre un logiciel et son successeur, on peut constater un retard de plusieurs phases. Il n'est pas rare que. pendant qu'un logiciel est encore en validation, on d\u233?finisse d\u233?j\u224? les besoins de son successeur. Ma\u238?tres d'ouvrage et ma\u238?tres d'oeuvre Le cycle de vie ainsi repr\u233?sent\u233? nous permet de visualiser les relations et le partage des responsabilit\u233?s entre parties prenantes. Le ma\u238?tre d'ouvrage est celui qui demande, sp\u233?cifie, paie ou utilise le syst\u232?me, ou plus g\u233?n\u233? ralement en tire un b\u233?n\u233?fice. Le ma\u238?tre d'oeuvre est celui qui le con\u231?oit, le r\u233?alise, le met en \u339?uvre. Si on examine le cycle de vie du logiciel au regard de cette distribution des r\u244?les (figure 4-2), on s'aper\ u231?oit que le ma\u238?tre d'ouvrage (ou client) est responsable de < l'h\u233? misph\u232?re nord \u187? du cycle et que le ma\u238?tre d'ceuvre\par\pard\plain\ hyphpar} { Chapitre 4 - Exigences et cycle de vie du logiciel occupe < l'h\u233?misph\u232?re sud \u187?. On a donc, dans la partie haute du cycle, ceux qui d\u233?finissent et utilisent le quoi. Et dans la partie basse, ceux qui sont responsables du comment. Les strat\u232?ges, ceux qui d\u233?cident de ce que sera, dans ses tr\u232?s grandes lignes, un nouveau produit, sont au p\u244?le nord du cycle. Les experts, qui ma\u238?trisent dans le d\u233?tail les techniques pointues, sont au sud. Retrait I\u8212? Les strat\u232?ges Objectifs et concepts Exploitation et maintenance Installation et d\u233?ploiement Conception Tests et validation R\u233? alisation 1\u8212? Les experts Figure 4-2 : Cycle de vie et partage des r\u244?les Bien entendu, une m\u234?me personne peut, au cours de sa carri\u232?re, se trouver alternativement client ou fournisseur. Mais au cours d'un m\u234?me projet, les r\ u244?les sont en principe s\u233?par\u233?s, ainsi que les mani\u232?res de travailler. \u192? la fronti\u232?re de ces deux mondes se trouve le cahier des charges, qui devient ainsi un contrat entre deux parties. De la qualit\u233? de ce document d\u233?pendra grandement la bonne coop\u233?ration entre client (ma\u238? trise d'ouvrage, donneur d'ordres) et fournisseur (\u233?diteur, int\u233?grateur, vendeur). Entre ma\u238?trise d'ouvrage et ma\u238?trise d'oeuvre, il y a souvent des difficult\u233?s de compr\u233?hension, dues \u224? des diff\u233?rences de m\ u233?tier et de langage. De ce fait, la tentation est grande de livrer un cahier des charges qui contient du flou, des zones d'ombre, destin\u233?es \u224? pallier les difficult\u233?s de compr\u233?hension. C'est ce qui arrive souvent, et ne fait que repousser le probl\u232?me : les difficult\u233?s reviennent \u224? la surface au moment de la livraison, g\u233?n\u233?rant des tensions, voire des conflits.\ par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie B\u226?tisseurs et exploitants Le cycle de vie du logiciel peut \u234?tre d\u233?coup\u233? verticalement. La partie droite est celle des b\u226?tisseurs, qui imaginent, con\u231?oivent, r\u233?alisent. La partie gauche est celle des exploitants, qui installent, exploitent, maintiennent. Entre ces deux populations, c'est surtout la motivation qui est diff\u233?rente. Les b\ u226?tisseurs sont attir\u233?s vers le nouveau, imaginent toutes les possibilit\ u233?s, veulent cr\u233?er. La motivation des exploitants est la continuit\u233? et la r\u233?gularit\u233? du fonctionnement, et la correction des erreurs et anomalies. Pour cela, ils s'appuient sur des proc\u233?dures rigoureuses. Ici aussi, il faut trouver un langage commun entre les diff\u233?rentes populations. Retrait Objectifs et concepts Exploitation et maintenance Installation et d\u233? ploiement Exigences Conception Tests et validation Figure 4-3 : Cycle de vie et r\ u233?partition des m\u233?tiers R\u233?alisation La phase cf exigences La phase d'exigences sera d\u233?crite tr\u232?s en d\u233?tail dans les chapitres qui suivent. Elle comporte les activit\u233?s et t\u226?ches suivantes : \u8226? identifier les diff\u233?rents profils utilisateurs de l'application ; \u8226? recueillir les besoins de chaque profil utilisateur ; \u8226? analyser les besoins des utilisateurs, en \u233?liminer les incoh\u233?rences et les redondances ; \ u8226? traduire les besoins exprim\u233?s oralement en sp\u233?cifications ; \ u8226? aligner la sp\u233?cification des exigences (le cahier des charges) aux objectifs d\u233?finis par le ma\u238?tre d'ouvrage ; \u8226? assurer la compl\ u233?tude du cahier des charges ;\par\pard\plain\hyphpar} { Chapitre 4 - Exigences et cycle de vie du logiciel \u8226? d\u233?terminer, avec le ma\u238?tre d'ouvrage et les utilisateurs, la priorit\u233? relative de chaque exigence et son niveau de flexibilit\u233? (obligatoire, facultatif) ; \u8226? faire valider par le ma\u238?tre d'ouvrage les exigences sp\u233?cifi\u233?es. Comme on le voit sur la figure 4-4, la phase d'exigences fait partie de la construction du logiciel ou du syst\u232?me, et elle est sous la responsabilit\ u233? du ma\u238?tre d'ouvrage. Retrait , ?^t\u171? Objectifs formalis\u233?s Exploitation et j^mm^^\'5c maintenance / ^JBaMHBk Ex*9ences Cahier des charges valid\u233? Installation et \'5c /Conception d\u233?ploiement ^ JUS? ' R\u233? alisation et validation Figure 4-4 : La phase d'exigences dans le cycle de vie Dans la pratique, le travail de l'analyste va au-del\u224? de la phase d'exigences proprement dite. Il est fr\u233?quent que les concepts et les objectifs du logiciel ne soient pas clairement d\u233?finis et ce sera \u224? l'analyste des exigences de les formaliser et de les faire valider. Et, bien que cela d\u233?passe le strict cadre du cahier des charges, l'analyste s'aventure souvent dans la zone floue entre les exigences et la conception. Les engagements r\u233?ciproques L'\u233?laboration du cahier des charges est sous la responsabilit\u233? d'une personne, l'analyste des exigences, souvent appel\u233? assistant \u224? la ma\u238?trise d'ouvrage. \ u201?tant donn\u233? l'importance du cahier des charges, son r\u244?le est crucial, et devrait \u233?galement \u234?tre r\u233?gi par un contrat, entre son client et lui. C'est souvent un contrat moral, mais il gagne \u224? \u234?tre mis par \u233? crit. Un consultant pourra int\u233?grer ces engagements r\u233?ciproques \u224? une proposition commerciale d'\u233?laboration d'un cahier des charges. Cependant, m\u234?me sans aucun \u233?crit de part et d'autre, l'analyste des exigences a tout\par\pard\plain\hyphpar} { ie 1 - M\u233?thodologie int\u233?r\u234?t \u224? conna\u238?tre la liste de ces engagements, et de s'y tenir. Il devra \u233?galement mettre son client face \u224? ses responsabilit\u233?s. Voici un mod\u232?le d'engagements r\u233?ciproques : j\ u239?m\u202?S\u202?Bj\u224?r seftNmi^ pratiques, s'exprimer en iitilte informer son cfientde ra>\u171?rH\u187?merrt Ai (ahier des charges, tenk son dieirt Inform\u233? des r^ sp\u233?dfto les besoiiK en termes ais\u233?mert cboisir les tedira\u251?^ animer tirted\u233?iiardie collabos an\u239?merW apporter des id\u233?es nouvelles, dans le respect de cette neutralit\u233?, estimertecriai^ dans les r\u232?gles d\ u233?fait un losi\u201?iel d\u233? qualit\u233?. respecter la d\u233?marche d'expression des besoins mise en place, irn\u226?ter les parties pienarrtes \u224? pan^per^ inforrr^leednsurtart^ exprimer les besoins avec ^^ . lever les ambigu\ u239?t\u233?s sur texpression d'un besoin, indiquer les priorit\u233?s sur les exigences exprim\u233?es, respecterles estimatwns faites par le consultant ou l'expert varies documents intemi^ vaKtoie cahier des charges. Les engagements de l'analyste peuvent faire fonction de charte de d\u233?ontologie. Les engagements du ma\u238?tre d'ouvrage, m\u234?me s'ils ne sont pas formalis\u233?s, peuvent servir de check-list au ma\u238?tre d'ouvrage. Pour l'analyste, c'est la check-list de ce qu'il peut l\u233?gitimement demander \u224? son client. O\par\pard\plain\hyphpar} { Chapitre 5 La d\u233?marche Pour \u234?tre efficace, la d\u233?finition des exigences doit devenir une activit\u233? syst\u233?matique et organis\u233?e, faisant appel \u224? des acteurs dont les relations sont formalis\u233?es ; en d'autres termes, une activit\u233? d'ing\u233?nierie. Dans le chapitre pr\u233?c\ u233?dent, nous avons vu comment cette activit\u233? s'ins\u232?re dans le cycle de vie du logiciel. Nous allons maintenant rentrer un peu plus dans le d\u233?tail et d\u233?crire globalement le processus de d\u233?veloppement des exigences. D\u233? crire, documenter, communiquer Tout au long de cet ouvrage, nous d\u233?crivons des techniques qui. regroup\u233?es, s'appellent ing\u233?nierie des besoins ou ing\ u233?nierie des exigences. Voil\u224? une belle expression, mais dans quelle mesure le terme d'ing\u233?nierie est-il justifi\u233? ? Recueillir, analyser, sp\u233? cifier les besoins sont en grande partie des actions de description. Il s'agit de d\u233?crire un besoin en le formulant pour la premi\u232?re fois, en le reformulant diff\u233?remment, de mani\u232?re plus claire, plus constructive, plus coh\u233?rente ; en le montrant sous diff\u233?rents angles, comme un dessin d'architecte montre un b\u226?timent selon des vues diff\u233?rentes ; en le formulant dans un langage que tous (en tout cas tous ceux qui ont besoin de cette description), comprennent et interpr\u232?tent de la m\u234?me fa\u231?on. D\u233? composer un ensemble de besoins en sous-ensembles plus petits, de mani\u232?re arborescente, le d\u233?crire sous diff\u233?rents aspects va immanquablement g\ u233?n\u233?rer beaucoup de documentation. Il s'agit l\u224? d'un aspect fondamental de ce m\u233?tier. Nous devons g\u233?rer des masses d'informations et les pr\u233?senter de mani\u232?re coh\u233?rente. Il faudra \u233?galement maintenir cette coh\u233?rence dans le temps, g\u233?rer cette \u233?volution. La gestion des versions et des changements fait partie du m\u233?tier.\par\pard\plain\ hyphpar} { Partie 1 - M\u233?thodologie Toutes ces informations devront \u234?tre partag\u233? es par tous ces acteurs. La d\u233?finition des besoins est donc aussi une activit\ u233? de communicalion. Cette communication se fait bien s\u251?r dans les deux sens : \u233?coute et sp\u233?cification. Nous avons dans ce triptyque l'essence du m\u233?tier d'analyste : d\u233?crire, documenter, communiquer (figure 5-1 ). Communiquer Documenter \'5c / D\u233?crire Figure 5-1 : L'essence de notre m\u233? tier Les diff\u233?rents niveaux d'exigences Les activit\u233?s de recueil, d'analyse, de sp\u233?cification et de validation des exigences peuvent se faire \ u224? plusieurs niveaux : . : \u8226? Les objectifs strat\u233?giques1 fix\u233?s par la direction g\u233?n\u233?rale ou par le don- '. i, ,. ,r neur d'ordres, et dont le recueil et la formalisation demandent un soin chapitre o. ,. particulier. \ u8226? Les exigences de haut niveau, li\u233?es \u224? l'organisation (en anglais business requirements). d\u233?coulant directement des objectifs ou de contraintes organis\u226?t ion nel les ou r\u233?glementaires. \u8226? Les exigences de niveau interm\u233?diaire correspondent au point de vue d'un utilisateur (en anglais user requirements) : exigences comportementales, cas d'utilisation, exigences de qualit\ u233?. \u8226? Les exigences \u233?l\u233?mentaires (en anglais atomic requirements), qui d\u233?crivent sous forme de phrases simples (du type \u171? le syst\u232?me doit... \u187?) des exigences fonctionnelles ou non fonctionnelles, des contraintes, d'ordre technique ou autre, ou des exigences d'interface. Cette classification (qui peut varier selon les mod\u232?les de cahiers des charges) permet de structurer la sp\u233?cification en \u171? couches \u187? d'exigences de plus en plus d\u233?taill\u233?es (figure 5-2). Les exigences \u224? un niveau doivent \u234?tre align\u233?es aux exigences de niveau sup\u233?rieur. 0\par\pard\ plain\hyphpar} { Chapitre 5 - La d\u233?marche Les exigences de haut niveau (les objectifs) feront l'objet d'un document particulier, qui pourra \u234?tre repris dans le cahier des charges. En fonction de sa destination, le c\u339?ur du cahier des charges descendra plus ou moins dans les d\u233?tails. Par exemple, un cahier des charges destin\u233? \u224? d\u233?velopper un logiciel contiendra plus d'exigences d\u233? taill\u233?es qu'un cahier des charges pour le choix d'un progiciel sur \u233?tag\ u232?re. /ObjectlfsX / Exigences \'5c / d'entreprise ou \'5c / organisationnelies \'5c / Cas d'utilisation, exigences \'5c normatives et r\u233? glementaires, r\u232?gles d'interop\u233?rabilit\u233?, de s\u233?curit\u233?.... Exigences \u233?l\u233?mentaires fonctionnelles et non fonctionneHes. contraintes, exigences d'interface Figure 5-2 : Niveaux d'exigences Les \u233?tapes de l'\u233? laboration \u201?laborer un cahier des charges consiste donc avant tout \u224? traduire des besoins flous, impr\u233?cis, et parfois inconnus, en exigences structur\u233?es et organis\u233?es : \u224? les traduire donc, depuis le langage du client en un langage compr\u233?hensible de tous (client, fournisseur et observateurs ext\u233?rieurs). Pr\u233?sentons les diff\u233?rentes t\u226?ches qui vont du recueil des besoins au cahier des charges. La premi\u232?re t\u226?che consiste \u224? d\u233?couvrir les enjeux, les objectifs, et les contraintes du projet. Les enjeux constituent la raison profonde du lancement d'un projet, les intentions derri\u232?re les objectifs. Certains enjeux seront clairs et pourront \ u234?tre exprim\u233?s dans le pr\u233?ambule du cahier des charges. D'autres enjeux pourront \u234?tre cach\u233?s (ambitions personnelles, projet inavou\u233? de d\u233?passer un concurrent). Ou'ils soient publics ou tenus secrets, ils devront \u234?tre analys\u233?s, pris en compte. Les objectifs, eux. devront \u234? tre formalis\u233?s. Ils constituent les exigences de plus haut niveau. Les contraintes ne sont qu'une forme particuli\u232?re d'exigences, pr\u233?sent\u233? es \u171? en creux \u187?. Une t\u226?che importante consiste \u224? identifier les diff\u233?rents acteurs du projet (les parties prenantes, en particulier les repr\ u233?sentants des futurs utilisateurs), \u224? conna\u238?tre les enjeux les plus importants pour chacun d'eux, \u224? \u233?tablir un dialogue, \u224? les faire participer au projet d'\u233?laboration. \u8364?D\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Recueillir les besoins est une t\u226?che beaucoup plus complexe qu'il n'y para\u238?t. Les besoins sont rarement \u224? la surface du sol2. Ils sont en g\u233?n\u233?ral cach\u233?s, et diverses techniques permettent de les \u171? d\u233?terrer \u187? : les r\u233?unions de travail, les interviews des utilisateurs, l'observation directe, la lecture de documents (y compris d'autres cahiers des charges). Il n'y a pas de technique plus efficace qu'une autre, tout d\u233?pend du contexte, et c'est une combinaison de techniques qui permettra un recueil complet. Ainsi recueillies, les exigences seront analys\u233? es. Analyser les exigences, c'est les faire passer par des < filtres \u187?, les examiner pour d\u233?tecter les exigences manquantes, contradictoires, les incoh\ u233?rences \u224? divers niveaux. Une analyse efficace des exigences permet de toujours rester au meilleur niveau de d\u233?tail. Le niveau de d\u233?tail n\u233? cessaire d\u233?pend des intentions du projet. Par exemple, on n'exprimera pas le m\u234?me niveau de d\u233?tails pour un projet de d\u233?veloppement sp\u233? cifique et un choix de logiciel sur \u233?tag\u232?re. De plus, il faudra \u233? tablir des priorit\u233?s entre exigences. Il va falloir ensuite r\u233?diger les exigences, g\u233?n\u233?ralement sous forme de cahier des charges. La forme peut \ u234?tre textuelle ou graphique. Il n'y a pas de forme a priori meilleure qu'une autre. Tout d\u233?pend de celui qui va lire le cahier des charges, l'important \ u233?tant de donner une vision et une compr\u233?hension partag\u233?es des exigences. La repr\u233?sentation graphique fait appel \u224? des techniques de mod\u233?lisation des donn\u233?es ou des traitements informatiques. Vu du r\u233? dacteur, le cahier des charges n'est qu'un lieu de stockage des exigences. Mais les exigences \u233?voluent. G\u233?rer les \u233?volutions fait \u233?galement partie de ce qu'il est convenu d'appeler l'ing\u233?nierie des exigences. \u192? un instant donn\u233?, une version du cahier des charges peut \u234?tre en cours d'utilisation (par les \u233?quipes de concepteurs, par exemple), une autre en cours d'\u233?laboration. Ce sont alors des techniques de gestion des versions et de la configuration qui seront utilis\u233?es. Enfin, les exigences devront \u234? tre valid\u233?es par les diff\u233?rentes parties prenantes. Cette validation se fait \u224? plusieurs niveaux. Les futurs utilisateurs valideront souvent au fur et \u224? mesure de la r\u233?daction, le donneur d'ordre validera g\u233?n\u233? ralement l'ensemble du document. Le suivi de la validation des exigences n'est donc pas une t\u226?che facile. Description formelle du processus global Formellement, l'ing\u233?nierie des exigences comporte deux types d'activit\u233?s : \u8226? le d\u233?veloppement des exigences, qui consiste \u224? d\u233?finir les besoins et \ u224? \u233?laborer un cahier des charges ; CD 2. En anglais, le terme utilis\u233? pour le recueil est eli\u224?tation. Il peut se traduire par \u171?extraction*\par\ pard\plain\hyphpar} { Chapitre 5 - La d\u233?marche \u8226? la gestion des exigences, qui consiste \u224? g\u233?rer les changements et les \u233?volutions des exigences dans le temps. Le d\u233?veloppement des exigences comporte quatre \u233?tapes tr\u232?s fortement imbriqu\u233?es selon un processus cyclique : \u8226? le recueil, qui consiste \ u224? faire exprimer les besoins et \u224? rechercher les besoins d\u233?j\u224? exprim\u233?s ; \u8226? l'analyse, qui consiste \u224? examiner les exigences sous diff\u233?rentes facettes, et \u224? maintenir la coh\u233?rence entre les exigences ; \u8226? la sp\u233?cification, qui consiste \u224? d\u233?crire et documenter les exigences de mani\u232?re \u224? la fois formelle et compr\u233? hensible par toutes les parties prenantes -. \u8226? la validation, qui consiste \ u224? obtenir, de la part de toutes les parties prenantes, un accord formel sur les exigences sp\u233?cifi\u233?es. Comme on peut le voir, il y a des boucles de r\ u233?troaction entre les quatre activit\u233?s. Recueil f \u9830? ! Analyse 1 Sp\ u233?cification \u9830? Validation \u8226?CdC Figure 5-3 : Le processus global Le d\u233?coupage en quatre \u233?tapes permet de mieux comprendre le m\u233?tier de d\u233?finition des exigences. En pratique, ces \u233?tapes sont imbriqu\u233?es dans le temps, chaque \u233?tape contenant une partie des autres. Par exemple, lors d'une m\u234?me entrevue avec un utilisateur du futur produit (activit\u233? de l'\ u233?tape de recueil), on peut \u233?couter les besoins (recueil), tenter de comprendre comment ce besoin se rattache aux objectifs de la direction (analyse), essayer de reformuler le besoin de mani\u232?re claire (sp\u233?cification) et demandera l'utilisateur son opinion sur cette formulation (validation). Le processus en pratique Nous avons vu qu'en pratique les quatre activit\u233?s de recueil, d'analyse, de sp\u233?cification et de validation, ne sont ni lin\u233? aires ni bien distinctes. \u192? ces quatre activit\u233?s s'ajoute la gestion des \u233?volutions des exigences, qui en r\u233?alit\u233? commence d\u232?s le d\ u233?but du recueil. S'y ajoute une activit\u233? en amont de d\u233?finition des objectifs (en toute rigueur, c'est une phase O\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie 3. Voir au chapitre 16 un mod\u232?le de pro- pr\u233? c\u233?dente du cycle de vie, mais dans tous les cas, elle devra \u234?tre d\u233? clin\u233?e pendant la phase d'exigences). Et, cela va sans dire, une activit\u233? transverse de gestion de projet. Il n'existe cependant pas un mod\u232?le unique de processus3, autrement dit aucune < recette de cuisine \u187? qui nous indiquerait les t\u226?ches \u224? mener \u224? \u244?mq^it\u249?t\u232?tie cnaclue \u233?laPe- et dans ^uel ordre- adapt\u233?. Chaque projet est diff\u233?rent, et la premi\ u232?re t\u226?che de l'\u233?quipe charg\u233?e de d\u233?finir les besoins consiste \u224? ajuster le processus de d\u233?finition aux contraintes propres au projet. Ce qui est cependant certain, et v\u233?rifi\u233? dans la pratique, c'est que les \u233?tapes en amont (la pr\u233?paration), si elles sont bien men\u233?es, facilitent grandement la d\u233?finition des besoins proprement dite (la production du cahier des charges). En d'autres termes, d\u233?finir les besoins devrait \u234? tre une activit\u233? < descendante \u187? [lop-down) dont les \u233?tapes sont les suivantes : \u8226? \u201?tapes en amont (pr\u233?paration de l'\u233?laboration du cahier des charges) : - d\u233?finir le concept et pr\u233?ciser les objectifs, - analyser les parties prenantes : r\u244?les, responsabilit\u233?s. - d\u233?finir les cat\u233?gories (classes) d'utilisateur. - s\u233?lectionner, dans chaque cat\ u233?gorie, les repr\u233?sentants des utilisateurs. - choisir, en fonction du contexte et des contraintes, les techniques de recueil \u224? mettre en place, - d\ u233?finir les contours du futur produit (p\u233?rim\u232?tre). - d\u233?finir les \u233?changes entre le futur produit (vu comme une bo\u238?te noire) et le \ u171? monde ext\u233?rieur \u187?, - identifier les cas d'utilisation m\u233?tier [business use cases), - \u233?tablir des priorit\u233?s entre cas d'utilisation, - s\u233?lectionner les cas d'utilisation qui seront informatis\u233?s. \u8226? \ u201?tapes de d\u233?finition des besoins (production du cahier des charges) : - d\ u233?crire les cas d'utilisation. - d\u233?crire les exigences non fonctionnelles, - d\u233?crire les contraintes. - mod\u233?liser les donn\u233?es. - d\u233?finir les exigences fonctionnelles, - passer en revue les sp\u233?cifications d'exigences. - d\u233?velopper, si n\u233?cessaire, des maquettes. - d\u233? velopper, si n\u233?cessaire, des prototypes d'une partie du futur syst\u232?me. O\ par\pard\plain\hyphpar} { Chapitre 5 - La d\u233?marche - sp\u233?cifier pr\u233?cis\u233?ment les exigences fonctionnelles dans le cahier des charges, - faire valider le cahier des charges. \ u8226? \u201?tapes transverses : - g\u233?rer les demandes de changement des exigences, - g\u233?rer l'\u233?quipe de d\u233?finition des exigences, - planifier et g\u233?rer les groupes de travail de recueil, d'analyse ou de validation des exigences. - g\u233?rer le projet (co\u251?ts, d\u233?lais, relation avec le donneur d'ordres). Check-list La liste des t\u226?ches \u224? effectuer vue au paragraphe pr\u233?c\u233?dent peut servir de check-list Iorsde l'\u233? tablissement d'un plan-projet pour l'\u233?laboration d'un cahier des charges.\par\ pard\plain\hyphpar} { Chapitre 6 D\u233?finir le concept et les objectiFs Cette \u233?tape pr\u233?alable de d\u233?finition du concept et des objectifs est cruciale pour la suite. C'est un miniprocessus de d\u233?finition des exigences, en plus dense, plus rapide, et au plus haut niveau. Son livrable est une sorte de cahier des charges en concentr\ u233?. Il conditionne la r\u233?ussite du projet. Elle doit donc \u234?tre men\ u233?e avec le plus grand soin. Une activit\u233? pr\u233?alable indispensable La premi\u232?re activit\u233? \u224? laquelle doit s'attaquer l'\u233?quipe en charge de d\u233?finir les besoins consiste \u224? d\u233?finir le concept et ses objectifs du produit, les objectifs du cahier des charges lui-m\u234?me, ainsi que les exigences au plus haut niveau. Ces t\u226?ches seront men\u233?es en parall\ u232?le, car elles sont pratiquement indissociables. En effet, elles permettent de r\u233?pondre aux quatre questions suivantes : \u8226? Concept du produit : en quoi consistera le produit ? De quoi sera-t-il fait ? En quoi se distinguera-t-il des produits existants, qu'ils soient concurrents ou compl\u233?mentaires ? \u8226? Objectifs du produit : quelle utilisation sera faite du produit ? Dans quel but ? Pour servir qui ? Pour servir \u224? quoi ? Pour gagner quoi ? \u8226? Objectifs du cahier des charges : que veut-on faire du cahier des charges ? Choisir un produit sur \u233?tag\u232?re, d\u233?velopper une application sp\u233?cifique, acqu\u233? rir un progiciel, le param\u233?trer et le d\u233?ployer ? \u8226? Exigences au plus haut niveau : quelles sont les quatre ou cinq grandes fonctions que le produit doit remplir ? Quelles sont les deux ou trois exigences non fonctionnelles (qualit\ u233?, performance) auxquelles le produit doit r\u233?pondre en priorit\u233? ? Quelles seront \u233?ventuellement les contraintes techniques incontournables ?\ par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Cette \u233?tape fait d\u233?j\u224? appel aux techniques classiques de recueil, d'analyse, de sp\u233?cification et de validation des exigences, mais \u233?tant donn\u233? son caract\u232?re strat\u233?gique, nous d\u233?crivons ces techniques sp\u233?cifiquement adapt\u233?es \u224? cette \u233? tape pr\u233?paratoire plus en d\u233?tail dans les paragraphes qui suivent. Objectifs, p\u233?rim\u232?tre et parties prenantes 1. Cadrage La litt\u233?rature anglophone parle de document de \u171? vision et port\u233?e \u187? (vision and scope). Lors de cette \u233?tape pr\u233?alable1, il s'agit de d\u233?finir : \ u8226? l'objectif; \u8226? le p\u233?rim\u232?tre, ou champ de l'\u233?tude ; \ u8226? les parties prenantes. Par parties prenantes nous entendons toutes les personnes ou organisations impact\u233?es (positivement ou n\u233?gativement) par l'introduction du syst\u232?me ou susceptibles d'influencer son choix, son d\u233? veloppement ou son d\u233?ploiement. Ces trois activit\u233?s sont fortement interd\u233?pendantes (figure 6-1). Toutes les exigences formalis\u233?es devront \ u234?tre align\u233?es sur l'objectif pr\u233?c\u233?demment d\u233?fini. Mais qui va exprimer l'objectif ? En grande partie, le donneur d'ordres. Cependant, en tant que personne physique, il va rarement exprimer un objectif de mani\u232?re formelle. Il s'appuiera sur des experts, il devra tenir compte d'autres parties prenantes (actionnaires, associations, syndicats, soci\u233?t\u233?s savantes...). Or, l'influence de ces parties prenantes sur l'objectif d\u233?pend du p\u233?rim\ u232?tre. Figure 6-1 : Trois activit\u233?s pr\u233?alables indissociables Ces trois activit\u233?s sont pr\u233?sent\u233?es dans les paragraphes qui suivent. Le document r\u233?sultant de ces activit\u233?s est un document de cadrage. in\par\ pard\plain\hyphpar} { Chapitre 6 - D\u233?pnir le concept et les objectifs Recueillir les objectiFs Les objectifs : des exigences au plus haut niveau Les objectifs du syst\u232?me (\u224? choisir, \u224? d\u233?velopper ou \u224? mettre en \u339?uvre) ne sont rien de plus que des exigences de haut niveau. Voici un exemple d'objectif, pour un logiciel de prescription de m\u233?dicaments : Assurer la s\u233?curit\u233?, la tra\u231?abilit\u233? et la qualit\u233? des prescriptions conform\u233?ment \u224? l'arr\u234?t\u233? du 31 mars 1999. Cet objectif contient en r\u233?alit\u233? trois exigences de tr\u232?s haut niveau (s\u233?curit\u233?, tra\u231?abilit\u233? et qualit\u233? des prescriptions de m\u233?dicaments). Chacune d'elles sera d\ u233?clin\u233?e en une multitude d'exigences fonctionnelles (quel sc\u233?nario suit le m\u233?decin qui prescrit, quelles informations doivent \u234?tre saisies, comment le logiciel v\u233?rifie les interactions m\u233?dicamenteuses) et non fonctionnelles (le temps d'affichage du nom du m\u233?dicament, la pr\u233?cision des informations affich\u233?es) ainsi que des contraintes techniques. Comme on se l'imagine ais\u233?ment, les objectifs d'aussi haut niveau doivent \u234?tre formul\u233?s avec le plus grand soin, puis valid\u233?s au plus haut niveau hi\ u233?rarchique possible, car ils conditionnent des pans entiers du syst\u232?me \ u224? venir. Pr\u233?ciser et formaliser l'objectif Quelle sera la finalit\u233? du syst\u232?me ? S'agit-il de choisir un logiciel sur \u233?tag\u232?re, ou bien de d\u233?velopper un logiciel sp\u233?cifique ? La forme, le contenu et la structure du futur cahier des charges en d\u233?pendent, et donc la fa\u231?on dont il sera \ u233?labor\u233?. Le co\u251?t de son \u233?laboration peut varier dans un rapport de un \u224? dix, le co\u251?t du logiciel install\u233? de un \u224? cent. Il est donc de premi\u232?re importance de pr\u233?ciser, en collaboration avec le donneur d'ordre, l'objectif \u224? atteindre. Cet objectif sera formul\u233? sur une page maximum, et approuv\u233? par le donneur d'ordre. On peut formaliser l'objectif sous une forme finalit\u233?-avantage-mesure. Par exemple : \u8226? finalit\u233? : assurer la s\u233?curit\u233? des prescriptions de m\u233?dicaments ; \u8226? avantage : diminution du nombre d'erreurs m\u233?dicamenteuses ; \u8226? mesure : diminution de 20 % du nombre d'erreurs. En fonction du contexte, on pourra conserver cette forme de pr\u233?sentation dans le document, ou se servir de cette formulation uniquement pour recueillir l'objectif aupr\u232?s du donneur d'ordres et pr\u233?f\u233?rer une pr\u233?sentation plus litt\u233?raire pour le document.\ par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Techniques de recueil : r\u233?unions et interviews Les techniques pour recueillir ces objectifs et besoins \u224? haut niveau sont les r\u233?unions et les interviews. Il peut s'agir d'une r\u233?union de lancement \ u224? l'initiative du donneur d'ordre, de r\u233?unions avec les repr\u233?sentants des utilisateurs, ou d'interviews individuelles. Quand on est dans le flou, que les r\u244?les et responsabilit\u233?s sont mal d\u233?finis, que les objectifs ne sont pas clairs, l'interview est la technique la plus efficace. \u192? la fin de l'interview, on demandera \u224? la personne interview\u233?e quelles autres personnes sont susceptibles de nous fournir des informations compl\u233?mentaires. Cette technique permet de d\u233?finir de proche en proche les objectifs et le concept, en croisant les informations obtenues au cours des diff\u233?rentes entrevues. D\u233?terminer le p\u233?rim\u232?tre Le domaine d'application : l'utilit\u233? du produit \u192? qui et \u224? quoi servira le futur syst\u232?me, et pour quoi faire ? Ces questions vont d\u233?terminer le domaine d'application. Il est important de le conna\u238?tre, car il nous permettra de d\u233?terminer quels sont les principaux acteurs ; par exemple, les experts du domaine chez qui on va recueillir des besoins, et les futurs utilisateurs. Le domaine large (par exemple, bancaire, sant\u233?, industrie automobile) est simple \u224? d\u233? terminer. Mais il s'agit d'aller un peu plus dans le d\u233?tail, en partant de l'objectif. Prenons un exemple : si l'objectif est de \u171? g\u233?rer de mani\ u232?re centralis\u233?e les demandes de subventions des jeunes cin\u233?astes expatri\u233?s \u187?. on s'aper\u231?oit que l'on aura affaire, non \u224? un, mais \u224? plusieurs experts de domaines d'expertise tr\u232?s diff\u233?rents. Si l'on ne veut pas tomber dans le pi\u232?ge de la d\u233?composition fonctionnelle (description des diff\u233?rentes fonctions du produit), il est essentiel de se concentrer sur la question \u8364? \u224? quoi sert le produit, \u224? qui, pour quoi faire ? \u187?. On a obtenu, lors de la d\u233?termination des objectifs, des r\u233?ponses comme : g\u233?rer au quotidien les demandes de subvention. Savoir o\ u249? et par qui sont g\u233?r\u233?es des demandes de subvention de ce type permettra de d\u233?limiter le domaine d'application. Le p\u233?rim\u232?tre : les limites du produit \u192? ce stade, il n'est pas question de d\u233?crire le syst\ u232?me \u224? l'\u233?tude lui-m\u234?me. Ce qu'il est possible de d\u233? terminer, c'est son p\u233?rim\u232?tre : quelles sont les limites du produit, et quelles sont les interfaces qui permettent de communiquer avec l'ext\u233?rieur. Ce monde ext\u233?rieur est fait de logiciels, de\par\pard\plain\hyphpar} { Chapitre 6 - D\u233?pnir le concept et les objectifs mat\u233?riels et d'utilisateurs avec lesquels le syst\u232?me \u224? l'\u233?tude va communiquer. Il est essentiel de d\u233?crire le p\u233?rim\u232?tre avec le plus grand soin, sous forme textuelle. Ce texte, qui devra faire l'objet d'un consensus entre toutes les parties prenantes, sera soumis \u224? l'approbation du donneur d'ordre et des principales parties prenantes. D\u233?crire le p\u233?rim\u232?tre est un exercice difficile et un investissement tr\u232?s rentable. L'\u233?laboration de ce texte va permettre, non seulement de clarifier les concepts, mais \u233?galement de d\ u233?couvrir des contraintes, de d\u233?terminer par la suite les parties prenantes, et de pr\u233?ciser l'objectif. Le diagramme de contexte Le diagramme de contexte est un outil de communication int\u233?ressant, et il peut \u234?tre \ u233?labor\u233? d\u232?s cette premi\u232?re \u233?tape, quitte \u224? \u234?tre affin\u233? par la suite. Un diagramme de contexte n'est ni plus ni moins qu'un diagramme de flux \u224? un niveau tr\u232?s macroscopique, o\u249? le syst\u232?me \u224? l'\u233?tude est au centre. Ce diagramme peut \u234?tre utilis\u233? pour d\ u233?crire l'existant (diagramme de contexte m\u233?tier) ou pour situer le futur syst\u232?me dans ses interactions avec le monde ext\u233?rieur (diagramme de contexte produit). Outre sa valeur p\u233?dagogique comme outil de communication, il sera tr\u232?s utile lors de l'\u233?tape de recueil des exigences pour d\u233? terminer les cas d'utilisation \'5c'7busecases). La figure 6-2 repr\u233?sente le diagramme de contexte (ici simplifi\u233?) pour un syst\u232?me de prise en charge m\u233?dicamenteuse pour un centre hospitalier. M\u233?decin -Prescription rProscription Avis pharmaceutique ^ Pharmacien Avis pharmaceutique /l \u201?l\u233? ments de prescription Informations patient Validation de l'administration Informations m\u233?dicament Informations^ patient Informations patient \u201?l\ u233?ments de prescription" Dossier patient Figure &2 : Diagramme de contexte\par\ pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Analyser les parties prenantes Savoir qui a int\u233? r\u234?t \u224? quoi et quand ~~ On appelle partie prenante2 toute personne, groupe de personnes ou orga- . . . ' nisation qui a un int\u233?r\u234?t (positif ou n\ u233?gatif) dans le projet ou le produit. holder. Oui paye pour le d\u233? veloppement, la mise en service, l'exploitation du futur logiciel ? Oui va le r\ u233?aliser ? Qui va l'utiliser ? Qui va conduire le projet de r\u233?alisation ? Et... qui va essayer de torpiller le projet \u224? tout prix ? Il est important de le savoir d'avance. On identifiera les personnes ou les profils (par exemple, assistante administrative) ayant un int\u233?r\u234?t dans l'\u233?laboration du cahier des charges ou dans les applications qui en font l'objet, le r\u244?le que ces personnes pourront jouer pour l'\u233?laboration des cahiers des charges (par exemple, expert, conseiller, relecteur, futur utilisateur), leurs r\u244?les, int\ u233?r\u234?ts et objectifs. Cette \u233?tape d'analyse a une faible visibilit\ u233? \u224? court terme et un fort impact \u224? long terme, ce qui fait qu'il est facile de la rater. \u192? d\u233?faut de cette analyse, on court le risque de se focaliser sur quelques partenaires, de passer \u224? c\u244?t\u233? de besoins importants, et d'occulter des pans entiers du cahier des charges. L'analyse des parties prenantes va permettre, en temps voulu, de fixer les priorit\u233?s entre des besoins tr\u232?s divers et parfois contradictoires, d'arbitrer, de g\u233?rer les conflits, et surtout, de conna\u238?tre le v\u233?ritable objectif, de savoir si (et quand) on s'en \u233?loigne, de mani\u232?re \u224? corriger les \u233? carts. Liste des parties prenantes Une premi\u232?re liste des parties prenantes a \u233?t\u233? \u233?tablie lors de la planification du projet de d\u233?finition des besoins. Il s'agit maintenant de dresser une liste compl\u232?te et d\u233? taill\u233?e et de n'oublier personne. La liste peut \u234?tre tr\u232?s diff\u233? rente d'un projet \u224? l'autre. Voici \u224? titre indicatif une liste, \u224? affiner pour chaque projet : \u8226? le donneur d'ordres, ou ma\u238?trise d'ouvrage strat\u233?gique, propri\u233?taire du produit, c'est-\u224?-dire celui qui paye pour le produit ; \u8226? la ma\u238?trise d'ouvrage op\u233?rationnelle, qui repr\u233?sente les utilisateurs ; \u8226? les utilisateurs, qui vont travailler avec le produit, directement ou indirectement (il faudra d\u233?tailler les diff\u233?rents profils) ; \u8226? l'assistant \u224? ma\u238?trise d'ouvrage, analyste ou consultant, qui va recueillir, analyser et sp\u233?cifier les besoins, et interagir avec l'\u233?quipe de d\u233?veloppement ; \u8226? les concepteurs, architectes, r\u233?alisateurs, qui vont recevoir le cahier des charges et devront l'interpr\u233?ter et le r\u233?aliser ; \u8226? l'\u233?quipe de test et de validation, qui va v\u233?rifier que le produit d\u233?velopp\u233? respecte le cahier des charges ;\par\pard\plain\hyphpar} { Chapitre 6 - D\u233?pnir le concept et les objectifs \u8226? les personnes charg\ u233?es de r\u233?diger la documentation du produit, conform\u233?ment aux sp\u233? cifications ; \u8226? les concepteurs et r\u233?alisateurs d'autres produits, qui vont interagir avec le syst\u232?me \u224? l'\u233?tude ; \u8226? les personnes charg\u233?es du support technique ou fonctionnel du produit \u224? choisir ou \ u224? d\u233?velopper ; \u8226? le marketing du produit ; \u8226? les juristes; \ u8226? les organismes de normalisation (leurs repr\u233?sentants) ; \u8226? les experts m\u233?tier ; \u8226? les experts techniques. Cette liste n'est pas exhaustive. Elle sera nominative, du moins en ce qui concerne les parties prenantes \u224? fort pouvoir de d\u233?cision. La grille impact-pouvoir-influence Apr\u232?s avoir dress\u233? la liste des parties prenantes, on doit \u233?valuer le pouvoir, l'int\u233?r\u234?t et l'influence de chacun d'eux, de mani\u232?re \u224? mieux orienter les efforts de recueil des exigences. Il y a plusieurs mani\u232?res de repr\u233?senter l'influence des parties prenantes sur le projet (grilles pouvoir- influence, pouvoir-impact, pouvoir-int\u233?r\u234?t, etc.) dont chacune a ses avantages. La mani\u232?re la plus utile semble \u234?tre la grille impact-pouvoir- influence : \u8226? Impact : dans quelle mesure la personne, le groupe ou le profil utilisateur sera-t-il impact\u233? (dans son travail, dans son pouvoir) par l'introduction du syst\u232?me ? \u8226? Pouvoir : quel est son pouvoir d'influence ? \u8226? Influence : cette influence sera-t-elle positive, n\u233?gative ou neutre ? Par exemple, le donneur d'ordres a beaucoup de pouvoir, une influence positive sur le projet et sera g\u233?n\u233?ralement fortement impact\u233?. Une association professionnelle ou un syndicat peuvent avoir beaucoup de pouvoir (positif ou de nuisance) sans \u234?tre directement impact\u233?s. A contrario, un utilisateur final a g\u233?n\u233?ralement beaucoup d'int\u233?r\u234?t et peu de pouvoir (figure 6-3). L'utilit\u233? d'une telle grille est multiple : \u8226? conna\u238?tre les int\u233?r\u234?ts de chaque partie prenante, ce qui permet d\ u233?j\u224? de d\u233?tecter des exigences : \u8226? en fonction de l'impact et du pouvoir, avoir une premi\u232?re id\u233?e des priorit\u233?s entre exigences ; \ u8226? d\u233?tecter les risques potentiels, de mani\u232?re \u224? les limiter ; \ u8226? savoir qui informer, quand, et de quelle mani\u232?re ; \u8226? d\u233? tecter les freins \u224? l'avancement du projet.\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Fort voir =3 o IJ- ible u. Q Actionnaires Q Psychologue \u169?DG 0 M\u233?decins 0 Comptables ^ Infirmiers A Support ^ technique FaWe Impact Figure 6-3 : Grille impoct-pouvoir-influence Fort Grille de questionnement La grille de questionnement suivante peut servir de trame (par exemple, lors d'une interview) pour la d\u233?termination des objectifs, du contexte, et des parties prenantes, et pour anticiper les techniques \u224? utiliser : \u8226? Demandeur. Oui est \u224? l'origine de la demande ? \u8226? Motivation. Qu'est-ce qui. d'apr\u232?s vous, a motiv\u233? la demande ? \u8226? Objectif. \u219?uel est l'objectif de l'application ? Quel est l'objectif du cahier des charges ? Que veut-on obtenir ? Quel probl\u232?me veut-on r\u233?soudre ? \ u8226? Crit\u232?res. Comment saurons-nous que l'objectif est atteint ? \u8226? B\ u233?n\u233?fices attendus. Qu'esp\u232?re-ton gagner avec ce projet ? \u8226? Acteurs. Qui va utiliser le produit ? Qui va payer ? Qui va d\u233?velopper, maintenir, exploiter ? Quels sont les d\u233?cideurs ? \u8226? Contenu. Que va-t-on mettre dans le cahier des charges ? Que va-t-on exclure : les fonctions ? les exigences non fonctionnelles (qualit\u233?, performances) ? les contraintes techniques ? les contraintes de projet ? les contraintes d'exploitation ? \u8226? Port\u233?e. Quelles fonctions va-t-on d\u233?crire dans le cahier des charges (port\u233?e fonctionnelle) ? Qu'est-ce qui sera englob\u233? par le cahier des charges : l'entreprise enti\u232?re, le syst\u232?me, un composant du syst\u232?me (port\u233?e de conception) ?\par\pard\plain\hyphpar} { Chapitre 6 - D\u233?pnir le concept et les objectifs \u8226? Niveau. \u192? quel niveau d'observation va-t-on se placer : un niveau strat\u233?gique, au niveau utilisateur, ou au niveau tr\u232?s d\u233?taill\u233? ? Quel niveau de d\u233?tail ou d'abstraction veut-on obtenir ? \u8226? Usage. Que veut-on en faire du cahier des charges : choix de progiciel, d\u233?veloppent sp\u233?cifique... ? \u8226? Parties prenantes. Oui sera le correspondant de la personne charg\u233?e de r\u233? diger le cahier des charges ? Quelles seront les autres parties prenantes ? On adaptera ces questions au contexte et aux interlocuteurs. On pourra poser toutes les questions \u224? chaque interlocuteur, de mani\u232?re \u224? se faire une id\ u233?e des demandes, mais il est \u233?vident que le poids des r\u233?ponses sera diff\u233?rent en fonction des interlocuteurs. Les utilisateurs ne sont pas les payeurs. Plus que jamais, la difficult\u233? de cet exercice de questionnement est de ne pas trop descendre dans les d\u233?tails. Il ne s'agit pas. dans cette \u233? tape pr\u233?liminaire, de faire le cahier des charges par anticipation, mais d'apporter une < vision \u187?, une conceptualisation de ce que sera le futur syst\ u232?me. Tableau des parties prenantes Gr\u226?ce \u224? la grille impact-pouvoir- influence et suite aux informations recueillies au moyen de la grille de questionnement, on peut \u233?tablir le tableau des parties prenantes. La grille du tableau 6-1 est donn\u233?e en exemple. Notons que les rubriques des diff\u233? rentes colonnes peuvent varier selon le contenu, la port\u233?e, le niveau et l'usage du cahier des charges (voir paragraphe pr\u233?c\u233?dent). Tableau 6-1 - GriHe des parties prenantes Partie prenante Actionnaire DG M\u233?decins Infirmiers R\u244?le Finance le projet MOA strat\u233?gique Utilisateurs directs Prescripteurs Utilisateurs directs Administrent les m\u233?dicaments Objectifs Efficience Prescrire sans perte de temps Aide \u224? la prescription Probl\u233?matique Co\ u251?t du d\u233?veloppement Respect de la r\u233?glementation Erreurs m\u233? dicamenteuses Besoins particuliers Facilit\u233? d'utilisation Disponibilit\u233? de l'application Apport d'expertise Non Non Oui Oui\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Le document de cadrage Il est important de formaliser l'objectif, le champ de l'\u233?tude et le tableau des parties prenantes dans un document unique, et faire valider ce document par les parties prenantes les plus importantes (les d\u233?cideurs). Une fois valid\u233?, un tel document a plusieurs vertus : \u8226? C'est un cahier des charges en condens\u233?. \u8226? C'est une aide \u224? la gestion de projet : il permet de chiffrer l'effort n\u233?cessaire pour \u233?laborer le reste du cahier des charges, \u224? trouver les experts, \ u224? planifier. \u8226? Il peut faire fonction de lettre de mission pour l'analyste. Le document de cadrage est le livrable de la phase de pr\u233?paration du processus. Il contiendra donc les \u233?l\u233?ments suivants : \u8226? le concept ; \u8226? les objectifs ; \u8226? les parties prenantes : r\u244?les, responsabilit\u233?s ; \u8226? les cat\u233?gories (classes) d'utilisateur ; \ u8226? les contours du futur produit et \u233?changes avec l'ext\u233?rieur : diagramme de contexte ; \u8226? les cas d'utilisation m\u233?tier \'5c'7bbusiness use cases) dans leurs grandes lignes, par priorit\u233? ; \u8226? les cas d'utilisation qu'on a d\u233?cid\u233? d'informatiser. Check-list La check-list suivante permet de s'assurer que les conditions sont r\u233?unies pour r\u233?ussir le projet, qu'il s'agisse de choisir et mettre en \u339?uvre un progiciel ou de d\ u233?velopper une application. Si toutes les conditions ne sont pas r\u233?unies, \ u233?laborer un cahier des charges sera de peu d'utilit\u233?. \u8226? Les objectifs sont-ils clairement sp\u233?cifi\u233?s ? \u8226? A-t-on identifi\u233?, analys\u233? et formalis\u233? la liste des parties prenantes ? \u8226? Les objectifs sp\u233?cifi\u233?s sont-ils approuv\u233?s par les parties prenantes ? \ u8226? Les objectifs sont-ils r\u233?alistes, en termes de d\u233?lais, de charge, de budget et aussi de risques ? \u8226? A-t-on analys\u233? les risques ? \u8226? Y-a-t-il consensus entre parties prenantes sur le p\u233?rim\u232?tre ? \u8226? Le p\u233?rim\u232?tre a-t-il \u233?t\u233? formellement approuv\u233? par le donneur d'ordres ? \u8226? Les parties prenantes se sont-elles engag\u233?es \u224? participer ?\par\pard\plain\hyphpar} { Chapitre 7 Planifier le projet d'\u233?laboration \u201?laborer un cahier des charges est un projet en soi. Dans ce cadre, il n\u233?cessite une v\u233?ritable planification. Apr\u232?s avoir d\u233?fini les parties prenantes, le champ et l'objectif, nous avons en main tous les \u233?l\u233?ments pour \u233?laborer le plan projet. Celui-ci consiste \u224? d\u233?terminer les techniques, m\u233?thodes et outils \u224? mettre en \u339?uvre pour mener \u224? bien le projet d'\u233? laboration du cahier des charges, avec un maximum d'efficacit\u233? pour un minimum d'effort. Le livrable de cette \u233?tape pr\u233?alable est un plan projet. Le plan projet Ce document vient en compl\u233?ment du document de cadrage et sert de feuille de route \u224? l'\u233?quipe d'\u233?laboration du cahier des charges. L'ensemble forme le \u171? cahier des charges du projet de cahiers des charges \ u187?. Le plan projet contient un devis estimatif des co\u251?ts et d\u233?lais, ainsi qu'une description br\u232?ve (une ou deux pages) de l'organisation et de la m\u233?thode de travail : taille de l'\u233?quipe, moyens \u224? mettre en \u339? uvre, formations \u224? pr\u233?voir, circuit de l'information, fr\u233?quence des r\u233?unions, validation des documents, en fonction d'un certain nombre de param\ u232?tres (taille fonctionnelle, maille du cahier des charges... ). Cette mani\ u232?re descendante [top-down) de proc\u233?der pr\u233?sente plusieurs avantages : \u8226? \u192? la fin de cette \u233?tape, vous disposez de tous les outils n\u233? cessaires \u224? l'\u233?laboration du cahier des charges. \u8226? Vous avez une id\u233?e pr\u233?cise des param\u232?tres du projet : co\u251?t, d\u233?lais, qualit\u233?, ressources n\u233?cessaires. \u8226? Vous pouvez ainsi n\u233?gocier avec le donneur d'ordres sur des bases solides.\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie Les paragraphes qui suivent d\u233?taillent les activit\u233?s de cette \u233?tude pr\u233?liminaire : cadrer la m\u233?thodologie et \u233?laborer le plan projet. Cadrer la m\u233?thodologie D\u233?finir le processus global Le processus de recueil des besoins et d'\u233?laboration du cahier des charges peut varier d'un cas \u224? l'autre. Une bonne pratique consiste \u224? d\u233?crire ce processus et l'encha\u238?nement de chacune de ses activit\ u233?s (recueil, analyse, sp\u233?cification, validation, gestion) selon un sch\ u233?ma de processus d\u233?taill\u233?. Cette \u233?tape est utile, voire indispensable, lorsque l'\u233?laboration du cahier des charges est faite par un consultant externe. Dans ce cas. il doit d\u233?crire sch\u233?matiquement sa m\ u233?thode de travail dans sa proposition technique et commerciale. 1. Diagrammes: voir au chapitre 10. 2. Ces techniques sont d\u233?crites dans les chapitres 7 \ u224? 14. 3. Outils : voir au chapitre 19. Choisir les mod\u232?les de repr\u233? sentation \u224? utiliser On choisira les mod\u232?les1 de repr\u233?sentation des exigences qui seront utilis\u233?s pour l'\u233?laboration des cahiers des charges (par exemple, cas d'utilisation, diagrammes de s\u233?quence...). Le choix se fera en fonction du domaine (technique,administration, banque...), des normes et standards dans l'entreprise, mais aussi en fonction de la sociologie des parties prenantes. En effet, en fonction des milieux professionnels, les personnes sont plus ou moins sensibles \u224? une repr\u233?sentation plut\u244?t qu'\u224? une autre. D\u233?terminer et adapter les techniques Il n'y a pas une m\u233?thode unique de gestion des exigences. Les techniques2 classiques d'acquisition, d'analyse, de sp\u233?cification, de validation et de gestion des exigences devront \u234?tre adapt\u233?es au contexte, aux interlocuteurs, au type de syst\u232?me \ u224? l'\u233?tude. \u201?tudier les outils On fera une analyse comparatived'outils3 d'aide \u224? l'\u233?laboration de cahiers des charges et de gestion des exigences. Il s'agira, dans cette \u233?tude de d\u233?finition, de faire un choix d'outils, ou simplement de mieux conna\u238?tre l'offre du march\ u233?, de mani\u232?re \u224? mieux adapter les techniques, d\u233?terminer les profils des intervenants, anticiper sur les co\u251?ts de formation, les charges d'\u233?laboration. o\par\pard\plain\hyphpar} { Chapitre 7 - Planifier le projet d'\u233?laboration \u201?laborer les documents types Pour chaque mod\u232?le de repr\u233?sentation des exigences choisi, on \ u233?laborera le mod\u232?le de document appropri\u233? (mod\u232?le g\u233?n\u233? rique) ; par exemple, mod\u232?le de cas d'usage ( use case). Cet ouvrage donne plusieurs mod\u232?les de documents types, ainsi que des adresses Internet utiles permettant d'en t\u233?l\u233?charger. Identifier et adapter les mod\u232?les Il s'agit de d\u233?terminer, avec la collaboration des parties prenantes les plus impact\u233?es, la structure4 du document final, son niveau (par exemple, niveau strat\u233?gique, niveau de l'utilisateur, ou niveau des sous-fonctions), sa port\ u233?e (organisation, syst\u232?me, sous-syst\u232?me, composant), son contenu dans les grandes lignes (en dehors des exigences fonctionnelles, les autres exigences abord\u233?es). On \u233?laborera le mod\u232?le de document (le template) de cahier des charges. 4. Mod\u232?les de cahiers des charges : voir au chapitre 14. \ u201?laborer le plan projet Identifier les profils utilisateurs Cette activit\u233? fait suite \u224? l'analyse des parties prenantes en la d\u233?taillant en ce qui concerne les profils utilisateurs. On identifiera et analysera les profils utilisateurs types pour le logiciel qui fera l'objet de cahiers des charges, leurs attentes, leurs besoins g\u233?n\u233?riques, les conflits potentiels entre types d'utilisateurs, leur niveau de ma\u238?trise des technologies, etc. Cette activit\ u233? sera affin\u233?e lors de l'\u233?tape de recueil des besoins. \u201?tablir la liste des sources d'exigences Les exigences qui seront formul\u233?es dans les cahiers des charges proviendront de sources diverses : \u233?tudes en amont, \u233? tudes th\u233?oriques, \u233?tude de la concurrence, ... et. bien s\u251?r. les besoins des diff\u233?rentes parties prenantes, en particulier les utilisateurs. On \u233?tablira dans un premier temps la liste des sources possibles d'exigences : tableau comprenant les sources d'exigences, leur utilit\u233?, les techniques de recueil d'exigences, les ressources n\u233?cessaires, la charge de travail relative. Cette liste sera affin\u233?e et d\u233?taill\u233?e lors de l'\u233?tape de recueil.\par\pard\plain\hyphpar} { ie 1 - M\u233?thodologie Estimer les charges et les d\u233?lais Comme pour tout projet, l'estimation des charges et des d\u233?lais est un exercice difficile, \ u224? l'issue incertaine, mais n\u233?anmoins indispensable. La charge d'\u233? laboration d\u233?pend de plusieurs param\u232?tres : \u8226? la facilit\u233? de recueil des besoins : les sources d'exigences et les techniques \u224? utiliser en fonction des sources et de l'objectif \u224? atteindre ; \u8226? la taille fonctionnelle du logiciel \u224? d\u233?finir : nombre de fonctions et leur importance ; \u8226? la destination du cahier des charges : choix d'un progiciel ou d\u233?veloppement d'un logiciel sp\u233?cifique ; \u8226? le niveau de d\u233?tail avec lequel on veut d\u233?crire le produit ; \u8226? la maturit\u233? de l'\u233? quipe de d\u233?veloppement ; \u8226? l'habitude de collaborer entre ma\u238?trise d'ouvrage et ma\u238?trise d'oeuvre ; \u8226? l'exp\u233?rience et l'habilet\u233? de l'assistant \u224? ma\u238?trise d'ouvrage. Toute la suite de cet ouvrage s'attache \u224? optimiser le temps et l'effort d'\u233?laboration du cahier des charges, en minimisant les risques et en am\u233?liorant la qualit\u233?. Identifier les ressources Un projet d'\u233?laboration d'un cahier des charges fait appel \u224? plusieurs comp\u233?tences. Ces diverses comp\u233?tences peuvent \ u234?tre r\u233?unies chez une seule personne et. dans de nombreux cas. un consultant seul peut animer le projet d'\u233?laboration du cahier des charges, en r\u233?alisant plusieurs t\u226?ches : recueil des besoins, animation des groupes de travail, r\u233?daction des sp\u233?cifications, etc. Cependant, pour les projets d'envergure, il sera peut-\u234?tre utile de faire appel, m\u234?me ponctuellement, \u224? des personnes diff\u233?rentes. Le directeur de la mission, ou directeur de projet, d'assistance \u224? la ma\u238?trise d'ouvrage pour l'\ u233?laboration du cahier des charges. C'est le correspondant unique du client. Il d\u233?finit et g\u232?re le projet et anime les interactions entre acteurs. Sans \ u234?tre n\u233?cessairement un expert du domaine d'application. Il suit de bout en bout les op\u233?rations d'\u233?laboration du cahier des charges et y participe en grande partie. L'expert m\u233?tier. C'est un consultant exp\u233?riment\u233? ou senior connaissant le domaine d'application, l'organisation du client. Souvent un ancien utilisateur, il conna\u238?t de pr\u233?f\u233?rence les applications concurrentes de celle \u224? d\u233?velopper. Sans \u234?tre informaticien, il conna\u238?t les \u233?diteurs de logiciels du domaine d'application. O\par\pard\ plain\hyphpar} { Chapitre 7 - Planifier le projet d'\u233?laboration Un consultant expert en gestion des exigences. Il apporte \u224? l'\u233?quipe expertise et conseil m\u233? thodologique. Il conna\u238?t les techniques de recueil des besoins, de mod\u233? lisation, de repr\u233?sentation de l'information. Un expert technique, qui pourra se prononcer sur les contraintes techniques. Identifier et analyser les risques Une bonne pratique consiste \u224? identifier les risques associ\u233?s \u224? l'\u233? laboration de tous les cahiers des charges et de mettre au point des strat\u233? gies d'att\u233?nuation. Il ne s'agit pas ici d'aborder les risques inh\u233? rents \u224? un projet de d\u233?veloppement ou \u224? l'exploitation d'un logiciel, mais aux risques sp\u233?cifiques \u224? l'\u233?laboration du cahier des charges. Parmi les risques les plus fr\u233?quents, citons l'indisponibilit\u233? de certains profils utilisateurs pour participer \u224? des groupes de travail d'expression des besoins. Un autre risque est li\u233? \u224? la non-implication, ou \u224? l'implication insuffisante, de la ma\u238?trise d'ouvrage strat\u233? gique. Contenu du plan projet Le plan projet contiendra au minimum les \u233?l\ u233?ments suivants : \u8226? description simple du processus global d'\u233? laboration ; \u8226? techniques de recueil \u224? mettre en place : interviews, r\ u233?unions, groupes de travail, maquettes ou prototypes, etc. ; \u8226? mod\u232? les de repr\u233?sentation de l'information \u224? utiliser ; \u8226? outils \u224? utiliser ; \u8226? liste des documents types \u224? utiliser ; \u8226? liste des sources d'exigences ; \u8226? repr\u233?sentants des utilisateurs retenus pour participer aux diff\u233?rents groupes de travail ; \u8226? formations \u233? ventuellement pr\u233?vues aux techniques et outils ; \u8226? ressources n\u233? cessaires ; \u8226? charges; \u8226? d\u233?lais; \u8226? risques. Enregistrement des charges et des d\u233?lais Une organisation qui souhaite industrialiser le processus de d\u233?veloppement et de gestion des exigences aura tout int\u233?r\ u234?t \u224? \u233?tablir et faire appliquer un suivi du temps pass\u233? aux diff\u233?rentes activit\u233?s. Par exemple. CEI\par\pard\plain\hyphpar} { Partie 1 - M\u233?thodologie recueil, analyse, sp\u233?cification, validation. Ou mieux (car plus proche de la pratique) : \u8226? temps pass\u233? en r\u233?unions avec le ma\u238?tre d'ouvrage ; \u8226? temps pass\u233? en groupe de travail ; \ u8226? r\u233?daction et modifications du cahier des charges ; \u8226? revues de documents. Check-list L'objectif du projet est-il clair, sans ambigu\u239?t\u233?, sans langue de bois ? L'atteinte de l'objectif est-elle v\u233?rifiable et mesurable ? L'atteinte de l'objectif se traduira-t-elle par un b\u233?n\u233?fice pour l'entreprise ou l'organisation ? Est-on assur\u233? que l'objectif pourra \ u234?tre atteint avec les moyens allou\u233?s ? Y a-t-il un accord \u233?crit sur le p\u233?rim\u232?tre du projet ? A-t-on \u233?tudi\u233? les risques, en termes d'impact et de probabilit\u233?, et s'est- on assur\u233? qu'ils sont raisonnables ? A-t-on estim\u233? les co\u251?ts et s'est-on assur\u233? qu'ils sont raisonnables ? Les parties prenantes sont-elles impliqu\u233?es ? L'investissement pr\u233?vu est-il justifi\u233? ? S'est-on assur\u233? qu'il ne subsiste aucune zone d'ombre sur le processus d'\u233?laboration du cahier des charges ? e>\par\pard\plain\hyphpar} { \u199?p\u226?rtTe D\u233?veloppement des exigences Le projet d'\u233?laboration du cahier des charges \u233?tant pr\u233?par\u233? et planifi\u233?, nous abordons maintenant le c\u339?ur de notre m\u233?tier : le d\u233?veloppement des exigences proprement dit. Nous d\u233?crivons les techniques et m\u233?thodes qui vont nous permettre, en partant des objectifs, de valider un cahier des charges, en optimisant les co\u251?ts, les d\u233?lais et la qualit\u233?. Souvenons-nous cependant que le processus est it\u233?ratif, et que les r\u233?sultats des \u233? tapes pr\u233?paratoires ne sont jamais grav\u233?s dans le marbre. La planification initiale peut \u234?tre remise en cause, comme pour tout projet. L'objectif et le p\u233?rim\u232?tre peuvent varier. Des parties prenantes rest\ u233?es dans l'ombre peuvent toujours se manifester. Aussi est-il important, tout en gardant l'objectif en t\u234?te, de rester toujours \u224? l'\u233?coute des diff\u233?rents acteurs.\par\pard\plain\hyphpar} { Chapitre 8 L'\u233?tape de recueil De toutes les activit\u233?s de l'ing\u233? nierie des exigences, l'activit\u233? de recueil est celle qui demande le plus de qualit\u233?s humaines. Il faut trouver la personne qui d\u233?tient l'information, l'encourager \u224? exprimer, puis \u233?couter ce qu'elle a \u224? dire, avec neutralit\u233? et bienveillance. Il faut animer des groupes de travail o\u249? des tensions entre individus peuvent appara\u238?tre. Raison de plus pour bien pr\u233? parer cette \u233?tape, en laisser le moins de choses possibles au hasard. L'enjeu Capturer les besoins est a priori chose simple et facile. Il suffit de se r\u233? unir avec les futurs utilisateurs, interviewer le client, ou compulser normes et standards pour recueillir les besoins \u224? la source. La r\u233?alit\u233? est bien loin d'\u234?tre aussi si simple. \u192? moins de vouloir faire d\u233? velopper une petite application simple pour une demi-douzaine d'utilisateurs (et encore...), on se trouve vite confront\u233? \u224? des difficult\u233?s diverses : r\u233?sistances, contradictions, guerres des clans, dissensions. Mais plus concr\ u232?tement, demandez \u224? un futur utilisateur du syst\u232?me d'exprimer ses besoins. Posez-lui la question \u171? quel est le besoin ? \u187?. Spontan\u233? ment, il exprimera, selon le cas : \u8226? un probl\u232?me ou une difficult\ u233? \u224? laquelle il est confront\u233? -. \u8226? une solution (plus pr\u233? cis\u233?ment sa solution) \u224? ce probl\u232?me ; \u8226? la mani\u232?re dont cette solution sera mise en \u339?uvre ; \u8226? un vrai besoin, c'est-\u224?-dire une fonction attendue du futur syst\u232?me. Autrement dit, dans la majorit\u233? des cas. l'utilisateur interview\u233? n'exprimera pas spontan\u233?ment un besoin. Quelle est donc la \u171? bonne technique \u187? \u224? employer pour recueillir les besoins ? Comment aider le futur utilisateur\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences \u224? s'exprimer ? Comment \u233?viter que les r\u233?unions de travail ne s'\u233?ternisent, ou ne se transforment en pugilat verbal ? Il n'y a pas de recette miracle, mais des outils et des techniques. Le reste est affaire d'exp\u233?rience et d'habilet\u233?, pour choisir le bon outil et l'utiliser \u224? bon escient. Voici donc quelques techniques et outils, ainsi que des conseils d'utilisation. Le processus de recueil Il n'y a pas de plan type de l'\u233?tape de recueil, avec un encha\u238?nement immuable de t\ u226?ches pr\u233?d\u233?finies. Les techniques pour recueillir les exigences sont nombreuses et tr\u232?s vari\u233?es, et le choix de telle ou telle technique d\ u233?pend du contexte, de l'existant et des contraintes : la disponibilit\u233? des personnes et leur niveau d'expertise, les documents pouvant \u234?tre consult\u233? s, la possibilit\u233? d'observer sur le terrain les pratiques existantes ou des syst\u232?mes analogues \u224? celui \u224? l'\u233?tude. Mais comme avec les autres \u233?tapes, la planification et la v\u233?rification jouent un r\u244?le important. Planifier le recueil Pr\u233?parer grilles et outite S\u233?lectionner les techniques 1 ' RecueBfirles besoins ' ' V\u233?rifier .,./i n Documenter ah/ff> Figure 8-1 : Le processus de recueil Planifier le recueil des besoins C'est \u224? partir de la liste des sources d'exigences et du tableau des parties prenantes que l'on va planifier dans le temps le recueil des besoins, et pr\u233?voir les ressources (humaines et mat\u233?rielles) et la logistique. Cette planification doit \u234?tre souple, car le volume et la qualit\u233? des informations que l'on va recueillir ne sont pas pr\u233?cis\u233?ment connus \u224? l'avance. Rappelons que l'\u233?tape de recueil, en pratique, n'est pas isol\u233?e des autres. L'analyse, la sp\u233?cification, et une grande partie de la validation des besoins se d\u233?roulent en parall\u232?le avec le recueil. C'est une raison suppl\u233? mentaire pour planifier soigneusement les interviews des diff\u233?rentes parties prenantes, et surtout les r\u233?unions des groupes de travail. Il faut souvent une semaine pour obtenir un rendez-vous, et plus d'un mois pour o\par\pard\plain\ hyphpar} { Chapitre 8 - L'\u233?tape de recueil r\u233?unir un groupe de travail. La lecture des documents est \u233?videmment plus simple \u224? planifier, mais peut \u234?tre longue. Et surtout, ne pas oublier de \u171? pr\u233?voir l'impr\u233?vu \u187?. Des r\u233?unions suppl\u233?mentaires sont souvent n\u233?cessaires pour \u233? daircir des points obscurs. Pr\u233?parer les grilles et les outils En fonction des buts vis\u233?s (d\u233?veloppement de logiciel, ou choix d'un progiciel, par exemple), de la granularit\u233? \u224? atteindre, des personnes \u224? interviewer, on pr\u233?parera des guides d'entretien ou de r\u233?union. Une partie des grilles d'interview ou des th\u232?mes des groupes de travail devra \ u234?tre formalis\u233?e et envoy\u233?e par avance aux participants. Pour recueillir des besoins \u224? partir de documents \u233?crits, il est \u233? galement int\u233?ressant de se munir de grilles de lecture pour \u233?viter d'\ u234?tre submerg\u233? par la masse de documents. La quantit\u233? d'informations \ u224? traiter peut rendre l'op\u233?ration de recueil complexe, en particulier si l'on veut garder la tra\u231?abilit\u233? des exigences aux \u233?tapes suivantes. Le principe de la construction d'une grille est simple. Il consiste \u224? partir de l'objectif pour d\u233?couvrir les exigences qui en d\u233?coulent, et des exigences d\u233?j\u224? exprim\u233?es pour d\u233?couvrir les exigences plus d\ u233?taill\u233?es. Nous verrons plus loin la mise en application de ce principe. Recueillir et documenter les besoins Il existe une multitude de techniques de recueil des besoins, plus ou moins complexes et consommatrices de temps et de ressources. Elles sont d\u233?crites dans la suite de ce chapitre. Quelle que soit la technique choisie, l'information recueillie doit \u234?tre soigneusement r\u233? pertori\u233?e et stock\u233?e en vue d'une analyse et d'une sp\u233?cification ult\u233?rieures. Cela est vrai m\u234?me si recueil, analyse et sp\u233?cification ont lieu au cours d'une m\u234?me r\u233?union d'un groupe de travail. Une des difficult\u233?s d\u233?coule de la surabondance des informations recueillies, et ce, quelle que soit la technique de recueil. Pour \u233?viter de se noyer sous un flot de paroles ou sous des milliers de pages, il n'y a pas de recette miracle, mais un principe : travailler \u224? partir de grilles en gardant en t\u234?te l'objectif. V\u233?rifier les informations recueillies On v\u233?rifiera l'exactitude des informations recueillies au moyen d'un compte-rendu de r\u233? union ou d'interview. Il ne s'agit pas ici de valider les exigences, mais d'obtenir un feedback sur les informations recueillies. Cela permettra de corriger les informations au plus pr\u232?s de la source. Q\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Si le recueil des besoins est fait par une \u233?quipe (c'est souvent le cas), il faut pr\u233?voir de faire le point pour \u233?changer sur les informations recueillies. Le plan de recueil Le plan de recueil servira de guide tout au long de l'\u233?tape de recueil des besoins. Il contient : \u8226? Les objectifs du recueil : en particulier, il est important de savoir s'il s'agit de recueillir des exigences \u224? haut niveau, ou de descendre dans les d\u233?tails, ou de consolider des exigences d\u233?j\u224? formalis\u233? es. \u8226? Les livrables et leur forme, ainsi que leur niveau de formalisme ; cela peut aller d'une simple note sous forme textuelle, jusqu'\u224? des mod\u232?les de donn\u233?es strictement formalis\u233?s. \u8226? Les m\u233?thodes et techniques de recueil, qui peuvent varier selon les objectifs, les livrables et les interlocuteurs. \u8226? Les risques induits, et les m\u233?thodes de contournement et d'att\u233?nuation des risques. \u8226? La planification du recueil : co\u251? ts, dates, d\u233?lais et ressources. Risques li\u233?s au recueil et att\u233? nuation Les risques li\u233?s au recueil proviennent des sources de besoins, plus ou moins disponibles et fiables, ainsi que de la mani\u232?re dont ses besoins sont exprim\u233?s. Le premier facteur de risque est l'indisponibilit\u233? des sources, qu'il s'agisse de documents auxquels on ne peut acc\u233?der (d\u233?truits, perdus, corrompus, confidentiels) ou de personnes qui ne sont pas ou trop peu disponibles. Les informations erron\u233?es, intentionnellement ou non. sont un deuxi\u232?me facteur de risque. Les interlocuteurs se servent souvent d'une \u233? tude des besoins pour servir leurs int\u233?r\u234?ts propres, et non les objectifs vis\u233?s par le syst\u232?me \u224? construire. Pour \u233?viter ce pi\u232?ge, il faut, d'une part, s'appuyer sur les objectifs pr\u233?alablement formalis\u233?s et, d'autre part, croiser les sources. En troisi\u232?me lieu viennent les besoins non exprim\u233?s, ou exprim\u233?s de mani\u232?re floue. C'est pour cette raison qu'il est utile d'utiliser les comp\u233?tences d'un expert m\u233?tier, qui ma\ u238?trise le vocabulaire de ses interlocuteurs. De plus, il est indispensable, pour recueillir des besoins op\u233?rationnels, de descendre au plus bas niveau hi\ u233?rarchique possible, de consulter de vrais utilisateurs, et ne pas se contenter des seuls < repr\u233?sentants \u187? des utilisateurs. O\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil Un autre facteur de risque provient de la difficult\u233? de se faire une id\u233?e d'ensemble d'un besoin. Interroger un seul utilisateur apportera une image d\u233?form\u233?e du besoin, et trop peu d'informations sur les pratiques quotidiennes. Inversement, avec trop de sources, trop d'interlocuteurs, il est difficile de g\u233?rer les contradictions sur le fond et sur la forme. Chercher \u224? savoir \u171? qui a raison \u187? pousse \ u224? descendre dans les d\u233?tails, et c'est l\u224? un risque suppl\u233? mentaire. Recueillir des besoins trop ou insuffisamment d\u233?taill\u233?s, par rapport aux objectifs du cahier des charges, est encore un risque. C'est pour cela qu'il est indispensable de conna\u238?tre par avance les objectifs et le niveau de d\u233?tail recherch\u233?. Des techniques de recueil, que nous verrons plus loin, permettent d'\u233?lever le niveau, ou au contraire, de descendre plus dans le d\ u233?tail. D\u233?termination des profils utilisateurs Apr\u232?s le donneur d'ordres, qui a exprim\u233? l'objectif, les parties prenantes qui seront les plus impliqu\u233?es sur le plan op\u233?rationnel dans le recueil des exigences sont les futurs utilisateurs du syst\u232?me. La typologie des profils Pour mener \u224? bien le recueil, il est n\u233?cessaire de d\u233?terminer les profils des utilisateurs, et de les classer en cat\u233?gories, de mani\u232?re \u224? pouvoir, par la suite, d\u233?terminer les besoins par cat\u233?gorie d'utilisateurs. Il y a plusieurs fa\u231?ons d'\u233?tablir les profils utilisateurs, en fonction de leur m\u233?tier, de leur position hi\u233?rarchique ou de leur emplacement g\u233? ographique. Cependant, le plus efficace est de les grouper en fonction de leur interaction avec le syst\u232?me. Ce qui nous int\u233?resse ici n'est pas l'individu, mais son r\u244?le vis- \u224?-vis du syst\u232?me, sachant qu'un individu peut jouer plusieurs r\u244?les (par exemple, dans un restaurant, prendre les commandes et s'occuper de la comptabilit\u233?) et donc avoir plusieurs profils. Les profils utilisateurs seront constitu\u233?s en fonction : \u8226? des fonctions du syst\u232?me auxquelles ils font appel ; \u8226? du niveau de s\u233? curit\u233? requis pour acc\u233?der \u224? certaines fonctions ; \u8226? de leurs propres exigences de s\u233?curit\u233?, de fiabilit\u233? ou d'ergonomie ; \u8226? de leur fr\u233?quence d'utilisation du syst\u232?me ; \u8226? de leur pratique de syst\u232?mes analogues ; \u8226? de leur connaissance du domaine.\par\pard\plain\ hyphpar} { Partie 2 - D\u233?veloppement des exigences Un exemple Un centre hospitalier a besoin de choisir et de mettre en \u339?uvre un syst\u232?me de gestion du m\u233? dicament. Les profils utilisateurs suivants ont \u233?t\u233? d\u233?finis : \ u8226? prescripteur : m\u233?decin, sage-femme, ou toute autre personne amen\u233?e \u224? prescrire des m\u233?dicaments ; \u8226? pharmacien ; \u8226? pr\u233? parateur en pharmacie ; \u8226? infirmier ; \u8226? gestionnaire du syst\u232?me. Il n'y a \u233?videmment pas une correspondance biunivoque entre un groupe de personnes et un profil utilisateur. Le profil \u171? presaipteur > peut \u234?tre attribu\u233? \u224? deux personnes de m\u233?tiers tr\u232?s diff\u233?rents (par exemple, un m\u233?decin et une sage-femme). Inversement, le pharmacien d'un h\ u244?pital peut, dans certains cas, tenir le r\u244?le de gestionnaire du syst\ u232?me. Le tableau 8-1 des profils reprend, de mani\u232?re plus d\u233?taill\ u233?e, le tableau des parties prenantes qui a \u233?t\u233? \u233?labor\u233? lors de l'\u233?tape pr\u233?paratoire. Il pourra \u234?tre encore enrichi au fil de l'eau lors de l'\u233?tape de recueil. Tableau 8-1 - Grilla das utiBsataars M\u233? decin Pharmacien Pr\u233?parateur Infirmier gestionnaire Fonctions utilis\u233?es Prescription Validation pharmaceutique Saisie de la dispensation du m\u233?dicament Saisie de l'administration du m\u233?dicament Param\u233?trage Exigences particuli\ u232?res Facilit\u233? d'apprentissage Tablette mobile Fr\u233?quence Quotidienne Quotidienne Quotidienne Quotidienne Mensuelle Pratique Assez importante Tr\u232?s importante Faible Faible Recherche des sources d'exigences Les parties prenantes, et en particulier les futurs utilisateurs, sont la premi\u232?re source d'exigence. Tous n'ont pas le m\u234?me domaine de\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil comp\u233?tences, ni le m\u234?me niveau d'expertise. Le tableau des parties prenantes va \u224? nouveau nous permettre de trouver les personnes-ressources, mais cette fois il devra \u234?tre utilis\u233? pour \u233?laborer un tableau nominatif. Toutes les personnes d'un m\u234?me profil n'ont pas le m\u234?me niveau d'expertise, ni la m\u234?me facilit\u233? d'expression. Attention cependant : les opposants au projet ont parfois autant d'informations utiles \u224? nous apporter que les plus moteurs. Il faudra les invitera s'exprimer, en r\u233?union ou en interview, et les \u233?couter avec bienveillance. Les articles, \u233?tudes comparatives, \u233?tudes de march\u233?, forums sur Internet constituent \u233?galement une bonne source. Ces informations ne sont pas toujours fiables, ni toujours \u224? jour. Il faudra donc croiser les informations entre elles, et avec des sources plus s\u251?res. Les cahiers des charges existants contiennent souvent des exigences qui peuvent \u234?tre reprises, apr\u232?s \u233?ventuelle mise \u224? niveau. Si le cahier des charges est bien fait, la reprise peut \u234?tre tr\u232?s simple. On peut remonter au cahier des charges \u224? partir de sp\u233?cifications fonctionnelles g\u233?n\u233?rales ou d\u233?taill\u233?es d'un logiciel existant (voire d'un logiciel qui n'a jamais vu le jour), ou directement en observant le comportement du produit. Les < sous- produits \u187? sont \u233?galement une mine d'informations pouvant \u234?tre r\ u233?utilis\u233?es, apr\u232?s analyse, pour \u233?laborer les exigences : fiches d'anomalie, rapports d'essais, rapports au fieip-desk... en particulier, les fiches d'anomalie sont tr\u232?s utiles pour recueillir des exigences \u171? n\u233? gatives \u187? ou. pour formuler les choses plus positivement, des exigences d'am\ u233?lioration de l'existant. Il en est de m\u234?me des rapports d'audit, des fiches de r\u233?clamations, et des demandes de modification, pour examiner ce qui peut \u234?tre am\u233?lior\u233? et ce qui manque. Les normes, qui constituent \ u224? elles seules un recueil d'exigences, sont \u233?videmment une source fiable. Il est n\u233?cessaire de faire attention \u224? la date de publication, de s'assurer pour chaque norme qu'elle s'applique au contexte du syst\u232?me \u224? l'\u233?tude. Il est \u224? noter que les normes ne sont pas toujours compatibles entre elles, ni coh\u233?rentes sur le vocabulaire. Enfin, la documentation d'un logiciel existant (\u224? remplacer), ou celle des concurrents sont des sources \ u224? ne pas n\u233?gliger. Techniques de recueil La capture des exigences n\u233? cessite une bonne dose de cr\u233?ativit\u233?. On entend par l\u224? la cr\u233? ativit\u233? op\u233?rationnelle, et non artistique. Celle d'un commandant d'unit\ u233? sur le th\u233?\u226?tre des op\u233?rations. \u192? condition d'\u234?tre\ par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences orient\u233? vers l'objectif et de respecter la doctrine, vous avez le droit, et m\u234?me le devoir, d'\u234?tre inventif et d'improviser. Il en est de m\u234?me pour la capture des exigences. Tant que vous avez l'objectif en vue. que vous respectez les bonnes pratiques, que vous vous en tenez \u224? votre lettre de mission, vous avez la libert\u233? d'utiliser toutes les techniques connues de recueil des besoins, et d'en inventer d'autres si n\u233?cessaire. Les techniques doivent \u234?tre adapt\u233?es aux personnes et aux circonstances. Ainsi, rien ne vous emp\u234?che d'organiser un brainstorming avec certains utilisateurs et des interviews individuelles avec d'autres. Lorsqu'il s'agit de choisir outils et techniques, c'est l'exp\u233?rience et l'intuition qui doivent servir de guides, et non les proc\u233?dures. Il n'y a pas en la mati\u232?re de recette miracle. Mais il y a des techniques. Le reste est une affaire d'exp\u233?rience, pour choisir la bonne technique et l'utiliser au bon moment. On trouvera dans les paragraphes qui suivent quelques techniques qui ont fait leurs preuves, \u224? commencer par les plus classiques, ainsi que leur mode d'utilisation. L'analyse de documents Utilit\u233? de la technique L'analyse de documents est un des moyens les plus directs de recueillir des exigences. Les documents existants constituent une des principales sources disponibles d'exigences, dont certaines sont pour ainsi dire < pr\u234?tes \u224? l'emploi \ u187?. La difficult\u233? provient en g\u233?n\u233?ral de l'abondance des documents, qu'il faut soigneusement trier, et dont il faudra filtrer l'information utile. Utiliser des informations pr\u233?existantes permettra de r\u233?duire le nombre et la dur\u233?e des interviews et r\u233?unions, mais pas de les supprimer. Elle permettra \u233?galement d'acqu\u233?rir des connaissances sur le domaine d'application, les interviews ult\u233?rieures \u233?tant un moyen d'affiner et de consolider ces connaissances. Cela \u233?vitera aussi de perdre la face en posant des questions dont on peut trouver la r\u233?ponse dans des documents disponibles. Les sources Les sources sont en g\u233?n\u233?ral abondantes (voire surabondantes) : \u8226? cahiers des charges et sp\u233?cifications de produits similaires ou concurrents, de versions ant\u233?rieures du syst\u232?me \u224? l'\ u233?tude ; \u8226? normes : sources de r\u232?gles de gestion et de contraintes techniques ; G>\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil \u8226? proc\u233?dures, descriptions partielles de processus m\u233?tier ; \u8226? documents de travail, comptes-rendus de r\u233?unions : sources de besoins, contraintes, frustrations des utilisateurs, priorit\u233?s ; \u8226? documentation technique : source de contraintes ; \u8226? documentation conceptuelle ou th\u233?orique, source de sp\u233?cifications innovantes ; \u8226? formulaires papier : tr\u232?s utiles pour conna\u238?tre les informations \u224? saisir, celles devant appara\u238?tre dans un document de sortie ; \u8226? fiches d'anomalie, demandes de modifications. Mode op\u233?ratoire Le mode op\u233?ratoire est le suivant : 1. Commencer par lister les documents existants relatifs au domaine et/ou au syst\u232?me \u224? l'\u233?tude. 2. Passer les documents rapidement en revue, de pr\u233?f\u233?rence en \u233?quipe, et noter leur contenu et leur utilit\u233?. 3. Faire examiner les documents par un ou plusieurs experts, en fonction de leur contenu et de l'app\u233?tence des experts pour la question. 4. Trier les documents : d\u233?cider des documents \u224? reprendre en l'\u233?tat, ceux \u224? retravailler, des parties de documents \u224? extraire et conserver. 5. D\u232?s que possible, valider la pertinence, la coh\ u233?rence, la \u8364? fra\u238?cheur \u187? des informations fournies. 6. Maintenir un tableau de la documentation existante. La r\u233?union d'un groupe de travail Utilit\u233? et difficult\u233? La m\u233?thode < naturelle \u187?. qui consiste \u224? r\u233?unir des volontaires des diff\u233?rentes parties prenantes et \u224? leur demander d'exprimer les besoins, est aussi la moins efficace. Ainsi, en r\u233?unissant vingt personnes de m\u233?tiers tr\u232?s diff\u233?rents, en m\ u233?langeant utilisateurs, donneurs d'ordres, ma\u238?tres d'ouvrage, et autres parties int\u233?ress\u233?es, on risque de ne recueillir que peu d'informations, et tr\u232?s peu d'exigences exploitables. D'une part, par ce qu'au-del\u224? de dix ou douze participants, une grande partie d'entre eux sera inactive et risquera m\u234?me de perturber les autres, et d'autre part, par ce qu'il est difficile de d\u233?fricher le terrain, d'\u233?couter tous les besoins, et d'obtenir un consensus dans un milieu trop h\u233?t\u233?rog\u232?ne.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences 1. Dar&Requirements by collaboration, Ellen Cottesdiener donne de nombreuses techniques et m\u233?thodes de recueil par ateliers de travail. Les groupes de travail organis\u233?s Une m\u233?thode des plus efficaces consiste \u224? r\u233?unir les parties prenantes par profil : une premi\u232?re r\u233?union avec le ma\u238?tre d'ouvrage strat\u233?gique, puis une r\u233?union avec des repr\u233?sentants des utilisateurs d'un m\u233?tier, puis d'un autre m\u233?tier. Une fois que les besoins des diff\u233?rents contributeurs seront recueillis, on programmera une r\u233?union \u171? mixte \u187? avec le repr\u233?sentant de chaque m\u233?tier ou profil utilisateur. De tels ateliers1 peuvent \u233?galement r\u233?unir ma\u238?trise d'ouvrage et ma\u238?trise d'ceuvre, ou utilisateurs et d\u233?veloppeurs, dans un m\u234?me lieu. L'animation de ces ateliers de travail, qui peuvent durer plusieurs jours, n'est pas chose ais\ u233?e. Au moins deux animateurs sont n\u233?cessaires : l'analyste ou assistant \ u224? la ma\u238?trise d'ouvrage, et une personne charg\u233?e de prendre des notes et de les organiser. Les ateliers sont sans doute le moyen le plus puissant de recueillir les besoins, mais ils demandent un important travail de pr\u233? paration, de la part de tous les participants, mais surtout de la part de l'animateur. De plus, certaines r\u232?gles doivent imp\u233?rativement \u234?tre respect\u233?es : \u8226? choisir avec soin un nombre limit\u233? de participants (quatre \u224? cinq, plus les animateurs) ; \u8226? faire respecter une bonne discipline de travail \u224? tous les participants : arrivera l'heure, \u233? teindre son t\u233?l\u233?phone mobile, \u233?viter toute conversation en apart\ u233?, respecter les divers avis ; \u8226? rester align\u233? avec les objectifs tels qu'ils ont \u233?t\u233? formalis\u233?s ; \u8226? maintenir la discussion au bon niveau de d\u233?tail : \u233?viter de descendre trop dans les d\u233?tails, ou au contraire de remettre en cause les objectifs ; \u8226? si de nouvelles id\u233? es apparaissent et semblent int\u233?ressantes, \u233?viter de d\u233?vier, mais conserver ces id\u233?es \u224? part, de mani\u232?re \u224? y revenir plus tard, lors d'un autre atelier par exemple ; \u8226? fixer un ordre du jour pr\u233?cis, avec une dur\u233?e pr\u233?cise pour chaque point, et s'y tenir ; \u8226? maintenir jusqu'au bout l'enthousiasme du d\u233?but. L'interview structur\u233?e individuelle Utilit\u233? et technique d'interview Cette technique est utile, voire indispensable, pour conna\u238?tre les besoins individuels des utilisateurs. Elle se focalise sur une partie du processus, en particulier celle dont l'utilisateur est expert ou praticien (mais pas Q\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil seulement). La difficult\u233? est de trouver le bon \u233?chantillon d'utilisateurs, et de poser les questions ad\u233?quates en fonction des objectifs \u224? atteindre. L'interview structur\u233?e permet g\u233? n\u233?ralement de recueillir ou de pr\u233?ciser des besoins dont les utilisateurs sont conscients. Ce point est \u224? noter, car d'autres techniques, comme le brainstorming, l'observation directe, et dans une large mesure les ateliers de travail, permettent de faire \u233?merger des besoins bien r\u233?els dont les utilisateurs n'ont pas conscience. D\u233?roulement de l'interview Les \u233?tapes d'une interview sont les suivantes : 1. Pr\u233?paration. La pr\u233?paration est indispensable \u224? une interview efficace. Elle sera d'autant plus longue et importante que l'intervieweur sera novice dans cette technique et son expertise \ u233?loign\u233?e du domaine d'application. - Collecte et lecture de documents, relecture des interviews pr\u233?c\u233?dentes, de l'existant, du contexte. - Pr\ u233?paration des questions : questions g\u233?n\u233?riques, questions g\u233?n\ u233?rales de contexte, questions pr\u233?cises \u224? l'interview\u233?, questions de compl\u233?ment d'autres interviews. - Planification de l'interview et ordonnancement des questions. Une interview dure environ une heure, maximum une heure et demie. Les questions doivent appara\u238?tre comme une suite logique, allant du g\u233?n\u233?ral au particulier. 2. Interview sur le terrain, de pr\ u233?f\u233?rence pr\u232?s du lieu de travail de l'interview\u233? (il sera plus \ u224? l'aise), mais pas directement sur son lieu de travail (il risque d'\u234?tre interrompu). - Ouverture de l'interview : l'intervieweur se pr\u233?sente, rappelle l'objectif et du temps dont on dispose. - Questionnement : l'intervieweur pose la question de la grille et note la r\u233?ponse. Il reformule si n\u233?cessaire et fait pr\u233?ciser les points qui ne lui paraissent pas clairs. L'op\u233?ration est r\u233?p\u233?t\u233?e jusqu'\u224? ce que l'interview\u233? accepte la reformulation de l'intervieweur. - Cl\u244?ture : l'interviewer rappelle les points principaux, relit les besoins tels que formul\u233?s par \u233?crit et indique s'il y aura un compte-rendu et si ce compte-rendu devra \u234?tre formellement valid\ u233?. 3. Finalisation. L'intervieweur relit ses notes, structure les informations et r\u233?dige le compte-rendu. Il envoie le compte-rendu \u224? l'interview\u233? pour validation. Ce dernier peut faire ses remarques. L'intervieweur peut compl\ u233?ter l'interview en posant des questions suppl\u233?mentaires, souvent par t\ u233?l\u233?phone.\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences Poser des questions efficacement L'interview contient en \u171? mod\u232?le r\u233?duit \u187? les quatre \u233? tapes du d\u233?veloppement des exigences. Et dans le cadre d'une interview, chaque question pos\u233?e est elle-m\u234?me un microprocessus recueil-analyse-sp\u233? cification- validation : \u8226? Recueil : l'intervieweur pose une question et recueille de l'information. \u8226? Analyse : en s\u233?ance ou \u171? \u224? froid \u187?. l'intervieweur cherche \u224? prioriser les r\u233?ponses et cherche les incoh\u233?rences. Il peut, en s\u233?ance, dessiner des diagrammes pour s'assurer que lui et son interlocuteur ont compris la m\u234?me chose. \u8226? Sp\u233? cification : en s\u233?ance, l'intervieweur reformule la r\u233?ponse ou pose des questions suppl\u233?mentaires pour obtenir une exigence bien formul\u233?e le plus en amont possible. \u192? froid, il r\u233?dige le compte-rendu d'interview avec pr\u233?cision. \u8226? Validation : en s\u233?ance, l'intervieweur cherche \u224? associer \u224? chaque exigence des crit\u232?res d'\u233?valuation. Par la suite, il demandera \u224? l'interview\u233? de valider le compte-rendu. Cette approche consistant \u224? consid\u233?rer chaque activit\u233? et chaque t\u226?che comme un cycle contenant toutes les autres \u233?tapes est tr\u232?s efficace. L'id\u233? e est de d\u233?couvrir le plus t\u244?t possible les incoh\u233?rences, incompl\ u233?- tudes et insuffisances des exigences, tant dans leur formulation que dans leur structure. Les types de questions Une grille d'interview, pr\u233?par\u233?e \ u224? l'avance, est utile. Elle contient des questions types \u224? poser. Les questions ouvertes permettent de comprendre le contexte de travail, et les besoins imm\u233?diats. Ce sont des questions en < comment \u187?. Par exemple, \u171? comment faites-vous actuellement pour enregistrer une demande de pr\u234?t ? \ u187?. Les questions en \u171? quoi \u187? permettent de d\u233?rouler un processus : < une fois que vous avez fini cette action, que faites-vous ? \u187?. Et ainsi de suite. Cette mani\u232?re de proc\u233?der permet de recueillir les exigences du m\ u234?me niveau appartenant \u224? une s\u233?quence. Les questions en \u171? comment \u187? permettent d'apporter plus de d\u233?tails : \u171? concr\u232? tement, comment faites-vous ? \u187?. Ce type de question permet donc de descendre des exigences de haut niveau aux exigences op\u233?rationnelles. Inversement, la question \u171? pourquoi \u187? est utile pour prendre de la hauteur (figure 8-2). O\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil Figure 8-2 : Navigation entre niveaux d'exigences Il est possible d'encha\u238?ner les < pourquoi \u187? pour remonter au niveau de besoin ad\u233?quat par rapport \u224? l'objectif fix\u233?. Voici une s\ u233?quence d'interview en pourquoi : < Il nous faut une case \u224? cocher "membre du conseil" (expression d'une solution en termes d'interface utilisateur, beaucoup trop bas). Question Pourquoi une case \u224? cocher ? R\u233?ponse On doit pouvoir indiquer au syst\u232?me qu'un de nos adh\u233?rents est membre du conseil d'orientation (il s'agit l\u224? d'une exigence fonctionnelle, correctement formul\ u233?e, mais sans doute encore de trop bas niveau). Question Pourquoi doit-on pouvoir indiquer cela au syst\u232?me ? R\u233?ponse \u192? tout moment, un utilisateur qui interroge le dossier d'un adh\u233?rent doit savoir s'il s'agit d'un membre du conseil d'orientation. \u187? En posant deux questions \u171? pourquoi ? \u187?2, on a ainsi trouv\u233? une exigence globale, qui est un invariant du syst\u232?me \u224? construire. Cela va sans dire, une exigence formul\u233?e de cette mani\u232?re pose les bases d'un logiciel mieux construit et plus maintenable. L'exigence peut \u234?tre sp\u233?cifi\u233?e dans le cahier des charges : \u192? tout moment, au cours d'une consultation, le syst\u232?me doit donner \u224? l'utilisateur la possibilit\u233? de savoir si un adh\u233?rent est membre du conseil d'administration. 2. Exercice : poser encore deux questions en pourquoi pour remonter jusqu'\u224? un objectif.\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences En revanche, la question \u171? pourquoi \ u187? pos\u233?e \u224? titre personnel est \u224? proscrire, car elle peut \u234? tre ressentie comme une agression. La premi\u232?re question de l'exemple pr\u233? c\u233?dent devient, en caricaturant \u171? mais pourquoi voulez-vous \u224? tout prix cliquer sur cette case ? \u187?. M\u234?me sans aller jusque-l\u224?, une question \u171? pourquoi \u187? impliquant la personne interview\u233?e doit \u234? tre \u233?vit\u233?e. ferfo^ au d\u226?our tfurte Urt\u202?rview, on a la surprise rfertendre n\u244?tf\u244? intefteaiteur \u233?iKmcerti\u232?s&\u238?\u238?iieme^ plus nen \u224? faire qu'\u224? fr le^ierdesdiaBget C'est l\u224? une stirprte magique. Qties'estfl pass\u233??Si notre interta^ d\u235?pt\u226?\u239?^ min\u233? som toutes les coutures, fe hiHti\u234?me jou\u233? le rte de Fanalysifit^ un bon esprit de synth\u232?se. Existe*^ ura technkpie po^^ spVmtante \u187? de la ^ simpfissinie sur le pri avec beaucoup tfatt\u232?n^ estenconfiaiK\ u233?,dansunew'tf^^ l\u233?^leiKft\u233?ttta\u224?ieMjfe Lorso^ votre intert\'5c5cuteur a fmi rnoiits, avant de repreiKlre la parde. Sept s^ secret d\ u232?s jn\u232?jfleurs in\u339?^ feire un analyste. Et surtout, un des rnonieimles pfeisp^ m\u233?tier. De l'ouverture \u224? la pr\u233?cision Un des secrets de l'efficacit\u233? du processus de d\u233?veloppement des exigences r\u233?side dans la capacit\u233? \u224? faire passer les besoins par un \u171? entonnoir \u187?, c'est-\u224?-dire un tuyau tr\u232?s large \u224? une extr\u233?mit\u233? et tr\ u232?s \u233?troit \u224? l'autre. Cela se voit au niveau du macroprocessus : l'\ u233?tape de recueil est ouverte, et autorise l'expression des besoins sous une forme large, peu pr\u233?cise. \u192? l'autre bout du tuyau, la validation ne laisse passer que des exigences extr\u234?mement pr\u233?cises. Entre les deux, les phases d'analyse, puis de validation, resserrent progressivement la pr\u233?cision. Mais l'entonnoir peut aussi \u234?tre appliqu\u233? au niveau du microprocessus. Une question peut \u234?tre pos\u233?e de mani\u232?re tr\u232?s ouverte, puis resserr\u233?e par reformulations progressives. Et un des moyens pour y arriver consiste \u224? filtrer les g\u233?n\u233?ralisations, les distorsions et les omissions. o\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil Les g\u233?n\u233?ralisations On les d\u233? tecte de deux fa\u231?ons. \u8226? Par l'emploi de quantificateurs universels (tous, toujours, jamais, personne, chaque fois. etc.). Le travail de l'analyste consiste \u224? reformuler en encourageant la pr\u233?cision. Par exemple : Interview\u233? (utilisateur) < Dans cet \u233?tablissement, tout le personnel a acc\u232?s \u224? l'application par un identifiant et un mot de passe. Analyste Tout le personnel ? Interview\u233? (utilisateur) Enfin, non, pas tous. Le personnel de l'entretien des locaux et les int\u233?rimaires n'y ont pas acc\u232? s. \u187? \u8226? Une autre cat\u233?gorie de g\u233?n\u233?ralisations se manifeste par les op\u233?rateurs modaux (il faut, on doit, etc.) L\u224? aussi, c'est l'occasion de pr\u233?ciser les besoins, ou de d\u233?tecter une faille dans le processus : Interview\u233? (utilisateur) < \u192? son embauche, un employ\u233? doit s'inscrire aupr\u232?s du service informatique pour obtenir un code d'acc\ u232?s. Analyste Que se passe-t-il s'il ne le fait pas ? Interview\u233? (utilisateur) Eh bien, dans ce cas. il ne pourra pas acc\u233?der au syst\u232? me. \u187? La d\u233?tection et le traitement des g\u233?n\u233?ralisations sont un bon moyen de trouver ce qui. dans un cas d'utilisation, s'appelle le sc\u233?nario alternatif, ou les exceptions. Les omissions Les omissions passent sous silence une partie de l'information. On trouve dans cette cat\u233?gorie : \u8226? Les omissions simples Interview\u233? (utilisateur) < )e traite le dossier. Analyste Quel dossier ? (ou : en quoi consiste le traitement du dossier ?) \u187? \u8226? Les omissions par comparaison Interview\u233? (utilisateur) \u171? Cette application est plus rapide. Analyste Plus rapide que quoi ?\par\pard\plain\ hyphpar} { ie 2 - D\u233?veloppement des exigences Interview\u233? (utilisateur) Plus rapide que l'application X du service Y. \u187? \u8226? Les omissions par manque d'index de r\u233?f\u233?rence qui omettent l'acteur Interview\u233? (utilisateur) \u171? On acc\u232?de au syst\u232?me par un code d'acc\u232?s temporaire. Analyste Oui acc\u232?de par un code temporaire ? Interview\u233? (utilisateur) Les int\u233? rimaires et les sous-traitants. \u187? Le traitement des omissions permet de recueillir plus d'informations qu'une reformulation simple. Il am\u233?liore la pr\ u233?cision et la compl\u233?tude des informations recueillies sans attendre la phase d'analyse ou de sp\u233?cifications. Les distorsions Enfin les distorsions : \u8226? La divination Interview\u233? (utilisateur) \u171? Les secr\ u233?taires ne sont pas satisfaites de cette application. Analyste Comment cela se manifeste-t-il ? \u187? La r\u233?ponse \u224? cette question va peut-\u234?tre permettre de comprendre si les secr\u233?taires sont v\u233?ritablement insatisfaites de l'application ou si le probl\u232?me est ailleurs. \u8226? Le lien de cause \u224? effet Interview\u233? (utilisateur) \u8364? Le logiciel n'est pas utilis\u233?, il manque d'ergonomie. Analyste Est-ce vraiment le manque d'ergonomie qui freine l'adoption du logiciel ? \u187? Une mani\u232?re moins abrupte de reformuler la question est de rebondir : \u171? En dehors de l'ergonomie, que manque-t-il \u224? ce logiciel ? \u187? D\u233?tecter les distorsions permet g\ u233?n\u233?ralement d'augmenter la pr\u233?cision de la formulation du besoin. Attention aux effets inattendus Demander un peu plus de pr\u233?cision de la part de son interlocuteur est un bon moyen d'anticiper, lorsque cela est possible, sur les phases d'analyse O\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil et de sp\u233?cification3. Plus on anticipe au moment de l'interview, plus on capte d'informations pr\u233?cises, et plus on \ u233?limine rapidement les ambigu\u239?t\u233?s, impr\u233?cisions, et incompl\ u233?tudes. La recherche de la pr\u233?cision est un investissement rentable, car une accumulation d'impr\u233?cisions et d'incoh\u233?rences co\u251?te beaucoup plus cher \u224? d\u233?tecter et \u224? \u233?liminer apr\u232?s coup. Cependant, une interview n'est pas un interrogatoire de police. Il faut faire attention \u224? ne pas \u171? forcer \u187? l'interlocuteur. Il a le droit d'\u234?tre impr\u233? cis, et m\u234?me incoh\u233?rent. Et surtout, il a le droit d'avoir son jargon. C'est \u224? l'analyste de s'adapter. Il faut donc \u234?tre prudent, surtout au d\ u233?but de l'\u233?laboration du cahier des charges, surtout au d\u233?but d'une interview. En tout \u233?tat de cause, il est inutile de rechercher la pr\u233? cision si cela va jusqu'\u224? \u233?nerver notre interlocuteur. Mieux vaut patienter, rechercher les informations \u224? une autre source, que de risquer de bloquer le processus. 3. Lors de la phase de sp\u233?cification et de validation, les impr\u233?cisions et incoh\u233?rences seront d\u233?tect\u233?es au moyen de checMists. Le brainstorming Technique cr\u233?ative, le brainstorming est surtout utile pour le d\u233?veloppement d'un nouveau produit, lorsqu'il s'agit de faire jaillir de nouvelles id\u233?es. Une s\u233?ance brainstorming bien men\u233?e permet de recueillir des exigences dont les utilisateurs ne sont pas conscients. Cette technique permet aussi de s'attaquer4 \u224? un probl\u232?me qui sort des cat\u233?gories habituelles. C'est le cas d'un projet qui fait l'objet de tr\u232?s nombreuses contraintes. Dans un tel cas, une nouvelle id\u233?e originale permet de r\u233?soudre ces contraintes en sortant du cadre habituel de r\u233?flexion. Le brainstorming peut \u233?galement s'av\u233?rer utile lorsque ma\u238?trise d'ouvrage et ma\u238?trise d'\u339?uvre sont en conflit (larv\u233? ou ouvert) et que les diff\u233?rents intervenants de la ma\u238?trise d'ouvrage n'ont pas une id\u233?e tr\u232?s claire de ce qu'ils souhaitent. Recueillir les diff\u233?rentes fonctions ou contraintes sur des Post-lt* et les \u233?taler sur un mur ou un tableau peut permettre de clarifier la situation. Une telle s\u233?ance de brainstorming peut \u234?tre suivie d'un diagramme des affinit\u233?s ou d'une maquette papier. 4. Brainstorming. Terme invent\u233? par Alex Osbome de brain, (cerveau), et to stonn, (attaquer, assaillir). Il ne s'agit donc pas d'une \u9632? temp\u234?te dans un cerveau \u187?, mais de s'attaquer mentale* ment, collectivement, \u224? une difficult\u233?. Le diagramme des affinit\u233?s La m\ u233?thode du diagramme des affinit\u233?s est utile lorsqu'il s'agit de < faire le tour de la question \u187?, d'en voir les diff\u233?rents aspects, et de les classer par cat\u233?gories. Les \u233?tapes de la m\u233?thode sont les suivantes : \u8226? L'animateur expose le probl\u232?me aussi clairement que possible.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences \u8226? Chaque participant \u233?crit une ou plusieurs r\u233?ponses au probl\u232?me, chacune d'elle sur une fiche (par exemple, une fiche adh\u233?sive de type Post-lt*). \u8226? L'animateur ramasse les r\u233?ponses et les expose \u224? l'ensemble des participants. Il \u233?tale les fiches sur une table ou les colle sur un mur. \u8226? Les participants regroupent les fiches par cat\u233?gories, sans avoir \u224? se justifier ; un participant peut d\u233?placer une fiche d'une cat\u233?gorie \u224? une autre. \u8226? Le regroupement en cat\u233?gories conti nue. jusqu'\u224? obtention d'un consensus. \ u8226? On peut cr\u233?er des sous-cat\u233?gories. \u8226? Les participants donnent un nom \u224? chaque cat\u233?gorie et sous-cat\u233?gorie. Plusieurs variantes \u224? cette technique existent, en fonction du type de probl\u232?me \ u224? traiter. Elle est surtout utile lors des premi\u232?res \u233?tapes de recueil et d'analyse des besoins, par exemple, pour conna\u238?tre les parties prenantes ou pour d\u233?terminer les grandes fonctions attendues du syst\u232?me (figure 8-3). Prescrire des m\u233?dicaments R\u233?diger la prescription Signer la prescription Consulter le dossier du patient R\u233?pondre \u224? l'avis pharmaceutique Administrer des m\u233?dicaments Lire la prescription Valider 1' administration Analyser la prescription Donner un avis pharmaceutique Pr\u233?parer les doses G\u233?rer les stocks de m\u233?dicaments Figure 8-3 : Diagramme des affinit\u233?s L'observation directe Observer un utilisateur sur le lieu de son travail est souvent le moyen le plus simple de conna\u238?tre ses besoins. C'est aussi un moyen de conna\u238?tre ses difficult\u233?s et les probl\u232?mes qu'il rencontre (avec le logiciel actuel ou en l'absence de logiciel) de mani\u232?re \ u224? formuler des exigences qui aboutiront \u224? un produit bien adapt\u233? \ u224? leurs besoins. O\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil Certains utilisateurs (ou futurs utilisateurs) sont capables de mod\u233?liser eux-m\u234?mes leur travail, c'est-\u224?-dire d\ u233?crire la succession des t\u226?ches qui le constituent. D'autres sont beaucoup plus \u224? l'aise lorsqu'ils sont dans l'action. L'observation peut \u234?tre neutre, \u224? distance, l'observateur se faisant le plus discret possible. Elle peut \u234?tre plus intrusive, l'observateur posant \u224? l'utilisateur des questions sur la mani\u232?re dont il s'y prend. Cette technique a ses limites. Elle permet de recueillir les besoins op\u233?rationnels pour des op\u233?rations visibles, les op\u233?rations intellectuelles \u233?tant difficilement observables et analysables de l'ext\u233?rieur. Avec cette technique, on ne pourra d\u233?crire les besoins g\u233?n\u233?riques ou de haut niveau qu'apr\u232?s analyse de nombreuses observations. Les questionnaires Le questionnaire est un moyen facile de recueillir des opinions ou des donn\u233?es de la part d'un grand nombre de personnes. Cependant, cette technique n'encourage pas la cr\u233?ativit\u233? et l'\u233?mergence de nouvelles id\u233?es. La technique la plus courante consiste \ u224? utiliser une \u233?chelle de Likert. Les cat\u233?gories de r\u233?ponses, sur une \u233?chelle comportant quatre \u224? sept niveaux, sont formul\u233?es de mani\u232?re \u224? ce que leur signification soit claire pour tout le groupe de personnes interrog\u233?es. Les questions ferm\u233?es (cases \u224? cocher) facilitent l'analyse. Mais l'\u233?laboration de telles questions est loin d'\u234? tre un exercice facile. Les questions doivent \u234?tre tr\u232?s claires, sp\u233? cifiques, neutres (ne pas induire la r\u233?ponse) et formul\u233?es avec le vocabulaire de celui qui r\u233?pond. Il est possible d'ajouter quelques questions ouvertes lorsque le questionnaire s'adresse \u224? un petit nombre de personnes. Pour \u233?laborer le questionnaire, les questions \u224? se poser sont : \u8226? Quel est l'objectif du questionnaire ? Que veut-on savoir pr\u233?cis\u233?ment ? \ u8226? Comment cette information peut-elle \u234?tre fournie ? \u8226? Quel est le degr\u233? de pr\u233?cision recherch\u233? ? \u8226? Quel est le nombre de questions \u224? poser pour avoir les informations recherch\u233?es ? \u8226? Combien de questions est-il r\u233?aliste de poser ? \u8226? Qui va exploiter les r\u233?ponses et comment ?\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences La r\u233?utilisation d'exigences Un cahier des charges d'un autre logiciel, ou d'une version pr\u233?c\u233?dente du m\ u234?me logiciel, peut contenir des exigences r\u233?utilisables. Souvent, le recueil consiste alors \u224? simplement reprendre les exigences, \u233? ventuellement en mettant \u224? jour le vocabulaire. On v\u233?rifiera sa compatibilit\u233? avec les autres exigences, pour \u233?viter redondances et incoh\u233?rences. L'analyse de produits existants \u192? d\u233?faut de cahier des charges existant, on peut examiner un logiciel d\u233?j\u224? en production. Il sera tr\u232?s riche en enseignements. Il est bien entendu possible d'examiner un produit d\u233?j\u224? en production, qui arrive en fin de vie. que l'on souhaite remplacer ou red\u233?velopper. L'analyse d'un produit existant permet dans ce cas de d\u233?couvrir des exigences implicites, des fonctions utilis\u233?es au quotidien, mais dont les utilisateurs n'ont pas conscience. On peut \u233?galement analyser un produit concurrent de celui que l'on souhaite d\u233?velopper ou faire d\u233?velopper. Si la loi interdit de < d\u233?compiler \u187? un logiciel, rien n'interdit en revanche de l'analyser sur le plan comportemental. \u192? ce propos, un \u233?diteur d'un logiciel pourtant \u171? pointu \u187? \u224? qui on disait que son produit \u233?tait le meilleur du march\u233? a r\u233?pondu qu'il avait \ u8364? achet\u233?, install\u233? et test\u233? tous les produits de la concurrence \u187?. Cela ne l'emp\u234?chait pas de proposer des fonctions innovantes introuvables ailleurs. Rechercher l'inFormation l\u224? o\u249? elle se trouve Nous avons vu qu'il y a diff\u233?rents niveaux d'exigences. \u192? chaque niveau, les exigences seront recueillies aupr\u232?s d'un interlocuteur diff\u233?rent, avec des techniques diff\u233?rentes. Le donneur d'ordres va apporter les exigences du plus haut niveau, c'est- \u224?-dire les objectifs. On utilisera l'interview structur\u233?e, ou les r\u233?unions en petit comit\u233?. Les techniques comme le brainstorming ou le diagramme des affinit\u233?s peuvent \u234?tre tr\u232?s utiles, mais rarement possibles dans la pratique. Les objectifs doivent \u234?tre recueillis le plus souvent chez des dirigeants ou les cadres sup\u233?rieurs, et il est difficile de r\u233?unir tous ces d\u233?cideurs pendant une heure trente sur le th\u232?me \u171? brainstorming \u187?. L'interview face \u224? face est la technique la plus indiqu\u233?e dans ce cas. G\u239?\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil Pour recueillir les besoins des utilisateurs, les groupes de travail d'une journ\u233?e \u224? intervalles de deux ou trois semaines, programm\u233?s longtemps \u224? l'avance, sont les plus efficaces. L'observation directe, sur site, est consommatrice de temps pour l'analyste. Si celui-ci est habile et discret, un grand nombre d'observations peuvent \u234?tre faites avec un minimum de perturbation des utilisateurs au travail. L'observation directe altern\u233?e avec les groupes de travail est tr\u232?s utile, l'une permettant de valider l'autre. Objectifs Interview Individuelle Exigences d'entreprise. ttt Ma\u238?trise d'ouvrage R\u233?unions R\u232?gles de gestion, Contraintes techniques tt Experts techniques ttt Interviews. r\u233?unions Experts m\u233?tier Exigences S . . . . . . . . . . . \'5cQuestionnalres. uateW- ffff\ u239?\u239?ff f|| ffffffV \'5c ,ntwvk)ws. Groupes de travail utilisateurs r\u233? unions. Figure 84 : Recueillir l'exigence au bon niveau Les bonnes pratiques Que ce soit au cours d'une interview ou lors d'une r\u233?union de travail, un certain nombre de bonnes pratiques doit \u234?tre respect\u233? si l'on veut travailler efficacement. Recueillir les besoins au bon niveau Comme nous l'avons vu, les exigences devront \u234?tre recueillies aupr\u232?s des interlocuteurs idoines. On recueille les objectifs (exigences du niveau le plus \u233?lev\u233?) aupr\u232?s de la direction g\u233?n\u233?rale, les exigences les plus d\u233?taill\u233?es aupr\u232?s des utilisateurs sur le terrain. Ce principe g\u233?n\u233?ral pose la question de l'ordre dans lequel seront men\u233?es les interviews. A priori, l'ordre id\u233?al est celui qui consiste \u224? partir des objectifs (donc du ma\ u238?tre d'ouvrage strat\u233?gique), puis \u224? descendre progressivement vers plus de d\u233?tails jusqu'aux utilisateurs les plus op\u233?rationnels. Outre le fait que cela n'est pas toujours possible, cela pose d'autres difficult\u233?s : si l'on veut \u233?viter de poser au directeur g\u233?n\u233?ral des questions dont la r\u233?ponse est facile \u224? trouver aupr\u232?s des op\u233?rationnels O\par\ pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences 5. Une astuce : util\u187?* ser le mode r\u233?vision d'un traitement de texte (si on ma\u238?trise cette technique), ou utiliser des para* graphes de couleurs diff\u233?rentes pour visualiser les modifications nouvellement int\u233?gr\u233?es. (mais a priori inconnue de l'intervieweur), il faudrait les avoir interview\u233?s avant. Apporter un retour rapide aux interlocuteurs Suite \u224? un entretien ou \u224? une r\u233?union de recueil, il est utile de r\u233?diger un compte-rendu. C'est une bonne pratique bien connue, et \u233?galement une marque de courtoisie \u224? l'\u233?gard de ses interlocuteurs. R\u233?diger un compte- rendu d\u233?taill\u233? et pr\u233?cis pr\ u233?sente aussi quelques inconv\u233?nients car cela prend du temps qui pourrait souvent mieux \u234?tre utilis\u233? ; on se retrouve avec un grand nombre d\u233? comptes-rendus, qui constituent une documentation lourde \u224? g\u233?rer. Une mani\u232?re plus efficace de proc\u233?der consiste \u224? : \u8226? lors d'une interview ou r\u233?union, donner aux interlocuteurs un feedback imm\u233?diatement apr\u232?s l'expression d'un besoin : \u8226? suite \u224? une interview ou une r\ u233?union, utiliser le cahier des charges lui- m\u234?me comme compte-rendu. Tr\ u232?s concr\u232?tement, au cours du recueil, il est utile de donner un retour direct (un feedback) \u224? ses interlocuteurs, sous forme de reformulation de ce qui vient d'\u234?tre dit, \u233?ventuellement en utilisant un moyen de communication diff\u233?rent, par exemple un sch\u233?ma. Cela rassure les interlocuteurs et \u233?vite de partir dans une fausse direction. Puis, suite \ u224? l'entrevue ou la r\u233?union, on int\u233?grera ce qui a \u233?t\u233? formul\u233? dans le cahier des charges, et on le soumettra \u224? la validation5 des participants. Attention : il ne s'agit en aucun cas de court-circuiter les \ u233?tapes d'analyse et de sp\u233?cification, mais de faire une analyse partielle et une sp\u233?cification des besoins qui ont \u233?t\u233? formul\u233?s lors de la r\u233?union. Parler le langage du client De mani\u232?re g\u233?n\u233?rale, si on veut faciliter la communication, il faut apprendre et utiliser le langage du ma\ u238?tre d'ouvrage plut\u244?t que de forcer ce dernier \u224? utiliser notre jargon technique. Par langage, on entend bien s\u251?r le vocabulaire, mais \u233? galement la mani\u232?re de repr\u233?senter l'information. Un juriste a l'habitude de travailler sur du texte. Si un sch\u233?ma simple peut \u233?ventuellement l'aider, un sch\u233?ma complexe (ceux dont raffolent justement les informaticiens) est \u224? \u233?viter. Inversement, si les utilisateurs sont des informaticiens ou des ing\u233?nieurs, un sch\u233?ma sera souvent plus parlant qu'un texte. Lever toute ambigu\u239?t\u233? au fil de l'eau Les mots ont souvent un sens diff\u233? rent d'un m\u233?tier \u224? l'autre, m\u234?me au sein d'une m\u234?me organisation. Rappelons \u224? ce sujet que tout terme un 0\par\pard\plain\hyphpar} { Chapitre 8 - L'\u233?tape de recueil tant soit peu ambigu devra \u234?tre inclus dans un glossaire. Ce glossaire, qui fait partie du cahier des charges, devra \ u234?tre enrichi tout au long du processus de son \u233?laboration. Maintenir la coh\u233?rence le plus en amont possible Les \u233?tapes d'analyse, de sp\u233? cification et de validation sont pr\u233?sent\u233?es dans les chapitres suivants de cet ouvrage. Mais certaines des op\u233?rations de ces \u233?tapes peuvent \ u234?tre effectu\u233?es en amont, en phase de recueil : \u8226? suite \u224? une interview, r\u233?aliser un examen rapide de la coh\u233?rence avec les notes d'autres interviews, afin de d\u233?tecter des incoh\u233?rences ou des manques ; \ u8226? lors d'une r\u233?union de recueil, repr\u233?senter l'information sous forme de sch\u233?ma ; \u8226? \u224? la suite d'une interview, et si n\u233? cessaire, envoyer un bref compte-rendu \u224? la personne interview\u233?e pour validation. En cas de conflit entre exigences, il est important qu'il soit r\u233? solu avant de poursuivre. L'analyse des parties prenantes qui a \u233?t\u233? faite pendant l'\u233?tape pr\u233?paratoire permet de savoir qui a plus de poids. Trouver le d\u233?cideur qui tranchera le conflit est important, mais cela demande de l'habilit\u233?. Le d\u233?cideur n'est pas toujours le futur utilisateur, il n'est pas au-dessus des lois et des r\u232?glements, mais il joue un r\u244?le cl\ u233?. Cette activit\u233? rel\u232?ve de la n\u233?gociation des exigences (que certains auteurs consid\u232?rent comme une \u233?tape \u224? part enti\u232?re dans le processus de d\u233?veloppement et de gestion des exigences). Si les conflits entre exigences ne sont pas r\u233?gl\u233?s pendant la phase d'exigences (et de pr\u233?f\u233?rence pendant le recueil, ou juste apr\u232?s), qui se chargera de le faire ? Les \u233?quipes de la phase suivante, c'est-\u224?-dire les concepteurs-d\u233?veloppeurs. Ce n'est pas leur r\u244?le. Recueillir les besoins et non les solutions D\u232?s l'\u233?tape de recueil, il est important de ne retenir que les besoins, et non les solutions. M\u234?me chez les assistants \u224? ma\u238?trise d'ouvrage exp\u233?riment\u233?s, exprimer des solutions en lieu et place des besoins est une erreur fr\u233?quente. En effet, il existe une \u171? zone floue \u187? entre les exigences et la conception, et il n'est jamais facile de savoir quand s'arr\u234?ter. Recueillir les besoins alternatifs et exceptionnels On a naturellement tendance \u224? recueillir le \u171? flux normal \u187? d'un processus, et \u224? exprimer les besoins correspondant \u224? des conditions normales. Or, un syst\u232?me doit traiter les situations d'exception, par d\u233? finition rares et improbables. Tr\u232?s souvent, pour un seul cas normal d'utilisation du syst\u232?me, il peut exister de nombreux cas exceptionnels. o\ par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Les cas exceptkmr^ sont par d^ Mais leur l\u233?\u231?\u249?eil p\u232?trt \u232?ta difft\u224?te et leur eux qui posent proW\u232?me.\u224? toutes les phases du ^e tion. Raison de plus pour les i^^ :Kt\u233?s^iiM&^^ un distributeur automatique de biHeter par exerrHrfe en cas d'err\u233? rrialies\u224?tiaitersuite\u224?urf\u226? En plus des cas exceptionnels (par exemple, d\u233?passement d'une limite autoris\u233?e ou erreur de la part de l'utilisateur), il faut penser au comportement que le syst\u232?me devra adopter en cas d'anomalie du syst\u232?me lui-m\u234?me. Recueillir les besoins positifs, mais aussi n\u233?gatifs Les besoins n\u233?gatifs, ou exprim\u233?s n\u233?gativement, sont fort utiles \u224? l'analyste. Le \u171? questionnement n\u233?gatif \u187? permet de mettre en lumi\u232?re des besoins qui n'auraient pu \u234?tre exprim\ u233?s que difficilement de mani\u232?re positive. C'est aussi un bon moyen de recueillir les besoins des personnes r\u233?sistantes au changement. La n\u233? gation est souvent la porte de l'am\u233?lioration, et les personnes r\u233? sistantes au changement peuvent \u234?tre tr\u232?s cr\u233?atives. Cornitte pour les besx^ \u234?^ recueilfis par des quest\u187?rfc ouvert^ seniwuve^ le syst\u232? me a\u233?toel^SJ quelque diose vous d\u233?rangeait avec te syst\u232?me adueL ce serait quoi ? Que voudr\u238?etvous que le syst\u232?me \u224? t\u224?ift'i\u224? ssei. que le syst\u232?nie actuel ne fait pas? Faisons tafts^te \u201?couter le silence Il y a des besoins que l'on recueille plus facilement en creux, dans le non-dit ou dans le \u171? presque rien \u187?. En posant des questions ouvertes, g\ u233?n\u233?rales, voire impr\u233?cises, vagues, ambigu\u235?s... la r\u233?ponse vient souvent spontan\u233?ment. Le client compl\u232?te la question impr\u233?cise par une phrase pr\u233?cise, en employant ses propres mots. L'impr\u233?cision d\ u233?clenche la pr\u233?cision. Une question impr\u233?cise est souvent un moyen d'aboutir \u224? une formulation pr\u233?cise. Le langage flou permet de formuler un discours o\u249? chacun entend ce qu'il veut bien. Proscrit de l'\u233?tape de sp\u233?cifications (c'est de la langue de bois), il est ici utilis\u233? pour provoquer de la pr\u233?cision de la part de l'interview\u233?. Q\par\pard\plain\ hyphpar} { Chapitre 8 - L'\u233?tape de recueil Enc\u233?quicwKerr^lafohctkM Tester la validit\u233? des exigences au plus t\u244?t Il ne s'agit pas de valider les exigences, mais de les tester au plus t\u244?t. Sont-elles utiles ? Refl\u232?tent- elles les vrais besoins ? Sont-elles r\u233?alisables \u224? un co\u251?t raisonnable ? Il s'agit de parcourir, avec l'interview\u233?, le cheminement mental qui a conduit \u224? l'expression de ce besoin. Parfois, les besoins exprim\u233?s n'ont aucune utilit\u233?. C'est en particulier le cas lorsqu'un utilisateur a pris ses habitudes avec un syst\u232?me ancien et veut retrouver les m\u234?mes fonctionnalit\u233?s dans le nouveau syst\u232?me, alors qu'elles n'ont pas lieu d'\u234?tre. Un autre moyen consiste, apr\u232?s avoir interview\u233? un utilisateur et lui avoir fait pr\u233?ciser un besoin, de l'exprimer \u224? une autre personne et de lui demander son avis. Les interviews individuelles sont parfois plus efficaces que les groupes de travail, surtout si un besoin \u171? obsol\u232?te \u187? a \u233?t\u233? exprim\u233? par un sup\u233?rieur hi\u233? rarchique : le subordonn\u233? ne s'exprimera que s'il a confiance en l'intervieweur. Check-list de fin d'\u233?tape de recueil La \u171? fin d'\u233? tape \u187? est hypoth\u233?tique, car les besoins \u233?voluent en permanence, qu'on ne peut jamais \u234?tre certain d'avoir \u233?puis\u233? la liste potentielle d'exigences, et que les \u233?tapes sont imbriqu\u233?es : on aura commenc\u233? \u224? analyser, sp\u233?cifier et valider bien avant d'avoir coch\ u233? tous les points de la check-list. Cette check-list peut \u234?tre utilis\ u233?e \u224? tout moment pour conna\u238?tre l'avancement du recueil des exigences et \u233?viter de passer \u224? c\u244?t\u233? de points importants. \u8226? On a soigneusement \u233?tabli la liste des parties prenantes. \u8226? On a formalis\ u233? les attentes de chaque partie prenante. \u8226? Toutes les parties prenantes sont repr\u233?sent\u233?es et actives. \u8226? On a soigneusement \u233?tabli la liste des sources d'exigences. \u8226? Les exigences ont \u233?t\u233? recueillies chez les vrais utilisateurs. \u8226? Toutes les cat\u233?gories d'utilisateurs sont repr\u233?sent\u233?es. \u8226? Toutes les cat\u233?gories d'utilisateur se sont exprim\u233?es.\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences \u8226? On a recueilli les exigences positives, et aussi n\u233?gatives. \u8226? On a donn\u233? un feedback \u224? tous les participants. \u8226? Les participants ont relu ou revu les besoins exprim\ u233?s. \u8226? Les exigences d\u233?rivent des objectifs. \u8226? On n'a retenu que les besoins, non des \u233?l\u233?ments de solution.\par\pard\plain\hyphpar} { Chapitre 9 Les cas d'utilisation Les cas d'utilisation (use cases en anglais) sont devenus c\u233?l\u232?bres gr\u226?ce, en particulier, \u224? UML (Unt/fed Modeiing Language). Cependant, les adeptes d'UML utilisent le plus souvent les diagrammes de cas d'utilisation, ce qui est un peu r\u233?ducteur. Les cas d'utilisation sous forme textuelle offrent, eux, une grande richesse d'expression. Qu'est-ce qu'un cas d'utilisation ? Un cas d'utilisation est un contrat de comportement, entre un syst\ u232?me (par exemple, un logiciel) ou un sous-syst\u232?me et des acleurs qui interagissent avec lui. Ces acteurs peuvent \u234?tre des utilisateurs (humains) du syst\u232?me ou des syst\u232?mes voisins. Un cas d'utilisation regroupe un ensemble de sc\u233?narios (figure 9-1 ) qui peuvent, soit aboutir, soit \u233? chouer. Pour formuler un cas d'utilisation, on doit respecter les contraintes suivantes : \u8226? Un cas d'utilisation se rapporte \u224? un objectif et un seul. \u8226? Il d\u233?crit un comportement utile \u224? l'atteinte de cet objectif. \ u8226? La description prend le point de vue d'une (ou plusieurs) partie(s) prenante(s). \u8226? Il comporte un acteur principal et un seul. \u8226? Il d\u233? bute avec un \u233?v\u233?nement d\u233?clencheur. \u8226? Il se poursuit jusqu'\ u224? ce que l'objectif soit atteint ou abandonn\u233?.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences M\u233?decin prescripteur S\u233? lectionner un patient \'5c'7d Saisir la prescription Modifier la prescription 1 <^oM\u232?me)> Non \u9660? Signer la prescription Syst\u232?me v Interroger basem\ u233?d. \'5c'7b Contr\u244?ler les posotogies 1 Contr\u244?ler les interactions Alimenter le plan de soin Figure 9-1 : Sc\u233?nario de cas d'utilisation 1. Le plus connu est Alistair Cockbum. Voit R\u233?diger des cas d'utilisation efficaces publi\u233? aux \u233?ditions Eyrolles. Le contenu d'un cas d'utilisation Un cas d'utilisation s'exprime essentiellement sous forme textuelle. Les diff\u233?rents items qui le composent varient selon les auteurs1, le type d'application, le degr\ u233? de pr\u233?cision que l'on veut atteindre gr\u226?ce aux sp\u233?cifications. Voici une structuration assez classique : \u8226? Acteur principal : c'est la personne qui. dans le pr\u233?sent cas d'utilisation, interagit avec le syst\u232? me. \u192? eux deux, ils \u171? ex\u233?cutent \u187? le cas d'utilisation. \u8226? Autres acteurs : toutes les personnes impact\u233?es par la mise en \u339?uvre du cas d'utilisation. \u8226? D\u233?clencheur : il s'agit de l'\u233?v\u233?nement qui d\u233?clenche le cas d'utilisation. En principe, c'est un \u233?v\u233?nement m\u233?tier (voir le diagramme de contexte). \u8226? Description : description courte du d\u233?roulement du cas d'utilisation. en\par\pard\plain\hyphpar} { Chapitre 9 - Les cas d'utilisation \u8226? Pr\u233?conditions : conditions qui doivent \u234?tre v\u233?rifi\u233?es, pour que le cas d'utilisation d\u233? marre. \u8226? Postconditions : \u233?galement appel\u233?es garanties en cas de succ\u232?s. \u201?tat du syst\u232?me \u224? la fin de l'ex\u233?cution du cas d'utilisation. \u8226? Garanties minimales : \u233?tat du syst\u232?me lors de l'ex\u233?cution du cas. quelle qu'en soit l'issue. \u8226? Sc\u233?nario nominal : c'est un sc\u233?nario formul\u233? comme une alternance d'actions de l'utilisateur et de r\u233?ponses du syst\u232?me. Il d\u233?crit l'ex\u233?cution du cas d'utilisation dans des conditions attendues. L'ex\u233?cution du sc\u233?nario permettra d'atteindre l'objectif \u233?nonc\u233? dans le titre du cas d'utilisation. G\u233?n\u233?ralement, les actions sont num\u233?rot\u233?es. \ u8226? Sc\u233?nario alternatif2 : s\u233?quence alternative du sc\u233?nario. La num\u233?rotation permet de se raccrocher au flux normal. Par exemple, si on d\ u233?crit une alternative \u224? la s\u233?quence 2-5. on notera les actions 2-5.a. 2-5.b. etc. \u8226? Exceptions : s\u233?quence d\u233?clench\u233?e par une anomalie ou une erreur lors de l'ex\u233?cution du flux normal ou d'un flux alternatif. \u8226? Cas indus : liste des cas d'utilisation inclus dans le cas d'utilisation pr\u233?sent. Les cas inclus sont en quelque sorte des \u171? sous- cas \u187? (analogues \u224? des sous-programmes). Ils permettent de d\u233?crire des s\u233?quences qui se retrouvent dans plusieurs cas d'utilisation, ou d'am\ u233?liorer la lisibilit\u233?. \u8226? Fr\u233?quence d'utilisation : nombre estim\u233? de fois o\u249? ce cas d'utilisation sera ex\u233?cut\u233? par les acteurs, dans l'unit\u233? de temps appropri\u233?e (jours, heures...). \u8226? R\ u232?gles m\u233?tier : r\u232?gles m\u233?tier auxquelles ce cas est subordonn\ u233?. \u8226? Exigences particuli\u232?res : exigences suppl\u233?mentaires (exigences non fonctionnelles, contraintes...) qui s'appliquent \u224? ce cas d'utilisation. \u8226? Notes et questions : remarques particuli\u232?res. Cockbum et ses adeptes ajoutent les points suivants : \u8226? Port\u233?e de conception : c'est la largeur du champ de la description ; par exemple l'entreprise, le syst\ u232?me, ou un sous-syst\u232?me. \u8226? Niveau d'objectif : d\u233?signe le niveau de l'objectif que l'on veut atteindre : niveau strat\u233?gique, niveau utilisateur (int\u233?resse l'acteur principal), ou niveau d'une sous-fonction. Ces deux derniers points sont int\u233?ressants, et pour Cockbum, ils devraient \u234? tre obligatoires pour d\u233?crire un cas d'utilisation. C'est ainsi dans les projets importants o\u249? l'on d\u233?veloppe un grand nombre de cas d'utilisation. Ces notions, bien que tr\u232?s utiles, ne sont pas toujours faciles \u224? manier. 2. Cockbum utilise le terme extensions qui regroupe sc\u233?narios alternatifs et exceptions.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Avantages des cas d'utilisation Les cas d'utilisation ont un \u233?norme avantage : ils concilient les litt\u233?raires (au sens large du terme : c'est-\u224?-dire les personnes port\u233?es sur le langage \ u233?crit plut\u244?t que sur les sch\u233?mas) et les informaticiens. Pour qui a pratiqu\u233? la programmation, un cas d'utilisation rappelle un algorithme \u233? crit en pseudo-code. Il pr\u233?sente n\u233?anmoins les exigences sous une forme ais\u233?ment compr\u233?hensible par tous, ce qui permet d'obtenir facilement une vision commune, et donc d'aboutir \u224? un consensus entre parties prenantes (c'est le but du cahier des charges). L'autre avantage est celui du point de vue. Les cas d'utilisation sont \u233?crits dans la langue de l'utilisateur, et centr\ u233?s sur ses actions. Cela augmente les chances d'obtenir un produit lui-m\u234? me centr\u233? sur l'utilisateur. Enfin, les exigences r\u233?dig\u233?es de cette mani\u232?re mod\u233?lisent une activit\u233? r\u233?elle, et donc de vrais besoins ; avec ce proc\u233?d\u233?, il y a peu de chances qu'un utilisateur exprime des besoins \u171? gadgets \u187? pour se faire plaisir (ce qui arrive souvent quand on commence par d\u233?crire l'interface utilisateur). Les cas d'utilisation offrent plus de chances \u224? l'\u233?quipe de d\u233?veloppement de r\u233?aliser un logiciel robuste. Ils \u233?vitent les zones floues qui pourraient \u234?tre mal interpr\u233?t\u233?es pendant le d\u233?veloppement. En d\u233? crivant tous les sc\u233?narios possibles (combinaisons du sc\u233?nario nominal, des sc\u233?narios alternatifs et des sc\u233?narios en cas d'\u233?chec), on a plus de chances de donner aux concepteurs un document coh\u233?rent qu'en leur fournissant une liste de fonctions. Enfin, \u224? partir des cas d'utilisation, il est relativement facile de d\u233?duire les cas de test. Les cas d'utilisation sont donc le \u171? couteau suisse \u187? de la mod\u233?lisation des exigences. Ils peuvent \u234?tre utilis\u233?s \u224? tous les niveaux, depuis les objectifs strat\u233?giques jusqu'\u224? la description d'un comportement tr\u232?s d\u233? taill\u233?. Ils permettent de d\u233?crire des processus, de n\u233?gocier entre parties prenantes, de faire ressortir (et donc d'anticiper) les probl\u232?mes. \ u192? partir de l\u224?. il sera possible de faire une premi\u232?re estimation des co\u251?ts de d\u233?veloppement, de reboucler sur les objectifs d\u233?finis plus en amont, puis de passer \u224? la phase de conception. Les concepteurs pourront par la suite se servir de cas d'utilisation pour d\u233?crire, non plus les besoins, mais la solution, et la ma\u238?trise d'ouvrage reprendre la main pour pr\ u233?ciser les sc\u233?narios de recette. Elaboration des cas d'utilisation Les cas d'utilisation sont un excellent outil d'analyse, mais aussi de recueil et de sp\ u233?cification. Ils s'av\u232?rent utiles pour assembler les besoins \u8364?3\par\ pard\plain\hyphpar} { Chapitre 9 - Les cas d'utilisation recueillis aupr\u232?s de plusieurs acteurs, travailler avec les diff\u233?rents acteurs, interagir avec eux, et faire valider les exigences correspondantes. En d'autres termes, c'est un bon moyen de transformer un besoin en exigence. Une s\u233?quence d'\u233?laboration d'un cas d'utilisation peut \u234?tre la suivante : \u8226? recueillir les besoins de haut niveau aupr\u232?s de la ma\u238?trise d'ouvrage ; \u8226? en d\u233?duire les cas d'utilisation ; \u8226? recueillir les besoins aupr\u232?s de diff\u233?rentes sources (documentation client, produits existants, etc.) ; \u8226? compl\u233?ter le recueil aupr\u232?s de plusieurs utilisateurs ; \u8226? consolider l'ensemble et d\u233?gager un ou plusieurs sc\u233?narios ; \u8226? d\u233?crire ces sc\u233? narios au moyen d'un cas d'utilisation relativement simple ; \u8226? distribuer le cas d'utilisation aux participants d'un groupe de travail -, \u8226? travailler en groupe sur le cas d'utilisation pour l'affiner ; \u8226? si n\u233?cessaire, it\ u233?rer sur les \u233?tapes pr\u233?c\u233?dentes. Un autre moyen efficace de d\ u233?terminer les cas d'utilisation consiste \u224? partir du diagramme de contexte : \u8226? Chaque fl\u232?che (entrante ou sortante) du diagramme de contexte est un \u233?v\u233?nement m\u233?tier \'5c'7bbusiness event). \u8226? L'\u233?v\u233? nement m\u233?tier est formul\u233? sous forme de phrase \u224? l'infinitif (par exemple, pr\u233?sume un m\u233?dicament). \u8226? L'\u233?v\u233?nement m\u233? tier devient la description du cas d'utilisation. \u8226? Une extr\u233?mit\u233? de la fl\u232?che pointe vers le syst\u232?me ; l'autre extr\u233?mit\u233? est l'acteur principal (par exemple, m\u233?decin prescripteur). \u8226? On travaille avec les parties prenantes, en particulier un repr\u233?sentant des utilisateurs (correspondant \u224? l'acteur principal et aux acteurs secondaires, par exemple un m\u233?decin et un pharmacien) pour d\u233?aire les sc\u233?narios (nominal et alternatif). Dans la pratique, comme toujours dans la d\u233?finition des besoins, on peut combiner ces deux approches, par raffinements successifs et allers et retours entre un diagramme de contexte et des cas d'utilisation. CttNWMT<df> SBWafnMT<MS (UEMMttGSS'mfMrtVflf\u201?S CflS CPViHHMlflQB ' te cas d'ir\u244? lisatkm c La m\u233?ttoxte consiste \u224? se p^tesquestfcMKsuiwrrttt \u8226? QueBes sort les dom^ \u8226? Queksort les traitements (<ato^\par\pard\plain\ hyphpar} { Partie 2 - D\u233?veloppement des exigences Un exemple Voici un exemple extrait d'un cahier des charges du domaine des syst\u232?mes d'information hospitaliers. L'acteur principal est le prescripteur (m\u233?decin ou sage-femme). Les acteurs secondaires, pharmacien et infirmier, traitent la prescription. Nom du CU. Acteur principal Autres parties prenantes Description Pr\u233?conditions Garanties minimales Garanties en cas de succ\u232?s Flux normal Prescrire Prescripteur Pharmacien, infirmier Le prescripteur prescrit des m\u233?dicaments \u224? un patient hospitalis\u233?. Le prescripteur est identifi\u233?. Le syst\u232?me dispose des informations utiles sur le patient Le patient est admis dans l'unit\ u233?. Le prescripteur a effectu\u233? son observation m\u233?dicale. Le prescripteur a consult\u233? le dossier patient Le livret th\u233?rapeutique est accessible au prescripteur. Le syst\u232?me tient \u224? jour un journal de toutes les op\u233?rations. Les informations saisies par le prescripteur ne seront accessibles aux autres acteurs qu'une fois la prescription sign\u233?e. La prescription est une op\u233?ration atomique. Elle ne peut r\u233?ussir enti\u232? rement ou \u233?chouer. La prescription peut \u234?tre valid\u233?e par la pharmacie. Mise \u224? jour du plan de soins avec le plan d'administration pr\u233? visionnel. Int\u233?gration de l'ordonnance dans le dossier m\u233?dical du patient 1. Le prescripteur s\u233?lectionne dans la liste des patients de l'unit\u233? de responsabilit\u233? m\u233?dicale le patient pour lequel une prescription doit \ u234?tre faite. 2. Le prescripteur saisit un \u233?l\u233?ment de prescription autant de fois que n\u233?cessaire. [saisir un \u233?l\u233?ment de prescription est un cas inclus]. 3. Le syst\u232?me contr\u244?le les nosologies et les interactions m\u233?dicamenteuses en interrogeant la base m\u233?dicamenteuse. 4. Le syst\u232?me contr\u244?le les interactions physiopathologiques. 5. Le syst\ u232?me signale les \u233?ventuelles interactions et anomalies. en\par\pard\plain\ hyphpar} { Chapitre 9 - Les cas d'utilisation Nom du CU. Flux normal (suite) Flux alternatif Cas inclus Fr\u233?quence d'utilisation Prescrire 6. En cas d'anomalie, le prescripteur peut modifier la prescription ou la maintenir et en indiquer les raisons. 7. Le syst\u232?me inscrit la prescription dans le plan de soins de l'infirmi\u232?re avec un statut \u171? en attente d'analyse par la pharmacie \ u187?. 8. Le prescripteur signe la prescription. 9. Le prescripteur peut imprimer l'ordonnance. [On traite ici d'une alternative \u224? l'\u233?tape 1 ] : 1 a - Si le prescripteur d\u233?cide une hospitalisation imm\u233?diate en consultation : 1 al - La prescription est faite sur une unit\u233? de consultation. Ia2 - Le prescripteur indique l'unit\u233? d'hospitalisation. 1a3 - Le syst\u232?me affecte la prescription \u224? l'unit\u233? d'hospitalisation. [Autre alternative \u224? l'\u233?tape 1 ] : 1 b - Si la m\u234?me \u233?quipe m\u233?dicale et soignante travaille sur deux unit\u233?s: 1 bl \u8226? Le prescripteur consulte une liste de patients comportant les patients des deux unit\u233?s. Saisir un \u233?l\u233?ment de prescription \u192? chaque consultation Les cas d'utilisation peuvent \u234?tre plus ou moins d\u233?taill\u233?s, selon le niveau de pr\u233?cision du cahier des charges. Difficult\u233?s et risques des cas d'utilisation Le premier risque est li\u233? \u224? l'apparente facilit\u233? d'\u233?criture. On peut faire l'analogie avec un ouvrage litt\u233?raire : un cas d'utilisation bien \u233?crit est tr\u232? s facile \u224? lire par tous les intervenants d'un projet. Son \u233?criture est en revanche beaucoup plus difficile, et demande de savoir ma\u238?triser les trois concepts de port\u233?e, d'acteur principal et de niveau, ce qui demande un certain entra\u238?nement. Les cas d'utilisation sont \u233?galement difficiles \u224? comprendre (et a fortiori \u224? \u233?laborer) lorsqu'ils d\u233?crivent un processus qui n'existe pas et qui devra \u234?tre informatis\u233?. Par exemple, un m\u233?decin comprendra tr\u232?s facilement le CTfr\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences cas d'utilisation appel\u233? prescrire un m\u233?dicament, mais aura du mal \u224? r\u233?agir face \u224? un cas d'utilisation d\u233?crivant une pratique professionnelle qu'il ne ma\u238?trise pas encore. D'autre part, les cas d'utilisation ne sont pas adapt\u233?s \u224? toutes les situations. Ils sont de peu d'utilit\u233? pour des syst\u232?mes o\ u249? les interactions et transactions sont peu fr\u233?quentes, comme les programmes de calcul scientifique ; et \u233?galement dans des cas o\u249? les interactions sont tr\u232?s complexes, comme les syst\u232?mes temps r\u233?el. Il en est de m\u234?me pour les syst\u232?mes s'appuyant sur des r\u232?gles de gestion nombreuses et complexes. Enfin, ils ne sont pas du tout adapt\u233?s \u224? la description des exigences non fonctionnelles. Dans tous ces cas. il est pr\u233? f\u233?rable d'utiliser d'autres mod\u232?les de description. Vouloir sp\u233? cifier la totalit\u233? des exigences sous forme de cas d'utilisation est donc inefficace. Et certaines exigences, m\u234?me parmi celles pouvant \u234?tre d\ u233?crites de cette fa\u231?on, gagent \u224? l'\u234?tre au moyen de formalismes diff\u233?rents. D'une mani\u232?re g\u233?n\u233?rale, lors de l'\u233?laboration d'un cas d'utilisation, il faut rester simple et utiliser cet outil pour ce \u224? quoi il est destin\u233? : d\u233?crire un ensemble de sc\u233?narios permettant d'atteindre un objectif dans l'int\u233?r\u234?t des acteurs. Les cas suivants doivent \u234?tre consid\u233?r\u233?s comme des signaux de danger : \u8226? des cas d'utilisation trop nombreux, dans lesquels on se perd ; \u8226? des cascades de cas inclus -, \u8226? des cas d'utilisation complexes, trop longs, incompr\u233? hensibles par certains acteurs ; \u8226? des cas d'utilisation qui d\u233?crivent l'interface utilisateur, ou les donn\u233?es : ils ne sont pas faits pour \u231?a. Les diagrammes de cas d'utilisation Que penser des diagrammes de cas d'utilisation ? Les adeptes d'UML en font un usage abondant, alors qu'Alistair Cockbum ne les utilise qu'avec grande parcimonie, en mettant le lecteur en garde contre les risques que pr\u233?sente leur utilisation. En r\u233?alit\u233?, dans les cas simples, les diagrammes de cas d'utilisation sont faciles \u224? dessiner et \u224? comprendre, mais sont de peu d'utilit\u233?. Dans les cas complexes, ils sont peu maniables et ont tendance \u224? devenir incoh\u233?rents et ambigus. Finalement, ils ne sont utiles qu'\u224? petites doses, \u224? titre illustratif. CE)\par\pard\plain\hyphpar} { Chapitre 9 - Les cas d'utilisation * Si vous passez beaucoup detemps\u224?\u233?tu^ prendre en compte, tfe* que vofe\u233?nei^ rWacnw de textt^M entre cas <f utilisation sontdirectes. Apr\u232?s cela, vous aure^ rKBuds\u226?u cerveau \u224? leur sujet [^ Ceux qui \u233?crivent de bons <as d'utilisation textuels ne sont tout simplement pas confront\u233?s aux probl\u232?mes que renccmtient \u339?ux o^ bricoiert des personnages stylis\u233?^ des eiTrpses et des fl\u232?ches pr&\u224? ms\u233?s par UML les relations se d\u233?gagent naturellement de P\u233?cm^re du r\u233?^ ; dles ne deviennert pro^ en fait un abc\u232?s de fixation. \u8364?ette id\u233?e fait son chemin \u224? mesure qtfun n^^ sant d\u233? consultants accumulent uiieexp\u233?rieiK\u187? doublet ATistairCockbum, kriredescasd'utilisathneffkaees,^^^^ (H)\par\pard\plain\hyphpar} { Chapitre 10 L'\u233?tape d'analyse Le ma\u238?tre d'ouvrage, les utilisateurs et autres parties prenantes expriment g\u233?n\u233?ralement leurs besoins en langue naturelle. Dans le cahier des charges, ces besoins seront reformul\u233?s sous forme d'exigences, dans la m\u234?me langue naturelle, mais sous une forme diff\ u233?rente, plus formelle. L'expression des exigences est donc une traduction entre le langage (et souvent le jargon) des utilisateurs et un langage tr\u232?s pr\u233? cis, compr\u233?hensible par tous les acteurs. Entre les deux, une repr\u233? sentation sous forme graphique, sous forme de sc\u233?nario, ou sous forme de prototype, permet d'obtenir une compr\u233?hension commune, de lever toute ambigu\ u239?t\u233? et incoh\u233?rence. Utilit\u233? de l'\u233?tape d'analyse Il est illusoire de penser que l'utilisateur ou son repr\u233?sentant va nous pr\u233? senter une liste bien ordonn\u233?e de besoins bien formul\u233?s. Les besoins sont en g\u233?n\u233?ral exprim\u233?s sous forme de grappes, dont il faudra trier les grains. Plusieurs besoins tr\u232?s diff\u233?rents peuvent \u234?tre formul\u233?s dans une m\u234?me phrase, comme \u171? on a besoin d'avoir toutes les informations d'un client sous les yeux, et de pouvoir choisir dans un menu les diff\u233?rents produits \u224? lui proposer, et le syst\u232?me doit r\u233?agir tr\u232?s vite sans jamais se bloquer \u187?. Dans cet exemple, le client : \u8226? N'indique pas l'acteur (qui est < on \u187? ?). \u8226? Exprime plusieurs besoins dans une m\ u234?me phrase. \u8226? M\u233?lange des besoins fonctionnels et non fonctionnels. \u8226? M\u233?lange des besoins g\u233?n\u233?raux (vision globale) et de d\u233?tail (choix).\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences \u8226? Formule une solution (choix dans un menu) \u224? la place d'un besoin. \u8226? Formule des besoins non mesurables (\u171? tr\u232?s vite \u187?). \u8226? Formule une exigence probablement irr\u233?aliste (< jamais >). Au cours d'une r\u233?union d'un groupe de travail, on peut recueillir une vingtaine de formulations de ce type. Et l'\ u233?laboration d'un cahier des charges peut n\u233?cessiter une quinzaine de r\ u233?unions de travail. On admettra facilement que trois cents phrases de ce type mises bout \u224? bout ne constituent pas un cahier des charges, mais une liste qui deviendra vite incoh\u233?rente. Pour travailler efficacement, il sera donc n\u233? cessaire d'analyser, de reformuler, de trier et de classer les besoins au fur et \ u224? mesure qu'ils se pr\u233?sentent, ou en tout cas le plus t\u244?t possible. Le processus d'analyse Les objectifs de l'\u233?tape d'analyse sont les suivants : \u8226? classer et structurer les exigences ; \u8226? d\u233?velopper une compr\u233?hension partag\u233?e des besoins qui ont \u233?t\u233? recueillis ; \u8226? d\u233?tecter les incoh\u233?rences, redondances et incompl\u233?tudes et faire le n\u233?cessaire pour les r\u233?duire, voire les \u233?liminer. Ces deux objectifs sont indissociables. Pour les atteindre, l'\u233?tape d'analyse fait largement appel \u224? l'exp\u233?rience et \u224? la cr\u233?ativit\u233?, car il n'y a pas de m\u233?thode miracle pour d\u233?tecter toutes les incoh\u233?rences et incompl\u233?tudes. La m\u233?thode empirique, qui consiste \u224? relire les exigences et \u224? en discuter en groupe de travail, a son utilit\u233?, mais on en voit vite les limites. Ce chapitre va d\u233?tailler des techniques sp\u233? cifiques qui seront mises en \u339?uvre, et en particulier : \u8226? structurer et organiser les exigences par types ; \u8226? \u233?tablir un dictionnaire de donn\ u233?es ; \u8226? analyser les r\u232?gles m\u233?tier ; \u8226? classer les exigences par priorit\u233?s ; \u8226? mod\u233?liser les exigences sous forme graphique ; \u8226? r\u233?aliser une \u171? maquette papier \u187? ou un prototype : \u8226? \u233?laborer des cas de test-. \u8226? tester la faisabilit\u233? et le co\u251?t des exigences. La figure 10-1 pr\u233?sente le processus g\u233?n\u233? ral de l'\u233?tape d'analyse. CD\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse -Recueil Structurer Mod\u233?iser Prioriser it \u201?tudier co\u251?t et faisabftt\u233? sp\u233?cification^ Figure 101 : Le processus d'analyse Si l'analyste a une formation d'ing\u233?nieur, il sera tent\ u233?, du moins dans un premier temps, de concevoir l'\u233?tape d'analyse comme une activit\u233? purement technique. En r\u233?alit\u233?, il ne sortira rien de bon si les diff\u233?rentes parties prenantes, et en particulier les repr\u233? sentants des utilisateurs, ne sont pas impliqu\u233?es. L'analyste doit ma\u238? triser UML (ou un autre langage graphique), mais il doit \u234?tre suffisamment p\ u233?dagogue pour rendre les diagrammes compr\u233?hensibles par tout lecteur potentiel. Structurer et organiser les exigences Les exigences doivent \u234?tre class\u233?es en cat\u233?gories, soit au fil de l'eau lors du recueil, soit au plus tard pendant l'\u233?laboration du document d'exigences (cahier des charges). La classification qui suit est inspir\u233?e de Karl Wiegers (voir bibliographie), mais la plupart des classifications s'en approchent. Les objectifs sont des exigences de haut niveau. Un objectif est formul\u233? sous forme de phrase avec un verbe \u224? l'infinitif, par exemple \u171? diminuer de 20 % le temps d'attente au guichet \u187?. Les objectifs sont exprim\u233?s, dans la majorit\u233? des cas. par le donneur d'ordre. Le verbe sous-entendu est le verbe vouloir (ou devoir, dans le sens d'une volont\u233?) : nous (l'entreprise) voulons diminuer le temps d'attente (il s'agit l\u224? de la volont\u233? du ma\u238?tre d'ceuvre). Les cas d'utilisation ou sc\u233?narios correspondent \u224? des besoins des utilisateurs et s'expriment \u233?galement comme une phrase \u224? l'infinitif, par exemple \ u171? enregistrer un nouveau client \u187?. La phrase sous-entendue est avoir besoin de, exprim\u233?e \u224? la premi\u232?re personne : \u171? j'ai besoin d'enregistrer tout nouveau client \u187?. Les r\u232?gles sont des exigences r\ u233?glementaires ou des r\u232?gles m\u233?tier (\u233?galement appel\u233?es r\ u232?gles de gestion). Le verbe sous-entendu ou explicite est devoir : le logiciel doit se conformer \u224? telle r\u233?glementation, dans des conditions bien d\ u233?finies. Par exemple : < un retrait d'esp\u232?ces ne peut \u234?tre effectu\ u233? que si le compte est positif \u187? (formul\u233? autrement, le compte doit \ u234?tre positif pour qu'un retrait puisse \u234?tre effectu\u233?). GJD\par\pard\ plain\hyphpar} { ie 2 - D\u233?veloppement des exigences Les exigences fonctionnelles constituent le c\u339?ur et souvent la partie la plus importante d'un cahier des charges. Elles expriment un comportement requis de la part du syst\u232?me. Elles d\u233?rivent des cat\u233?gories pr\u233?c\u233?dentes. Par exemple \u171? si le retrait d'esp\ u232?ces n'est pas autoris\u233?, le syst\u232?me envoie un message au client \ u187?. Les exigences de qualit\u233?, \u233?galement appel\u233?es exigences non fonctionnelles, bien qu'elles n'en constituent qu'une partie. Elles s'expriment sous forme d'adjectif (rapide, facile...) ou de la propri\u233?t\u233? correspondante (rapidit\u233?, facilit\u233?...). Les exigences d'interface qui expriment le besoin d'une communication entre le syst\u232?me \u224? l'\u233?tude et le monde ext\u233?rieur : mat\u233?riel, logiciel et personnes. Les contraintes techniques, comme l'utilisation d'un syst\u232?me ou d'un langage particulier, ou de technologies sp\u233?cifiques, comme un protocole de communication ou de s\u233? curit\u233?. Il est important d'analyser l'origine de ces contraintes et leur utilit\u233? r\u233?elle, car elles peuvent avoir des r\u233?percussions n\u233? gatives sur la fonctionnalit\u233? ou la qualit\u233?. Les exigences sur les formats de donn\u233?es, comme un code postal en cinq chiffres, un code pays. etc. Les suggestions de solutions qui n'ont pas lieu de se retrouver en tant que telles dans un cahier des charges, et qu'il faudra analyser pour remonter \u224? une exigence d'un des types pr\u233?c\u233?demment d\u233?finis. Par exemple, si l'exigence est \u171? la somme doit s'afficher en rouge \u187?. il est important de savoir pourquoi. Cela peut correspondre \u224? une r\u232?gle m\u233?tier (certains chiffres doivent s'afficher en rouge dans telle condition), d'une r\u232?gle d'ergonomie (homog\u233?n\u233?it\u233? : l'affichage doit \u234?tre le m\u234?me d'une application \u224? l'autre) ou d'un souhait personnel. D'autres informations ou exigences peuvent \u234?tre formul\u233?es. Elles pourront ou non se retrouver dans le cahier des charges, ou en pr\u233?ambule, ou en annexe de celui-ci : description de l'existant, contraintes sur les d\u233?lais, sur les co\u251?ts, sur la formation des utilisateurs, le d\u233?coupage en lots lors d'un appel d'offres, et toutes informations utiles \u224? ceux qui vont r\u233?pondre au cahier des charges. Il s'agit l\u224? d'une premi\u232?re classification qui. avec l'habitude, se fait mentalement au cours du recueil des exigences. Une classification plus pr\ u233?cise se fait lors de la r\u233?daction du cahier des charges, et d\u233?pend donc pr\u233?cis\u233?ment du mod\u232?le de cahier des charges utilis\u233?. D'ailleurs, disposer d'un squelette (ou mod\u232?le) de cahier des charges sert pr\ u233?cis\u233?ment \u224? cela : c'est une armoire de rangement pour les exigences. GJD\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse \u201?tablir un dictionnaire de donn\u233?es Comme les exigences fonctionnelles, la description des donn\u233?es constitue une passerelle de communication entre ma\u238?trise d'ouvrage (le vocabulaire des utilisateurs) et ma\u238?trise d'ceuvre (la compr\u233?hension des concepteurs et d\u233?veloppeurs). Les m\u234?mes donn\u233?es apparaissant d'une exigence \u224? l'autre, il est utile de les sp\u233?cifier une fois pour toutes. Par exemple : Client \u187? id_client [9 chiffres] + nom [15 lettres] + pr\u233?nom [15 lettres] La syntaxe peut \u234?tre plus ou moins complexe, en fonction de l'usage qui sera fait des sp\u233?cifications d'exigences (d\u233?veloppement sp\u233?cifique ou choix de progiciel). Certaines interfaces (normes d'interop\u233?rabilit\u233?) peuvent n\u233?cessiter une description extr\u234?mement pr\u233?cise des formats de donn\u233?es \u233?chang\u233?es, mais c'est rarement le cas pour un cahier des charges fonctionnel \u233?labor\u233? dans le cadre d'un appel d'offres, par exemple. L'important est que toutes les personnes int\u233?ress\u233?es soient d'accord sur le contenu de telle ou telle donn\u233?e, afin d'\u233?viter toute ambigu\u239?t\u233?. Analyser les r\u232?gles m\u233?tier Qu'est-ce qu'une r\u232? gle m\u233?tier ? Les r\u232?gles m\u233?tier, \u233?galement appel\u233?es r\u232? gles de gestion (en anglais business rutes) d\u233?rivent des lois, r\u232? glements, proc\u233?dures, codes de bonnes pratiques en vigueur pour un m\u233?tier donn\u233?, r\u232?gles de calcul, etc. Ce sont l\u224? des exigences en puissance, mais elles sont g\u233?n\u233?ralement \u233?nonc\u233?es sous une forme inappropri\u233?e pour appara\u238?tre dans un cahier des charges. Autrement dit. ce sont des interm\u233?diaires entre un texte ou une pratique (texte r\u233? glementaire, pratique professionnelle) et une exigence. Plus pr\u233?cis\u233?ment, une r\u232?gle de gestion peut \u234?tre : \u8226? un fait ; \u8226? une contrainte (seul un acteur X peut accomplir l'action Y) ; \u8226? une r\u232?gle d'action (un acteur X doit accomplir l'action Y) ; \u8226? une inf\u233?rence (si... alors...) ; \u8226? une r\u232?gle de calcul (par exemple, calcul de la TVA). Les r\u232?gles m\u233?tier ne sont pas des besoins utilisateurs et ne sont pas consid\u233?r\u233? es comme des exigences \u224? proprement parler. En g\u233?n\u233?ral, elles n'apparaissent pas en tant que telles dans un cahier des charges, mais y sont d\ u233?clin\u233?es sous forme d'exigences. C!7\u224?\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences 1. De fortes contraintes de tracabilit\ u233? et de maintenabilit\u233? peuvent rendre indispensable le recours \u224? un outil de gestion des exigences (voir au chapitre 19). Plut\u244?t qu'un long discours, donnons quelques exemples de r\u232?gle m\u233?tier : \u8226? Tout m\ u233?dicament est livr\u233? \u224? la pharmacie dans un emballage avec un code- barres (fait). \u8226? Le directeur d'un \u233?tablissement de sant\u233? \u233? tablit la liste des personnes habilit\u233?es \u224? prescrire des m\u233?dicaments (r\u232?gle d'action). \u8226? Le pharmacien doit analyser la prescription avant de livrer un m\u233?dicament (r\u232?gle d'action). \u8226? Le pharmacien doit s'assurer qu'il n'y a pas interaction m\u233?dicamenteuse entre plusieurs m\u233? dicaments prescrits (r\u232?gle d'action). \u8226? Si la date de p\u233?remption inscrite sur l'emballage est sup\u233?rieure \u224? la date du jour, alors le produit est p\u233?rim\u233? (inf\u233?rence). Il est clair que toutes ces r\u232? gles n'ont pas \u224? se retrouver dans une sp\u233?cification d'exigences. Il serait inutile de les indure dans le cahier des charges lui-m\u234?me, du moins sous cette forme, car elles n'ont pas d'impact direct sur le produit. Mais, d'une part, elles participent \u224? l'analyse des exigences et. d'autre part, il est n\ u233?cessaire, pour des raisons de tracabilit\u233? et de maintenabilit\u233?, de pouvoir conna\u238?tre en permanence le lien entre une r\u232?gle m\u233?tier et une exigence du cahier des charges1. De la r\u232?gle m\u233?tier \u224? l'exigence \u192? l'origine, les r\u232?gles m\u233?tier n'ont pas \u233?t\u233? \u233?crites pour figurer dans un cahier des charges. M\u234?me si cela peut en choquer certains, on peut dire que. vis-\u224?-vis du cahier des charges, ce sont des \ u171? exigences brutes \u187?. Pour en faire des exigences aptes \u224? entrer dans un cahier des charges, le travail de recueil, d'analyse et de sp\u233?cification est analogue \u224? celui de l'analyse des besoins. Il consiste \u224? : \u8226? recueillir les r\u232?gles de gestion - rechercher les sources des r\u232?gles de gestion potentielles (l\u233?gislation, normes, recueils de pratiques professionnelles, protocoles...) qui sont en rapport avec l'objectif et dans le champ de l'\u233?tude, - recueillir l'ensemble des r\u232?gles, proc\u233?dures, pratiques, susceptibles d'avoir un impact sur les exigences ; \u8226? analyser ces \u233?l\u233?ments - filtrer en fonction des objectifs. - rechercher les incoh\ u233?rences, redondances et incompl\u233?tudes, - si n\u233?cessaire, repr\u233? senter ces \u233?l\u233?ments en diagrammes, sous la forme appropri\u233?e ; \ u8226? traiter les r\u232?gles de gestion - formuler les \u233?l\u233?ments pr\ u233?c\u233?dents sous forme de r\u232?gles m\u233?tier. GjD\par\pard\plain\ hyphpar} { Chapitre 10 - L'\u233?tape d'analyse - stocker ces r\u232?gles dans le r\u233?f\ u233?rentiel appropri\u233?, - d\u233?cider lesquelles de ces r\u232?gles m\u233? tier seront automatis\u233?es : \u8226? sp\u233?cifier - formuler ces r\u232?gles sous forme d'exigences, - inclure ces exigences dans le cahier des charges ; \ u8226? g\u233?rer - maintenir la tra\u231?abilit\u233? entre les r\u232?gles de gestion et les exigences fonctionnelles en aval, - analyser l'impact d'une r\u232? gle de gestion sur l'ensemble des exigences m\u233?tier. La diff\u233?rence avec le traitement des besoins r\u233?side donc dans le stockage des r\u232?gles m\u233? tier dans une zone particuli\u232?re, en vue de les inclure, si n\u233?cessaire, dans le cahier des charges. Cette zone de stockage peut \u234?tre un simple tableau, une base de donn\u233?es, ou mieux, un outil de gestion des exigences. Les r\u232?gles m\u233?tier vont g\u233?n\u233?ralement donner lieu \u224? des exigences fonctionnelles de haut niveau, parfois appel\u233?es exigences m\u233? tier \'5c'7bbusiness requiremenls). Elles seront d\u233?clin\u233?es sous forme d'exigences plus fines, en fonction du niveau de d\u233?tail requis. D\u233?finir les priorit\u233?s d'un projet Pourquoi et quand d\u233?finir les priorit\u233?s ? Tout projet est limit\u233? par le budget allou\u233?, les d\u233?lais exig\u233?s, le risque admissible et les ressources disponibles. Il est donc indispensable de d\ u233?finir les priorit\u233?s entre exigences. La priorisation des exigences est utile : \u8226? lors de la d\u233?finition des objectifs, (dans toute la mesure du possible) ; \u8226? lors du d\u233?veloppement des exigences (\u233?laboration du cahier des charges) ; \u8226? lors du choix d'une solution. La gestion des priorit\ u233?s permettra de r\u233?soudre les conflits au plus t\u244?t, de faire des compromis, et \u233?ventuellement de planifier la mise en \u339?uvre de certaines exigences pour une version ult\u233?rieure du syst\u232?me. Il est important de d\ u233?finir les priorit\u233?s entre fonctions (ou exigences non fonctionnelles) le plus t\u244?t possible, quitte \u224? revoir la liste des priorit\u233?s par la suite, avec le recul. Cela minimise le risque de voir des conflits s'envenimer ou de devoir remettre en cause l'existant au dernier moment. CE)\par\pard\plain\ hyphpar} { Partie 2 - D\u233?veloppement des exigences Comment d\u233?finir les priorit\u233?s ? G\u233?rer les priorit\u233?s est loin d'\u234?tre une t\u226?che facile. Tout utilisateur a tendance \u224? penser que a) toutes ses exigences sont prioritaires sans exception et que b) ses exigences sont prioritaires sur celles des autres. Les priorit\u233?s ne peuvent \u234?tre d\u233?finies par les seuls utilisateurs (ou leurs repr\u233?sentants). Elles doivent \u234?tre confront\u233?es au r\u233?el, c'est-\u224?-dire \u224? ce qui est faisable ou pas. et \u224? quel co\u251?t. Il est donc n\u233?cessaire d'organiser des r\u233?unions entre experts m\u233?tier (utilisateurs ou repr\u233?sentants) et experts techniques (d\u233?veloppeurs, chefs de projet ou leurs repr\u233?sentants) et de confronter les points de vue. Il n'y a pas de m\u233?thode miracle, la gestion des priorit\u233?s reposant sur des principes de n\u233?gociation. En cas de conflit entre priorit\u233?s, il faut se poser les questions suivantes : \u8226? Qui serait insatisfait si cette exigence n'\u233?tait pas mise en \u339?uvre ? \u8226? Peut-on satisfaire cette exigence par d'autres moyens ? \u8226? Comment se comporterait le syst\u232?me sans cette fonction ? \u8226? Le syst\u232?me dans son ensemble serait-il mis en cause ? \ u8226? Quelle est la limite acceptable en termes de d\u233?lais ? de co\u251?ts ? \ u8226? Est-on pr\u234?t \u224? assumer le risque de supprimer cette fonction ? La priorit\u233? d'une exigence est fonction de son urgence et de son importance (principe d'Eisenhower) : \u8226? les exigences urgentes et importantes seront en haute priorit\u233? ; \u8226? les exigences importantes, mais non urgentes, viendront ensuite ; \u8226? les exigences urgentes et non importantes sont de priorit\u233? faible ; \u8226? les exigences ni urgentes ni importantes seront mises de c\u244?t\u233?. Outre l'urgence et l'importance, doivent entrer en ligne de compte le risque \u224? faire et \u224? ne pas faire (ce que l'on gagne en faisant, ce que l'on perd en ne faisant pas), le co\u251?t de r\u233?alisation, ainsi que le risque li\u233? \u224? la r\u233?alisation (li\u233? au manque de savoir-faire de l'\u233?quipe de d\u233?veloppement, \u224? l'immaturit\u233? des technologies mises en \u339?uvre, etc.). Il est facile de construire (ou de trouver sur Internet) une matrice de prio- risation des exigences, permettant de faire une somme pond\u233?r\u233?e des diff\u233?rents param\u232?tres. La m\u233?thode des cent points : mode op\u233?ratoire La m\u233?thode des cent points est un grand classique. Elle est tr\u232?s utilis\u233?e par les consultants pour animer un groupe de travail de s\u233?lection de progiciel. Dans ce dernier cas. les exigences s'appellent crit\u232?res de\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse choix, mais l'id\u233?e est la m\u234?me. Sous sa forme simplifi\u233?e, les \u233?tapes de la m\u233?thode sont les suivantes : 1. Les participants dressent la liste des exigences \u224? prioriser. On utilisera de pr\u233?f\u233?rence un tableur et la liste ne doit \u234?tre ni trop longue, ni trop courte (r\u232?gle du pouce : imprim\u233?e, la liste doit tenir sur une page A4). 2. On se fixe la r\u232?gle suivante : chaque exigence aura un poids compris entre 1 (peu prioritaire) et 4 (tr\u232?s prioritaire), et la somme des poids des exigences devra \u234?tre \u233?gale \u224? 100. On peut jouer sur ces chiffres, mais on \u233?vitera de les modifier en cours de route. 3. Les participants attribuent \u224? chaque exigence un poids. Ce poids doit \u234?tre attribu\u233? par consensus entre participants. Si un consensus ne peut \u234?tre trouv\u233?, on vote (c'est un pis-aller) ou quelqu'un doit trancher (c'est un pis-aller de plus). C'est l\u224? que les talents d'animateur de l'analyste seront utiles. 4. Lorsque chaque exigence aura re\u231?u un poids, si la somme des poids est inf\u233?rieure ou sup\u233?rieure \u224? 100, on cherchera \u224? augmenter ou r\u233?duire le poids de certaines exigences jusqu'\u224? atteindre 100. Ici aussi, on cherche le consensus. Si on utilise un tableur, il est facile de jeter de temps en temps un coup d'ceil sur la somme des poids. Avec un peu d'exp\u233?rience, l'animateur sait qu'il doit forcer sur les pond\u233?rations ou au contraire les mod\u233?rer, bien avant d'arriver au bout de la liste. 5. Lorsque toutes les exigences sont pond\ u233?r\u233?es et que la somme des poids est \u233?gale \u224? 100, les exigences sont prioris\u233?es. Il est clair que cette m\u233?thode demande du doigt\u233? de la part de l'animateur (analyste ou consultant) et une atmosph\u232?re consensuelle, sinon la s\u233?ance tournera vite au pugilat. \u192? certains moments, l'animateur peut assouplir les r\u232?gles : ajouter quelques exigences suppl\u233?mentaires, autoriser les d\u233?passements, ou modifier la liste en cours de route. Ces entorses sont somme toute normales, la \u171? r\u232?gle du 100 \u187? \u233?tant plut\u244?t arbitraire. Il arrive d'ailleurs souvent qu'en discutant, les participants remettent en question les exigences elles-m\u234?mes, ou fassent \u233?merger de nouvelles exigences. Ce ph\u233?nom\u232?ne est normal, voire souhaitable, mais doit \u234?tre contr\u244?l\u233? pour \u233?viter les d\ u233?rives : augmentation exponentielle du nombre d'exigences, sp\u233?cifications rampantes, ou retours incessants en arri\u232?re. Une variante de la m\u233?thode consiste \u224? donner \u224? chaque participant cent points, qu'il pourra utiliser \u224? sa guise. S'il y a cinq participants, la somme pond\u233?r\u233?e des priorit\u233?s sera \u233?gale \u224? 500. Le consultant ou analyste qui anime le groupe n'a pas de points. Cette variante permet d'aller plus vite, mais en \u233? vitant la recherche d'un consensus, elle n'encourage pas la r\u233?flexion sur les exigences elles-m\u234?mes.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences 2. En France, la soci\u233?t\u233? Adexys commercialise une gamme d'outils d'\u233?valuation bas\u233?s sur la m\u233? thode AHP. La m\u233?thode peut \u234?tre enrichie, en donnant des poids li\u233?s non seulement au besoin des utilisateurs, mais aussi au co\u251?t, au risque, au temps de d\u233?veloppement, etc. Autres m\u233?thodes M\u234?me avec une matrice simple (somme pond\u233?r\u233?e des b\u233?n\u233?fices, co\u251?ts, risques) on obtient le plus souvent des r\u233?sultats satisfaisants. Le plus important est d'amener les diff\u233?rents acteurs \u224? se mettre d'accord sur un processus de priorisation et \u224? travailler ensemble pour d\u233?finir les priorit\u233?s. Pour les projets importants, des m\u233?thodes plus complexes de priorisation, comme AHP (Analytical Hierarchical Pncess) ou \u219?FD (QualUy Function Deploy- ment) peuvent \u234?tre mises en \u339?uvre. La m\u233?thode AHP est une m\u233? thode d'aide \u224? la d\u233?cision qui consiste \u224? comparer deux \u224? deux des crit\u232?res (et dans le cas des exigences) class\u233?s hi\u233? rarchiquement. Le nombre total de comparaisons est n x (w-l)/2 o\u249? n est le nombre d'exigences \u224? prio- riser \u224? chaque niveau hi\u233?rarchique, ce qui augmente tr\u232?s vite le nombre de comparaisons \u224? faire. Cette m\u233? thode est puissante, mais en pratique demande \u224? \u234?tre outill\u233?e2. Modeliser sous forme graphique La mod\u233?lisation graphique est \u224? la fois un outil d'analyse, de communication entre acteurs, et de validation. Certains traitements ou processus sont plus simples \u224? comprendre lorsqu'ils sont repr\ u233?sent\u233?s graphiquement, et les \u233?ventuelles incoh\u233?rences < sautent aux yeux \u187?. Un bon sch\u233?ma, c'est bien connu, vaut bien cent pages de texte. Cependant, ne nous faisons pas d'illusions. Contrairement \u224? ce que l'on \u233?crit parfois, la mod\u233?lisation sous forme graphique n'est pas un outil universel et ne remplace pas le texte \u233?crit. Il y a \u224? cela plusieurs raisons : \u8226? Contrairement \u224? ce que l'on pense souvent, des sch\u233?mas qui paraissent tr\u232?s simples \u224? certains seront difficiles \u224? comprendre pour d'autres. \u8226? Un sch\u233?ma peut \u234?tre facile \u224? lire, mais beaucoup plus difficile \u224? \u233?laborer qu'un texte. \u8226? \u201? laborer un sch\u233?ma para\u238?t facile, mais c'est l\u224? une simplicit\u233? trompeuse, car il faut utiliser un formalisme pr\u233?cis et conna\u238?tre la s\ u233?mantique sous- jacente. \u8226? \u192? moins d'un formalisme extr\u234?me, une m\u234?me repr\u233?sentation peut avoir des interpr\u233?tations diff\u233?rentes selon les auteurs et lecteurs, et induire en erreur. QD\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse \u8226? Il n'existe pas de notation graphique universelle qui permettrait de repr\u233?senter tous les besoins. Les diagrammes peuvent \u234?tre ins\u233?r\u233?s dans un cahier des charges, en compl\u233?ment du texte \u233?crit. Ils peuvent \u233?galement \u234?tre tr\u232?s utiles en tant que repr\u233?sentations interm\u233?diaires, uniquement dans un but d'analyse, sans n\u233?cessairement appara\u238?tre dans le cahier des charges. Un diagramme ne sert p\u187? seu^ tout, \u224? \u233?riger de point de vue. En effet, analyser un probl\u232?me, c'est ted\u233?composer en ses diff\u233?rents constituants, dam te butde mietix te compre^ dTfr&errtei Et surtout ^ diffi\u233?reiTHnent le texte et les im lit\u233? de d\u233?tecter \u249?n\u235?incot\u224?taftfe^ On donne ici quelques diagrammes parmi les plus utilis\u233?s. Les paragraphes qui suivent n'ont pas pour objectif de remplacer un ouvrage sur l'analyse des syst\u232?mes d'information, mais de montrer leur utilit\u233? pratique dans la d\u233?finition des besoins. Le diagramme d'activit\u233?s ou carte de processus C'est le plus classique des diagrammes. On le trouve dans diverses m\u233?thodologies, sous des noms diff\u233?rents, avec des symbolismes vari\u233?s. Il s'appelle process map en anglais, et son \u233?quivalent UML est le diagramme d'activit\u233?. Il permet de repr\u233?senter les \u233?tapes d'un processus m\u233?tier, leur s\u233?quence, leurs entr\u233?es et sorties, les acteurs responsables de chaque \u233?tape. Ces diagrammes peuvent \u234?tre utilis\u233?s pour repr\u233?senter un processus existant ou \u224? venir, automatis\u233? ou manuel. C'est donc un outil assez g\ u233?n\u233?raliste. Les \u233?tapes peuvent \u234?tre r\u233?parties sur des < bandes \u187? (en anglais svrim lanes. par analogie avec les couloirs d'une piscine), chaque bande \u233?tant sous la responsabilit\u233? d'un acteur. Certains analystes r\u233?servent une bande aux \u233?tapes automatis\u233?es ou \u224? automatiser. En plus d'\u234?tre le < couteau suisse \u187? de l'analyste, un diagramme de processus est un excellent outil de dialogue avec les utilisateurs, et de n\u233?gociation avec la ma\u238?trise d'ouvrage, \u224? condition : \u8226? de tenir sur une page A4 ; \u8226? d'\u234?tre \u171? autoexplicatif \u187? ; \u8226? de ne pas comporter trop d'\u233?tapes (une douzaine au plus). GD\par\pard\plain\ hyphpar} { ie 2 - D\u233?veloppement des exigences Les grands sch\u233?mas synoptiques sur une grande feuille A3 ou A2 peuvent \u234?tre utiles aux analystes et concepteurs, rompus aux sch\u233?mas complexes. Mais ils ne devraient pas sortir de leurs tiroirs. Une \u171? usine \u224? gaz \u187? risque d'effrayer un interlocuteur et d'avoir l'effet exactement inverse de celui escompt\u233?. Patient M\u233?decin Infirmi\u232?re Pharmacie c \u9830?, , Communique les H informations Interroger le patient Prescrire les m\u233?dicaments Modifier la prescription 1 Oui f Administrer les m\u233?dicaments * Analyser la prescription i ^^^mter^sw "^\'5cactions^^ Non \ u9660? D\u233?livrer les doses Figure 10-2 : Carte des processus Le diagramme de flux de donn\u233?es (DFD) Un diagramme de flux de donn\u233?es (ou plus simplement, diagramme de flux) permet de repr\u233?senter la mani\u232?re dont les donn\u233?es sont trait\u233?es (transf\u233?r\u233?es, modifi\u233?es) par le syst\u232?me d'information (personnes et applications). Plusieurs mod\u232?les de repr\u233?sentation existent. Dans le mod\u232?le le plus couramment utilis\u233? (figure 10-3) : \u8226? Les processus sont repr\u233?sent\u233?s par des cercles. CD\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse Les entit\u233?s externes au syst\u232?me (personnes physiques ou morales, groupes de personnes ou autres syst\u232?mes) sont repr\u233?sent\u233?es par des rectangles3. Les flux de donn\u233?es sont repr\ u233?sent\u233?s par des fl\u232?ches. Les zones de stockage (bases de donn\u233? es, fichiers...) sont repr\u233?sent\u233?es par deux segments parall\u232?les. 3. Remarquons que les rectangles ne font pas partie du syst\u232?me. Base m\u233? dicamenteuse Informations patient Figure 10-3 : Un diagramme de flux de donn\u233? es GD\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences Chaque processus d'un diagramme peut \u234? tre \u233?clat\u233? en processus plus d\u233?taill\u233?s dans de nouveaux diagrammes de flux. \u192? ce propos, remarquons que le diagramme de contexte, dont il a d\u233?j\u224? \u233?t\u233? question dans cet ouvrage, est le plus simple des diagrammes de flux. Il repr\u233?sente le processus global correspondant au syst\ u232?me \u224? l'\u233?tude, entour\u233? des personnes ou logiciels avec lesquels il r\u233?agit. Le diagramme de flux met en \u233?vidence le partage du travail entre le syst\u232?me \u224? l'\u233?tude et son environnement. C'est donc un bon moyen de donner une vision globale des diff\u233?rents processus et de leurs relations entre eux. et il est g\u233?n\u233?ralement bien compris des utilisateurs. Il peut donc \u234?tre utilis\u233? lors du recueil des besoins dans le but d'\u233?claircir ou de valider ce qui a \u233?t\u233? formul\u233? oralement. Bien entendu, il peut appara\u238?tre dans un cahier des charges. Quelques r\u232?gles d'\u233?laboration du diagramme : \u8226? Tout processus doit comporter une fl\u232?che en entr\u233?e et une fl\u232?che en sortie. \u8226? Une fl\u232?che ne peut pas relier directement deux processus. Quelques r\u232?gles pratiques : \u8226? Num\u233?roter les processus facilite grandement la lecture. \ u8226? Ne pas mettre trop d'entit\u233?s dans un diagramme. Suivre la r\u232?gle du \u171? sept plus ou moins deux \u187?. Au-del\u224? de neuf, le diagramme est illisible. \u8226? Si un processus est complexe, on peut le mod\u233?liser dans un autre diagramme. Dans ce cas, on utilisera une num\u233?rotation point\u233?e pour num\u233?roter les sous-processus (par exemple, le processus num\u233?ro 4 se d\ u233?composera en 4.1,4.2, etc.). Le diagramme de s\u233?quence Le diagramme de s\ u233?quence (figure 10-4) permet de mod\u233?liser les flux d'informations entre acteurs, en faisant ressortir l'encha\u238?nement chronologique des activit\u233?s d'un processus. Horizontalement, de gauche \u224? droite, on repr\u233?sente les \ u171? lignes de vie \u187? des diff\u233?rents acteurs. Des messages, synchrones ou asynchrones, transitent d'un acteur \u224? l'autre. Verticalement, on peut lire l'encha\u238?nement des actions dans le temps. Le diagramme de s\u233?quence est un outil d'analyse plus que de recueil ou de sp\u233?cification. En dehors des domaines techniques o\u249? la synchronisation des t\u226?ches est complexe (t\ u233?l\u233?coms), il est rare de le rencontrer dans un cahier des charges. Il est en revanche tr\u232?s utile pour alimenter la r\u233?flexion permettant de d\u233? cider des op\u233?rations \u224? automatiser et sur les processus \u224? optimiser \u224? la suite d'une informatisation. Le diagramme de 00\par\pard\plain\ hyphpar} { Chapitre 10 - L'\u233?tape d'analyse la figure 10-4 repr\u233?sente un processus manuel. L'automatisation de ce processus permettra de supprimer environ la moiti\ u233? des t\u226?ches (mises \u224? jour, transmission manuelle d'informations et archivage). M\u233?decin Gestionnaire dossier patient Prescription Infirmier Pharmacien Pr\u233?parateur + Mise \u224? jour *D Prescription Notification de non validation Ordre de d\u233?livrance I Compte-rendu d'administration I Mise \u224? jour du dossier I I Compte-rendu de d\u233?livrance **\u171? 1 I I Relev\u233? d'administration r i i 1 i Figure 10-4 : Un diagramme de s\u233?quence *& Archivage *D-^ Le diagramme entit\u233?-association ou diagramme de classes Ce diagramme, tr\ u232?s technique, peut \u234?tre utile dans certains cas, mais n'a pas toujours sa place dans un cahier des charges (figure 10-5). Il permet de repr\u233?senter les attributs des donn\u233?es et les relations entre les donn\u233?es du syst\u232?me. Dans le cadre de la phase de d\u233?finition des besoins, \u233?laborer ce mod\ u232?le permet d'avoir une vision exhaustive des donn\u233?es manipul\u233?es par le syst\u232?me. C'est donc un mod\u232?le conceptuel des donn\u233?es, ind\u233? pendant des aspects techniques, que l'on utilise. Apr\u232?s transformation, il aboutira \u224? un mod\u232?le physique, qui lui, d\u233?pend de l'impl\u233? mentation physique (base de donn\u233?es). L'exp\u233?rience montre que la lecture (sans parler de l'\u233?laboration m\u234?me) d'un tel mod\u232?le n'est pas toujours ais\u233?e pour les utilisateurs non informaticiens. Il est utile d'accompagner le diagramme de texte explicatif. CD\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences Lors du recueil, les questions \u224? se poser, et \u224? poser aux repr\u233?sentants des utilisateurs, sont : \u8226? Quelles sont les donn\u233?es manipul\u233?es par le syst\u232?me ? \u8226? Quelles donn\u233?es le syst\u232?me devra-t-il stocker ? Les entit\u233?s sont des donn\ u233?es, ou plus g\u233?n\u233?ralement, des ensembles de donn\u233?es : un client, un compte, une facture... Elles comportent des attributs (par exemple, le nom du client). Les entit\u233?s sont g\u233?n\u233?ralement repr\u233?sent\u233?es par des rectangles. Les relations comportent, pour chaque entit\u233? reli\u233?e, une cardinalit\u233?. Par exemple, la relation entre un client et ses comptes en banque est l-N. signifiant que chaque client peut avoir un ou plusieurs comptes, et chaque compte appartenant \u224? un client et un seul. Les relations sont g\u233?n\u233? ralement repr\u233?sent\u233?es par des lignes dont la terminaison indique la cardinalit\u233?. Les relations peuvent elles-m\u234?mes comporter des propri\u233? t\u233?s (des ovales avec Merise, des rectangles avec UML). Les questions suppl\ u233?mentaires \u224? poser sont donc : \u8226? Quelles sont les donn\u233?es contenues dans cette entit\u233? ? \u8226? Quelles sont les relations entre ces deux donn\u233?es ? Il y a des dizaines de fa\u231?ons de repr\u233?senter les entit\u233?s et les relations (\u224? la Merise, \u224? la UML, rectangles, ovales, losanges...). Le plus important est que tous les acteurs utilisent le m\u234?me langage graphique. On s'adaptera \u224? la culture ou aux standards du client ou de l'entreprise pour laquelle on travaille. La figure 10-5 utilise un formalisme proche d'UML pour repr\u233?senter les entit\u233?s et relations dans le domaine de la prescription m\u233?dicale. 1 S\u233?jour \u163? Bon de livraison \u239?- \u201? l\u233?ment de livraison 0. \u8226? Compte-rendu d'analyse pharmaceutique 1 Prescription \u231? 0..* 1 1 Composant livre o..- | Composant prescrit 0..* Compte- rendu d'administration 1 \u201?l\u233?ment de prescription \u206?1 \u201?l\u233? ment de posologie \u201?l\u233?ment d'administration 1 Composant administr\u233? Figure 10-5 : Un diagramme entit\u233?asso\u224?ation CD\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse Les adeptes d'UML utilisent des diagrammes de classe. Une classe d'objets contient \u224? la fois des attributs et des traitements (ou op\u233?rations). En principe, un mod\u232?le de classes devrait \ u234?tre diff\u233?rent d'un mod\u232?le entit\u233?s-relations. Dans la pratique, on s'aper\u231?oit que les mod\u232?les UML sont souvent r\u233?duits \u224? des entit\u233?s et des relations (m\u234?me dans les ouvrages consacr\u233?s \u224? UML). L'id\u233?e ici n'est pas d'entrer dans les d\u233?tails de la conception d'un mod\u232?le de donn\u233?es (il y a d'excellents ouvrages pour cela), mais de montrer comment un tel mod\u232?le peut \u234?tre utilis\u233? comme outil d'analyse et de sp\u233?cification dans le cadre d'un cahier des charges. Les six t\u226?ches (imbriqu\u233?es et cycliques, bien s\u251?r) sont les suivantes : \ u8226? Identifier les entit\u233?s. Les entit\u233?s sont des objets ou des agr\ u233?gations de donn\u233?es. On les repr\u233?sente par des rectangles. \u8226? Identifier les attributs (propri\u233?t\u233?s). On indiquera celles utiles au syst\u232?me \u224? l'\u233?tude (rappelons qu'il ne s'agit pas, au stade du cahier des charges, de mod\u233?liser une base de donn\u233?es). L'un de ces attributs est l'identifiant (\u233?quivalent \u224? la cl\u233? primaire sur un mod\u232?le physique). \u8226? D\u233?crire les entit\u233?s et attributs, de pr\u233?f\u233? rence dans le dictionnaire de donn\u233?es. \u8226? Identifier les relations entre donn\u233?es. On peut commencer ce travail \u224? t\u234?te repos\u233?e, mais le mod\u232?le ainsi construit (ou plut\u244?t, en cours de construction) sera d\u232? s que possible soumis \u224? l'avis des repr\u233?sentants des utilisateurs. \ u8226? D\u233?finir les cardinalit\u233?s des relations. \u8226? V\u233?rifier la coh\u233?rence de l'ensemble et remonter \u224? la premi\u232?re \u233?tape si n\ u233?cessaire. Au risque de nous r\u233?p\u233?ter, rappelons-le : il s'agit ici de mod\u233?liser les besoins, et non la solution. Au fur et \u224? mesure que l'on d\ u233?crira de nouvelles exigences fonctionnelles, on les confrontera au mod\u232?le de donn\u233?es, en cherchant \u224? \u233?liminer les incoh\u233?rences. Le processus de construction est donc it\u233?ratif et imbriqu\u233? aux autres processus. Le principe de simplicit\u233? a \u233?t\u233? \u233?nonc\u233? par plusktirs phfldsopbes. Uto:^ foimi* l\u224?tkms les plus <^ rt\u232? doiverrt pas \ u233?lie nwt\u244?pT^ \u224? utiliser \u339? priw^ sur tous les types de diagramme/ et par\u244?culi\u232?r^^ at\u224?\u226?&s^ mkroentit\u233?s si cela n'aide pas \ u224? la r\u233?flexwn sur les besoms^ Parfois pouss\u233? jusqu'\u224? sa fimite: ne pas raim de diagramme ^t\u224?^ n\u233?cessaire. -'\u9632? CE)\par\pard\plain\ hyphpar} { ie 2 - D\u233?veloppement des exigences Le diagramme \u233?tats-transitions Rappelons qu'un diagramme \u233?tats-transitions repr\u233?sente, sur le plan informatique, un automate d'\u233?tats finis. De ce fait, il permet de repr\u233? senter des processus de mani\u232?re concise, pr\u233?cise et non ambigu\u235?, facilement compr\u233?hensible par les concepteurs et r\u233?alisateurs du syst\ u232?me. On retrouvera ce type de sch\u233?ma dans des cahiers des charges pour des logiciels temps r\u233?el, mais pas seulement. Il peut \u234?tre tr\u232?s efficace pour d\u233?crire un processus administratif, par exemple. La figure 10-6 pr\u233? sente un diagramme d'\u233?tats-transitions pour un logiciel de gestion de dossier. Il a \u233?t\u233? \u233?labor\u233? par un groupe de travail compos\u233? de fonctionnaires de l'administration publique, anim\u233? par un assistant \u224? la ma\u238?trise d'ouvrage. Dossier" complet ==Q \u238? Encours instruction T En attente de la commission technique -Avis OK- Sursis \u224? statuer V\u233?rifi\ u233? pour commission pl\u233?nl\u233?re Inscription Figure 106 : Un diagramme \ u233?tats-transitions Inscription directe Compl\u233?ment d'instruction ainsirucoon^- Inscription-M < 1 Inscrit en commission technique J < Inscrit en commission pl\u233?nl\u233?re * OK J_ En attente de r\u233?alsation R\u233? alisation 4- \u8226? d\u233?cision Rejet (QD\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse Voici une s\u233?quence classique d'\u233? laboration de ce type de diagramme : 1. Lors d'une premi\u232?re r\u233?union du groupe de travail avec le donneur d'ordre (direction, administration centrale), l'analyste recueille des informations sur les \u233?tapes du cheminement du dossier. Il ne pr\u233?sente pas de diagramme (risque de confusion). 2. En interviews individuelles d'utilisateurs sur le terrain, l'analyste recueille les pratiques (qui peuvent diff\u233?rer sensiblement de la proc\u233?dure officielle). 3. Seul, le consultant \u233?labore le diagramme \u233?tats-transitions, en notant les incoh\u233?rences, en tentant de les r\u233?soudre si possible. 4. L'analyste parcourt les textes r\u233?glementaires. \u192? nouveau, il note les \u233?carts et les incoh\u233?rences. Il compl\u232?te ou modifie le diagramme. 5. Lors d'une deuxi\u232?me r\u233?union du groupe de travail, l'analyste pr\u233?sente le diagramme \u233?tats-transitions au donneur d'ordres et lui demande son avis. Si aucun consensus n'est trouv\u233?, on peut remonter aux \u233?tapes 2 \u224? 4. 6. L'analyste met le diagramme au propre. Il demande au groupe de travail de le valider. 7. Si cela est possible, le diagramme est envoy\u233? \u224? la ma\u238? trise d'oeuvre pour avoir son avis. Les questions \u224? poser aux diff\u233?rents acteurs sont : \u8226? Ouel est le cheminement (du dossier, d'un objet) ? \u8226? Dans quels \u233?tats peut se trouver (le dossier, l'objet) ? \u8226? Ouel \u233?v\ u233?nement va modifier (le dossier, l'objet) ? \u8226? Oue se passe-t-il suite \ u224? cet \u233?v\u233?nement ? \u8226? Oue se passe-t-il si cet \u233?v\u233? nement n'a pas lieu ? (exception) Comme pour les autres types de diagramme, le diagramme \u233?tats-transitions peut servir \u224? mod\u233?liser un processus existant ou un processus \u224? informatiser. Il est souvent long \u224? constituer, surtout lorsque les interlocuteurs sont plus familiaris\u233?s avec des proc\u233?dures \u233?crites (proc\u233?dures administratives) qu'avec des sch\ u233?mas. Les organigrammes, arbres et tables de d\u233?cision Des r\u232?gles de gestion fort complexes, par exemple sur le plan juridique, peuvent parfois s'exprimer tr\u232?s facilement, et devenir tr\u232?s claires pour la ma\u238?trise d'ceuvre, si elles sont exprim\u233?es sous forme de tables ou d'arbres de d\u233? cision, ou sous forme d'organigramme. Lors de l'\u233?laboration d'un cahier des charges pour une application de port\u233?e nationale, nous avions d\u233?termin\ u233? 24 r\u233?ponses \u224? la question de savoir qui, parmi le p\u232?re, la m\ u232?re ou autre repr\u233?sentant l\u233?gal \u224? droit CED\par\pard\plain\ hyphpar} { Partie 2 - D\u233?veloppement des exigences \u224? l'information sur un enfant, en fonction de la situation. Un tableau \u224? 24 lignes et 10 colonnes a rendu la situation beaucoup plus facile \u224? comprendre. Quant aux informaticiens, selon leurs propres termes, \u171? ils n'avaient plus qu'\u224? coder \u187?. La bo\u238? te \u224? outils La mod\u233?lisation sous forme graphique est une bo\u238?te \ u224? outils. Pour repr\u233?senter la m\u234?me information, on a parfois le choix entre plusieurs outils. Inversement, un outil peut avoir plusieurs usages. Il ne s'agit pas de \u171? tout > repr\u233?senter avec le m\u234?me outil, ni d'utiliser tous les outils \u224? tout prix. Rappelons que l'objectif premier est ici de se faire comprendre de tous les acteurs et d'ajouter de la pr\u233?cision au texte. Par exemple, dans un cahier des charges pour une application de gestion, on pourra utiliser un diagramme \u233?tats-transitions pour montrer le circuit d'une demande, suivi d'un diagramme de s\u233?quence, ou un seul diagramme de flux. La question \ u224? se poser est : comment repr\u233?senter l'information de mani\u232?re \u224? ce qu'elle soit compr\u233?hensible de tous, sans ambigu\u239?t\u233? ? Il y a un travers dans lequel nous avons tous tendance \u224? tomber : nous n'utilisons que les outils que nous ma\u238?trisons. Et comme nous ma\u238?trisons mieux les outils que nous utilisons souvent, nous finissons par n'utiliser qu'un outil ou deux. Pour ne pas tomber dans ce travers, il ne faut pas h\u233?siter \u224? exp\u233? rimenter. Maquettes et prototypes La maquette papier Une maquette est un mod\u232? le qui pr\u233?figure un produit futur. Rappelons qu'\u224? la diff\u233?rence d'un prototype, la maquette est toujours un produit jetable. Le but ici n'est pas de commencer \u224? d\u233?velopper le produit, ni m\u234?me \u224? le sp\u233?cifier, mais de visualiser son aspect ou son comportement. Il ne s'agit pas de sp\u233? cifier le produit, et encore moins de d\u233?velopper un prototype. Plus le support sera temporaire4 (tableau blanc, notes auto- adh\u233?sives). et moins on sera tent\u233? de faire des sp\u233?cifications d\u233?taill\u233?es et de concevoir le produit. La maquette papier est un moyen de recueillir des exigences, de les analyser interactivement et de les faire valider rapidement par les interlocuteurs. Concr\u232?tement, cela consiste \u224? sch\u233?matiser sur le papier, ou sur un tableau blanc, un dessin d'\u233?cran, par exemple. Plusieurs dessins d'\u233?crans sur feuilles de papier A4 dispos\u233?s sur une grande feuille de papier blanc permettent de simuler des encha\u238?nements d'\u233?crans et des interactions avec les utilisateurs. On peut utiliser des moyens d'expression plus 4. Maquette \u8226? faible fid\u233?lit\u233? \u8226? (low\u226?) corn* par\u233?e \u224? un prototype. CD\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse riches, comme des outils de pr\u233?sentation, HTML, voire un dessin anim\u233?. Mais l'id\u233?e est toujours la m\u234?me. Une maquette papier est utile pour faire visualiser les fonctions attendues \u224? des personnes peu habitu\u233?es \u224? travailler sur des mod\u232?les abstraits, de les aider \u224? imaginer eux-m\u234?mes une pr\u233?figuration du futur produit. Une fois que les participants se sont mis d'accord, il est plus facile de formaliser ces exigences, sous forme de cas d'utilisation par exemple. Le prototypage Contrairement \u224? la maquette papier, un prototype est \u171? vivant \u187?. C'est du logiciel. Il peut \u234?tre jetable ou au contraire r\u233? utilisable, si on a l'intention de l'int\u233?grer dans le produit fini. Prototyper, c'est donc entrer provisoirement (et par exception) dans la phase de r\ u233?alisation pour exp\u233?rimenter un fragment du produit \u224? venir. Plusieurs formes de prototypes sont envisageables, en particulier : \u8226? Le prototype \u171? horizontal \u187? : il simule l'application visuellement (encha\ u238?nement d'\u233?crans), sans que toutes les fonctions soient pr\u233?sentes. Il est utilis\u233? en particulier pour montrer et tester les encha\u238?nements d'\ u233?crans. Il est visuellement proche de l'application \u224? venir, mais les \ u233?crans sont \u171? creux \u187? ou \u171? muets \u187? : les fonctions ne sont pas d\u233?velopp\u233?es et ne seront pas ex\u233?cut\u233?es. \u8226? Le prototype \u171? vertical \u187? : une seule fonction est compl\u232?tement d\u233? velopp\u233?e. Ce type de prototype est utilis\u233? pour tester une fonction ou une propri\u233?t\u233? du logiciel, comme la fiabilit\u233?, la s\u233?curit\ u233?, ou le temps de r\u233?ponse. En pratique, le prototypage est faisable si une \u233?quipe de d\u233?veloppement est pr\u233?sente et interagit avec la ma\u238? trise d'ouvrage. C'est le cas dans une grande entreprise ou une administration qui d\u233?veloppe une application en interne. Immanquablement, il y aura un moment o\ u249? les repr\u233?sentants des utilisateurs vont se trouver face \u224? face avec les d\u233?veloppeurs. C'est l'assistant \u224? la ma\u238?trise d'ouvrage qui doit g\u233?rer le choc des cultures. Un talent d'animateur et de mod\u233?rateur est requis, car il peut y avoir des tensions. Quel que soit le type de prototype d\ u233?velopp\u233?, il risque de d\u233?river vers un d\u233?but de d\u233? veloppement. Cela peut \u234?tre intentionnel (m\u233?thodes agiles), mais cela doit \u234?tre contr\u244?l\u233?. Avant de faire d\u233?velopper un prototype, il faut estimer les risques que comporte cette \u171? incursion \u187? dans la phase de r\u233?alisation : sp\u233?cifications informelles et rampantes, court-drcuitage in\u233?vitable entre ma\u238?trise d'ouvrage et ma\u238?trise d'oeuvre, et illusion, de la part de la ma\u238?trise d'ouvrage, que le d\u233?veloppement du produit est presque fini (alors qu'il n'a pas encore commenc\u233?). QD\par\pard\ plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Matrices CRUD et RACI Un des moyens de d\u233?tecter les incoh\u233?rences et incompl\u233?tudes est la matrice CRUD (de l'anglais Create, Read, Update. Ddele). Une entit\u233? doit pouvoir \u234?tre cr\ u233?\u233?e, lue, mise \u224? jour et supprim\u233?e du syst\u232?me. Si l'une de ces op\u233?rations ne peut \u234?tre effectu\u233?e par le syst\u232?me pour une entit\u233? donn\u233?e, il faut pousser l'analyse et comprendre pourquoi. Ce n'est pas n\u233?cessairement une incompl\u233?tude (par exemple, on peut vouloir que certaines entit\u233?s ne soient jamais supprim\u233?es), mais il faut s'en assurer. Une autre matrice que l'on peut utiliser est celle des responsabilit\u233? s, ou matrice RACI [Responsable, Aaountable. Consulted, inform\u233?e) d\u233? finissant le r\u244?le des acteurs par rapport aux fonctions. Comme pour la matrice CRUD. il ne s'agit pas de d\u233?tecter 100 % des incoh\u233?rences, mais d'affiner l'analyse. Evaluer la Faisabilit\u233? et le co\u251?t Il est rare que le demandeur (ma\u238?trise d'ouvrage ou utilisateur) connaisse le co\u251?t de ses exigences. D'une part, par ce que ce qui est simple \u224? l'ex\u233?cution peut \u234?tre tr\ u232?s complexe \u224? impl\u233?menter sous forme de logiciel (l'inverse est \ u233?galement vrai : certains utilisateurs n'osent pas demander une fonction en pensant que leur demande est irr\u233?aliste, alors qu'elle est tr\u232?s simple \ u224? r\u233?aliser). D'autre part, par ce que le co\u251?t d'une fonction d\u233? pend du contexte, de ce qui a \u233?t\u233? r\u233?alis\u233? par ailleurs. Il est donc important de conseiller le demandeur sur le co\u251?t estim\u233? de sa demande. Ce co\u251?t n'est pas seulement financier. La r\u233?alisation d'une exigence peut n\u233?cessiter des d\u233?lais suppl\u233?mentaires, une formation des utilisateurs, une nouvelle organisation, ou avoir des r\u233?percussions dans d'autres domaines. Par faisabilit\u233?, on entend aussi l'estimation des risques. Une nouvelle fonction peut avoir des cons\u233?quences sur le d\u233?lai de livraison de l'ensemble de l'application, ou sur ses performances, ou sa s\u233? curit\u233?. C'est au ma\u238?tre d'ouvrage de d\u233?cider de l'opportunit\u233? de r\u233?aliser une exigence, apr\u232?s avoir \u233?t\u233? inform\u233? des cons\u233?quences. Le diagramme de Kano (figure 10-7) permet de chercher le rapport entre le degr\u233? de r\u233?alisation d'une caract\u233?ristique et le degr\u233? de satisfaction du client. Le principe est de ranger chaque caract\u233?ristique du produit (fonction ou caract\u233?ristique non fonctionnelle) dans une des trois cat\u233?gories : (E>\par\pard\plain\hyphpar} { Chapitre 10 - L'\u233?tape d'analyse \u8226? Fonction obligatoire (indispensable) : son absence cr\u233?e de l'insatisfaction chez le client, mais sa pr\u233?sence n'apporte pas de satisfaction particuli\u232?re (souvent consid\u233?r\u233?e comme \u233?vidente, donc pass\u233?e sous silence lors d'une interview). \u8226? Fonction \u224? satisfaction proportionnelle : le niveau de satisfaction est proportionnel \u224? la pr\u233?sence de la fonction ou \u224? la performance de la caract\u233?ristique (g\u233?n\u233?ralement, elles \u233?mergent les premi\u232? res lors d'une interview ou d'une enqu\u234?te). \u8226? Fonction attractive : son absence ne cr\u233?e pas de frustration, mais sa pr\u233?sence apporte une satisfaction suppl\u233?mentaire (rarement exprim\u233?es lors d'interviews, mais surtout avec des techniques de cr\u233?ativit\u233?). Pour savoir dans quelle cat\ u233?gorie cette fonction doit \u234?tre rang\u233?e (du point de vue de l'utilisateur, bien s\u251?r) il faut lui demander comment il r\u233?agirait si ce besoin \u233?tait combl\u233? et s'il ne l'\u233?tait pas. puis de lui proposer, pour chaque question, quatre r\u233?ponses possibles : \u171? j'aime \u187?. \u171? c'est normal de l'avoir \u187?. \u171? je suis indiff\u233?rent \u187? et \u171? je n'aime pas \u187?. On consigne ensuite les r\u233?sultats dans une matrice (tableau) \u224? quatre lignes et quatre colonnes, correspondant \u224? ces quatre r\u233?ponses aux deux questions. Ils permettent de d\u233?terminer, pour chaque besoin exprim\u233?, s'il est indispensable, de base, ou constitue un \u171? plus \ u187?. Satisfaction cfierrt Insatisfaction client Figure 107 : Diagramme de Kano CED\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Check-list d'analyse Il n'y a pas v\ u233?ritablement de \u171? fin d'\u233?tape \u187? d'analyse, il ne s'agit donc pas ici de v\u233?rifier qu'un objectif a \u233?t\u233? atteint. Cette check-list est \ u224? utiliser p\u233?riodiquement pour v\u233?rifier que l'on avance dans la bonne direction et que les moyens n\u233?cessaires et suffisants sont mis en \u339?uvre pour am\u233?liorer la coh\u233?rence, la compl\u233?tude des exigences. Il s'agit aussi d'\u233?viter le ph\u233?nom\u232?ne de l'analyse interminable (en anglais anaiysis paralysis). Cette liste peut donc donner l'impression qu'elle fait double emploi avec les check-lists du recueil et des sp\u233?cifications. \u8226? On a examin\u233?, revu, affin\u233? et si n\u233?cessaire modifi\u233? le diagramme de contexte. \u8226? Le dictionnaire de donn\u233?es a \u233?t\u233? cr\u233?\u233?, et il est r\u233?guli\u232?rement enrichi. \u8226? Les exigences ont \u233?t\u233? d\u233?compos\u233?es de mani\u232?re suffisamment fine pour refl\u233?ter les besoins les plus proches du terrain (utilisateurs). \u8226? Les exigences ont \ u233?t\u233? d\u233?compos\u233?es de mani\u232?re suffisamment fine pour \u234?tre compr\u233?hensibles sans ambigu\u239?t\u233? par le ma\u238?tre d'ceuvre. \u8226? On n'a pas d\u233?compos\u233? les exigences au-del\u224? du strict n\u233? cessaire. \u8226? Les diff\u233?rents acteurs ont activement particip\u233? \u224? l'analyse. \u8226? Chaque cas d'utilisation a un acteur d\u233?fini. \u8226? Chaque fonction a un utilisateur d\u233?fini. \u8226? Il y a une tra\u231?abilit\u233? entre les exigences de diff\u233?rents niveaux. \u8226? On a d\u233?fini des priorit\u233?s entre exigences. \u8226? On a utilis\u233? des mod\u232?les graphiques lorsque cela \u233?tait n\u233?cessaire. \u8226? On a utilis\u233? une matrice CRUD. \u8226? On a utilis\u233? une matrice RACI. (E\u163?)\par\pard\plain\ hyphpar} { Chapitre 11 Les exigences non Fonctionnelles Difficiles \u224? recueillir, \u224? analyser et \u224? sp\u233?cifier, li\u233?es \u224? la fois au mat\u233?riel, au logiciel et \u224? l'usage qui en est fait, les exigences non fonctionnelles sont souvent n\u233?glig\u233?es. Pourtant, c'est la satisfaction de ces exigences qui fait la qualit\u233?, et donc dans une large mesure, la valeur d'un logiciel. Les caract\u233?ristiques de qualit\u233? Un logiciel ne peut \u234?tre d\u233?crit ni par ses seules fonctions (point de vue du ma\u238?tre d'ouvrage), ni par ses seules caract\u233?ristiques techniques (contraintes de la ma\u238?trise d'ceuvre). Le cahier des charges doit n\u233?cessairement comporter des caract\u233?ristiques relatives \u224? la qualit\u233? du logiciel, appel\u233?es exigences non fonctionnelles. Comme les exigences fonctionnelles, celles-ci doivent \u234?tre structur\u233?es selon leur typologie. Plusieurs typologies existent pour d\u233? crire la qualit\u233? du logiciel. La plus ancienne est celle de McCall, qui permet de caract\u233?riser la qualit\u233? du logiciel selon un certain nombre de facteurs et de crit\u232?res. Dans les paragraphes qui suivent, nous d\u233?crivons les exigences non fonctionnelles en utilisant la structuration par caract\u233? ristiques et sous- caract\u233?ristiques de qualit\u233? selon la norme ISO/CEI 25000. Cette norme a l'avantage de d\u233?crire la qualit\u233? du logiciel de la mani\u232?re la plus compl\u232?te et la moins redondante possible. Dans la pratique, pour \u233?laborer un cahier des charges, on ne suivra pas n\u233? cessairement ce m\u234?me sch\u233?ma. Chaque mod\u232?le de cahier des charges structure les exigences non fonctionnelles selon un sch\u233?ma qui lui est propre. ISO 25000 pourra servir de trame et de liste de contr\u244?le lors de l'\u233? laboration d'un cahier des charges ou de l'utilisation d'un mod\u232?le de cahier des charges.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Qualit\u233? du logiciel ~r~ Capacit\ u233? fonctionnelle l Aptitude Exactitude Conformit\u233? r\u233?glementaire Interop\u233?rabilit\u233? S\u233?curit\u233? FlabiHt\u233? 1 Maturit\u233? Tol\ u233?rance aux fautes Possibilt\u233?de r\u233?cup\u233?ration Conformit\u233? Facilit\u233? d'utilisation i Facilit\u233? de compr\u233?hension Facilit\u233? d' apprentissage Facilit\u233? d'exploitation Attractlvit\u233? Conformit\u233? Rendement l Comportement vis-a-vis du temps Comportement vis-\u224?-vis des ressources Conformit\u233? Maintenabilit\u233? l Fadlit\u233? d'analyse Facilit\ u233? de modification Stabilit\u233? TestablHt\u233? Conformit\u233? PortabBIt\ u233? l Fadlit\u233? d'adaptation Fadrt\u233?\u224? l'installation Interchangeabilit\u233? Conformit\u233? Figure 1 h 1 : Caract\u233?ristiques et sous<aract\u233?risnques ISO 25000 norme ISO/CEI 25000 La norme ISO 25000', relative \u224? la qualit\u233? du produit logiciel, donne des outils pour, d'une part \u233?valuer la qualit\u233? du logiciel, et d'autre part pour construire la qualit\u233?. Selon cette norme, la qualit\u233? du logiciel peut \u234?tre per\ u231?ue sur trois niveaux : \u8226? La qualit\u233? interne \'5c'7binternai qualily) correspond au niveau structurel d'analyse, et peut \u234?tre \u233?valu\ u233?e par examen du code source, de l'architecture, des sp\u233?cifications ; c'est la perspective de l'architecte de l'application, du concepteur, du d\u233? veloppeur. \u8226? La qualit\u233? externe \'5c'7bexternal qualily) correspond au niveau comportemental, visible et mesurable en particulier lors de tests ; c'est la qualit\u233? vue avec la perspective du chef de projet et des \u233?quipes de validation. \u8226? La qualit\u233? de fonctionnement (quality in use) correspond au point de vue de l'utilisateur. Elle se d\u233?compose en quatre caract\u233? ristiques : l'efficacit\u233? (relative \u224? l'atteinte des objectifs de l'utilisateur), la productivit\u233? (\u233?conomie de temps, d'efforts) la s\u233? curit\u233? (risques sur l'utilisateur, le logiciel, l'environnement), et la satisfaction de l'utilisateur. La norme se r\u233?f\u232?re \u233?galement \u224? la qualit\u233? du processus de d\u233?veloppement, sans d\u233?finir ce processus (il y a d'autres normes pour cela). Ces diff\u233?rents niveaux de qualit\u233? du produit et du processus sont interd\u233?pendants : la qualit\u233? de fonctionnement d\u233?pend de la qualit\u233? externe, qui d\u233?pend de la qualit\u233? interne, qui elle-m\u234?me d\u233?pend de la qualit\u233? du processus de d\u233?veloppement. 1. La s\u233?rie normative ISO/CEI 25000 r\u233? sulte de la fusion entre plusieurs normes dont ISO/ ai 9126 et ISO/ CE114598. U (E\ u163?)\par\pard\plain\hyphpar} { Chapitre 11 - Les exigences non Fonctionnelles Cette repr\u233?sentation \u233?tag\ u233?e de la qualit\u233? pourra \u234?tre mise \u224? profit pour structurer les exigences dans un cahier des charges2, par exemple, selon le sch\u233?ma : \u8226? qualit\u233? en utilisation -*\u9632? exigences utilisateur ; \u8226? qualit\u233? externe \u9632?*\u8226? exigences produit ; \u8226? qualit\u233? interne -*\u8226? contraintes techniques : \u8226? qualit\u233? du processus \u9632?*\u8226? contraintes projet. Les contraintes li\u233?es au projet et les contraintes techniques seront abord\u233?es plus loin. Examinons ici les exigences de qualit\ u233? interne et externe telles que d\u233?finies par la norme, c'est-\u224?-dire sous forme de caract\u233?ristiques et sous-caract\u233?ristiques. Capacit\u233? fonctionnelle La capacit\u233? fonctionnelle (ou fonctionnalit\u233?) est \'5c'7bensemble d'attributs portant sur \'5c'7bexistence d'un ensemble de fonctions et leurs propri\u233?t\u233?s donn\u233?es. Les propri\u233?t\u233?s sont celles qui satisfont aux besoins exprim\u233?s ou implicites (norme ISO/CEI 25000). Elle se d\u233?compose en cinq sous-caract\u233?ristiques : \u8226? Aptitude : attributs du logiciel portant sur la pr\u233?sence et l'ad\u233?quation d'une s\ u233?rie de fonctions pour des t\u226?ches donn\u233?es. \u8226? Exactitude : ensemble des attributs de logiciel portant sur la fourniture de r\u233?sultats justes ou convenus. \u8226? Conformit\u233? r\u233?glementaire : respect des normes, conventions et r\u233?glementations de droit. \u8226? Interop\u233?rabilit\ u233? : capacit\u233? \u224? interagir avec des syst\u232?mes donn\u233?s. \u8226? S\u233?curit\u233? : aptitude \u224? emp\u234?cher tout acc\u232?s non autoris\ u233? (accidentel ou d\u233?lib\u233?r\u233?) au programme ou aux donn\u233?es. En pratique, dans un cahier des charges, la section exigences fonctionnelles d\u233? crira l'aptitude, et rien de plus. La conformit\u233? r\u233?glementaire sera d\ u233?finie dans la section r\u232?gles de gestion. Les trois autres sous-caract\ u233?ristiques (exactitude, conformit\u233? r\u233?glementaire, s\u233?curit\u233?) seront d\u233?crites dans des paragraphes correspondants, dans la section exigences non fonctionnelles. Pour sp\u233?cifier les exigences d'interop\u233?rabilit\u233? et de s\u233?curit\u233?, un moyen pratique et efficace consiste \u224? faire r\ u233?f\u233?rence \u224? des normes relatives \u224? ces sous-caract\u233? ristiques. Fiabilit\u233? La fiabilit\u233? est \'5c'7bensemble d'attributs portant sur taptitude du logiciel \u224? maintenir son niveau de service dans des conditions pr\u233?cises et pendant une p\u233?riode d\u233?termin\u233?e. 2. Voir au chapitre 13 comment formuler les exigences non fonctionnelles, et au chapitre 14 leur place dans les diff\u233?rents mod\u232?les de cahiers des charges. \'5c'7bEJ\ par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences Ce crit\u232?re se d\u233?cline en : \ u8226? Maturit\u233? : fr\u233?quence de d\u233?faillances dues \u224? des d\u233? fauts du logiciel. \u8226? Tol\u233?rance aux fautes : aptitude du logiciel \u224? maintenir un niveau de service acceptable en cas de d\u233?faut du logiciel ou de violation de son interface. \u8226? Possibilit\u233? de r\u233?cup\u233?ration : capacit\u233? \u224? r\u233?tablir son niveau de service et de restaurer les informations directement affect\u233?es en cas de d\u233?faillance, et sur le temps et l'effort n\u233?cessaires pour le faire. Parmi les mesures utilis\u233?es pour la Habilit\u233?, citons le temps moyen entre deux d\u233?faillances (MTBF, mean lime between failures), la dur\u233?e moyenne de d\u233?faillance \'5c'7bmean down time). ou le temps mis par le syst\u232?me pour red\u233?marrer. Nous sommes l\ u224? \u224? la limite entre les exigences produit (tr\u232?s d\u233?pendantes du mat\u233?riel) et les exigences de service. Formuler ces exigences dans un cahier des charges est tout \u224? fait possible, mais la formulation est tr\u232?s d\ u233?pendante des fournitures attendues (logiciel seul, mat\u233?riel et logiciel, services, etc.). Facilit\u233? d'utilisation (utilisabilit\u233?) La notion d'utilisabilit\u233? est proche de celle d'ergonomie. L'ergonomie est l'\u233?tude des situations de travail et des relations entre l'\u234?tre humain et un syst\ u232?me. Elle a pour objectif d'am\u233?liorer le confort, voire le plaisir, de l'utilisateur et par voie de cons\u233?quence l'efficacit\u233? dans le travail et dans l'utilisation d'un produit (en l'occurrence, un logiciel). Le terme d'utilisabilit\u233? englobe un p\u233?rim\u232?tre plus large, qui comprend l'efficacit\u233?. De plus, le mot ergonomie a \u233?t\u233? largement galvaud\ u233? par les informaticiens, qui le mettent un peu \u224? toutes les sauces, et par les utilisateurs, qui ne sont pas suffisamment pr\u233?cis dans leurs exigences. La norme ISO/CEI 25000 d\u233?finit la facilit\u233? d'utilisation (ou utilisabilit\u233?) comme \u171? l'ensemble d'attributs portant sur l'effort n\ u233?cessaire pour l'utilisation et sur l'\u233?valuation individuelle de cette utilisation par un ensemble d\u233?fini ou implicite d'utilisateurs \u187?. Elle se d\u233?cline en : \u8226? Facilit\u233? de compr\u233?hension : attributs du logiciel portant sur l'effort que doit faire l'utilisateur pour reconna\u238?tre la logique et sa mise en \u339?uvre. \u8226? Facilit\u233? d'apprentissage : attributs du logiciel portant sur l'effort que doit faire l'utilisateur pour apprendre son application (par exemple, ma\u238?trise de l'exploitation des entr\u233?es, des sorties). \u8226? Facilit\u233? d'exploitation : attributs du logiciel portant sur l'effort que doit faire l'utilisateur pour exploiter et contr\u244?ler son application. \u8226? Attractivit\u233? : capacit\u233? du produit logiciel \u224? \ u234?tre attrayant pour l'utilisateur. CD\par\pard\plain\hyphpar} { Chapitre 11 - Les exigences non Fonctionnelles L'util is\u226?bilit\u233? est difficile \u224? d\u233?finir. Une fa\u231?on de faire consiste \u224? exiger la conformit\u233? \u224? des standards d'utilisabilit\u233? ou \u224? une charte d'ergonomie. De tels documents imposent des r\u232?gles, comme par exemple sur le nombre maximal de boutons par \u233?cran, le nombre d'objets sur une liste ou les combinaisons de couleurs autoris\u233?es. Une autre mani\u232?re de faire consiste \u224? formuler les exigences d'utilisabilit\u233? \u224? un plus haut niveau, en l'occurrence au niveau de l'utilisateur. Voici par exemple comment peuvent s'exprimer quatre exigences d'utilisabilit\u233?. correspondant aux quatre sous-caract\u233?ristiques (facilit\u233? d'apprentissage, de compr\u233?hension, d'exploitation et d'attractivit\u233?) : Pour 80 % des m\u233?decins, une formation initiale de 2 heures sera suffisante \u224? l'appropriation des fonctions de prescription. Apr\u232?s un mois d'utilisation quotidienne. 80 X des utilisateurs form\u233?s \u224? l'outil pourront l'utiliser sans faire appel \u224? une aide ext\u233?rieure. Le temps moyen mis par un m\u233?decin form\u233? au logiciel pour prescrire un m\u233?dicament avec le module de prescription ne doit pas exc\u233? der de 10 X le temps moyen mis par un m\u233?decin pour effectuer cette action manuellement. Apr\u232?s un mois d'utilisation quotidienne. 80 X des utilisateurs devront se d\u233?clarer satisfaits ou tr\u232?s satisfaits par 1e syst\u232?me. Remarquons cette proportion de 80 %. On ne peut pas exiger qu'une fonction faisant intervenir des \u234?tres humains soit r\u233?alis\u233?e \u224? 100 %. Ouatre utilisateurs sur cinq efficients et satisfaits est beaucoup plus r\u233?aliste. Rendement La norme ISO/CEI 25000 d\u233?finit le rendement comme l'ensemble d'attributs portant sur le niveau de service d'un logiciel el la quantit\u233? de ressources utilis\u233?es, dans des conditions d\u233?termin\u233?es. Celui-ci se d\u233?cline en : \u8226? comportement vis-\u224?-vis du temps, portant sur les temps de r\u233?ponse et de traitement, ainsi que sur les d\u233?bits lors de l'ex\ u233?cution de sa fonction ; \u8226? comportement vis-\u224?-vis des ressources, portant sur la quantit\u233? de ressources utilis\u233?es et sur la dur\u233?e de leur utilisation lorsqu'il ex\u233?cute sa fonction. Dans un cahier des charges, il est rare que l'on sp\u233?cifie directement le comportement vis-\u224?-vis des ressources (m\u233?moire ou espace disque). En g\u233?n\u233?ral, il est plus utile de sp\u233?cifier l'exigence \u224? un plus haut niveau (nombre d'utilisateurs simultan\u233?s). Le comportement vis-\u224?-vis du temps sera \u233?galement d\ u233?crit comme une exigence non fonctionnelle de niveau CD\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences utilisateur (temps de r\u233?ponse). Ces deux exigences sont interd\u233?pendantes. Cela donne : Le syst\u232?me pourra \ u234?tre utilis\u233? simultan\u233?ment par 150 utilisateurs. \u192? pleine charge, le temps d'affichage d'un \u233?cran complet sera inf\u233?rieur ou \u233? gal \u224? 1.5 seconde. Remarquons que cette la premi\u232?re exigence de rendement est la d\u233?clinaison d'une contrainte organisationnelle, voire d'un objectif strat\u233?gique. La seconde exigence d\u233?rive d'une exigence d'utilisabilit\ u233?, et correspond \u224? un seuil psychologique. Ces deux exigences sont interd\ u233?pendantes : avec 150 utilisateurs simultan\u233?s, le syst\u232?me r\u233? pondra en moins d'une seconde et demie. Maintenabilit\u233? La maintenabilit\u233? est formellement d\u233?finie \u171? comme l'ensemble d'attributs portant sur l'effort n\u233?cessaire pour faire des modifications donn\u233?es \u187? (ISO/IEC 25000). Elle se d\u233?compose en : \u8226? Facilit\u233? d'analyse : attributs du logiciel portant sur l'effort n\u233?cessaire pour diagnostiquer les d\u233? ficiences ou les causes de d\u233?faillance, ou pour identifier les parties \u224? modifier. \u8226? Facilit\u233? de modification : attributs du logiciel portant sur l'effort n\u233?cessaire pour modifier, rem\u233?dier aux d\u233?fauts, ou changer d'environnement. \u8226? Stabilit\u233? : attributs du logiciel portant sur le risque des effets inattendus des modifications. \u8226? Testabilit\u233? : attributs du logiciel portant sur l'effort n\u233?cessaire pour valider le logiciel modifi\u233?. La maintenabilit\u233? est une caract\u233?ristique essentiellement interne, invisible de l'utilisateur. On peut cependant sp\u233?cifier des contraintes de service \u224? l'utilisateur. Le mod\u232?le Volere (voir chapitre 14) regroupe dans un m\u234?me paragraphe les exigences de maintenabilit\u233? et de support. Il s'agit en r\u233?alit\u233? d'exigences de maintenance plut\u244?t que de maintenabilit\u233?. Portabilit\u233? La portabilit\u233? est \u8364? l'ensemble d'attributs portant sur l'aptitude du logiciel \u224? \u234?tre transf\ u233?r\u233? d'un environnement \u224? l'autre \u187? (norme ISO/CEI 25000). Elle se d\u233?compose en : \u8226? Facilit\u233? d'adaptation : elle concerne les attributs du logiciel portant sur la possibilit\u233? de son adaptation \u224? diff\u233?rents environnements donn\u233?s sans avoir recours \u224? d'autres actions ou moyens que ceux pr\u233?vus \u224? cet effet pour le logiciel consid\ u233?r\u233?. CED\par\pard\plain\hyphpar} { Chapitre 11 - Les exigences non Fonctionnelles \u8226? Facilit\u233? \u224? l'installation : effort n\u233?cessaire pour installer le logiciel dans un environnement donn\u233?. \u8226? Conformit\u233? relative aux r\u232?gles de portabilit\u233? : attributs du logiciel permettant \u224? celui-ci de se conformer aux normes ou conventions ayant trait \u224? la portabilit\u233?. \u8226? Interchangeabilit\u233? : aptitude du logiciel \u224? \u234?tre utilis\u233? \u224? la place d'un autre logiciel dans le m\u234?me environnement. La portabilit\u233? stricto sensu (facilit\u233? d'adaptation) induit une contrainte tr\u232?s forte sur le d\u233?veloppement et l'architecture du logiciel. Aussi, on ne l'exigera que si cela s'av\u232?re n\u233?cessaire, apr\u232?s une \u233?ventuelle \u233?tude d'opportunit\u233?. En revanche, la facilit\u233? d'installation est une exigence \ u224? forte valeur ajout\u233?e, surtout si le logiciel doit \u234?tre install\ u233? sur des postes individuels. Il faudra la sp\u233?cifier dans tous les cas. Zoom sur l'utilisabilit\u233? Il y a au moins trois mani\u232?res de sp\u233?cifier l'utilisabilit\u233? dans un cahier des charges. La premi\u232?re s'appuie sur les quatre sous-caract\u233?ristiques d'utilisabilit\u233? de la norme ISO 25000 d\ u233?j\u224? mentionn\u233?e : facilit\u233? d'apprentissage, facilit\u233? de compr\u233?hension, facilit\u233? d'exploitation (utilisation au quotidien) et attractivit\u233?. La deuxi\u232?me fa\u231?on de structurer les exigences d'utilisabilit\u233? s'appuie \u233?galement sur ISO 25000, cette fois sur la qualit\u233? de fonctionnement (en anglais. qualily in use). Celle-ci se d\u233? finit par quatre crit\u232?res : \u8226? L'efficacit\u233? : capacit\u233? du logiciel \u224? permettre aux utilisateurs d'atteindre leurs objectifs avec exactitude et exhaustivit\u233?. \u8226? La productivit\u233?.- capacit\u233? \ u224? optimiser le temps et l'effort de l'utilisateur. \u8226? La s\u233?curit\ u233? : capacit\u233? du produit logiciel \u224? limiter les risques sur la sant\ u233?, les activit\u233?s ou l'environnement des utilisateurs, en particulier suite \u224? une d\u233?faillance (ici. le terme innocuit\u233?, traduction de l'anglais safety. serait sans doute plus appropri\u233?). \u8226? La satisfaction .- correspond \u224? une attitude positive de l'utilisateur lors de l'interaction avec le produit. La troisi\u232?me mani\u232?re de structurer les exigences s'appuie sur les crit\u232?res d'ergonomie d\u233?finis par la norme AFNOR Z-67-133-13. bas\ u233?e sur les travaux de Bastien et Scapin. Cette norme d\u233?finit l'ergonomie du logiciel par sept crit\u232?res (figure 11-2) : \u8226? la compatibilit\ u233? ; \u8226? le guidage; \u8226? l'homog\u233?n\u233?it\u233?; 3.AFNORZ67-133-1. D\u233?finition des cri* t\u232?res ergonomiques de conception et \u233?valuation des interfaces utilisateurs, 1991. CD\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences \u8226? la souplesse; \u8226? le contr\ u244?le explicite ; \u8226? la gestion des erreurs ; \u8226? la concision. Figure U-2 : Sept crit\u232?res d'ergonomie Examinons chacun de ces crit\u232?res et la mani\u232?re de les d\u233?cliner sous forme d'exigences. Compatibilit\u233? La compatibilit\u233? est la < capacit\u233? \u224? s'int\u233?grer dans l'activit\ u233? des utilisateurs \u187?. Elle concerne l'accord pouvant exister entre les caract\u233?ristiques professionnelles et psychologiques de l'utilisateur (m\u233? moire, perceptions, habitudes, etc.) et l'organisation du dialogue entre l'utilisateur et l'application. Une bonne compatibilit\u233? r\u233?duit consid\ u233?rablement le temps d'apprentissage d'une application. On doit exiger que le logiciel s'adapte au m\u233?tier de chaque profil utilisateur. Le syst\u232?me doit non seulement int\u233?grer les proc\u233?dures, qui rel\u232?vent plut\u244?t d'exigences fonctionnelles, mais s'adapter \u224? la psychologie et la physiologie de l'utilisateur. Un exemple typique est celui de l'utilisation de la souris, exclue pour les utilisateurs qui saisissent des donn\u233?es en masse, mais n\u233? cessaire pour les d\u233?cideurs sur une application intranet. La segmentation des profils utilisateurs et l'analyse de leurs t\u226?ches sont donc n\u233?cessaires avant toute sp\u233?cification. CD\par\pard\plain\hyphpar} { Chapitre 11 - Les exigences non Fonctionnelles Guidage Le guidage est \u171? l'ensemble des moyens mis en \u339?uvre pour conseiller, orienter, informer et conduire l'utilisateur lors de ses interactions avec l'ordinateur \u187?. On distingue le guidage explicite, qui se traduit par l'aide en ligne, les messages d'erreur, d'avertissement ou d'information, et le guidage implicite, qui concerne les formats de saisie des informations, la disposition des informations sur l'\ u233?cran, etc. Le guidage est li\u233? \u224? la navigabilit\u233?. L'utilisateur doit savoir \u224? tout moment \u224? quel point du processus il se trouve, et comment passer \u224? une autre t\u226?che. Le syst\u232?me doit canaliser le travail de l'utilisateur en lui laissant un maximum de libert\u233? tout en l'emp\ u234?chant d'entreprendre des actions qui nuisent \u224? sa s\u233?curit\u233?, \ u224? sa productivit\u233? ou \u224? son efficacit\u233?. Homog\u233?n\u233?it\ u233? L'homog\u233?n\u233?it\u233? est la \u171? capacit\u233? d'un syst\u232?me \ u224? conserver une logique d'usage constante \u187?. Elle se r\u233?f\u232?re \ u224? la fa\u231?on avec laquelle des choix d'objets de l'interface sont conserv\ u233?s pour des contextes identiques, et des objets diff\u233?rents pour des contextes diff\u233?rents. Elle facilite l'apprentissage et r\u233?duit l'effort de m\u233?morisation. L'homog\u233?n\u233?it\u233? concerne la localisation d'un objet sur l'\u233?cran, son format et sa pr\u233?sentation, ainsi que la syntaxe et le vocabulaire employ\u233?s. Les \u233?crans de saisie et la logique des actions doivent \u234?tre analogues dans toute l'application, et m\u234?me, si possible, d'une application \u224? l'autre. Un bon moyen d'exiger l'homog\u233?n\u233?it\ u233? consiste \u224? imposer une charte d'ergonomie, pr\u233?existante ou adapt\ u233?e au logiciel. Cependant, des exigences particuli\u232?res \u224? certaines t\ u226?ches doivent \u234?tre \u233?labor\u233?es. Souplesse La souplesse est la \ u171? capacit\u233? de l'interface \u224? s'adapter aux diff\u233?rentes exigences de la t\u226?che, aux diverses strat\u233?gies, aux habitudes et niveaux de connaissances des diff\u233?rents utilisateurs \u187?. Contrairement \u224? la compatibilit\u233?, qui revient \u224? adapter d'avance le logiciel aux diff\u233? rents profils utilisateurs, la souplesse permet \u224? un logiciel de s'adapter \ u224? ses habitudes, ainsi qu'\u224? son exp\u233?rience ou son niveau d'expertise. Exemple de souplesse : les modes expert et d\u233?butant. Les utilisateurs d\u233? butants auront les commandes pr\u233?sent\u233?es sous forme de menu, les exp\u233? riment\u233?s auront des raccourcis clavier \u224? leur disposition. Autre exemple, la facilit\u233? pour l'utilisateur \u224? param\u233?trer le logiciel pour l'adapter \u224? son m\u233?tier... tout en respectant l'exigence d'homog\u233?n\ u233?it\u233?, ce qui montre \u224? quel point l'ergonomie n'est pas chose ais\ u233?e. GE)\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Contr\u244?le explicite Le contr\u244? le explicite est < l'ensemble des moyens du dialogue qui permettent \u224? l'utilisateur de ma\u238?triser le lancement et le d\u233?roulement des op\u233? rations ex\u233?cut\u233?es par le syst\u232?me informatique \u187?. C'est ce qui permet \u224? l'utilisateur de ma\u238?triser le syst\u232?me. Ce contr\u244?le se manifeste en particulier par le feedback que fournit le syst\u232?me. En pratique, les r\u233?actions du syst\u232?me doivent \u234?tre pr\u233?visibles. Cette exigence apporte \u224? l'utilisateur l'autonomie qu'il est en droit d'attendre du syst\u232?me, ainsi qu'un confort li\u233? \u224? une sensation de contr\u244?le sur l'application. Cette agr\u233?able sensation de \u171? piloter \u187? le produit (plut\u244?t que d'\u234?tre malmen\u233? par lui) facilite l'appropriation de l'outil par l'utilisateur et minimise les erreurs. Gestion des erreurs La gestion des erreurs rassemble < tous les moyens permettant d'une part d'\u233?viter ou de r\u233?duire les erreurs, et d'autre part de les corriger lorsqu'elles surviennent \u187?. Elle pr\u233?vient le stress et augmente la sensation de s\ u233?curit\u233? (et la s\u233?curit\u233? effective). Comme exemples d'exigences, citions : \u8226? la possibilit\u233? d'annuler une action (touche \u171? undo >) ; \u8226? la demande de confirmation des actions dont les effets sont irr\u233? versibles ; \u8226? les messages d'avertissement. Concision La concision est \u171? l'ensemble des moyens qui. pour l'utilisateur, contribuent \u224? la r\u233?duction de ses activit\u233?s de perception et de m\u233?morisation et concourent \u224? l'augmentation de l'efficacit\u233? du dialogue \u187?. Elle a des effets positifs sur la productivit\u233? et contribue \u224? diminuer la charge mentale et donc la fatigue et le stress. Exemple d'exigence : \u8226? minimiser le nombre de menus et de clics pour ex\u233?cuter une t\u226?che ; \u8226? limiter le nombre de possibilit\u233?s offertes (tout en respectant les exigences de souplesse et de contr\u244?le explicite). GB\par\pard\plain\hyphpar} { Chapitre 12 Exigences projet et contraintes techniques Les exigences projet et les contraintes techniques ne sont ni des exigences fonctionnelles, ni des exigences non fonctionnelles. Elles ne concernent pas le produit, mais sa mise en \u339?uvre. Elles occupent un chapitre \u224? part dans le cahier des charges. La difficult\ u233? consiste \u224? les d\u233?crire sans tomber dans le pi\u232?ge classique de la description d'une solution en lieu et place d'un besoin. Contraintes de projet La formulation de ces contraintes d\u233?pend beaucoup du type de solution (progiciel, d\u233?veloppement sp\u233?cifique) et du rapport entre client et fournisseur (d\u233?veloppement par des \u233?quipes internes, ou au contraire appel d'offres public). Charges, co\u251?ts et d\u233?lais Ces exigences impos\ u233?es \u224? la ma\u238?trise d'\u339?uvre d\u233?coulent des contraintes de budget et d'urgence au niveau de la ma\u238?trise d'ouvrage. Il faut savoir qu'une diminution du d\u233?lai a toujours une r\u233?percussion importante sur les co\ u251?ts, voire m\u234?me sur la faisabilit\u233?. (< neuf femmes ne font pas un enfant en un mois \u187? dit-on parfois), et souvent sur la qualit\u233?. L'expression de contraintes de co\u251?t peut \u234?tre utile dans le cadre d'un d\ u233?veloppement en interne, elle l'est beaucoup moins lorsqu'on s'adresse \u224? un fournisseur externe, et en principe interdite dans le cadre d'un appel d'offres public. Installation, mise en exploitation, recette Les exigences doivent indiquer (ou demander au fournisseur d'indiquer) si le produit est autoinstallable. si l'installation est \u224? la charge du fournisseur\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences ou du client, la charge d'installation pour le fournisseur et/ou le client, les d\u233?lais \u224? pr\u233?voir, et la disponibilit\u233? des diff\u233?rents acteurs par profil. Le cahier des charges peut d\u233?tailler les modalit\u233?s de recette ou demander \u224? la ma\u238? trise d'ouvrage de les proposer. Migration Comme pour l'int\u233?gration, la migration peut \u234?tre plus ou moins complexe et co\u251?teuse, jusqu'\u224? n\ u233?cessiter une v\u233?ritable \u233?tude. Pour que le fournisseur puisse r\u233? pondre \u224? cette contrainte, il faut lui indiquer aussi pr\u233?cis\u233?ment que possible, au minimum le format et le contenu des donn\u233?es \u233?chang\u233? es, le support physique et/ou logique (par exemple, base de donn\u233?es, disque dur), la structure (fichiers plats, tables de base de donn\u233?es relationnelle...) et le volume de donn\u233?es \u224? reprendre. Le cahier des charges doit indiquer clairement les engagements mutuels du fournisseur et du client, qui sont tr\u232?s interd\u233?pendants. Par exemple, on peut exiger du fournisseur qu'il reprenne les donn\u233?es pr\u233?sent\u233?es sous forme de fichier \u224? plat, le client s'engageant \u224? fournir ce fichier apr\u232?s avoir \u171? attaqu\u233? \u187? lui-m\u234?me la base de donn\u233?es de l'ancienne application. Les charges, d\u233?lais, disponibilit\u233?s des acteurs sont \u233?galement des exigences \u224? indiquer. Environnement de d\u233? veloppement Imposer l'environnement de d\u233?veloppement, en termes d'outils, langages, m\u233?thodes, etc., est parfois n\u233?cessaire, mais induit des contraintes tr\u232?s fortes sur le ma\u238?tre d'\u339?uvre. Il faudra donc bien peser le pour et le contre avant de formuler cette exigence, \u233?ventuellement apr\u232?s discussion ou n\u233?gociation, ou laisser dans le cahier des charges l'ouverture \u224? la n\u233?gociation. Contraintes d'environnement Environnement mat\u233?riel et logiciel Ces exigences ou contraintes concernent la plate-forme mat\u233?rielle, le syst\u232?me d'exploitation, les bases de donn\u233?es, les navigateurs sur (ou sous) lesquels la solution devra fonctionner. La premi\u232?re contrainte concerne le type de fourniture. Trois cas peuvent se pr\u233?senter : \ u8226? Seul le produit logiciel est livr\u233?. Le client dispose de la plate- forme. Dans ce cas. c'est au client de d\u233?crire l'environnement, qui devient de facto une contrainte. Le fournisseur devra pr\u233?ciser dans sa r\u233?ponse ses propres contraintes en termes de mat\u233?riels et logiciels de base. (ED\par\pard\ plain\hyphpar} { Chapitre 12 - Exigences projet et contraintes techniques \u8226? Le client demande la fourniture du produit logiciel seul, mais n'a pas encore acquis l'infrastructure n\u233?cessaire pour l'h\u233?berger. L'exigence consiste \u224? demander au fournisseur de sp\u233?cifier ses propres exigences en termes d'infrastructure. Le client peut \u233?galement exiger du fournisseur qu'il maintienne son produit pour tenir compte de l'\u233?volution du mat\u233?riel ou du logiciel de base. \u8226? Le client demande une solution compl\u232?te, mat\u233?riel et logiciel. Il exige du fournisseur de d\u233?tailler la liste des mat\u233?riels et logiciels fournis, et de lister ses propres contraintes d'environnement (salle, etc.). Toutes les nuances et variations sont possibles. Les autres contraintes d'environnement mat\ u233?riel et logiciel d\u233?pendent \u233?troitement de cette premi\u232?re contrainte. Interfaces Ce paragraphe d\u233?taille les protocoles, formats d'\u233? change de donn\u233?es, appels de proc\u233?dures entre applications, messages \ u233?chang\u233?s. Si l'on descend dans des d\u233?tails techniques, ce qui est souvent n\u233?cessaire, il faudra faire appel \u224? des experts. En fonction du niveau de d\u233?tail, il sera utile d'expliciter les exigences sous forme de diagrammes de s\u233?quence ou de diagrammes d'\u233?tat. Chaque fois que cela sera possible, on s'appuiera sur des normes et standards d'interop\u233?rabilit\u233? existants. La r\u233?f\u233?rence \u224? des standards est infiniment plus s\u251? re et \u233?conomique en efforts de sp\u233?cification que la description d\u233? taill\u233?e d'interfaces. Elle a des cons\u233?quences tr\u232?s positives sur le co\u251?t et la qualit\u233? de la solution. Services d'accompagnement Les services d'accompagnement doivent \u234?tre sp\u233?cifi\u233?s avec beaucoup de soin, clart\u233? et pr\u233?cision, car c'est souvent sur ces services que le fournisseur \u8364? fait sa marge \u187?. Une sp\u233?cification impr\u233?cise peut donner lieu \u224? des litiges, voire des conflits entre client et fournisseur, avec des risques financiers. Il y a deux mani\u232?res de formuler les exigences de service : imposer des contraintes ou demander au fournisseur de pr\ u233?ciser sa r\u233?ponse (proposition technique et commerciale). Lorsque le fournisseur est une soci\u233?t\u233? externe et que le client doit passer par un appel d'offres public (\u201?tat, collectivit\u233?), c'est souvent la deuxi\u232? me option qui est choisie, voire n\u233?cessaire. GD\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Exigences d'int\u233?gration L'int\ u233?gration du produit \u224? l'environnement du client est un point tr\u232?s d\ u233?licat. Pour que le fournisseur puisse r\u233?pondre aux exigences d'int\u233? gration, il doit bien conna\u238?tre l'environnement du client, en particulier les applications \u171? partenaires \u187? avec lesquelles le produit fourni devra communiquer. Souvent, une v\u233?ritable \u233?tude d'int\u233?grabilit\u233? doit avoir lieu. Elle peut \u234?tre faite par le client, le fournisseur, et le plus souvent par une collaboration des deux parties. L'exercice est d'autant plus difficile que. lorsque le client \u233?tablit son cahier des charges, il ne conna\ u238?t pas encore la solution propos\u233?e par le fournisseur. C'est la situation dans laquelle se trouve, en particulier, l'Administration lorsqu'elle \u233?tablit un appel d'offres public pour choisir un progiciel du march\u233?. Support utilisateurs, support technique La qualit\u233? du support aux utilisateurs est souvent une des cl\u233?s de la r\u233?ussite d'un projet. De plus, le support est un gros consommateur de ressources. Il est donc indispensable de sp\u233?cifier pr\ u233?cis\u233?ment les conditions de support ou de demander au fournisseur de les sp\u233?cifier. Les diff\u233?rents niveaux de support doivent \u234?tre d\u233? crits, ainsi que le profil des intervenants \u224? chaque niveau de support, et les ressources d\u233?di\u233?es. Par exemple, le support premier niveau pourra \u234? tre fait par le client, et le deuxi\u232?me niveau par le fournisseur. Maintenance Les exigences de maintenance ne doivent pas \u234?tre confondues avec les exigences de maintenabilit\u233?. La maintenabilit\u233? est une propri\u233?t\u233? du logiciel, alors que la maintenance est un service rendu au client. En dehors de cas tr\u232?s rares, un logiciel install\u233? devra \u234?tre maintenu. Le client ne pourra pas se passer de ce service, qui lui sera factur\u233?, parfois tr\u232?s cher. De plus en plus fr\u233?quemment, la maintenance co\u251?te plus cher que l'achat du produit (cette tendance s'acc\u233?l\u232?re avec l'arriv\u233?e de produits open source). De plus, les op\u233?rations de maintenance peuvent elles-m\ u234?mes induire des contraintes pour le client et l'utilisateur, avec des arr\ u234?ts d'exploitation pour mont\u233?e de version ou pour correction de bogues. Un client a donc int\u233?r\u234?t \u224? bien sp\u233?cifier les conditions et les modalit\u233?s de la maintenance. Les exigences d\u233?pendent bien s\u251?r du domaine d'application, du type d'application, de l'environnement informatique et m\ u233?tier. Voici quelques exemples d'exigences de maintenance : \u8226? fr\u233? quence des installations de versions majeures ; \u8226? modalit\u233?s d'installation (par le client, par le fournisseur, etc.) : ITO\par\pard\plain\ hyphpar} { Chapitre 12 - Exigences projet et contraintes techniques \u8226? processus de maintenance, tout particuli\u232?rement pour la maintenance corrective ; \u8226? obligations respectives du client et du fournisseur concernant la maintenance de l'infrastructure sous-jacente (serveurs, base de donn\u233?es, etc.) ; \u8226? compatibilit\u233? ascendante entre versions (peut aussi \u234?tre consid\u233?r\ u233?e comme une exigence de maintenabilit\u233?). Documentation Rappelons que la documentation fait partie int\u233?grante du produit. Les contraintes g\u233?n\ u233?rales s'appliquant au produit s'appliquent donc ipso facto \u224? sa documentation. C'est en particulier le cas de la livraison d'une documentation suite \u224? un changement de version du produit. Cela va sans dire, mais cela va mieux en le disant, et encore mieux en le stipulant par \u233?crit. Les exigences de documentation peuvent \u234?tre extr\u234?mement vari\u233?es. Elles peuvent concerner le volume de la documentation, sa forme physique (papier, m\u233?dia, documentation en ligne...), la fr\u233?quence de sa mise \u224? jour, son contenu, la facilit\u233? de lecture et d'apprentissage ou son mode de distribution. Formation des utilisateurs La formation des utilisateurs est tr\u232?s importante pour la r\u233?ussite du projet. La plupart des fournisseurs ont, parall\u232? lement \u224? leur offre produit, des offres de formation standard. Le prix de ces formations peut \u234?tre tr\u232?s \u233?lev\u233?. Il est tout \u224? fait possible, m\u234?me dans le cadre d'appels d'offres publics, de \u171? n\u233? gocier > ces prix au moyen du cahier des charges. En particulier, on sait que certains utilisateurs n'utilisent qu'un tr\u232?s petit nombre de fonctions. La formation standard \u171? g\u233?n\u233?raliste \u187? peut \u234?tre \u171? tron\ u231?onn\u233?e \u187? en fonction du profil utilisateur. Rien n'emp\u234?che de stipuler que telle cat\u233?gorie d'utilisateurs doit pouvoir \u234?tre form\u233?e en deux heures (en lieu et place d'une formation g\u233?n\u233?rale de trois jours, par exemple). En fonction de la mani\u232?re dont elle est formul\u233?e, cette exigence peut aussi trouver sa place dans la rubrique \u171? facilit\u233? d'utilisation \u187? (chapitre des exigences non fonctionnelles). Environnement physique d'utilisation Il ne s'agit pas ici d'environnement informatique, mais bien de l'environnement physique au sens large. Par exemple, une solution (mat\u233?riel et logiciel) peut n\u233?cessiter d'\u234?tre utilis\u233?e en milieu tropical, st\ u233?rile (bloc op\u233?ratoire), humide, bruyant, etc. D\u233?crire cet environnement est important, car il induit des contraintes sur le mat\u233?riel informatique, mais aussi \u338?>\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences sur l'ergonomie du produit. En indiquant, par exemple, que le logiciel sera utilis\u233? au service des urgences d'un h\u244? pital, on donne une information tr\u232?s importante au fournisseur, en lui laissant la libert\u233? (et la responsabilit\u233?) d'imaginer la solution qui convient le mieux (affichage tr\u232?s sobre) ou de faire une \u233?tude d'ergonomie. Le fait de d\u233?crire l'environnement d'utilisation et d'exiger du fournisseur que son produit respecte cette contrainte d'environnement reporte l'effort de recherche et d'\u233?tude (en particulier d'ergonomie) sur le fournisseur. Dans le cas d'un logiciel critique, cela risque d'\u234?tre plus co\ u251?teux pour le fournisseur, mais aussi plus stimulant. On devra donc \u233? tudier l'opportunit\u233? de formuler les exigences, soit sous forme de contraintes physiques d'utilisation, soit sous forme de r\u232?gles d'ergonomie, ou m\u234?me d'exigences fonctionnelles. L'exercice n'est pas facile. CD\par\pard\plain\hyphpar} { Chapitre 13 L'\u233?tape de sp\u233?cification Le processus de sp\u233?cification Le sch\u233?ma ci-dessous pr\u233?sente une vision simplifi\u233?e du travail de sp\u233?cification. -Analyse- * Formuler Structurer V\u233?rifier -VaUdatlon- Figure 13-1 : Le processus de sp\u233?\u224?fkation Les trois t\u226?ches consistant \u224? formuler, structurer et v\u233?rifier les exigences sont tr\u232? s interd\u233?pendantes et le processus est naturellement it\u233?ratif. Formuler Le comportement (exigences fonctionnelles) et les propri\u233?t\u233?s (exigences non fonctionnelles) doivent \u234?tre formul\u233?s avec beaucoup de soin et de pr\ u233?cision, de mani\u232?re \u224? \u234?tre compris par tous ceux qui liront le cahier des charges. Une bonne ma\u238?trise de la langue \u233?crite est n\u233? cessaire, mais non suffisante. Une bonne formulation sera facilit\u233?e si les \ u233?tapes pr\u233?c\u233?dentes ont \u233?t\u233? respect\u233?es. La sp\u233? cification graphique est un cas particulier de formulation. Un graphique peut faciliter la compr\u233?hension, mais si l'on veut qu'il soit compr\u233?hensible de tous les acteurs, il est encore plus difficile \u224? < \u233?crire \u187? qu'un texte.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Structurer Structurer le cahier des charges consiste \u224? ranger les exigences sous forme arborescente, afin de rendre la lecture, la compr\u233?hension et la maintenance du document la plus ais\ u233?e possible. Le mod\u232?le de cahier des charges nous donne un premier niveau de structuration, mais certains sous-chapitres devront \u234?tre subdivis\u233?s, parfois tr\u232?s finement. C'est en particulier le cas des exigences fonctionnelles. Pour un logiciel d'une grande richesse fonctionnelle, la structuration est loin d'\u234?tre \u233?vidente. Dans un tel cas, on pr\u233?sente en g\u233?n\u233?ral les exigences de deux niveaux diff\u233?rents dans deux chapitres diff\u233?rents : \u8226? exigences utilisateur (par exemple, sous forme de cas d'utilisation) ; \u8226? exigences produit (sous forme d'exigences \u233?l\ u233?mentaires). V\u233?rifier Il s'agit ici de v\u233?rifier, en particulier au moyen de check-iists, que les exigences qui viennent d'\u234?tre r\u233?dig\u233?es r\u233?pondent \u224? un certain nombre de crit\u232?res. Elles doivent, en particulier, \u234?tre align\u233?es sur les objectifs et les exigences de plus haut niveau, correspondre au besoin des utilisateurs, \u234?tre r\u233?alistes et bien formul\u233?es. Les activit\u233?s de structuration, de formulation et de v\ u233?rification sont it\u233?ratives. L'activit\u233? de v\u233?rification fait partie int\u233?grante de la sp\u233?cification et est distincte de l'\u233?tape ult\u233?rieure de validation, qui s'int\u233?resse autant au contenu qu'\u224? la structure ou \u224? la formulation. La Formulation Appliquer des r\u232?gles de bonne formulation peut appara\u238?tre contraignant, mais est tr\u232?s avantageux \u224? terme. Un cahier des charges bien formul\u233? est beaucoup plus maintenable. N'oublions pas que sa maintenance commence tr\u232?s t\u244?t, toute exigence \u233?tant susceptible d'\u234?tre modifi\u233?e \u224? tout moment (mais pas n'importe comment). Nous donnons dans les paragraphes qui suivent un ensemble de principes et de r\u232?gles de bonne formulation. La liste peut para\u238?tre longue, mais avec l'exp\u233?rience, la formulation correcte devient une seconde nature. La structure grammaticale Une exigence \u233?l\u233?mentaire correctement formul\u233?e r\u233?pond aux crit\u232?res suivants : \u8226? Elle est grammaticalement correcte. CE)\par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de sp\u233?cification \u8226? Elle est r\u233?dig\u233?e \u224? la forme active : sujet, verbe, compl\u233?ment. \u8226? Le sujet est n\ u233?cessairement un utilisateur, un syst\u232?me ou un attribut du syst\u232?me. \ u8226? Un m\u234?me terme a la m\u234?me signification pour tout lecteur potentiel. \u8226? Les termes ambigus ont \u233?t\u233? d\u233?finis dans un glossaire. Il est n\u233?cessaire d'utiliser des phrases du type \u171? le logiciel doit... \u187?. Par exemple : \u171? Le logiciel doit afficher le co\u251?t des m\u233?dicaments prescrits > plut\u244?t que : \u171? Affichage du co\u251?t \u187?. Pour exprimer une exigence, il est pr\u233?f\u233?rable d'utiliser une phrase courte et claire. On \u233?vitera les phrases comportant des propositions relatives, ou des conjonctions de coordination. L'id\u233?al (pas toujours r\u233?alisable) est que chaque exigence tienne sur une seule phrase et que chaque phrase exprime une seule exigence. Check-list de bonne formulation La liste suivante servira de check-list \ u224? appliquer \u224? chaque exigence. Une exigence bien formul\u233?e doit \u234? tre : \u8226? \u201?l\u233?mentaire (en anglais, atomic). Elle ne doit comporter qu'un \u233?l\u233?ment ins\u233?cable. Pour v\u233?rifier si une exigence est \ u233?l\u233?mentaire, essayez de la couper en deux ( en g\u233?n\u233?ral au niveau des conjonctions de coordination). \u8226? N\u233?cessaire. L'exigence doit servir au moins \u224? un profil utilisateur ou une partie prenante. Un moyen de v\u233? rifier cette r\u232?gle est de se poser la question : que se passera-t-il si cette exigence est supprim\u233?e ? \u8226? Mesurable, ou du moins v\u233?riflable. Dans le cas contraire, le ma\u238?tre d'ceuvre peut faire ce qu'il veut, c'est un v\ u339?u pieux. Les adjectifs et adverbes non mesurables (tels que rapide, performant, fiable, nombreux) rendent l'exigence non mesurable. Il en est de m\ u234?me pour les phrases \u224? la voix passive, l'emploi du < etc. \u187? et des points de suspension. \u8226? Concis. Plus la formulation est courte, plus l'exigence sera robuste. M\u233?thode : \u233?liminer syst\u233?matiquement tous les mots qui ne servent \u224? rien. \u8226? Tra\u231?able, vis-\u224?-vis d'exigences de plus haut niveau ou de plus bas niveau. Au-del\u224? d'un certain volume de sp\u233?cifications, l'utilisation d'outils sp\u233?cifiques est n\u233? cessaire pour que ce crit\u232?re soit respect\u233?. \u8226? R\u233?alisable et modifiable. Dans le cas contraire, c'est un v\u339?u pieux. C'est ici que la comp\ u233?tence technique de l'analyste peut \u234?tre utile. Il peut avertir son client de la difficult\u233? ou de l'impossibilit\u233? de mettre en \u339?uvre une exigence, et aider \u224? la n\u233?gociation. \u8226? Autosuffisante. Dans la mesure du possible, elle doit \u234?tre lue et comprise ind\u233?pendamment des autres. Dans une exigence, un pronom per- 09\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences sonnel comme \u171? il \u187? ou \u171? elle \u187? se rapporte g\u233?n\u233?ralement \u224? une exigence pr\u233?c\u233? dente. Il faut remplacer le pronom personnel par le sujet, quitte \u224? se r\u233? p\u233?ter (un cahier des charges n'est pas une \u339?uvre litt\u233?raire). \ u8226? Ind\u233?pendante de la solution. Rappelons qu'une exigence doit d\u233?aire un besoin ou une contrainte, et non une solution. De plus, certaines r\u232?gles r\ u233?gissent les relations entre exigences. Un ensemble d'exigences doit \u234? tre : - Complet L'ensemble doit d\u233?crire tous les cas possibles. Par exemple, si on d\u233?crit le comportement du syst\u232?me en cas d'acceptation, on doit aussi d\u233?crire son comportement en cas de refus. - Coh\u233?rent Une exigence ne doit pas entrer en conflit avec les autres. Une forme plus subtile d'incoh\u233? rence advient lorsqu'un ensemble d'exigences entre en contradiction avec un autre ensemble. - Non redondant Deux exigences ne doivent pas se recouvrir ou se r\u233? p\u233?ter, m\u234?me partiellement. U\u171?rigfedtt5C\u187? la i^^ simple qui permet de v\u233?rifier rapidement qu'une exigence est bien fbnnul\u233?e.Ce^ s'applique(\u233?ipl\u232?meiitw Toute exigence doit \u234?tre: \u171? Cone4te:elte respecte les ^ pratiqijes de b profession. '""\u9632?*' \u8226? \u199? ^fififijKiiift; r elle d^ti\u238?t rd\u226?ia\u251?i; d\u233?\u231?\u226?ft: r^k\ u163?|^ et fM!\u226?c^ si. n\u233?\u231?\u233?as\u226?ii\u232? les corrigions de faction. \u8226? Oafmidlenecofnp^ tirjJe ; tout lecteur la oDmpreiKi^ \u171? Cdrtdserelteesttbfmu^ \u8226? Coh\u233?rente l\u233?fen'ettae pas m^ La langue de bois : quand et comment l'\u233?liminer ? Qui n'a jamais us\u233? de la langue de bois ? Quant aux sous-entendus, il est impossible de s'en passer dans la vie courante, ne serait-ce que pour la bri\u232?vet\u233? du discours. Le flou est g\ u233?n\u233?ralement largement compens\u233? par la communication non verbale. Par ailleurs, le langage flou a sa place lors de l'\u233?tape de recueil. Nous laissons du flou dans nos questions pour permettre \u224? l'interlocuteur de s'exprimer. C'est d'ailleurs une technique d'interview souvent utilis\u233?e, consciemment ou non. Lors de la sp\u233?cification, la langue de bois, et de mani\u232?re g\u233?n\ u233?rale le langage flou, est \u224? proscrire. L'analyste l'\u233?liminera sans piti\u233?, soit en faisant ITO\par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de sp\u233?cification la correction lui-m\u234?me (\ u224? valider plus tard), soit en demandant des pr\u233?cisions compl\u233? mentaires. Le flou peut arriver : Pendant le recueil des besoins (interview) : c'est normal, la pr\u233?cision doit venir progressivement. Reformuler en douceur. Pendant l'analyse : c'est le moment de chercher \u224? l'\u233?liminer. Un bon sch\ u233?ma peut mettre au jour une incoh\u233?rence du discours. Lors des sp\u233? cifications (r\u233?daction du cahier des charges) : la t\u226?che sera plus difficile ; il faudra chercher \u224? pr\u233?ciser l'exigence, la corriger, et v\ u233?rifier la coh\u233?rence d'ensemble. Lors de la validation (revue de sp\u233? cifications) : c'est un indicateur de non-qualit\u233? lors des \u233?tapes pr\ u233?c\u233?dentes. Pr\u233?voir une charge de travail suppl\u233?mentaire, et chercher \u224? s'am\u233?liorer. Am\u233?liorer la formulation : exemples Voici quelques exigences mal formul\u233?es, suivies d'une explication et de la reformulation am\u233?lior\u233?e. Elles proviennent d'un cahier des charges, en cours d'\u233?laboration, pour un progiciel de gestion du circuit du m\u233? dicament dans un \u233?tablissement de sant\u233?. Exemple 1 : \u224? la fois trop et pas assez Voici comment une exigence \u233?tait initialement formul\u233?e dans un cahier des charges pour l'informatisation du circuit du m\u233?dicament d'un h\ u244?pital : Les stocks seront g\u233?r\u233?s au niveau du code produit, du produit et du num\u233?ro de lot. dans tous les lieux de stockage : la pharmacie et l'armoire \u224? pharmacie des unit\u233?s de soins. Un analyste exp\u233?riment\ u233? d\u233?tecte tout de suite qu'il ne s'agit pas d'une exigence. N'importe quel lecteur muni de la check-list de formulation correcte s'en apercevra \u233?galement en essayant de faire passer la phrase de la voix passive \u224? la voix active : on ne sait pas qui est l'acteur et que fait le syst\u232?me. D'autre part, le texte apporte une surabondance d'informations concernant les lieux de stockage. Ils doivent \u234?tre d\u233?crits, soit en intention : quel que soit le lieu de stockage, soit en extension : \u224? la pharmacie et dans les unit\u233?s de soins. L'exigence \u233?l\u233?mentaire devient alors : Le syst\u232?me doit permettre au pharmacien de suivre les stocks d'un m\u233?dicament donn\u233?, par son code produit et par son num\u233?ro de lot. Le syst\u232?me doit permettre le suivi de m\u233?dicaments en pharmacie. Le syst\u232?me doit permettre le suivi des m\u233? dicaments en unit\u233?s de soins. CD\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences On obtient donc, non pas une, mais trois exigences \u233?l\u233?mentaires. Cela peut sembler lourd, mais c'est beaucoup plus clair. Exemple 2 : am\u233?liorer la clart\u233? d'une exigence Voici une exigence extraite d'un cahier des charges pour un logiciel hospitalier : Le progiciel doit comporter un pr\u233?param\u233?trage de ces donn\u233?es (au niveau de l'h\u244? pital ou d'une sp\u233?cialit\u233?), pr\u233?param\u233?trage modifiable par le prescripteur. On comprend de quoi il s'agit, mais l'exigence peut \u234?tre grandement am\u233?lior\u233?e. L'expression \u171? comporter un param\u233? trage... \u187? ne pr\u233?cise pas l'acteur. L'expression \u171? au niveau de... \ u187? est ambigu\u235? : on ne sait pas qui. de l'h\u244?pital ou de la sp\u233? cialit\u233?, est l'acteur de ce param\u233?trage, ou le b\u233?n\u233?ficiaire, ou les deux. < Ces donn\u233?es \u187? fait allusion \u224? une exigence pr\u233?c\ u233?dente, sp\u233?cifiant les informations qu'un prescripteur peut saisir. L'exigence am\u233?lior\u233?e devient : Le progiciel doit permettre \u224? l'administrateur du progiciel de param\u233?trer, pour l'ensemble de l'h\u244? pital, les informations qu'un prescripteur peut saisir, et le caract\u232?re obligatoire de cette saisie. Le progiciel doit permettre \u224? l'administrateur du progiciel de param\u233?trer, pour chaque sp\u233?cialit\u233?, les informations qu'un prescripteur peut saisir, et le caract\u232?re obligatoire de cette saisie. Le progiciel doit permettre \u224? un prescripteur de param\u233?trer, pour toutes les prescriptions \u224? venir, les informations qu'il pourra saisir. Cette formulation en trois exigences \u233?l\u233?mentaires est \u233?videmment plus lourde, mais elle ne laisse plus aucune ambigu\u239?t\u233? quant aux actions autoris\u233?es pour chaque acteur. Exemple 3 : beaucoup de mots pour rien L'\u233? nonc\u233? de l'exigence est le suivant : Le progiciel doit pouvoir supporter les diff\u233?rentes organisations existantes dans l'\u233?tablissement au niveau des unit\u233?s de soin. Le verbe \u171? supporter \u187?. en l'occurrence un anglicisme, est ici ambigu. Gr\u226?ce au contexte, le lecteur pourra comprendre qu'il faut l'interpr\u233?ter dans le sens de \u171? r\u233?pondre aux besoins de \ u187?. L'expression < les diff\u233?rentes organisations... au niveau des unit\ u233?s de soins \u187? signifie ici les diff\u233?rents types d'organisation que l'on peut rencontrer dans un \u233?tablissement. L'exigence devient donc : \u338?D\ par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de sp\u233?cification Le progiciel doit r\u233?pondre aux besoins des diff\u233?rents modes d'organisation d'une unit\u233? de soin. La formulation est un peu plus claire, cependant. \u171? r\u233?pondre aux besoins \ u187? est impr\u233?cis : on ne sait pas \u224? quel besoin le progiciel doit r\ u233?pondre. Si le besoin est diff\u233?rent d'un mode d'organisation \u224? l'autre, il faudra r\u233?diger une exigence pour chacun d'eux. Sinon, l'exigence devient : Le progiciel doit \u234?tre utilisable dans toute unit\u233? de soins de l'\u233?tablissement, quel que soit son mode d'organisation. On s'aper\u231?oit maintenant que l'impr\u233?cision vient du mode d'organisation. Il faudrait donc lister et expliciter les diff\u233?rents modes d'organisation de l'\u233? tablissement, soit en intention (r\u233?f\u233?rence \u224? une description de tous les modes d'organisation) soit en extension (faire la liste des modes d'organisation). Or. ce qui est plus simple et plus efficace, c'est de d\u233?crire les diff\u233?rents modes organisationnels dans un chapitre pr\u233?liminaire, d\ u233?crivant le contexte. L'exigence devient alors : Le progiciel doit \u234?tre utilisable dans toute unit\u233? de soins. Mais c'est l\u224? une tautologie. Cette exigence peut donc \u234?tre purement et simplement supprim\u233?e... \u224? moins d'en d\u233?duire une exigence non fonctionnelle d'utilisabilit\u233? : le progiciel doit \u234?tre adaptable (ou d\u233?j\u224? adapt\u233? ?) aux diff\u233? rents modes d'organisation de l'\u233?tablissement. La structuration Structuration : adopter et adapter les mod\u232?les Il existe plusieurs mod\u232? les de cahiers des charges1, comme X50-I5I, ~~~~. ~~~~~ l%t .. , ^ ,N1 ^ ., ., 1. Voir au chapitre IEEE 830, ou le mod\u232?le Volere. Ces mod\u232?les sont extr\ u234?mement utiles : ils ^mm les diff\u233?rents servent de check-lists et \u233? vitent d'oublier certains points indispensables, mod\u232?les de cahiers Ils ont une structure coh\u233?rente, descendante (lop-down) et compl\u232?te desdiarges. (toutes les cat\u233?gories d'exigences et autres rubriques sont repr\u233?sent\ u233?es). Ils constituent donc un bon d\u233?part pour la sp\u233?cification des exigences, et m\u234?me plus que la sp\u233?cification : ils servent de check-lists pour le recueil. Une organisation pourrait choisir un de ces mod\u232?les et l'adapter \u224? sa situation particuli\u232?re. Par exemple, une entreprise soumise au code des march\u233?s publics peut y ajouter un chapitre sur les aspects juridiques. Si ce nouveau mod\u232?le ne correspond pas \u224? toutes les situations d'une organisation, il pourra \u234?tre raffin\u233? au niveau d'une direction ou d'un service, et ainsi de suite. ira\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Rappelons que le mod\u232?le de d\u233? veloppement et de gestion des exigences, tel que d\u233?crit dans cet ouvrage, peut (et souvent doit) \u234?tre adapt\u233? au cas particulier de chaque entreprise. Il n'y a pas de mod\u232?le parfait. R\u233?utiliser autant que possible Une exigence bien formul\u233?e co\u251?te cher \u224? obtenir. Elle doit passer par le cycle complet de recueil, analyse, sp\u233?cification et validation. \u192? long terme, il est donc beaucoup plus efficace de r\u233?diger des exigences r\u233?utilisables d'un projet \u224? l'autre que de les r\u233?inventer et de les reformuler. C'est en particulier le cas des exigences non fonctionnelles, telle la s\u233?curit\ u233?. Rendre les exigences r\u233?utilisables ou. mieux encore, \u233?laborer du premier coup des exigences r\u233?utilisables, exige un bon niveau d'organisation. Il faut retrouver des exigences existantes, les adapter, et \u233?ventuellement les r\u233?injecter dans un \u171? pot commun \u187? et. ce qui est plus difficile, conserver la coh\u233?rence d'ensemble. Au-del\u224? d'une certaine complexit\ u233?, les outils de gestion des exigences deviennent quasiment indispensables. En pratique, cela n\u233?cessite : \u8226? d'avoir une base d'exigences, bien tenue, c'est-\u224?-dire contenant des exigences correctes (coh\u233?rentes, non ambigu\ u235?s, etc.) ; \u8226? d'avoir le moyen de les retrouver rapidement en fonction d'un certain nombre de crit\u232?res ; \u8226? une fois l'exigence r\u233?utilis\ u233?e, c'est-\u224?-dire utilis\u233?e dans plus d'une sp\u233?cification, d'avoir les moyens de suivre son \u233?volution et de r\u233?percuter les modifications sur plusieurs occurrences ; \u8226? de pouvoir g\u233?rer la tra\u231?abilit\u233? sur chaque occurrence. Choisir la forme de description Les exigences peuvent \u234?tre d\u233?crites sous plusieurs formes : cas d'utilisation, mod\u232?les graphiques (traitements, donn\u233?es, flux, processus...) et exigences \u233?l\u233? mentaires. Le choix de la forme (textuelle ou graphique), du niveau de d\u233?tail (la < granularit\u233? \u187? d'une exigence) en fonction des acteurs et du domaine d'application est un art plut\u244?t qu'une science. Il n'y a pas de dogme en ce qui concerne les modes de repr\u233?sentation. Par exemple, pour certains auteurs (comme Alistair Cockburn). les cas d'utilisation se suffisent \u224? eux-m\u234?mes dans 90 % des cas. Pour d'autres, ils ne sont qu'un moyen de d\u233?couvrir les exigences fonctionnelles et n'ont pas \u224? appara\u238?tre dans un cahier des charges. Pour d'autres enfin, cas d'utilisation et exigences fonctionnelles peuvent coexister au sein d'un m\u234?me document. (HD\par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de sp\u233?cification En tout \u233?tat de cause, le type incontournable d'exigence est l'exigence \u233?l\u233?mentaire. Sp\u233?cifier les exigences \u233?l\u233?mentaires Les exigences \u233?l\u233?mentaires constituent le c\u339?ur de la plupart des cahiers des charges. Par exigence \u233? l\u233?mentaire (en anglais, atomk requirement) on entend toute exigence formul\ u233?e en langue naturelle sous forme de phrase qui se suffit \u224? elle-m\u234? me. Il peut s'agir l\u224? d'une exigence fonctionnelle ou non fonctionnelle, ou d'une contrainte produit ou projet. Par exemple : \u8226? Le syst\u232?me pr\u233? sentera la liste des couleurs disponibles. \u8226? Le temps maximum d'indisponibilit\u233? du syst\u232?me sera de 20 minutes par jour. \u8226? Le syst\u232?me sera accessible au moyen d'un navigateur HTML 4.0. Une exigence \u233? l\u233?mentaire peut d\u233?couler directement d'un objectif, d'une r\u232?gle de gestion, d'un cas d'utilisation, ou de toute exigence de plus haut niveau. Les exigences \u233?l\u233?mentaires sont regroup\u233?es sous forme arborescente. Cas des exigences non Fonctionnelles Les exigences non fonctionnelles sont particuli\ u232?rement difficiles \u224? formuler. En fait, chaque caract\u233?ristique non fonctionnelle (fiabilit\u233?, maintenabilit\u233?. .. ) pr\u233?sente des difficult\u233?s de description particuli\u232?res. En toute rigueur, il est n\ u233?cessaire de sp\u233?cifier (par exemple, ici, pour la fiabilit\u233?) : \ u8226? la d\u233?finition de la mesure (par exemple, la d\u233?finition du temps d'indisponibilit\u233? ou du temps de r\u233?ponse) ; \u8226? l'unit\u233? de mesure (par exemple, minutes) ; \u8226? la valeur minimale ou maximale (par exemple : 20 minutes d'interruption maximum) ; \u8226? la m\u233?thode de mesure (par exemple, chronom\u232?tre) ; \u8226? la valeur optimale; \u8226? la valeur nominale et la tol\u233?rance : \u8226? les valeurs admises par exception (par exemple, le dimanche, une interruption de 30 minutes est autoris\u233?e). Certains auteurs pr\ u233?conisent des mod\u232?les de structuration des exigences. Tom Gilb2 propose un langage sp\u233?cial de sp\u233?cification des exigences 2. Tom Cilb, Compe\u187? non fonctionnelles, appel\u233? planguage \'5c'7bplanning language) qui permet de les 0\u219?^ Engineering, d\u233?crire avec pr\u233?cision. Elle peut cependant \ u234?tre vue comme trop com- Butterworth-Heine- plexe et trop formelle pour la plupart des projets. Rien n'emp\u234?che de la "lann, 2005. simplifier, ou d'utiliser une description moins formelle.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Dans de nombreux cas. on peut se contenter d'une description beaucoup moins formelle, comme : L'application doit pouvoir fonctionner 24 heures sur 24 et 7 jours sur 7 avec un taux d'indisponibilit\u233? maximal de : - 15 minutes par jour dans la p\u233?riode comprise entre 7 heures et 23 heures ; - 30 minutes par jour dans la p\u233?riode comprise entre 23 heures et 7 heures : - 3 heures par an pour maintenance. Rien n'emp\u234?che, d'ailleurs, de s'inspirer de la norme ISO 25000 (plus pr\u233?cis\ u233?ment, les normes ISO/CEI 25020 \u224? 25024, qui reprend les \u233?l\u233? ments de la norme ISO/CEI 9126-4). Cette norme donne une d\u233?finition tr\u232?s pr\u233?cise d'un grand nombre d'indicateurs de qualit\u233? et de leurs m\u233? triques. Voici un exemple : \u8226? Nom : temps moyen d'indisponibilit\u233?. \ u8226? But : temps moyen pendant lequel le syst\u232?me demeure indisponible entre une d\u233?faillance et la remise en ordre de marche graduelle. \u8226? Formule de mesure : X = T/N. o\u249? T est le temps total d'indisponibilit\u233? et N le nombre de d\u233?faillances observ\u233?es. \u8226? Interpr\u233?tation de la valeur mesur\u233?e : 0 < X ; la plus petite valeur mesur\u233?e est la meilleure. \u8226? Type d'\u233?chelle : ratio (rapport de valeurs). \u8226? Type de mesure.- T = temps. N = nombre, X = temps/nombre. \u8226? Origine de la mesure : rapport de test, rapport d'intervention. \u8226? R\u233?f\u233?rence \u224? une description de processus (ISO/1EC 12207) : 5.3 int\u233?gration, 5.3 tests de qualification, 5.4 op\u233?ration. 6.5 validation. La norme d\u233?crit ainsi des centaines de m\u233?triques sur presque cent pages, pour chacune des vingt-sept sous-caract\u233?ristiques ISO 25000. Elle pourra servir de check-list pour v\u233? rifier que toutes les exigences non fonctionnelles ont \u233?t\u233? int\u233?gr\ u233?es. Elle apportera \u233?galement des id\u233?es sur la mani\u232?re de formuler une exigence et d'en fixer les crit\u232?res de satisfaction. Check-list de sp\u233?cification dune exigence La check-list qui suit concerne chaque exigence individuellement. \u8226? L'exigence est align\u233?e sur un objectif \u233?nonc\ u233?, une exigence de plus haut niveau, ou un besoin d'un type d'utilisateur. \ u8226? L'exigence d\u233?crit un besoin ou une contrainte, et non un \u233?l\u233? ment de solution. cm\par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de sp\u233?cification \u8226? L'exigence doit satisfaire au moins un besoin d'au moins un type d'utilisateur. \u8226? L'exigence est sp\ u233?cifi\u233?e au niveau ad\u233?quat, ni trop d\u233?taill\u233?, ni trop g\ u233?n\u233?ral, pour \u234?tre comprise par toutes les parties prenantes. \u8226? L'exigence \u233?mane d'une source reconnue et l\u233?gitime, partie prenante ou texte de r\u233?f\u233?rence. \u8226? L'exigence est sp\u233?cifi\u233?e avec le formalisme (textuel, graphique) ad\u233?quat pour \u234?tre comprise par tous les lecteurs. \u8226? Si l'exigence est sp\u233?cifi\u233?e textuellement, elle l'est sous forme active : sujet (acteur) verbe (action) compl\u233?ment (pr\u233? cisions). \u8226? Les termes ambigus sont d\u233?finis dans le glossaire. \u8226? L'exigence est tra\u231?able. Il est possible, \u224? partir d'une exigence donn\ u233?e, de remonter \u224? une exigence de plus haut niveau ou de plus bas niveau. \u8226? L'exigence est compl\u232?te. Elle repr\u233?sente une fonction \ u233?l\u233?mentaire. \u8226? L'exigence \u233?l\u233?mentaire est \u171? atomique \u187? : elle repr\u233?sente une seule fonction \u233?l\u233?mentaire ins\u233?cable. \u8226? L'exigence est grammaticalement correcte. \u8226? L'exigence est formul\u233?e selon le mod\u232?le en vigueur. \u8226? L'exigence n'entre pas en conflit avec une exigence de plus haut niveau. \u8226? L'exigence est utile. Elle a \u233?t\u233? valid\u233?e par au moins un repr\u233?sentant des utilisateurs. \u8226? L'exigence est r\u233?alisable. Elle a \u233?t\u233? valid\ u233?e par un expert technique, concepteur ou d\u233?veloppeur. \u8226? L'exigence est non ambigu\u235?. Elle a une seule interpr\u233?tation possible, quel que soit le lecteur. \u8226? L'exigence est concise. Elle est \u233?crite de la mani\u232?re la plus simple possible, avec le moins de mots possibles. \u8226? L'exigence est v\ u233?riflable. Une fois le produit d\u233?velopp\u233?, il sera possible de v\u233? rifier objectivement et sans \u233?quivoque qu'elle est satisfaite. Check-list d'\ u233?tape de sp\u233?cification Cette check-list est relative aux diff\u233?rentes activit\u233?s de sp\u233?cification.- elle liste les conditions \u224? remplir avant de passer \u224? la prochaine \u233?tape (validation). Pour la formulation des exigences elles-m\u234?mes, voir la check-list pr\u233?c\u233?dente, ainsi que la check-list relative au cahier des charges. \u8226? Le mod\u232?le de cahier des charges a \u233?t\u233? accept\u233? par tous les acteurs. \u8226? Le mod\u232?le de cahier des charges a \u233?t\u233? adapt\u233? \u224? l'organisation. cs>\par\ pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences \u8226? Le mod\u232?le de cahier des charges a \u233?t\u233? adapt\u233? au projet. Les mod\u232?les graphiques utilis\ u233?s sont compr\u233?hensibles par tous. \u8226? Chaque rubrique du mod\u232?le de cahier des charges a \u233?t\u233? remplie, ou laiss\u233?e vide avec justification. \u8226? La formulation de chaque exigence a \u233?t\u233? v\u233? rifi\u233?e \u224? l'aide de la check-list ad\u233?quate. \u8226? Telles que formul\u233?es, les exigences seront utiles \u224? la r\u233?alisation. <E>\par\ pard\plain\hyphpar} { Chapitre 14 Structure du cahier des charges Choisir, adapter et utiliser un mod\ u232?le de cahier des charges est une des cl\u233?s de l'efficacit\u233? de son \ u233?laboration et de la qualit\u233? du livrable. En effet, un mod\u232?le est \ u224? la fois un guide pour agir, une check-list pour valider et un support pour communiquer sur les exigences. On trouve dans la litt\u233?rature et sur le Web des mod\u232?les de cahier des charges pr\u234?ts \u224? utiliser, que l'on peut \u233? ventuellement adapter. Visite comment\u233?e. Le mod\u232?le de cahier des charges Les \u233?l\u233?ments du contenu Un bon mod\u232?le de cahier des charges contient toutes les rubriques qui seront n\u233?cessaires \u224? la description et \u224? la compr\u233?hension des exigences, et rien de plus. On peut adapter le mod\u232?le aux contraintes particuli\u232?res du domaine d'application et des technologies mises en \u339?uvre. Cette op\u233?ration n'est pas triviale. Malgr\u233? leur apparente simplicit\u233?, les mod\u232?les de cahiers des charges pr\u233?sent\ u233?s dans ce chapitre r\u233?sultent d'une longue r\u233?flexion, d'un travail collaboratif entre experts, et d'une exp\u233?rimentation sur le terrain, parfois sur des centaines de projets. L'arborescence des paragraphes La plupart des mod\ u232?les de cahiers des charges (normes ou standards) comportent cinq \u224? dix parties, d\u233?coup\u233?es en dix \u224? trente paragraphes.\par\pard\plain\ hyphpar} { Partie 2 - D\u233?veloppement des exigences 1. IEEE Std 830- 1998. IEEE Re\u339? mmended Practice for Software Requirements Sp\u233?cifications, Software Engineering Standards Committee, of die IEEE Computer Society. L'ordre d'apparition des paragraphes est important. Il doit correspondre id\u233?alement \u224? l'ordre de lecture, et aussi, dans la mesure du possible, \u224? la s\u233?quence des \ u233?tapes du processus d'\u233?laboration du cahier des charges. Les diff\u233? rents mod\u232?les existants Nous pr\u233?sentons dans les paragraphes qui suivent diff\u233?rents mod\u232?les de cahiers des charges, et leurs domaines d'application possibles. Pour chacun d'eux, nous exposons sa structure, son contenu, ses avantages et inconv\u233?nients. La plupart sont t\u233?l\u233? chargeables, souvent gratuitement ou moyennant une somme modeste. Il est important d'investir du temps \u224? bien choisir, bien comprendre et si n\u233?cessaire adapter un mod\u232?le. Cet investissement correspond \u224? une fraction minime de l'effort qui sera par la suite consacr\u233? \u224? l'\u233?laboration du cahier des charges. Le mod\u232?le IEEE 830 Orientation La norme de sp\u233?cification des exigences IEEE 830 ( 1998)' donne un mod\u232?le g\u233?n\u233?raliste, plut\u244?t orient\u233? vers le d\u233?veloppement sp\u233?cifique et assez technique. Le mod\ u232?le ne fournit pas une structure fig\u233?e de cahier des charges, mais propose un ensemble de recommandations (emploi du verbe should) sur la mani\u232?re de structurer le cahier des charges, et les diff\u233?rentes parties dont il doit se composer. Il fournit un squelette de cahier des charges. Enfin, une annexe informative donne huit mani\u232?res de structurer les exigences, en particulier fonctionnelles. Structure du mod\u232?le Le tableau 14-1 donne les \u233?l\u233? ments du document avec leur traduction en fran\u231?ais. (H3\par\pard\plain\ hyphpar} { Chapitre 14 - Structure du cahier des charges Tabfeau 14-1 - Mod\u232?le IEEE 830 1. Introduction 1.1 Purpose 1.2 Scope 1.3 D\u233?finitions, acronyms, and abbreviations 1.4 R\u233?f\u233?rences 1.5 Overview 2. Overall description 2.1 Product perspective 2.2 Product fonctions 2.3 User characteristics 2.4 Constraints 2.5 Assumptions and dependencies 3. Sp\u233?cifie requirements Appendixes Index 1. Introduction 1.1 Objectif 1.2 P\u233?rim\u232?tre (port\u233?e) 1.3 D\u233? finitions, acronymes, et abr\u233?viations 1.4 R\u233?f\u233?rences 1.5 Vue d'ensemble 2. Description g\u233?n\u233?rale 2.1 Perspective du produit 2.2 Fonctions du produit 2.3 Caract\u233?ristiques utilisateurs 2.4 Contraintes 2.5 Suppositions et d\u233?pendances 3. Exigences sp\u233?cifiques Annexes Index Contenu du document Le mod\u232?le IEEE est un grand classique et contient tous les \u233?l\u233?ments que l'on s'attend \u224? trouver dans un cahier des charges, du moins sur le plan technique. La norme pr\u233?cise que les exigences concernant la solution peuvent exceptionnellement y figurer, sous forme restrictive (contraintes). La norme pr\u233?cise que les exigences fonctionnelles (paragraphe 2.2) peuvent contenir des diagrammes, ainsi que le paragraphe de perspective (2.1 ) dans le cas o\u249? le produit serait connect\u233? \u224? d'autres (ce qui. de nos jours, est presque toujours le cas). Un diagramme de contexte y trouverait sa place. Le paragraphe 3 (exigences sp\u233?cifiques) constitue le corps du document. La partie fonctionnelle doit contenir toutes les entr\u233?es et sorties du syst\ u232?me (stimulus et r\u233?ponses), et la description des fonctions en r\u233? ponse \u224? une entr\u233?e ou sortie. Les exigences non fonctionnelles (attributs) sont organis\u233?es en fiabilit\u233?, disponibilit\u233?, s\u233? curit\u233?, maintenabilit\u233?, et portabilit\u233?. La norme donne de nombreuses explications sur les diff\u233?rentes mani\u232?res de structurer les exigences fonctionnelles : par mode, par classes ou o\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences entit\u233?s, par caract\u233?ristiques utilisateur, par stimulus et r\u233?ponse, par hi\u233?rarchie fonctionnelle, ou par une combinatoire de ces types de structuration. Avantages et inconv\u233?nients de la norme Le mod\u232?le a une forte orientation < arborescence fonctionnelle \ u187?, les autres \u233?l\u233?ments (mod\u232?le de donn\u233?es, exigences non fonctionnelles) \u233?tant trait\u233?s rapidement, voire pass\u233?s sous silence. L'ensemble est donc assez technique, avec une coloration \u171? g\u233?nie logiciel \u187?. Il fait d'ailleurs explicitement r\u233?f\u233?rence \u224? la norme IEEE 12207 (cycle de vie du logiciel) avec laquelle il est compatible. Le point fort de la norme est plut\u244?t dans son annexe informative sur les diff\u233?rentes mani\ u232?res de structurer la d\u233?composition des fonctions, qui donne des pistes de r\u233?flexion. Dans le cas d'un syst\u232?me de grande taille fonctionnelle (nombre important de fonctions \u233?l\u233?mentaires) le probl\u232?me est loin d'\u234?tre trivial, et les autres normes, plus r\u233?centes, le passent sous silence. Le mod\u232?le AFNOR X50-151 Orientation de la norme La norme AFNOR X50- I5I donne un mod\u232?le de cahier des charges tr\u232?s g\u233?n\u233?raliste, qui n'est pas sp\u233?cifique \u224? l'informatique et aux syst\u232?mes d'information. Il fait partie d'une s\u233?rie normative sur l'analyse de la valeur et l'analyse fonctionnelle. Il donne donc une place importante \u224? l'ouverture sur le dialogue entre client et fournisseur. Structure du mod\u232?le Le tableau 14-2 donne le plan d'un cahier des charges selon la norme AFNOR X50-15I. (HD\par\pard\ plain\hyphpar} { Chapitre 14 - Structure du cahier des charges Tabfeau 14-2 - Mod\u232?to AFNOR X50- 151 1. Pr\u233?sentation du probl\u232?me 1.1 Le produit et son march\u233? 1.2. Contexte du projet, les objectifs 2. \u201?nonc\u233? fonctionnel du besoin 2.1. Cyde d'utilisation du produit et identification de son environnement 2.2 \u201? nonc\u233? des fonctions de service et des contraintes Fonctions de service attendues Contraintes Classement ou notation des fonctions 2.3. Caract\u233? risation des fonctions de service et des contraintes Crit\u232?res d'appr\u233? ciation Niveaux des crit\u232?res d'appr\u233?ciation Flexibilit\u233? des niveaux : classe de flexibilit\u233?, limites d'acceptation Taux d'\u233?change 3. Appel \u224? variantes 4. Cadre de r\u233?ponse Contenu du document de sp\u233? cifications Les notions de niveau, de flexibilit\u233? et de taux d'\u233?change sont des concepts d'analyse de la valeur. Le principe est que pour permettre au fournisseur d'optimiser sa solution (apporter le maximum de satisfaction au co\ u251?t le plus faible), il est n\u233?cessaire d'indiquer la priorit\u233? entre exigences, car les exigences formul\u233?es par le client dans le cahier des charges n'ont pas toutes la m\u234?me importance ou la m\u234?me urgence. \u8226? La classe de flexibilit\u233? (niveau de flexibilit\u233? de chaque exigence : nulle, faible, bonne, forte), indique dans quelle limite une contrainte est n\u233? gociable. \u8226? La limite d'acceptation d\u233?finit, pour chacune des caract\ u233?ristiques fondamentales du produit, une valeur minimale de la mesure du crit\ u232?re d'appr\u233?ciation. En de\u231?\u224? de cette valeur, le besoin sera d\ u233?clar\u233? insatisfait. \u8226? Le taux d'\u233?change indique les compensations fix\u233?es a priori au cas o\u249? certains crit\u232?res d'acceptation, jug\u233?s essentiels par le demandeur, ne seraient pas satisfaits (par exemple, les p\u233?nalit\u233?s de retard, dans le cas o\u249? le fournisseur ne respecterait pas ses d\u233?lais de livraison). fna\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Enfin, l'appel \u224? des variantes permet de stimuler la cr\u233?ativit\u233? du fournisseur. Le client peut solliciter des propositions d'am\u233?lioration qui. dans le cas d'un logiciel, seront fonctionnelles (cr\u233?ation, modification ou suppression de fonctions) ou non fonctionnelles (performances, ergonomie). Les variantes peuvent \u234?tre soit des suppl\u233?ments, soit des alternatives au sc\u233?nario pr\u233?conis\u233?. Enfin, la norme pr\u233?voit explicitement un cadre de r\u233?ponse, utile dans le cadre des march\u233?s publics. Avantages et inconv\u233?nients Avec les notions de niveau, de flexibilit\u233?, de limite d'acceptation et de taux d'\u233?change, la norme X50-I51 nous donne des pistes de r\u233?flexion int\u233?ressantes. Ces concepts sont assez difficiles \u224? utiliser en pratique dans le contexte des syst\u232?mes d'information, mais on peut s'en inspirer pour construire un mod\ u232?le adapt\u233?. Le mod\u232?le n'est pas adapt\u233? aux sp\u233?cificit\u233? s du logiciel et des syst\u232?mes d'information. La structure est incompl\u232?te et le vocabulaire utilis\u233? n'est pas celui du g\u233?nie logiciel. Si on d\ u233?cide de l'utiliser, il faudra n\u233?cessairement le compl\u233?ter avec des \ u233?l\u233?ments d'autres mod\u232?les de cahiers des charges. 2. Le mod\u232?le peut \u234?tre t\u233?l\u233?dtarg\u233? sur le site de Karl Wiegers http//www.pro- \u339?ssimpactcon/ goodies.shtml. Le mod\u232?le de Wiegers Orientation Le mod\ u232?le pr\u233?conis\u233? par Karl Wiegers est g\u233?n\u233?raliste, simple et pragmatique, orient\u233? vers le d\u233?coupage fonctionnel. Il n'est pas tr\u232? s d\u233?taill\u233?. Il pourra \u234?tre utilis\u233? pour sp\u233?cifier des exigences pour un d\u233?veloppement sp\u233?cifique, mais \u233?galement pour un progiciel. Structure du mod\u232?le Remarquons un certain nombre de particularit\ u233?s concernant ce mod\u232?le2 de document : \u8226? Les interfaces avec le mat\ u233?riel, le logiciel et l'utilisateur sont regroup\u233?es dans un m\u234?me chapitre. La sp\u233?cification est centr\u233?e sur le produit, qui interagit avec des acteurs externes. \u8226? Les mod\u232?les d'analyse (diagrammes de flux, de classes, etc.) sont mis en annexe. Les diagrammes ne sont pas un but mais un moyen d'arriver aux sp\u233?cifications sous forme textuelle. (E)\par\pard\plain\hyphpar} { Chapitre 14 - TaMaaa 14*3 - La modela propos\u233? par Karl TaMaaa 143 - La modela propos\u233? par Karl Wiagars 1. Introduction 1.1 Purpose 1.2 Document Conventions 1.3 Intended Audience and Reading Suggestions 1.4 Project Scope 1.5 R\u233?f\u233? rences 2. Overall Description 2.1 Product Perspective 2.2 Product Features 2.3 User Gasses and Characteristics 2.4 Operating Environment 2.5 Design and Implementation Constraints 2.6 User Documentation 2.7 Assumptions and Dependencies 3. System Features 3.1 System Feature 1 3.2 System Feature 2 (and so on) 4. External Interface Requirements 4.1 User Interfaces 4.2 Hardware Interfaces 4.3 Software Interfaces 4.4 Communications Interfaces 5. Other Nonfunctional Requirements 5.1 Performance Requirements 5.2 Safety Requirements 5.3 Security Requirements 5.4 Software Quality Attributes 6. Other Requirements Appendix A : Glossary Appendix B : Anarysis models Appendix C : Issues lists Structure du cahier des charges 1. Introduction 1.1 Objectif 1.2 Conventions documentaires 1.3 \u192? qui s'adresse ce document ; guide de lecture 1.4 P\u233?rim\u232?tre du projet 1.5 R\u233?f\u233? rences 2. Description g\u233?n\u233?rale 2.1 Perspective du produit 2.2 Caract\ u233?ristiques du produit 2.3 Profit utilisateurs et caract\u233?ristiques 2.4 Environnement d'op\u233?ration 2.5 Contraintes de conception et de r\u233?alisation 2.6 Documentation utilisateur 2.7 Hypoth\u232?ses et d\u233?pendances 3. Caract\ u233?ristiques du syst\u232?me 3.1 Caract\u233?ristique 1 3.2 Caract\u233?ristique 2 (etc) 4. Exigences d'interface externe 4.1 Interfaces utilisateur 4.2 Interfaces avec le mat\u233?riel 4.3 Interfaces avec le logiciel 4.4 Interfaces de communication 5. Autres exigences non fonctionnelles 5.1 Exigences de performance 5.2 Exigences de s\u233?curit\u233? (innocuit\u233?) 5.3 Exigences de s\u233?curit\ u233? 5.4 Attributs de qualit\u233? du logiciel 6. Autres exigences Annexe A : Glossaire Annexe B : Mod\u232?les d'analyse Annexe C : Liste de probl\u232?mes fm\ par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Contenu du document de sp\u233? cifications Dans ses ouvrages. Wiegers insiste sur la n\u233?cessit\u233? de d\ u233?crire pr\u233?cis\u233?ment la vision et la port\u233?e du projet (vision and scope) dans un document particulier, lors de la phase de pr\u233?paration. S'il ne d\u233?taille pas ce point dans son mod\u232?le de document, c'est par ce qu'il pr\ u233?conise de se r\u233?f\u233?rer au document en question, ou de le recopier. Chaque rubrique (chapitres et paragraphes) est comment\u233?e en quelques lignes. Ces diff\u233?rents points sont repris avec plus de d\u233?tails dans l'ouvrage Software Requiremenls. une lecture utile \u224? tout analyste des exigences. Avantages et inconv\u233?nients De par sa simplicit\u233?, ce mod\u232?le pourra \ u234?tre utilis\u233? par tout analyste ou consultant charg\u233? d'\u233?laborer un cahier des charges, m\u234?me d\u233?butant. Ce dernier pourra enrichir le mod\ u232?le pour traiter des cas plus complexes. Sans n\u233?gliger l'essentiel, le mod\u232?le est un peu pauvre en ce qui concerne les exigences non fonctionnelles. On pourra enrichir le paragraphe sur les attributs de qualit\u233?, par exemple en reprenant des \u233?l\u233?ments de la norme ISO 25000 d\u233?j\u224? d\u233?crite. Le mod\u232?le Volere (Robertson & Robertson) Orientation Utilis\u233? sur de tr\ u232?s nombreux projets informatiques (plus de deux mille, d'apr\u232?s leurs auteurs), le mod\u232?le Volere3 est fortement orient\u233? vers le d\u233? veloppement de logiciels sp\u233?cifiques. C'est n\u233?anmoins un mod\u232?le suffisamment complet pour \u234?tre utilis\u233? sur quasiment tout type de projet (choix de progiciel et mise en \u339?uvre, d\u233?veloppement sp\u233?cifique) quel que soit le domaine d'application. Structure du mod\u232?le Le mod\u232?le est structur\u233? de mani\u232?re \u171? descendante \u187?, les paragraphes correspondent \u224? l'ordre de lecture et, dans une tr\u232?s large mesure, \u224? l'ordre d'\u233?laboration du cahier des charges, depuis la d\u233?finition des objectifs jusqu'aux d\u233?tails les plus fins. Le tableau 14-4 donne la structure du mod\u232?le et sa traduction en fran\u231?ais. 3. Le mod\u232?le volere est t\ u233?l\u233?chargeable sur www.volere.co.uk. ira\par\pard\plain\hyphpar} { Chapitre 14 Tabfeau 14-4 - U raod\u224?U Votera PROJECT DRIVERS 1. The Purpose of the Project 2. Qient, Customer and other Stakeholders 3. Users of the Product PROJEaCONSTRAINTS 4. Mandated Constraints 5. Naming Conventions and D\u233? finitions 6. Relevant Facts and Assumptions RJNaiONAL REQUIREMENTS 7. The Scope of the Work 8. The Scope of the Product 9. Functional and Data Requirements NON- FUNCTIONAL REQUIREMENTS 10. Look and Feel Requirements 11. Usability and Humanity Requirements 12. Performance Requirements 13. Operational Requirements 14. Maintainability & Support Requirements 15. Security Requirements 16. Cultural and Political Requirements 17. L\u233?gal Requirements PROJECT ISSUES 18. Open Issues 19. \u219?ff-the-Shelf Solutions 20. New Problems 21.Tasks 22. Cutover 23. Risks 24. Costs 25. User Documentation and Training 26. Waiting Room 27. Ideas for Solutions Structure du cahier des charges MOTIVATIONS DU PROJET 1. Objet du projet 2. Clients et autres parties prenantes 3. Les utilisateurs du produit CONTRAINTES DU PROJET 4. Contraintes obligatoires 5. Conventions de noms et d\u233?finitions 6. Faits et hypoth\u232?ses d\u233?terminants EXIGENCES FONCTIONNELLES 7. P\u233?rim\ u232?tre de l'\u339?uvre 8. P\u233?rim\u232?tre de l'ouvrage 9. Exigences sur les fonctions et donn\u233?es EXIGENCES NON FONCTIONNELLES 10. Exigences d'interface utilisateur 11. Exigences d'utiiisabilit\u233? 12. Exigences de performance 13. Exigences op\u233?rationnelles 14. Exigences de maintenabilit\u233? et support 15. Exigences de s\u233?curit\u233? 16. Exigences culturelles et politiques 17. Exigences l\u233?gales QUESTIONS SUR LE PROJET 18. Questions ouvertes 19. Solutions sur \u233?tag\u232?re 20. Probl\u232?mes nouveaux 21. T\u226?ches 22. Finalisation 23. Risques 24. Co\u251?ts 25. Documentation utilisateur et formation 26. Questions mises en attente 27. Id\u233?es de solutions ITIEI\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Le mod\u232?le Volere est r\u233?guli\ u232?rement revu et am\u233?lior\u233? par ses auteurs, avec la contribution des analystes qui l'utilisent sur les projets. La derni\u232?re version est t\u233?l\ u233?chargeable sur le site de Volere. Le t\u233?l\u233?chargement du document en version anglaise est payant, et son utilisation sur un ou plusieurs projets est soumise au paiement d'une redevance. On trouve sur le site plusieurs traductions, dont une traduction partielle en fran\u231?ais (t\u233?l\u233?chargement gratuit). Contenu du document de sp\u233?cifications Le mod\u232?le de cahier des charges de Volere contient tous les \u233?l\u233?ments indispensables \u224? la sp\u233? cification des exigences pour un logiciel, qu'il s'agisse d'une application sp\ u233?cifique ou du choix d'un progiciel. Dans le mod\u232?le fourni sur le site, chaque \u233?l\u233?ment de la structure est abondamment comment\u233? et justifi\ u233?. Notons que les contraintes, au sens large du terme, pr\u233?c\u232?dent les exigences fonctionnelles. C'est une mani\u232?re de baliser le terrain et de rappeler que les exigences fonctionnelles sont limit\u233?es par des contraintes inamovibles. Autre particularit\u233? : les exigences non fonctionnelles, ailleurs trait\u233?es comme le parent pauvre, occupent huit grands paragraphes. Avantages et inconv\u233?nients Test\u233? sur plus de deux mille projets, r\u233?guli\u232? rement mis \u224? jour, le mod\u232?le est d'une solidit\u233? \u224? toute \u233? preuve... ou presque. Son principal d\u233?faut (qui n'en est pas un. bien s\u251? r) est d'\u234?tre trop riche pour la plupart des projets. Pour l'adapter, il suffit la plupart du temps de tailler cette arborescence un peu trop touffue. De par sa complexit\u233? et sa compl\u233?tude, les diff\u233?rentes rubriques sont parfois difficiles \u224? interpr\u233?ter. L'utilit\u233? de certains paragraphes ne saute pas imm\u233?diatement aux yeux. Plut\u244?t que de les supprimer, nous recommandons de les laisser \u171? sans objet \u187?. du moins en phase d'exp\u233? rimentation, car ils pourraient se r\u233?v\u233?ler tr\u232?s utiles par la suite. Les aspects juridiques sont volontairement exclus par ses auteurs, et devront \ u234?tre rajout\u233?s pour faire du document un CCTP (cahier des clauses techniques particuli\u232?res) utilisable dans le cadre des march\u233?s publics. Construire son propre mod\u232?le \u192? moins de travailler dans un laboratoire de recherche, inutile de \u171? r\u233?inventer la poudre \u187?. Construire son propre mod\u232?le de cahier des charges consiste \u224? adapter un mod\u232?le, essentiellement par \u233?limination de paragraphes inutiles, \u233?ventuellement par un apport venu d'un autre mod\u232?le. ira\par\pard\plain\hyphpar} { Chapitre 14 - Structure du cahier des charges La m\u233?thode est donc la suivante : 1. Examiner les diff\u233?rents mod\u232?les parmi les plus \u171? classiques \u187?. 2. Pour chaque mod\u232?le, cocher les rubriques qui seront utiles dans le cadre du (ou des) projets \u224? traiter. 3. Choisir le mod\u232?le le plus proche. 4. \u201?liminer les paragraphes inutiles. 5. Si cela s'av\u232?re n\u233?cessaire, introduire avec prudence de nouveaux paragraphes, de pr\u233?f\ u233?rence \u224? partir de paragraphes repris sur d'autres mod\u232?les. 6. V\ u233?rifier et assurer la coh\u233?rence de l'ensemble. 7. Exp\u233?rimenter le mod\u232?le, et \u233?ventuellement le modifier si n\u233?cessaire, en faisant valider les modifications. Rappelons-le. un mod\u232?le de document est un investissement \u224? long terme, particuli\u232?rement lorsqu'il s'agit d'un document comme un cahier des charges, et plus particuli\u232?rement si l'on a l'intention d'\u233?laborer plusieurs cahiers des charges dans des domaines proches. Il ne faut donc pas h\u233?siter \u224? investir quelques heures \u224? quelques jours sur cette adaptation. Check-list : cahier des charges Contrairement \u224? la check-list du chapitre pr\u233?c\u233?dent, qui concernait une exigence individuelle, cette check-list s'applique au document de sp\u233? cification des exigences (cahier des charges) dans sa totalit\u233?. \u8226? Compl\ u233?tude. Le document est complet. L'ensemble des exigences qui le composent couvre la totalit\u233? du probl\u232?me. \u8226? Coh\u233?rence. Il n'y a pas de conflit entre deux exigences, ni de redondance. \u8226? Tra\u231?abilit\u233?. Toute exigence peut \u234?tre trac\u233?e vis-\u224?-vis d'une exigence de plus haut niveau ou d'un objectif. \u8226? Maintenabilit\u233?. Le document est maintenable. Un historique des modifications, ou tout m\u233?canisme \u233? quivalent, permet de r\u233?\u233?crire une exigence sans perte de coh\u233? rence. \u8226? Priorisation. Entre deux exigences de m\u234?me niveau, il est possible d'indiquer laquelle des deux est prioritaire. \u8226? Monos\u233?mie. Tout terme utilis\u233? a la m\u234?me signification pour tous les lecteurs dans tout le document. \u8226? Fonctions de persistance (CRUD). Toute entit\u233? du syst\u232? me peut \u234?tre cr\u233?\u233?e (C - cr\u233?ait), consult\u233?e (R = read), mise \u224? jour (U = update) et supprim\u233?e (D = delete) (ou l'absence de cette fonction justifi\u233?e). ira\par\pard\plain\hyphpar} { Chapitre 15 L'\u233?tape de validation La validation des exigences permet de s'assurer que le document d'exigences est complet, correct et coh\u233?rent, que les exigences correspondent \u224? des objectifs du ma\u238?tre d'ouvrage ou \u224? des besoins des utilisateurs, et que ces exigences sont correctement formul\u233? es. Concr\u232?tement, la validation consiste en des revues de document, des inspections et des check-lists. Le principe est simple et la m\u233?thode efficace. Le reste est une question de discipline. Int\u233?r\u234?t de la validation La validation des exigences n'est pas qu'une formalit\u233? bureaucratique. Lorsqu'elle est men\u233?e avec s\u233?rieux par des gens de terrain, elle multiplie consid\u233?rablement l'efficience du processus d'exigences. Cest un investissement extr\u234?mement rentable. Les raisons sont faciles \u224? comprendre : \u8226? Les exigences sont syst\u233?matiquement relues par d'autres que ceux qui les ont \u233?crites, d'o\u249? une meilleure d\u233?tection des incoh\u233?rences. \u8226? La ma\u238?trise d'ouvrage (ou le marketing) ne perd pas de temps \u224? interpr\u233?ter des exigences floues et se concentre sur le contenu. \u8226? Le processus d'\u233?laboration est mieux g\u233?r\u233?, car il fournit des indicateurs d'avancement (un pourcentage d'exigences valid\u233?es est plus parlant que le nombre total d'exigences produit). \u8226? Le niveau de qualit\ u233? des exigences devient pr\u233?visible, ce qui permet de planifier plus pr\ u233?cis\u233?ment le d\u233?veloppement et les tests. \u8226? Apr\u232?s validation, les exigences refl\u232?tent, dans une large mesure, les vrais besoins (on n'aura pas \u224? recommencer le d\u233?veloppement).\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Il est rare que la validation soit la < tasse de th\u233? \u187? d'un groupe de travail ou d'un analyste. Cette activit\ u233? en rebute plus d'un, car la plupart des personnes pr\u233?f\u232?rent aller de l'avant et voient donc les sessions de validation comme du temps perdu. Pour \ u233?viter de tomber dans ce pi\u232?ge, il faut planifier et organiser les sessions de validation et les inclure dans le processus et dans les plannings. Le processus de validation La validation (figure 15-1) est essentiellement faite de v\ u233?rifications par check-lists et de revues et inspections. -Sp\u244?dflcatkMv*H ^S\u207?\u207?S\u239? i--*. l Prototypage Revues Check-Hsts J Livraison CdC H --\ u9658?" I r__J. \u201?laboration de ' cas de test Figure 15-1 : Le processus de validation Une validation formelle doit avoir lieu pour valider la totalit\u233? des sp\u233?cifications (cahier des charges). Cependant, des validations partielles peuvent avoir lieu \u224? divers moments, par exemple pour un ensemble de fonctions. On peut pr\u233?voir des minivalidations suite \u224? une session d'un groupe de travail, soit par les membres du groupe lui-m\u234?me, soit en organisant des validations crois\u233?es. Des formes simples et rapides de validation (check- lists) peuvent avoir lieu quasiment \u224? tout moment. Les diff\u233?rentes formes de reformulation d'une exigence lors d'une interview sont en quelque sorte des microvalidations. Les techniques Les techniques de validation des exigences sont : \u8226? la revue de document, plus ou moins formelle, qui est la technique de validation \u224? proprement parler ; (ED\par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de validation \u8226? le maquettage et le prototypage. d\u233?j\u224? mentionn\u233?s, qui sont \u233?galement des techniques de recueil et d'analyse ; \u8226? l'\u233?laboration de cas de test \u224? partir des exigences, qui constitue leur \u171? \u233?preuve du feu \u187?. Ces trois familles de techniques peuvent, bien entendu, \u234?tre combin\u233?es. Dans ce chapitre, nous d\u233?crirons dans les d\u233?tails les diff\u233?rentes formes de revue, depuis la liste de contr\u244?le jusqu'\u224? la revue formelle. V\u233?rification par check-lists Check-lists de propri\u233?t\u233?s Le moyen le plus simple de valider les exigences consiste \u224? les confronter \u224? une liste de contr\ u244?le (check-list). C'est aussi la premi\u232?re \u233?tape de la validation, qui permet de d\u233?grossir la v\u233?rification. Les check-lists peuvent \u234?tre utilis\u233?es par l'auteur du document \u224? valider (premi\u232?re v\u233? rification) et doivent \u234?tre utilis\u233?es par tous les autres. On trouve dans la litt\u233?rature des dizaines de variantes de check-lists, mais le principe est toujours le m\u234?me. Il s'agit de v\u233?rifier les exigences individuellement (atomicit\u233?, non-ambigu\u239?t\u233?, concision...) et le cahier des charges en tant qu'ensemble d'exigences (compl\u233?tude, coh\u233?rence...). Le lecteur pourra utiliser les diff\u233?rentes check-lists d\u233?j\u224? pr\u233?sent\u233? es dans cet ouvrage. Check-lists de contenu Ces check-lists permettent de v\u233? rifier que le document de sp\u233?cifications (cahier des charges) contient toutes les rubriques n\u233?cessaires. Ce sont des check-lists arborescentes qui reprennent la structure du cahier des charges. Par exemple : le document contient- il la liste des parties prenantes ? A-t-on sp\u233?cifi\u233? la fiabilit\u233? ? Etc. Nous conseillons de se servir du mod\u232?le de cahier des charges lui-m\u234? me comme check-list. Si on a bien choisi et bien adapt\u233? le mod\u232?le de cahier des charges, on n'a besoin de rien d'autre. Il suffit de v\u233?rifier que tous les paragraphes ont \u233?t\u233? correctement remplis et qu'il ne reste pas de paragraphe vide. De plus, la plupart des mod\u232?les de cahier des charges contiennent non seulement l'ensemble des rubriques utiles, mais \u233?galement des instructions sur comment les remplir. Cette autodocumentation dispense de toute check-list suppl\u233?mentaire. ITO\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Relecture simple C'est, comme son nom l'indique, la forme la plus simple de contr\u244?le d'un document. Elle fait intervenir deux personnes : l'auteur et le lecteur. Les \u233?tapes sont les suivantes : 1. L'auteur fournit le document au lecteur. 2. Le lecteur parcourt le document, y cherche les erreurs ou non-conformit\u233?s, et note ses remarques (le plus souvent, sur le document lui-m\u234?me). 3. Le lecteur retourne le document annot\u233? \u224? l'auteur. 4. L'auteur prend en compte les remarques. Ce type de relecture rel\u232?ve plus de la v\u233?rification que de la validation. Il est utile pour passer rapidement en revue un ensemble de sp\u233?cifications assez court ( une dizaine de pages de cahier des charges est un maximum). L'action doit \ u234?tre br\u232?ve, le cycle complet ne devrait pas d\u233?passer 48 heures. La revue simple est efficace si l'auteur et le lecteur sont du m\u234?me niveau hi\ u233?rarchique. Il ne s'agit ni de se faire approuver par son sup\u233?rieur, ni de sous-traiter une t\u226?che de relecture \u224? son subordonn\u233?. La lecture elle- m\u234?me devrait \u234?tre rapide (cinq minutes par page, pour fixer les id\ u233?es). Les annotations peuvent parfaitement se faire sur papier. De telles revues se font souvent spontan\u233?ment, bas\u233?es sur le donnant- donnant (je relis ton document en esp\u233?rant que tu reliras le mien). La difficult\u233? n'est pas de les faire, mais de les institutionnaliser et de les bud- g\u233?ter. Autrement, elles d\u233?pendent d'une initiative individuelle et risquent de se faire rares lorsque les projets ou les coll\u232?gues sont sous pression. Relecture crois\u233?e La relecture crois\u233?e est un peu plus formelle que la lecture simple et fait intervenir un plus grand nombre d'acteurs : un r\u233?dacteur et plusieurs relecteurs. La proc\u233?dure est la suivante : 1. Lors d'une r\u233? union, l'auteur fait une pr\u233?sentation g\u233?n\u233?rale du document \u224? plusieurs lecteurs et leur fournit le document. 2. Chaque lecteur lit le document isol\u233?ment, y cherche les erreurs ou non-conformit\u233?s, et note ses remarques. 3. Les participants se r\u233?unissent. Le document est parcouru pas \ u224? pas. Chaque participant indique les points qui lui semblent critiques. Un des participants note la liste des modifications \u224? apporter. 4. L'auteur prend en compte les remarques et apporte les corrections. \u338?)\par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de validation Cette proc\u233?dure est plus longue, plus co\u251?teuse et plus efficace. Le cycle complet ne devrait pas d\u233?passer deux semaines. L'\u233?quipe de relecture (auteur et relecteurs) doit \u234?tre compos\ u233?e de trois \u224? six personnes. Revue Formelle et inspection Une revue formelle est pluscomplexe, plus co\u251?teuse et plus longuequ'une simple relecture du document. Cela demande une certaine discipline et un investissement important en temps, mais le retour sur investissement est beaucoup plus cons\u233?quent. Une revue doit n\u233?cessairement avoir lieu \u224? toute nouvelle version du cahier des charges, avant sa publication ou sa diffusion. On pourra aussi organiser des revues interm\u233?diaires, sur un extrait du document, \u224? la fin de certaines \u233?tapes. On indique ici la proc\u233?dure formelle, sachant que celle-ci peut \u234?tre simplifi\u233?e en fonction des m\u233?thodes de travail, du budget-temps imparti et de la criticit\u233? du syst\u232?me. Planification \'5c Pr\u233?sentation Modfflcattons Lecture Retour R\u233?union de revue 1 OK T Suivi Figure 15-2 : Le processus de revue La revue des sp\u233?cifications d'exigences est analogue \u224? toute revue de document. Les \u233?tapes d'une inspection sont : la planification, la r\u233?union de pr\u233?sentation, la pr\u233?paration, la r\u233?union de revue, les modifications et le suivi. Les participants \u224? une revue sont : \u8226? l'animateur (ou mod\u233?rateur) de la revue, dans l'id\ u233?al diff\u233?rent de l'auteur du document ; \u8226? l'auteur du document ; \ u8226? les relecteurs ; \u8226? le secr\u233?taire, de pr\u233?f\u233?rence diff\ u233?rent de l'animateur. GD\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences L'objectif d'une revue est d'obtenir un consensus sur le document, et non \u224? corriger des erreurs ou des non-conformit\ u233?s sur lesquelles tout le monde s'accorde. Si on veut \u233?viter que les participants gaspillent leur temps et leur \u233?nergie sur des d\u233?tails, il faut pr\u233?alablement < toiletter \u187? le document, selon la check-list : \ u8226? Le document est conforme au mod\u232?le. \u8226? Les fautes d'orthographe les plus grossi\u232?res ont \u233?t\u233? corrig\u233?es. \u8226? La formulation est conforme aux r\u232?gles de bonne pr\u233?sentation (voir check-list). \u8226? On a pr\u233?par\u233? une liste des points \u224? discuter en s\u233?ance. \u8226? Le document a \u233?t\u233? relu par une autre personne que l'auteur, qui n'y a pas trouv\u233? de d\u233?fauts majeurs. La revue comprend les \u233?tapes suivantes : \u8226? Planification. Choix des participants, du temps \u224? consacrer par chaque participant, des dates de r\u233?union, du nombre de r\u233? unions. La revue est une d\u233?marche it\u233?rative que l'on pourrait affiner \ u224? l'infini, il est pr\u233?f\u233?rable de fixer des limites par avance. \ u8226? R\u233?union de pr\u233?sentation. L'auteur du document explique aux participants le contenu du document et ce qu'il attend de la revue. Cette \u233? tape peut \u234?tre supprim\u233?e si les participants ont l'habitude de travailler ensemble. \u8226? Lecture. C'est l'\u233?tape la plus importante ; chaque participant passe en revue le document, \u224? la recherche de d\u233?fauts ; il peut s'aider d'une check- list et/ou s'appuyer sur son exp\u233?rience. Il remplit une fiche de revue de document ou coche une check-list. \u8226? Retour. Les participants renvoient leur fiche \u224? l'auteur, qui prendra en compte les remarques. \u8226? R\u233?union de revue. Les participants se r\u233?unissent pour discuter des points obscurs ou de d\u233?saccord. Chaque paragraphe est lu, et tout participant peut faire ses remarques. Les participants d\u233?cident si une nouvelle r\u233?union doit \u234?tre programm\u233?e. \u8226? Modifications. L'auteur du document prend en compte les remarques et fait les modifications convenues. \u8226? Suivi. Un participant v\u233?rifie que toutes les remarques et points obscurs ont \u233?t\u233? pris en compte. On peut boucler sur ces \u233? tapes jusqu'\u224? obtenir un niveau de qualit\u233? satisfaisant. Pour d\u233? cider s'il faut planifier une nouvelle tourn\u233?e de revue ou s'arr\u234?ter, on pourra utiliser la check-list suivante : \u8226? Toutes les remarques ont \u233?t\ u233? prises en compte : - soit le document a \u233?t\u233? modifi\u233? ; - soit la remarque a \u233?t\u233? rejet\u233?e avec une justification. GB\par\pard\plain\ hyphpar} { Chapitre 13 - L'\u233?tape de validation \u8226? Le document modifi\u233? est correct sur la forme. \u8226? Tous les points obscurs ont \u233?t\u233? lev\u233?s. \u8226? Le document est g\u233?r\u233? (nom et version, stockage, etc.). Longue et co\u251?teuse, mais utile et rentable, l'inspection formelle doit \u234?tre institutionnalis\u233?e \u224? haut niveau, d'autant plus que les participants peuvent faire partie d'entit\u233?s tr\u232?s diff\u233?rentes et ne sont pas toujours des parties prenantes actives (il peut s'agir d'experts ext\u233?rieurs). La difficult\u233? est ici de retenir l'int\u233?r\u234?t de relecteurs qui ne participent pas \u224? l'\u233?laboration du document. Elaboration de cas de test \ u201?laborer des cas de test correspondant \u224? des exigences, c'est d\u233?j\ u224? mettre ces exigences \u224? l'\u233?preuve. Pour \u233?laborer un cas de test, il faut imaginer le comportement r\u233?ciproque de l'utilisateur et du syst\ u232?me, ce qui fait ressortir toutes les incoh\u233?rences qui \u233?taient auparavant pass\u233?es inaper\u231?ues. C'est donc un excellent moyen de faire \ u233?merger les d\u233?fauts dans un document de sp\u233?cification. Les cas de test qui sont \u233?labor\u233?s \u224? ce niveau concernent \u233?videmment des tests de validation et non des tests de v\u233?rification. Comme leur pendant au niveau des sp\u233?cifications, ils d\u233?crivent le quoi, et non le comment. Il est utile d'\u233?laborer les cas de test le plus en amont possible. Plut\u244?t que d'attendre d'avoir un cahier des charges enti\u232?rement boucl\u233?, il est plus int\u233?ressant d'anticiper et de commencer l'\u233?laboration des cas de test d\u232?s que l'on dispose d'un ensemble suffisamment autonome (c'est-\u224?- dire coh\u233?rent et complet) d'exigences. D\u233?tecter des failles rapidement est tr\u232?s avantageux : cela \u233?vite de refaire les m\u234?mes erreurs sur d'autres parties du cahier des charges. Avant d'\u233?laborer ces cas de test, nous conseillons de passer les check-lists concernant toutes les autres propri\u233?t\ u233?s des sp\u233?cifications (compl\u233?tude, coh\u233?rence, etc.). L'\u233? laboration de cas de test constitue pour ainsi dire l'\u233?preuve du feu pour un ensemble d'exigences. Elle d\u233?montre leur teslabilit\u233?, qui suppose que les autres propri\u233?t\u233?s (compl\u233?tude. coh\u233?rence, non-ambigu\u239?t\ u233?, etc.) sont v\u233?rifi\u233?es. Une variante de cette technique consiste \ u224? \u233?laborer, \u224? partir des exigences, la documentation du logiciel. L'\ u233?laboration de cette documentation peut \u234?tre confi\u233?e \u224? une autre \u233?quipe que celle responsable de l'\u233?laboration du cahier des charges, ce qui permet de tester qu'elle est compr\u233?hensible par un lecteur ext\u233?rieur. On proc\u233?dera par la suite \u224? une relecture crois\u233?e. GD\par\pard\ plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Contr\u244?le qualit\u233? des exigences L'id\u233?e est d'avoir un ou plusieurs points de passage oblig\u233?s par lesquels toute exigence passe syst\u233?matiquement et sans exception. Robert son1 parle de quatily gateway que l'on pourrait traduire par \u171? passage \u224? niveau de la qualit\u233? \u187?. On peut d\u233?cider que toute exigence peut se trouver dans l'un des deux \u233?tats suivants : non valid\u233?e ou valid\u233?e. Le point de bascule d'un \u233?tat \u224? l'autre d\u233?pend bien s\u251?r du niveau de rigueur du processus d'\u233?laboration, et en particulier de validation. Les variantes sont \u233?videmment possibles. On peut imaginer un syst\u232?me \ u224? trois \u233?tats ou plus, par exemple : 0. Propos\u233?e. 1. V\u233?rifi\ u233?e (check-list minimale). 2. Formellement accept\u233?e (par le comit\u233? de validation). La gestion de ces changements d'\u233?tat est facilit\u233?e avec les outils de gestion des exigences. Avec de tels outils. \u171? \u233?tat \u187? est une des propri\u233?t\u233?s de l'exigence. Certains outils permettent de d\u233? finir une baseline, ou version de r\u233?f\u233?rence d'un ensemble d'exigences, o\ u249? toutes les exigences sont valid\u233?es. Impliquer les personnes concern\ u233?es Ces actions de validation ne serviraient \u224? rien si elles n'\u233? taient faites par les personnes ad\u233?quates au moment ad\u233?quat. De plus, les diff\u233?rentes parties prenantes doivent s'impliquer v\u233?ritablement. C'est tout l'art de la validation. Le reste n'est que proc\u233?dure. C'est l\u224? que l'analyse des parties prenantes, qui a \u233?t\u233? faite lors de l'\u233?tape pr\ u233?alable, va s'av\u233?rer utile. Par exemple, le cahier des charges en version finale sera sign\u233? par le directeur g\u233?n\u233?ral, apr\u232?s que de nombreuses validations partielles ont eu lieu, par d'autres analystes puis par les repr\u233?sentants des utilisateurs. Le ma\u238?tre d'oeuvre devra s'engager \u224? r\u233?aliser, ce qui est aussi une forme de validation. Auparavant, des experts auront v\u233?rifi\u233? que les exigences sont effectivement r\u233?alisables. Il s'agit l\u224? d'un cas parmi d'autres. R\u233?ussira impliquer tous les acteurs au bon niveau au bon moment demande un minimum d'organisation : \u8226? avoir d\u233? fini une carte des acteurs, c'est-\u224?-dire un sch\u233?ma ou un graphe des parties prenantes ; \u8226? d\u232?s que possible, proc\u233?der \u224? des validations informelles de sp\u233?cifications partielles par les personnes du terrain (repr\u233?sentants des utilisateurs) ; 1. V. S. & J.Robert- son. Mastering the Requirements Process, Addison-Wesley. CD\par\pard\plain\hyphpar} { Chapitre 13 - L'\u233?tape de validation \u8226? au fur et \u224? mesure que les sp\u233?cifications se consolident, proc\u233?der \u224? des validations de plus en plus formelles ; \u8226? tenir inform\u233?es les parties prenantes de plus haut niveau de responsabilit\u233? sans leur demander une validation formelle ; \u8226? lorsque le document est finalis\u233?, revu par toutes les parties prenantes, faire signer au plus haut niveau (par exemple, directeur g\u233?n\u233?ral). Cette mani\ u232?re de proc\u233?der ne garantit pas le succ\u232?s, mais elle y contribue grandement. La pire des choses est d'obtenir un accord purement formel, une signature \u171? les yeux ferm\u233?s \u187?. A contrario de la signature de pi^ fp(p^ sans r\u233?eAi\u232? m^icaliw, Tapprobation du cahier des chaiges au plus haut niveau dte responsabifit\u233? peut l\u233?gftm importante que l\u235?d\u233? dsionnaireder\u224?utmve^\u233? Un directeur va signer s'il a compris que le cahier des diarg^ o^ vient tf refl\u232?te sa strat\u233?gie, et la d\u233?mine sur le ^ tedrnk^ues.mabcompi\u233?liensiblespa f\'5c)uramW\u224?\u339?r\u233?sultat il nya ^ boiit en bout; un piocessus structur\u233? de d\u233?^ acteur y ga\u231?^ en tennes oe \u171?\u187?\u219?ts, de del\u224?\u187?, de colite. lUen de magique. Cela s'ap- \u8226?' pdlering\u233?^ierie des exigences. '"' Check-list : validation \u8226? Le r\u233?dacteur a pass\u233? la check-list de bonne formulation. \u8226? Le r\u233? dacteur a pass\u233? la check-list de structuration. \u8226? Une personne ext\u233? rieure a relu les sp\u233?cifications. \u8226? Les diff\u233?rentes parties prenantes ont particip\u233? \u224? la validation. \u8226? Une revue au moins a \ u233?t\u233? effectu\u233?e. \u8226? Un consensus sur les exigences a \u233?t\u233? obtenu. \u8226? Les exigences sont aptes \u224? \u234?tre communiqu\u233?es pour r\ u233?alisation. GD\par\pard\plain\hyphpar} { Chapitre 16 Un mod\u232?le de processus lusqu'ici. nous avons d\u233?crit tr\u232?s globalement la d\u233?marche g\u233?n\u233?rale de d\u233?veloppement des exigences puis, plus en d\u233?tail, les \u233?tapes qui la composent et les techniques que l'analyste peut mettre en \u339?uvre \u224? chaque \u233?tape. Nous proposons ici un processus, que chacun pourra adapter \u224? son environnement. Un processus-type Nous donnons donc ici un mod\u232?le g\u233?n\u233?rique, simple, facile \u224? utiliser. Il devra \u234?tre adapt\u233? et compl\u233?t\u233? en fonction des particularit\u233?s du projet et du produit, en particulier : \u8226? les objectifs \u224? atteindre ; \u8226? le type de produit (sp\u233?cifique, adaptation ou choix de progiciel) ; \u8226? le mode de d\u233?veloppement en interne ou en externe ; \ u8226? la taille et complexit\u233? du produit attendu ; \u8226? la structure des parties prenantes ; \u8226? l'organisation de la ma\u238?trise d'ouvrage et de la ma\u238?trise d'oeuvre ; \u8226? les proc\u233?dures d\u233?j\u224? existantes dans l'organisation : \u8226? les risques. On fera particuli\u232?rement attention \ u224? adapter le vocabulaire, tr\u232?s diff\u233?rent d'un domaine d'application \ u224? l'autre. Des expressions comme comit\u233? de pilotage, comit\u233? directeur, ou plan projet peuvent avoir des significations sensiblement diff\u233? rentes selon les organisations. En cas de divergences entre le vocabulaire de la ma\u238?trise d'ouvrage et celui de la ma\u238?trise d'oeuvre, c'est g\u233?n\u233? ralement celui de la ma\u238?trise d'ouvrage (votre client) qui prime.\par\pard\ plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences teppeloitt la phrase du c\u233?l\u232? bre certaHK ntod\u232?Wsoirt utite carte n'est pas te terrain. Une \u226?a^ re^le cte cahier des cta^ prt*abtemertpascesse|rt\u233?ta responsabte de f\u233?labor\ u226?t\u187?^ tf^ souvent adapter, ce processus. En aucun cas, ce mod\u232?le de processus ne devra \u234?tre sarvi\u224?laletbeetenl'e^ r\u233? *texk>n,etnonunepit>cidure. Ce di\u224?prtre dcfli\u187? une c\u224?rtede processus de d\u233?veioppemem des \u244? Le lecteur doit acfepter cette carte en ajoutarrt, en^ r^ nrveauctechaQ^\u233?t\u226?pe/BdeWadaptCT^ proc\u233?dure. La figure 16-1 donne la carte du processus mod\u232?le. \u163? -It\u233?ration \u233?ventueMe- I 1. Cadrer 2. Planifier 3. Analyser l'existant 4. Recueillir et analyser le besoin Approbation du plan 6. Valider le cahier des charges I CdC incomplet : Reiterer- Figure 16-1 : Mod\u232?le de processus Etape 1 : cadrer Entr\u233?e Le seul \u233? l\u233?ment \u233?crit en entr\u233?e est \u233?ventuellement une lettre de mission. Ce document n'est pas n\u233?cessairement une < lettre \u187?. Mais en tout \u233?tat de cause, c'est un document sign\u233? par le donneur d'ordres (ma\ u238?tre d'ouvrage strat\u233?gique) et adress\u233? \u224? l'assistant \u224? la ma\u238?trise d'ouvrage (ma\u238?tre d'ouvrage d\u233?l\u233?gu\u233?). (Q3\par\ pard\plain\hyphpar} { Chapitre 16 - Un mod\u232?le de processus L'approbation formelle du donneur d'ordres est parfois difficile \u224? obtenir. Si elle ne peut \u234?tre obtenue \ u224? cette \u233?tape, elle devra l'\u234?tre au plus tard dans la note de cadrage. Actions Il s'agit d'avancer autant que possible sur le triangle objectifs- parties prenantes-p\u233?rim\u232?tre. Les actions sont : \u8226? Recueillir les objectifs, par interview des parties prenantes c\u244?t\u233? client (ma\u238?tre d'ouvrage) au plus haut niveau de responsabilit\u233?. \u8226? Analyser les parties prenantes, du c\u244?t\u233? du client et du fournisseur, directes (utilisateurs et d\u233?veloppeurs) et indirectes (impact\u233?es par le produit), strat\u233?giques et op\u233?rationnelles. \u8226? D\u233?finir le p\u233?rim\u232?tre du projet et du produit, au moyen de r\u233?unions, dont une r\u233?union formelle. Au plus t\ u244?t, il faudra entamer l'\u233?laboration du diagramme de contexte de l'existant, et \u233?ventuellement de la cible. On peut \u224? ce stade \u233? laborer les en-t\u234?tes des cas d'utilisation m\u233?tier. Sortie Le document en sortie de cette \u233?tape est la note de cadrage. Il contient les \u233?l\u233? ments suivants : \u8226? objectifs du projet ; \u8226? structure des parties prenantes ; \u8226? diagramme de contexte ; \u8226? liste des \u233?v\u233?nements m\u233?tier ; \u8226? cas d'utilisation m\u233?tier ; \u8226? description des cinq \u224? dix exigences de haut niveau -, \u8226? chiffrage grossier de la r\ u233?alisation du produit. Conditions de sortie La note de cadrage ne doit pas n\ u233?cessairement faire l'objet d'une validation formelle. On peut attendre la sortie de l'\u233?tape 2 (planification) pour faire approuver ce cadrage par le donneur d'ordres. Il est cependant utile de le formaliser pour en discuter entre analystes et le soumettre au donneur d'ordres pour avis. Etape 2 : planifier Entr\ u233?es \u8226? Lettre de mission. \u8226? Note de cadrage. (FJj)\par\pard\plain\ hyphpar} { Partie 2 - D\u233?veloppement des exigences Actions \u8226? Choisir et adapter le processus de d\u233?veloppement des exigences. \u8226? Choisir et adapter le mod\ u232?le de cahier des charges. \u8226? Choisir et adapter les techniques. \u8226? Choisir les outils. \u8226? D\u233?terminer les profils utilisateur. \u8226? Planifier les jalons importants (comit\u233?s de pilotage). \u8226? Planifier les plages de travail pour les interviews. \u8226? Planifier les groupes de travail. Sortie : le plan projet \u8226? Profils utilisateurs types. \u8226? Sources d'exigences. \u8226? Tableau des charges, d\u233?lais et planning. \u8226? Fiches de risques. Conditions de sortie \u192? ce stade, le donneur d'ordres devra avoir approuv\u233? la note de cadrage et le plan projet. Ces deux documents peuvent d'ailleurs \u234?tre r\u233?unis en un seul. Etape 3 : analyser l'existant Entr\ u233?es \u8226? Liste des documents existants. \u8226? Tableau des parties prenantes. \u8226? Documentation de l'organisation existante. \u8226? Documentation du syst\u232?me existant. Actions \u8226? Rassembler la documentation sur l'existant. \u8226? Analyser le cadre organisationnel. \u8226? Examiner les services impact\u233?s par le fonctionnement du syst\u232?me. \u8226? Si n\u233? cessaire, enrichir le diagramme de contexte de l'existant. \u8226? Si n\u233? cessaire, enrichir le tableau des parties prenantes. \u8226? Analyser les processus actuels. fETft\par\pard\plain\hyphpar} { Chapitre 16 - Un mod\u232?le de processus \u8226? Dresser un diagramme de flux de processus pr\u233?sentant le circuit des informations entre services. \u8226? D\ u233?crire les fonctions dans leur \u233?tat actuel. \u8226? Dresser le bilan de la situation actuelle : - inefficience des processus et leurs causes : circuits trop complexes, documents inutiles, r\u232?gles de gestion obsol\u232?tes, moyens inad\ u233?quats ; - fonctions inadapt\u233?es, manquantes, inutilisables ; - difficult\ u233? d'utilisation ; - performances du syst\u232?me : temps de r\u233?ponse trop longs, consommations ; - faiblesse des attributs non fonctionnels : fiabilit\u233?, portabilit\u233?, maintenabilit\u233? ; - support aux utilisateurs insuffisant, faible efficacit\u233? de la maintenance. \u8226? Mentionner par sous-syst\u232?me ou domaine : - les principes ou les m\u233?thodes \u224? remettre en cause -, - les processus ou proc\u233?dures \u224? revoir ; - les facteurs de qualit\u233? \u224? revoir ; - les informations \u224? pr\u233?ciser. \u8226? Examiner, pour chacun des points pr\u233?c\u233?dents : - ce qui est \u224? conserver, voire \u224? amplifier -, - ce qui est \u224? supprimer ou \u224? remplacer ; - ce qui est \u224? modifier. \u8226? Analyser l'existant en termes d'offre sur le march\u233?. \u8226? Si n\u233?cessaire, \u233?tudier les sc\u233?narios d'\u233?volution (red\u233? veloppement, migration, choix de progiciel...). Sorties \u8226? Panorama de l'\ u233?tat actuel du syst\u232?me. \u8226? Organigramme des services concern\u233? s. \u8226? Liste des fonctions, en leur \u233?tat actuel. \u8226? Diagrammes de processus, de s\u233?quence, d'\u233?tats. \u8226? Vision organisationnelle (postes de travail, nature des traitements, types de traitements). \u8226? Solution technique actuelle : proc\u233?dures, mat\u233?riels et logiciels de base, logiciels applicatifs, progiciels. \u207?ET1\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences \u8226? Bilan de la situation actuelle : principaux axes d'am\u233?lioration n\u233?cessaires au syst\u232?me actuel. \u8226? Axes d'\u233?volution (si une \u233?tude d'\u233?volution a \u233? t\u233? men\u233?e) : - liste (non d\u233?taill\u233?e) des diff\u233?rents types de solutions fonctionnelles envisageables -, - br\u232?ve pr\u233?sentation des sc\ u233?narios \u233?tudi\u233?s ; - justification du sc\u233?nario retenu ; - mesures envisag\u233?es pour conduire le changement : - mesures envisag\u233?es pour faciliter l'appropriation du nouveau syst\u232?me par les utilisateurs. \u8226? Comptes-rendus d'interview ou note de synth\u232?se. Conditions de sortie On peut passer \u224? l'\u233?tape suivante lorsque les documents de sortie sont jug\u233?s suffisamment complets et lorsqu'un consensus s'est fait autour des sc\u233?narios d'\u233?volution. L'analyse de l'existant peut remettre en cause l'objectif ou le p\u233?rim\u232?tre, avec \u233?ventuellement des r\u233?percussions sur les charges ou le planning. Si tel est le cas. il faudra obtenir l'approbation formelle du donneur d'ordres, apr\u232?s passage \u233?ventuel par les \u233?tapes I et/ou 2. Etape 4 : recueillir et analyser les besoins Entr\u233?es Les entr\u233?es de cette \u233?tape sont les \u233?l\u233?ments de sortie des trois \u233?tapes pr\ u233?c\u233?dentes, en particulier : \u8226? lettre de mission ; \u8226? note de cadrage-, \u8226? plan projet ; \u8226? \u233?tude de l'existant. A ce stade, l'absence d'une lettre de mission donnant formellement \u224? l'analyste les moyens et l'autonomie de mener sa mission est un facteur de risque important. Actions \ u8226? Planifier le recueil. \u8226? Assembler la documentation. ito\par\pard\ plain\hyphpar} { Chapitre 16 - Un mod\u232?le de processus \u8226? Recueillir les besoins organisationnels : - inventorier les r\u232?gles de gestion ; - inventorier les contraintes. \u8226? Recueillir les besoins utilisateurs : - mener les interviews ; - animer les groupes de travail ; - lire les documents. \u8226? Synth\u233?tiser et classer les informations recueillies : - exigences m\u233?tier ; - cas d'utilisation ; - exigences fonctionnelles ; - exigences non fonctionnelles ; - contraintes produit ; - contraintes projet : - faits et hypoth\u232?ses pertinents. \u8226? Reformuler les exigences recueillies (cf. check-list de formulation des exigences). \u8226? Distribuer les exigences recueillies aux participants aux groupes de travail. \u8226? Analyser les exigences en groupe de travail : - discuter, en r\u233?union de groupe, les informations recueillies ; - enrichir, si n\u233?cessaire, le diagramme de contexte ; - \u233?laborer tout diagramme \u224? m\u234?me de faciliter la compr\u233?hension commune ; - r\u233?aliser, si n\u233? cessaire, des maquettes papier ; - r\u233?aliser, si n\u233?cessaire, un prototype. \u8226? V\u233?rifier les exigences (check-list de recueil et d'analyse). Sorties \ u8226? Comptes-rendus d'interview ou note de synth\u232?se. \u8226? Exigences reformul\u233?es. \u8226? Diagrammes. Conditions de sortie Lorsque les exigences recueillies forment un tout coh\u233?rent, les inclure dans le cahier des charges en cours d'\u233?laboration (\u233?tape 5). ira\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences Etape 5 : sp\u233?cifier les exigences Entr\u233?es \u8226? Mod\u232?le de cahier des charges. \u8226? Exigences formul\ u233?es. Actions \u8226? Reformuler si n\u233?cessaire les exigences recueillies \ u224? l'\u233?tape pr\u233?c\u233?dente. \u8226? Passer la check-list de formulation des exigences. \u8226? Enrichir le cahier des charges avec les exigences recueillies \u224? l'\u233?tape pr\u233?c\u233?dente. \u8226? Passer la check-list de l'\u233?tape de sp\u233?cification. Sorties \u8226? Cahier des charges enrichi. \u8226? Plan projet r\u233?actualis\u233?. Conditions de sortie Apr\u232?s passage r\u233?ussi des check-lists. passer \u224? l'\u233?tape suivante. Etape 6 : valider les exigences Entr\u233?es Lors de la premi\u232?re it\ u233?ration, c'est uniquement le squelette de cahier des charges qui devra \u234? tre valid\u233?. Pour les it\u233?rations suivantes, on devra valider le contenu, sauf si le squelette a d\u251? \u234?tre modifi\u233?. Les \u233?l\u233?ments d'entr\u233?e sont donc : \u8226? cahier des charges ; \u8226? note indiquant quelles parties du cahier des charges sont \u224? l'\u233?tat \u171? \u224? valider \u187? ; \u8226? mod\u232?le de fiche de lecture, vierge. Les indications sur les parties du cahier des charges \u224? valider peuvent se trouver dans le cahier des charges lui-m\u234?me, par exemple sous forme de texte en couleurs, surlign\u233?, ou en utilisant le mode r\u233?vision d'un outil de traitement de texte. Actions Appliquer la proc\u233?dure de validation, selon le protocole convenu : \u8226? revue ou inspection de document ; ira\par\pard\plain\hyphpar} { Chapitre 16 - Un mod\u232?le de processus \u8226? maquette, prototype ; \u8226? \ u233?laboration de cas de test. Sorties \u8226? Exigences valid\u233?es. \u8226? Fiches de relecture remplies. Conditions de sortie Les validations \u224? chaque it\u233?ration peuvent \u234?tre formelles ou informelles. La derni\u232?re it\ u233?ration donnera lieu \u224? une validation formelle. S'il reste des exigences \ u224? recueillir, repasser \u224? l'\u233?tape 4. Si le cahier des charges est exhaustif, mais que les parties prenantes ont fait des remarques, repasser \u224? l'\u233?tape 5. Si la totalit\u233? du cahier des charges est valid\u233?e par la totalit\u233? des parties prenantes concern\u233?es (donneur d'ordres, ma\u238? trise d'ouvrage), le processus d'\u233?laboration du cahier des charges est termin\ u233?. L'\u233?tape suivante (capitalisation) permettra d'am\u233?liorer le processus d'\u233?laboration lui- m\u234?me. Etape 7 ' capitaliser Entr\u233?es Tous les documents \u233?labor\u233?s lors des \u233?tapes pr\u233?c\u233?dentes. Actions \u8226? Lors d'une r\u233?union, solliciter un feedback des parties prenantes. \u8226? Modifier, si n\u233?cessaire, le mod\u232?le de cahier des charges. \u8226? Modifier ou enrichir les check-lists. \u8226? Modifier, si n\u233? cessaire, les proc\u233?dures d'\u233?laboration du cahier des charges. \u8226? Remercier les participants. \u8226? C\u233?l\u233?brer la fin de la mission. Sorties \u8226? Nouveau mod\u232?le de cahier des charges. \u8226? Proc\u233?dures modifi\u233?es ou enrichies. \u8226? Rapport de mission. \u338?B\par\pard\plain\ hyphpar} { Chapitre 17 Am\u233?liorer e processus Dans les chapitres pr\u233?c\u233?dents, nous avons vu que le processus de d\u233?veloppement des exigences doit \u234?tre adapt\u233? \u224? l'organisation, aux objectifs et au type de projet. Et comme tout processus, il y a des moyens pratiques de l'am\u233?liorer. Pour rendre le processus plus efficace, il faut chercher o\u249? se trouvent les gisements d'efficacit\u233?. Apr\u232?s une explication des facteurs d'am\u233?lioration, nous donnons quelques conseils pratiques1. 1. La lecture de ce chapitre n'est pas indispensable \u224? la compr\u233?hension des chapitres qui suivent Pourquoi le processus peut \u234?tre am\u233?liore ? Quelle que soit la d\u233?marche choisie, le processus comporte, dans ses grandes lignes, toujours les m\u234?mes \u233?tapes : recueil, analyse, sp\u233?cification et validation. Peuvent s'y ajouter, selon les auteurs, l'\u233?tape pr\u233?alable de cadrage ou pr\u233?paration, et l'\ u233?tape suppl\u233?mentaire de capitalisation. Les ouvrages sur l'ing\u233?nierie des exigences nous disent que les quatre (ou cinq, ou six...) \u233?tapes du processus sont \u171? imbriqu\u233?es \u187?. Et tout praticien de la m\u233?thode sait que ce processus n'est ni lin\u233?aire ni ferm\u233?. Comprendre comment et pourquoi ces \u233?tapes sont \u171? imbriqu\u233?es \u187? va nous permettre d'am\ u233?liorer le processus. Or. il y a trois raisons pour lesquelles les \u233?tapes sont interd\u233?pendantes : \u8226? Le processus n'est pas lin\u233?aire : il contient des boucles de r\u233?troaction. \u8226? Le processus est r\u233?cursif : chaque \u233?tape contient les autres. \u8226? Le processus est it\u233?ratif : on travaille par couches successives.\par\pard\plain\hyphpar} { Partie 2 - D\u233?veloppement des exigences 2. Retravail (rework). Formellement, c'est T\u233?tape de prise en compte des remarques suite \u224? une inspection ou une revue formelle. Nous allons d\u233?crire ces trois m\u233?canismes et voir comment ils peuvent influencer, positivement ou n\u233?gativement, l'efficience du processus. Apr\u232?s cette analyse, nous aurons en main les moyens d'am\u233? liorer cette efficience. R\u233?troactions Le premier m\u233?canisme est facile \ u224? comprendre : les retours \u224? une \u233?tape pr\u233?c\u233?dente2 sont in\ u233?vitables. Ainsi, si au cours d'une \u233?tape, il manque des informations (incompl\u233?tude). on remontera \u224? l'\u233?tape de recueil. Si l'on d\u233? couvre une incoh\u233?rence, on remontera \u224? l'\u233?tape d'analyse. Cela n'a rien de dramatique, bien s\u251?r. mais occasionne des pertes de temps et d'\u233? nergie. Rappeler une personne au t\u233?l\u233?phone pour lui demander des pr\u233? cisions est plus co\u251?teux en temps et en effort que. par exemple, reformuler ce qu'il vient de dire. Ainsi, pour optimiser le processus, il faudra faire en sorte que les retours aux \u233?tapes pr\u233?c\u233?dentes soient les moins fr\u233? quents possibles. Remise en cause de l'objectif- Incoh\u233?rences- -incompr\u233? hensions- Analyse Sp\u233?cification "\u239? Validation CdC Impr\u233?cisions- - Incompi\u233?tudes-: Incompi\u233?tudes- Incoh\u233?rences, incompi\u233?tudes, incompr\u233?hensions Figure 17-1 : R\u233?troactions R\u233?cursions La deuxi\ u232?me raison pour laquelle les quatre \u233?tapes sont imbriqu\u233?es tient \ u224? la nature r\u233?cursive du processus. Dit plus simplement, chaque \u233?tape contient des \u233?l\u233?ments des autres \u233?tapes. Par exemple, lorsque l'on recueille les exigences, on ne va pas se contenter d'\u233?couter et de transcrire. On va aussi analyser, voire sp\u233?cifier, cette exigence. On va pouvoir anticiper sur les \u233?tapes \u224? suivre. Cette anticipation peut acc\u233?l\u233?rer le processus, mais aussi le d\u233?grader. (ED\par\pard\plain\hyphpar} { Chapitre 17 - Am\u233?liorer \u239?e processus Validation Figure 17~2 : R\u233? cursivit\u233? du processus It\u233?rations La troisi\u232?me raison, c'est que le processus est it\u233?ratif : les sp\u233?cifications sont produites par couches successives. Examinons, par exemple, ce qui se passe lors de la phase de cadrage. Nous allons recueillir les objectifs, les analyser, les sp\u233?cifier et les faire valider. L'\u233?tape pr\u233?alable n'est ni plus ni moins qu'un minicycle de la phase d'exigences. Il est possible de syst\u233?matiser cette approche et de fournir, par it\u233?rations, des cahiers des charges de plus en plus pr\u233?cis. Ici aussi, cette fa\u231?on de travailler peut acc\u233?l\u233?rer le processus ou le d\u233?grader. Figure 77-3 : Processus it\u233?ratif Comment le processus peut \ u234?tre am\u233?lior\u233? En r\u233?sum\u233?, trois moyens sont \u224? notre disposition pour optimiser le processus de d\u233?veloppement des exigences : \ u8226? minimiser les retours en arri\u232?re chaque fois que cela est possible ; G3j)\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences \u8226? anticiper sur les \u233?tapes suivantes, lorsque cela est utile ; \u8226? consid\u233?rer l'option de travailler de mani\u232?re it\u233?rative, par couches successives. Voyons comment, de mani\ u232?re pratique, ces moyens peuvent \u234?tre mis en \u339?uvre. Minimiser le retravail (rework) Nous avons introduit, tout au long de cet ouvrage, un outil simple et efficace pour minimiser les retours en arri\u232?re : la check-list. Un simple contr\u244?le nous permet de savoir si nous avons fait tout ce qui devait l'\u234?tre \u224? une \u233?tape donn\u233?e. Le pr\u233?sent ouvrage contient plusieurs check-lists. \u224? plusieurs niveaux, mais d'autres check-lists peuvent \u234?tre \u233?labor\u233?es pour enrichir le r\u233?f\u233?rentiel m\ u233?thodologique d'une \u233?quipe d'analystes. Remarquons que les documents types sont \u233?galement des check-lists d'une forme plus \u233?labor\u233?e. C'est en particulier le cas du mod\u232?le de cahier des charges. La technique de l'anticipation Anticiper ne signifie pas, bien s\u251?r. br\u251?ler les \u233? tapes (cela aurait l'effet contraire \u224? celui escompt\u233?), mais bien pr\ u233?parer chaque sous-\u233?tape ou micro-\u233?tape pour analyser, sp\u233?cifier ou faire valider au plus t\u244?t ce qui peut l'\u234?tre. Pour anticiper sur les \ u233?tapes suivantes, nous avons d\u233?j\u224? donn\u233? quelques \u171? trucs \ u187? dans les diff\u233?rents chapitres. Cette technique d'anticipation peut \ u234?tre syst\u233?matis\u233?e. Anticiper sur les \u233?tapes \u224? venir a des avantages et des inconv\u233?nients. Parfois, il est int\u233?ressant d'apporter de la pr\u233?cision le plus vite possible, et de sortir d'une interview avec des exigences d\u233?j\u224? clairement formul\u233?es. \u192? d'autres moments, il sera inutile de sp\u233?cifier avec pr\u233?cision des exigences qui seront remises en cause \u224? la prochaine interview. Prenons l'exemple d'un outil de recueil bien connu : l'interview. Suite \u224? l'interview proprement dite, l'analyste peut mener les actions suivantes : \u8226? mini-analyse : confronter les notes d'interview avec les autres \u233?l\u233?ments recueillis et chercher \u224? lever les ambigu\u239?t\u233?s et les incoh\u233?rences ; \u8226? minisp\u233? cification : les notes d'interview peuvent \u234?tre structur\u233?es et bien formul\u233?es au lieu d'\u234?tre laiss\u233?es telles quelles ; \u8226? minivalidation : l'analyste envoie \u224? la (ou aux) personnel s) interview\u233? e(s) ces sp\u233?cifications partielles pour validation. Ces op\u233?rations peuvent \u234?tre men\u233?es pour la plupart des activit\u233?s de recueil : r\ u233?union de groupe de travail, brainstorming. et m\u234?me analyse de la documentation. \u338?D\par\pard\plain\hyphpar} { Chapitre 17 - Am\u233?liorer \u239?e processus Cette d\u233?marche de pr\u233? analyse, pr\u233?sp\u233?cification et pr\u233?validation peut se faire au niveau des micro\u233?tapes. Par exemple, lors d'une interview sur le terrain, suite \ u224? une r\u233?ponse apport\u233?e par l'interview\u233? \u224? une question, l'analyste peut, si les circonstances le permettent, faire en temps r\u233?el une: \u8226? microanalyse : confronter la r\u233?ponse donn\u233?e \u224? d'autres exigences ; utiliser des diagrammes et en discuter avec son interlocuteur ; \u8226? microsp\u233?cification : reformuler le plus pr\u233?cis\u233?ment possible la r\ u233?ponse de l'interview\u233?, sous une forme claire et coh\u233?rente, pr\u234? te \u224? \u234?tre ins\u233?r\u233?e dans le cahier des charges ; \u8226? microvalidation : l'exigence ainsi sp\u233?cifi\u233?e par \u233?crit est montr\ u233?e s\u233?ance tenante aux interlocuteurs pour validation. Plus rapidement on \ u233?liminera les erreurs, et plus on pourra s'appuyer sur un terrain solide pour continuer. Cet ouvrage donne plusieurs exemples de mini-anticipations, comme les check-Iists. et de microanticipations, comme la reformulation. Cependant, ces microanticipations ne sont pas toujours r\u233?alisables, ni m\u234?me souhaitables. C'est l'exp\u233?rience qui permet de savoir s'il est opportun de les mettre en \u339?uvre. L'analyste doit mettre en balance le b\u233?n\u233?fice apport\u233? par une analyse ou une formalisation imm\u233?diate, et sa possible remise en question par la suite (lors d'une autre interview, par exemple). Le travail it\u233?ratif Travailler par < couches horizontales \u187? peut \u234?tre tr\u232?s int\u233?ressant. Mais l\u224? aussi, il n'y a pas de r\u232?gle absolue. Dans son ouvrage sur le travail collaboratif sur les exigences3. Ellen Gottesdiener consacre un chapitre entier aux diff\u233?rentes mani\u232?res de naviguer entre les exigences avec les groupes de travail, soit horizontalement, par couches successives, soit verticalement, en descendant dans les d\u233?tails au cours d'une r\u233?union, soit m\u234?me en zigzag. La premi\u232?re couche horizontale, celle de la d\u233?finition des objectifs et du cadre, sera g\u233?n\u233?ralement bien s\u233?par\u233?e des autres. Nous l'avons d\u233?crite en d\u233?tail au chapitre 6. Elle donne lieu \u224? un livrable particulier. Rien n'emp\u234?che d'ailleurs d'utiliser ce livrable comme premier chapitre du cahier des charges. 3. Ellen Gottesdiener, Requiiements by collaboration, Addi- son-Wesley, 2002. La m\u233? thode du document navette Un principe simple La technique consiste \u224? mener les travaux, du premier recueil des objectifs jusqu'\u224? la validation finale, autour de la cr\u233?ation et de la tenue \u224? jour fm\par\pard\plain\hyphpar} { ie 2 - D\u233?veloppement des exigences d'un document unique, le cahier des charges. Cette d\u233?marche simple et efficace pr\u233?sente plusieurs avantages : \u8226? Le cahier des charges devient le fil directeur du projet. Il est \u224? la fois le mat\u233?riau sur lequel on travaille et l'objectif \u224? atteindre. \ u8226? La progression est visible de tous. L'enrichissement progressif d'un document partag\u233? permet \u224? chacun de constater les progr\u232?s en temps r\u233?el. \u8226? Les acteurs ont un seul et unique document \u224? g\u233?rer. Ce document central va devenir un v\u233?ritable outil de communication entre les parties prenantes. Avant de partager le document, il faudra figer, autant que possible, le mod\u232?le de cahier des charges, qui va couvrir les diff\u233?rents aspects du projet et faciliter la structuration des id\u233?es et des activit\u233? s. Le sommaire du document va constituer un guide pour le recueil et l'analyse des besoins, la d\u233?finition fonctionnelle et les orientations de solution. Toute modification ult\u233?rieure devra faire l'objet de n\u233?gociations. Cette \u233? tape est sous la responsabilit\u233? de l'analyste, qui est le garant de la forme et de la m\u233?thode. En s'\u233?toffant, le document va permettre de contr\u244? ler la couverture et la progression de tous les aspects, au fur et \u224? mesure de l'avancement du projet. Bien entendu, cela n'emp\u234?che pas de pr\u233?voir des documents compl\u233?mentaires (comptes-rendus de r\u233?unions du comit\u233? de pilotage, par exemple). Mais c'est toujours le document navette qui fait foi. De mani\u232?re \u224? optimiser ses travaux d'animation et de conseil \u224? la ma\ u238?trise d'ouvrage, l'analyste va enrichir le cahier des charges de fa\u231?on continue au cours des \u233?tapes de recueil, d'analyse et de sp\u233?cification, ce qui r\u233?duira l'effort de r\u233?daction et de validation. Le document changera de version au cours du projet, en passant d'un \u233?tat exploratoire \ u224? un \u233?tat provisoire, pour se figer, apr\u232?s validation par les parties prenantes, \u224? l'\u233?tat de r\u233?f\u233?rence. Cette mani\u232?re de proc\ u233?der permet le partage du contr\u244?le de la qualit\u233? des livrables pour ainsi dire en temps r\u233?el, et un dialogue plus fluide entre ma\u238?trise d'ouvrage et ma\u238?trise d'oeuvre. Le mod\u232?le de cahier des charges, puis les versions successives de celui-ci serviront de support \u224? ce dialogue. Cette coconstruction permet de d\u233?terminer pr\u233?cis\u233?ment les priorit\u233?s en termes d'exigences non fonctionnelles, car ma\u238?trise d'ouvrage et ma\u238? trise d'oeuvre construisent ensemble un vocabulaire commun et non ambigu. Une pratique simple et efficace La technique du document unique ne r\u233?sout pas tous les probl\u232?mes. Elle minimise le nombre de documents et demande beaucoup de rigueur dans la gestion des versions du cahier des charges. Plut\u244?t que de g\ u233?rer une multitude de documents (g\u233?n\u233?ralement non versionn\u233?s). on devra g\u233?rer les versions multiples, et g\u233?n\u233?ralement arborescentes, d'un document iro\par\pard\plain\hyphpar} { Chapitre 17 - Am\u233?liorer \u239?e processus central. C'est tout aussi complexe, mais plus efficace lorsque l'on ma\u238?trise la technique. Par exemple, le cahier des charges est \u224? mi-parcours : \u8226? Lors de la r\u233?union d'un groupe de travail, l'animateur note les exigences au fur et \u224? mesure du recueil, soit sur papier, soit directement sur le document lui-m\u234?me. Il peut utiliser une couleur diff\u233?rente pour les diff\u233?rentes modifications apport\u233?es (vert pour un nouveau texte, rouge pour un texte \u224? supprimer, violet pour un texte \u224? revoir, etc.). Il peut \u233?galement utiliser le mode r\u233?vision du traitement de texte (attention, certains ont beaucoup de mal avec le mode r\ u233?vision, d'autres ne le supportent tout simplement pas). \u8226? \u192? la fin de la r\u233?union, ou dans les deux jours qui suivent, l'animateur envoie le document aux diff\u233?rents acteurs, pour validation. \u8226? Les remarques sont prises en compte et une nouvelle version du document est cr\u233?\u233?e. Cette mani\u232?re de proc\u233?der peut \u233?galement \u234?tre mise en oeuvre si l'on utilise des outils de gestion des exigences. En fonction des circonstances et de la typologie des acteurs, l'outil sera soit directement utilis\u233? par les groupes de travail, soit uniquement utilis\u233? par le consultant ou les animateurs. La plupart des outils permettent de g\u233?n\u233?rer un document de sp\u233? cifications (cahier des charges en devenir) qui est le reflet de la base d'exigences. Ici. il n'y a pas de m\u233?thode unique, elle est tr\u232?s d\u233? pendante des outils utilis\u233?s et de la culture de l'entreprise. (ED\par\pard\ plain\hyphpar} { (PARTE Faire vivre les exigences Il est bien s\u251?r illusoire de penser que les exigences, une fois formul\u233?es, vont rester grav\u233?es dans le marbre. En r\ u233?alit\u233?, les exigences \u233?voluent tout au long du cycle de vie du logiciel, c'est-\u224?-dire avant, pendant, et apr\u232?s la phase d'exigences. Les changements dans les exigences vont donc impacter non seulement le cahier des charges, mais le produit en cours d'\u233?criture ou d\u233?j\u224? \u233?crit. La gestion des exigences est donc tr\u232?s li\u233?e \u224? la gestion des versions et de la configuration du logiciel. Dans ce cadre, les outils de gestion des exigences peuvent am\u233?liorer l'efficacit\u233? et la s\u233?curit\u233? de ce processus.\par\pard\plain\hyphpar} { Chapitre 18 La gestion des exigences Dans cet ouvrage, il a \u233?t\u233? essentiellement question de ce qu'il est convenu d'appeler le d\u233?veloppement des exigences, processus qui permet, en partant d'un objectif, d'aboutir \u224? un cahier des charges. En r\u233?alit\u233?, les demandes et contraintes \u233?voluent tout au long du cycle de vie du logiciel : pendant la phase d'exigences, mais \ u233?galement pendant les phases ult\u233?rieures : conception, r\u233?alisation, int\u233?gration et maintenance. Il est illusoire de penser que les exigences sont un jour stabilis\u233?es. Ce chapitre est consacr\u233? \u224? la gestion des demandes de changement, activit\u233? appel\u233?e gestion des exigences. La gestion des changements La gestion des changements des exigences est \u224? la fronti\u232?re de plusieurs activit\u233?s d'ing\u233?nierie du logiciel, en particulier la gestion des versions, la gestion de la configuration logicielle, et la gestion de projet. En effet, tout changement dans les exigences aura un impact sur : \u8226? la configuration du logiciel1 ; \u8226? les co\u251?ts et les d\u233? lais de livraison des diff\u233?rentes versions ; \u8226? les ressources engag\ u233?es pour op\u233?rer les modifications. L'\u233?tude de ces disciplines (gestion de configuration et gestion de projet) d\u233?passe le cadre de cet ouvrage. Nous n'en aborderons ici que les aspects en relation directe avec l'\u233? volution des exigences. Le changement en lui-m\u234?me est in\u233?vitable. Il doit \u234?tre contr\u244?l\u233? de mani\u232?re \u224? : \u8226? conserver la coh\ u233?rence entre demandes \u233?manant d'utilisateurs ou d'acteurs diff\u233?rents et non concert\u233?s ; 1. Gestion de configuration : discipline qui consiste \ u224? g\u233?rer les divers composants d'un syst\u232?me, ainsi que les modifications apport\u233?es au cours de son \u233?volution.\par\pard\plain\ hyphpar} { Partie 3 - Faire vivre les exigences 2. Le plus difficile : constituer une commission de contr\u244?le des changements qui soit l\u233?gitime et institutionnaliser le processus de contr\u244?le de mani\u232?re \u224? le rendre incontournable \u8226? ma\u238?triser le co\u251?t induit par une modification (une modification en apparence l\u233?g\u232?re, pourra induire un impact tr\u232?s important en termes de co\u251?ts, de d\u233?lais, d'architecture du produit) ; \ u8226? \u233?viter les \u171? sp\u233?cifications rampantes \u187?, suite \u224? une demande initiale souvent mal formul\u233?e et peu formalis\u233?e, avec des d\ u233?rives sur les d\u233?lais, les charges et la qualit\u233? du produit ; \u8226? contr\u244?ler le circuit de d\u233?cision, \u233?viter de court-circuiter les parties prenantes qui ont la l\u233?gitimit\u233? pour d\u233?cider ou conseiller ; \u8226? tracer les modifications demand\u233?es et les modifications faites. Les activit\u233?s Cette gestion du changement est donc essentielle, et \u233?vite que l'effort initial de recueil, d'analyse et de structuration des exigences soit perdu. Les activit\u233?s de gestion consistent \u224? : \u8226? \u233?valuer l'impact d'une exigence sur les exigences existantes, et l'impact de sa mise en \ u339?uvre sur le produite d\u233?velopp\u233? ou en cours de d\u233?veloppement ; \ u8226? estimer l'importance, l'urgence et la difficult\u233? de r\u233?alisation d'une modification, qui peuvent \u234?tre tr\u232?s diff\u233?rentes lorsqu'elles sont estim\u233?es par le demandeur (qui a une vision partielle de la situation) ou par les d\u233?veloppeurs (qui voient surtout les contraintes techniques) ; \u8226? n\u233?gocier les modifications et g\u233?rer les exigences selon les priorit\u233? s ainsi d\u233?finies, apr\u232?s obtention d'un consensus ; \u8226? suivre les modifications, et mettre \u224? jour les plannings ; \u8226? enregistrer les demandes et les modifications ; \u8226? mettre \u224? jour les documents (cahier des charges, sp\u233?cifications, documentation du produit). La commission de contr\u244?le des changements (CCB) Afin que les changements soient g\u233?r\u233?s plut\u244?t qu'impos\u233?s ou subis, la bonne pratique consiste \u224? mettre en place une commission de contr\u244?le des changements (en anglais. CCB. change conlrol board). Cette commission devra \u234?tre un passage incontournable pour toute demande de modification des exigences2. Toute demande de changement, m\u234? me minime, devra \u234?tre formalis\u233?e au moyen d'un formulaire ad hoc. puis passer par cette commission. La commission d\u233?cide de la suite \u224? donner, en fonction des priorit\u233?s de l'entreprise, des impacts sur les co\u251?ts et les d\u233?lais, des modalit\u233?s de prise en compte d'un changement dans les exigences. Plusieurs mod\u232?les d'organisation sont possibles, en fonction de la taille de l'organisation et du nombre de projets en cours. L'organisation la plus QJD\par\pard\plain\hyphpar} { Chapitre 18 - La gestion des exigences classique consiste \u224? mettre en place une commission par projet, pr\u233?sid\u233?e par le chef de projet ma\u238?trise d'\u339?uvre. La commission est form\u233?e au minimum d'un repr\u233?sentant de la ma\u238?trise d'\u339?uvre et d'un repr\u233?sentant de la ma\u238?trise d'ouvrage, ainsi que d'un expert et d'un gestionnaire de configuration. Elle se r\u233?unit \ u224? dates fixes, ou en cas de besoin. Ses pr\u233?rogatives sont : \u8226? la revue les demandes de changement ; \u8226? l'analyse d'impact (d\u233?l\u233?gu\ u233?e \u224? un d\u233?veloppeur ou expert) ; \u8226? la priorisation des demandes ; \u8226? la d\u233?cision de faire, de ne pas faire, ou de reporter le changement, en fonction des impacts sur les co\u251?ts et les d\u233?lais ; \u8226? le suivi de la mise en \u339?uvre du changement ; \u8226? en cas de difficult\u233?, l'escalade du probl\u232?me au plus haut niveau de d\u233?cision. La r\u233?union de la commission La gestion des changements sur les exigences est un processus rigoureux, illustr\u233? par la figure 18-1. *. <^D\u233?dsloo^> 1 ' PIA\u187?. .\u171?ut ^ior OK-^ ^ \'5cJf\'5c r^ Ordre de modification * Modification \'5c <^pprobatia\u239?>\ u8212? Figure 18-1 : Le processus de gestion des changements (ED\par\pard\plain\ hyphpar} { ie 3 - Faire vivre les exigences Chaque demande de changement est enregistr\u233?e, puis examin\u233?e par la commission de contr\u244?le des changements qui, en fonction de la nature, de l'urgence et de l'importance du changement \u224? apporter, la transmettra \u224? un expert (concepteur, d\u233?veloppeur, souvent plusieurs personnes) qui va analyser l'impact de la modification. Suite \u224? cette analyse, la commission de contr\u244?le des changements peut, soit rejeter la demande, soit d\u233?cider de demander une ou plusieurs modifications. Cette modification peut \u234?tre planifi\u233?e pour la version en cours de d\u233? veloppement, ou pour une version ult\u233?rieure. Lorsque toutes les modifications relatives \u224? une demande de changement ont \u233?t\u233? effectu\u233?es et approuv\u233?es, la demande est close. L'analyse d'impact L'analyse d'impact peut \ u234?tre effectu\u233?e par un ou plusieurs experts (assistant ma\u238?trise d'ouvrage, d\u233?veloppeur, testeur), mais elle est sous la responsabilit\u233? d'une seule personne, nomm\u233?ment d\u233?sign\u233?e. Elle se cona\u233?tise par une fiche (le tableau 18-1 est un exemple de fiche d'analyse d'impact). Les attributs des exigences Afin de pouvoir \u234?tre g\u233?r\u233?e, chaque exigence doit comporter un certain nombre d'attributs : \u8226? date de cr\u233?ation ; \ u8226? num\u233?ro de version ; \u8226? demandeur (partie prenante \u224? l'origine de la demande) ; \u8226? auteur (personne qui a formalis\u233? la demande) ; \ u8226? son statut (provisoire, mise en \u339?uvre, supprim\u233?e, ajourn\u233?e) ; \u8226? priorit\u233? ; \u8226? degr\u233? de stabilit\u233? ; \u8226? version du logiciel impact\u233? par le changement ; \u8226? et composant du logiciel o\u249? l'exigence est mise en \u339?uvre. Pour g\u233?rer tous ces attributs avec rigueur, mais sans surcharge excessive de travail, les outils de gestion des exigences deviennent vite indispensables. \u338?)\par\pard\plain\hyphpar} { Chapitre 18 - La gestion des exigences Tabfeau 18-1 - Un nod\u232?fe d\u171? fidw d'analyse d'impact Rapport d'analyse d'impact Num\u233?ro de demande de changement Intitul\u233? de la demande Description pr\u233?cise de l'exigence Pris en charge par : Le: Risques encourus si le changement est mis en \u339?uvre Risques encourus si le changement n'est pas mis en \u339?uvre Estimation du co\u251?t du changement (jours* hommes) Estimation de l'effort perdu (co\u251?t de la suppression d'une fonction d\u233?j\u224? existante + co\u251?t d'un d\u233?veloppement qui sera abandonn\u233?) Impact sur le planning global du projet Impact du changement sur les charges totales Impact sur la qualit\u233? finale des livrables (performances, maintenabilit\u233?... ) Autres exigences impact\u233?es T\u226?ches affect\u233?es si le changement est mis en \u339?uvre Probl\u232?mes d'int\u233?gration estim\ u233?s Liste des documents qui seront touch\u233?s par une modification Liste des modules de code qui seront touch\u233?s par une modification Liste de tous les autres \u233?l\u233?ments qui seront touch\u233?s par une modification L'\u233? volution des demandes de changement La figure 18-2 pr\u233?sente le diagramme d'\ u233?tats des demandes de changement et d'ordres de modification. fliTI\par\pard\ plain\hyphpar} { ie 3 - Faire vivre les exigences MOA ? Demande enregistr\u233?e Z\u239?Z' Demande \ u233?valu\u233?e nz D\u233?cision prise f Changements effectu\u233?s \u239? Demande dose \u239? MOE 1 Modification demand\u233?e \u239? ModBcattoo effectu\u233?e \ u239? Modification approuv\u233?e Figure 18-2 : Diagramme d'\u233?tat des demandes de changement Une demande de changement pourra donner lieu \u224? plusieurs ordres de modification (en effet, une demande peut impacter plusieurs composants du logiciel et faire appel \u224? des expertises diverses). Toute demande de changement va passer par des \u233?tats successifs : \u8226? propos\u233?e : enregistr\u233?e, soit sur une fiche pr\u233?vue \u224? cet effet, soit au moyen d'un outil de gestion des changements ou d'un outil de gestion des exigences ; \ u8226? approuv\u233?e par la commission de contr\u244?le des changements, elle a donn\u233? un ou plusieurs ordres de modification ; SB\par\pard\plain\hyphpar} { Chapitre 18 - La gestion des exigences \u8226? modifi\u233?e : les modifications correspondant \u224? la demande ont \u233?t\u233? prises en compte ; \u8226? v\ u233?rifi\u233?e : les tests correspondant \u224? la demande de changement ont \ u233?t\u233? effectu\u233?s ; \u8226? supprim\u233?e ou rejet\u233?e : la demande peut avoir \u233?t\u233? retir\u233?e par le demandeur ou rejet\u233?e (avec justification) par la commission. Une discipline n\u233?cessaire et rentable Le processus de gestion des changements des exigences que nous venons de d\u233?crire est complexe et demande de la rigueur et de la discipline : proc\u233?dures, commission, fiches \u224? remplir, analyses d'impact, suivi et tra- \u231?abilit\ u233?. Ces op\u233?rations ne sont pas si consommatrices de temps que l'on pourrait penser. Et contrairement \u224? ce que l'on pense souvent, elles ne sont pas un frein \u224? la cr\u233?ativit\u233? des d\u233?veloppeurs, elles ne servent qu'\ u224? canaliser cette cr\u233?ativit\u233?. Mettre en place cette \u171? bureaucratie de projet \u187? n\u233?cessite un changement culturel. La mise en place et l'institutionnalisation d'un tel processus peuvent prendre plusieurs mois. H faudra surtout \u233?viter de s'embarquer dans des processus \u171? usines \u224? gaz \u187?. disproportionn\u233?s \u224? la taille des projets et au type de produit d\u233?velopp\u233?. En revanche, cette discipline, m\u234?me l\u233?g\ u232?re, devra \u234?tre incontournable. Cette discipline permet de pr\u233?server une grande partie de l'effort consenti en amont, en phase de d\u233?veloppement des exigences. La coh\u233?rence des exigences, et donc du produit livr\u233?, est \ u224? ce prix. Remarquons que cet effort de gestion sera de toute fa\u231?on n\ u233?cessaire aux autres activit\u233?s de d\u233?veloppement, en particulier : \ u8226? \u233?valuation pr\u233?cise des charges ; \u8226? gestion optimale des ressources (d\u233?veloppeurs, testeurs) ; \u8226? alignement entre produit, sp\ u233?cification et documentation. \u338?)\par\pard\plain\hyphpar} { Chapitre 19 Les outils \u192? partir d'une certaine complexit\u233?, le besoin de mettre en \u339?uvre des outils de d\u233?finition ou de gestion des exigences se fait sentir. Utilis\u233?s \u224? bon escient par des personnes comp\u233?tentes, ils vont contribuer efficacement au processus. Mais attention, il y a aussi de fausses raisons de les utiliser et des pi\u232?ges \u224? \u233?viter. Check-list : votre projet en a-t-il besoin ? Comme nous l'avons vu. pour g\u233?rer les exigences et leurs \u233?volutions, il est n\u233?cessaire de tenir \u224? jour un certain nombre d'attributs pour chacune d'elles. Le besoin est fonction de l'importance du projet, c'est-\u224?-dire du p\u233?rim\u232?tre fonctionnel, de la taille des \u233?quipes et des besoins de tra\u231?abi- lit\u233? exig\u233?s. Sur un projet d'importance, la gestion d'informations telles que la date de cr\u233? ation ou de modification d'une exigence et ses liens de tra\u231?abilit\u233? deviennent un vrai casse-t\u234?te. Il est difficile, voire impossible, de g\u233? rer toutes ces informations \u224? la main. L'utilit\u233? des outils de gestion des exigences est fonction, entre autres : \u8226? du nombre d'exigences \u224? traiter, qui d\u233?pend du p\u233?rim\u232?tre fonctionnel et du niveau de d\u233? tail ; \u8226? du nombre d'attributs \u224? g\u233?rer pour chaque exigence, qui d\ u233?pend de la rigueur demand\u233?e au processus ; \u8226? du nombre de personnes en charge de recueillir, analyser, sp\u233?cifier, modifier les exigences ; \u8226? du temps d'historisation pr\u233?vu pour ces donn\u233?es, de la p\u233?rennit\ u233? dans le temps des exigences ; \u8226? du degr\u233? de r\u233?utilisation des exigences d'un projet \u224? l'autre ; \u8226? de la volatilit\u233? des exigences (n\u233?cessit\u233? de les modifier souvent) ;\par\pard\plain\hyphpar} { Partie 3 - Gestion des exigences \u8226? du nombre de r\u232?gles de gestion dont d\u233?pendent ces exigences ; \u8226? de la possibilit\u233? d'investir du temps \ u224? se former aux outils. Cette liste peut servir de check-list pour estimer grossi\u232?rement (mais rapidement) le besoin d'outiller. Les bonnes raisons d'utiliser les outils La premi\u232?re raison d'acqu\u233?rir un outil est li\u233? e au processus de d\u233?finition et de gestion des exigences elles-m\u234?mes. Un bon outil facilite l'application des bonnes pratiques de d\u233?veloppement (utilisation d'un mod\u232?le, mise en forme du texte) et de gestion des exigences (tra\u231?abilit\u233? des changements, gestion du cycle de vie des modifications). La seconde raison d'utiliser les outils concerne la gestion des changements dans leur ensemble. Dans un monde o\u249? tout va tr\u232?s vite et o\u249? les changements sont constants, les exigences sont rarement stables. Cela est vrai qu'il s'agisse des besoins (\u233?manant des clients) ou des contraintes (li\u233? es aux technologies), et m\u234?me des r\u232?gles de gestion. Tout changement dans les exigences aura des r\u233?percussions sur l'ensemble des autres activit\u233? s : conception, r\u233?alisation, tests, maintenance. La troisi\u232?me raison est la conformit\u233?. Les changements eux-m\u234?mes devront \u234?tre trac\u233?s. En effet, de nos jours, les entreprises sont soumises \u224? des contr\u244?les de plus en plus nombreux : audits, certifications (ISO ou autres), \u233?valuation des pratiques professionnelles, accr\u233?ditations, normes et standards de conformit\ u233?, de tra\u231?abilit\u233?. de s\u233?curit\u233?... le logiciel lui-m\u234?me n'\u233?chappe pas. bien s\u251?r. \u224? ces obligations : s\u233?curit\u233?, interop\u233?rabilit\u233?, conformit\u233? \u224? des r\u232?gles de gestion de toute sorte font partie du lot quotidien des analystes et d\u233?veloppeurs. On se dit que bient\u244?t, la for\u234?t de la conformit\u233? va cacher l'arbre de la fonctionnalit\u233?. \u219?uoi qu'il en soit, il faudra faire avec. Fonctions de base et Fonctions avanc\u233?es Fonctions de r\u233?f\u233?rentiel Un outil de gestion des exigences est avant tout un r\u233?f\u233?rentiel. Il permet de stocker, et de retrouver facilement, l'ensemble des exigences, leurs attributs et leurs liens de tra\u231?abilit\u233?. Il arrive avec un certain nombre de fonctions de cr\u233?ation, de retrait, de modification, et de suppression des exigences ou de leurs attributs. Il permet de contr\u244?ler l'acc\u232?s \u224? ces informations, d'o\u249? son utilit\u233? pour le travail de groupe. SD\par\pard\ plain\hyphpar} { Chapitre 19 - Les outils \u8226? Stockage. Les exigences sont stock\u233?es, g\ u233?n\u233?ralement dans une structure arborescente, sous une forme ind\u233? pendante du document final de sp\u233?cifications (cahier des charges). Le r\u233? f\u233?rentiel stocke, en plus des attributs, l'\u233?tat de chaque exigence (propos\u233?e, en cours, valid\u233?e, etc.). \u8226? Filtrage. Il est possible d'utiliser des filtres pour visualiser une partie seulement de l'arborescence. \ u8226? Tra\u231?abilit\u233? des acc\u232?s. L'outil trace tous les acc\u232?s \ u224? une exigence ou \u224? un attribut. \u8226? Gestion des liens entre exigences, et possibilit\u233? de suivre les liens de tra\u231?abilit\u233? horizontale ou verticale. Tra\u231?abilit\u233? horizontale et verticale Les exigences sont reli\u233?es entre elles de plusieurs fa\u231?ons. On d\u233?nombre au moins deux types de tra\u231?abilit\u233? : \u8226? La tra\u231?abilit\u233? verticale lie les exigences et leur \u233?volution au long du cycle de vie du logiciel, depuis les exigences de haut niveau jusqu'aux composants du logiciel. \ u8226? La tra\u231?abilit\u233? horizontale lie les versions successives d'une m\ u234?me exigence. i > Objectif X \u239? Exigence m\u233?tier Y \u239? Exigence utilisateur Z (VO) \u239? Exigence utilisateur Z (V1) Exigence utilisateur Z <V2) Exigence utilisateur Z <V3) Exigence \u233?l\u233?mentaire VO Tra\u231?abilit\u233? horizontale Figure 19-1 : Tra\u231?abilit\u233? horizontale et verticale Ces deux types de lien de tra\u231?abilit\u233? sont indispensables si l'on veut contr\u244? ler et g\u233?rer \u224? long terme les demandes de changements. Or, au-del\u224? d'une certaine taille de projet, le maintien de ces liens de tra\u231?abilit\u233? est quasiment impossible sans la mise en \u339?uvre d'outils ad\u233?quats. QJB\ par\pard\plain\hyphpar} { Partie 3 - Gestion des exigences Gestion des attributs Seul un outil permettra de renseigner facilement tous ces attributs, dont certains (date, auteur, etc.) de mani\u232?re automatique. Avec un document texte, cet exercice est un v\u233? ritable casse-t\u234?te. L'utilisation d'un tableur est une solution de contournement. mais ne permet pas de stocker (ou tr\u232?s difficilement) les exigences qui se pr\u233?sentent sous forme de tableau ou de graphique. La plupart des outils permettent \u224? un administrateur de param\u233?trer les attributs et de cr\u233?er des types d'attributs diff\u233?rents en fonction du type d'exigence. Tout utilisateur pourra visualiser les attributs de chaque exigence, et certains utilisateurs pourront modifier des attributs en fonction de leur habilitation. Un tr\u232?s grand iM\u239?mbre d'attributs peuvem \u234?tre quekjuesflrts : \u8226? date de cr\u233?ation; \u171? version actuelle; \u8226? auteur (te r\u233? dacteur) ; \u8226? responsable de la mise en \u339?uvre; \u8226? demandeur (pas n\ u233?cessairement utilisateur du produit) ; \u8226? b\u233?ii\u233?iKfc^\u233?n g\ u233?nfo^^ \u8226? version dVproduit o\u249? fexi^ \u8226? statiit (provisoire, en cours d*\u233?tu^ \u8226? volatilit\u233? (exigence provisone ou p\u233?ienne) ; \ u8226? seufls de tol\u233?rant (pour les exigera \u8226? tra\u231?atrtit\u233? horizontate et verticale. S'y ajoutent les attributs concernant la modification apport\u233?e \u224? une exigence : date, auteur/o^inarrfeui;justi6(ation,ete. Travail d'\u233?quipe Ces fonctions favorisent un travail d'\u233?quipe suret efficace, qui est p\u233?nible et risqu\u233? (voire impossible) lorsque l'on partage un document sous traitement de texte. \u8226? Tra\u231?ablllt\u233?. L'outil garde la trace de toutes les modifications faites sur une exigence ou un attribut, ainsi que de la date et l'auteur de chaque modification. SD\par\pard\ plain\hyphpar} { Chapitre 19 - Les outils \u8226? Contr\u244?le d'acc\u232?s. L'outil g\u232?re les acc\u232?s aux exigences et aux diff\u233?rents attributs, en fonction de droits d'acc\u232?s param\u233?trables. \u8226? S\u233?curisation des modifications. L'outil bloque l'acc\u232?s en \u233?criture \u224? des exigences en cours de modification, n'autorisant que les acc\u232?s en lecture. \u8226? Communication de projet L'outil envoie un message aux diff\u233?rents utilisateurs lorsqu'une exigence ou un ensemble d'exigences viennent d'\u234?tre modifi\u233?es. Il garde la trace d'une discussion concernant une exigence particuli\u232?re. \u8226? Gestion de projet L'outil conserve l'\u233?tat de chaque exigence (en cours, \u224? valider, \u224? modifier...). Cela facilite le suivi. Gestion des versions et des changements Ces fonctions rendent ce type d'outil proche des outils de gestion des versions et de la configuration (ils peuvent d'ailleurs s'interfacer avec certains d'entre eux). \u8226? Versionnement L'outil garde la trace des changements faits sur une exigence et incr\u233?mente son num\u233?ro de version. \u8226? Mise en r\ u233?f\u233?rence (basellning). L'outil permet de figer une configuration de r\ u233?f\u233?rence (baseline) et de cr\u233?er de nouvelles versions d'une sp\u233? cification d'exigences en s'appuyant sur une configuration de r\u233?f\u233?rence existante. \u8226? Automatisation du processus. Certains outils facilitent le processus de gestion des changements d'exigences en liaison avec la gestion des versions des exigences. R\u233?daction et documentation On constate donc qu'un outil de gestion des exigences est beaucoup plus int\u233?ressant qu'un traitement de texte. Il n'emp\u234?che qu'une large partie du travail consiste \u224? r\u233? diger et que le livrable final est souvent un texte avec toutes les contraintes de r\u233?daction et de typographie en vigueur. L'outil doit donc \u234?tre capable de faciliter la r\u233?daction et la pr\u233?sentation documentaire. Entre autres fonctions, on trouve les suivantes : \u8226? Respect du mod\u232?le de sp\u233? cifications. Il est possible de param\u233?trer la structure des exigences selon un mod\u232?le pr\u233?d\u233?fini. On force ainsi le respect d'un mod\u232?le de cahier des charges. \u8226? Glossaire. L'outil permet d'alimenter et maintenir un glossaire des termes, et chercher les occurrences d'un terme du glossaire. \u8226? Respect des r\u232?gles d'\u233?criture. Outre le classique correcteur orthographique, l'outil poss\u232?de des fonctions de recherche contextuelle de termes flous, de phrases ambigu\u235?s, de mots inconnus, de certaines incoh\u233? rences. \u338?)\par\pard\plain\hyphpar} { Partie 3 - Gestion des exigences \u8226? G\u233?n\u233?ration automatique de documents. \u192? partir d'un mod\u232?le de document pr\u233?d\u233?fini, du contenu du r\u233?f\u233?rentiel et d'un ensemble de filtres, l'outil g\u233?n\ u232?re automatiquement le cahier des charges ou tout autre document de sp\u233? cifications. \u8226? Int\u233?gration de graphiques. L'outil permet de cr\u233?er ou d'int\u233?grer des exigences sous forme graphique : sc\u233?narios, mod\u232? les de donn\u233?es, etc. \u8226? Import de documents. L'outil permet d'int\u233? grer des exigences contenues dans un cahier des charges dans le r\u233?f\u233? rentiel, en fonction de r\u232?gles param\u233?trables -. par exemple, niveau de titre ou style de paragraphe correspondant \u224? un niveau ou type d'exigence. Attention aux mirages On le voit, les avantages de ces outils sont certains. Prenons garde, n\u233?anmoins, \u224? ne pas tomber dans le pi\u232?ge des outils. \u192? lui seul, aucun outil ne se substituera \u224? une bonne organisation et \u224? une discipline rigoureuse. Si les exigences sont mal g\u233? r\u233?es, un outil n'y fera rien. Il pourra m\u234?me avoir un effet contre- productif. Citons quelques-unes des fausses bonnes raisons d'acqu\u233?rir un outil : \u8226? \u171? Il g\u232?re mieux les sp\u233?cifications et la documentation des exigences \u187?. C'est faux. La r\u233?daction du cahier des charges se fait par des personnes comp\u233?tentes. Un traitement de texte pourra les aider, bien mieux qu'un outil de gestion des exigences. \u8226? \u171? Il g\u232?re mieux les changements des sp\u233?cifications et de la documentation \u187?. C'est vrai, mais partiellement. La gestion des changements est une affaire de processus et de personnes. En termes d'outils, un tableur pourra faire l'affaire. Ce n'est que sur la combinatoire gestion des changements et gestion de la documentation qu'un outil apportera sa pleine puissance, car il permet de lier automatiquement les deux. \ u8226? \u171? Il facilite le travail de v\u233?rification et de validation \u187?. Ce n'est que tr\u232?s partiellement vrai. Effectivement, certains outils disposent de fonctions de recherche en plein texte et de d\u233?tection de phrases douteuses, mais le gros du travail est intellectuel et ne peut \u234?tre pris en charge par quelque outil que ce soit. Quand et comment choisir un outil ? Inutile de choisir un outil si l'on n'a pas, d\u233?j\u224?, un mod\u232?le de document \u224? peu pr\ u232?s stable et un processus rigoureux de d\u233?finition et de gestion des exigences. Comme nous l'avons dit plus haut, un bon outil ne peut pallier QQ\par\ pard\plain\hyphpar} { Chapitre 19 - Les outils un processus d\u233?faillant, il ne peut qu'empirer la situation. De plus, il vaut mieux choisir un outil en fonction du processus que l'inverse. Un outil de gestion des exigences doit \u234?tre s\u233?lectionn\u233? comme tout logiciel : \u8226? en analysant l'existant et le contexte de l'organisation ; \u8226? en pr\u233?cisant les objectifs (par exemple, am\u233? liorer la productivit\u233?, s\u233?curiser les acc\u232?s, automatiser la production de documents, r\u233?utiliser les exigences) ; \u8226? en recueillant les besoins, en les analysant, en les sp\u233?cifiant dans un cahier des charges ; \u8226? en pr\u233?parant une grille de s\u233?lection efficace (on s'inspirera des fonctions d\u233?crites plus haut) ; \u8226? en \u233?tant rigoureux jusqu'au bout. Pour un analyste des exigences, ces actions semblent aller de soi, mais l'exp\u233?rience montre qu'il est plus difficile d'\u234?tre rigoureux quand on travaille pour sa propre organisation (pour savoir pourquoi, analysons les parties prenantes : celui qui finance mon outil est aussi celui qui me paye \u224? la fin du mois). Une fois l'outil s\u233?lectionn\u233?, acquis, install\u233?, il faudra le traiter comme tout autre logiciel. En particulier, il faudra se former \u224? l'outil, \u234?tre conseill\u233? par l'\u233?diteur (attention : la conduite du changement co\u251?te g\u233?n\u233?ralement beaucoup plus cher que l'outil lui-m\u234?me), et travailler sur le param\u233?trage. D'une mani\u232?re g\u233?n\u233?rale, il faut \u233?viter de se pr\u233?cipiter, et avoir un processus bien r\u244?d\u233? avant de \u171? l'embarquer \u187? dans l'outil. Ce que l'on ne peut pas accomplir avec un papier et un crayon, inutile de tenter de le faire avec l'outil, car sa complexit\u233? peut perturber. A contrario, si l'on s'est \u171? pris la t\u234?te \u187? \u224? de nombreuses reprises, avec un traitement de texte, l'arriv\u233?e de l'outil sera v\u233?cue comme un soulagement et ses b\u233?n\u233?fices vite appr\u233?ci\u233?s. GD\par\ pard\plain\hyphpar} { Chapitre 20 Au-del\u224? des exigences Le travail de l'analyste consiste \u224? sp\ u233?cifier les exigences, mais aussi \u224? \u233?valuer les solutions propos\ u233?es, et leur ad\u233?quation aux exigences sp\u233?cifi\u233?es. Pour y parvenir, nous pouvons utiliser diverses techniques, en compl\u233?ment ou \u224? la place de l'\u233?laboration d'un cahier des charges. Nous sommes ici aux confins de la phase d'exigences, et p\u233?n\u233?trons parfois dans la zone floue entre exigences et conception. Etude de choix Pour une \u233?tude comparative ou une \ u233?tude de choix, la d\u233?marche parfois appel\u233?e \u171? en entonnoir \ u187? (figure 20-1 ) est la plus classique : elle permet d'aller du g\u233?n\u233? ral au particulier et du global au d\u233?taill\u233?. Les \u233?tapes Les \u233? tapes de la d\u233?marche sont les suivantes : \u8226? Screenlng. Une dizaine de fournisseurs de logiciels, dont les produits correspondent, dans les grandes lignes, aux besoins du client, sont identifi\u233?s, et leurs produits sont pass\ u233?s en revue. On peut inclure dans cet ensemble des logiciels qui ne pr\u233? sentent pas toutes les caract\u233?ristiques requises, mais dont l'examen peut apporter des informations int\u233?ressantes, ou r\u233?v\u233?ler de nouveaux crit\u232?res de choix. \u8226? Pr\u233?s\u233?lection. En collaboration avec le client, nous examinons les cinq progiciels qui correspondent au mieux aux crit\ u232?res d\u233?finis par le client ; parall\u232?lement, la liste des crit\u232? res est affin\u233?e. On d\u233?termine les crit\u232?res obligatoires et les crit\ u232?res \u233?liminatoires. \u8226? Short-list. Toujours en collaboration avec le client, une liste restreinte (g\u233?n\u233?ralement trois logiciels) est fix\u233? e ; ces logiciels sont examin\u233?s de\par\pard\plain\hyphpar} { Partie 3 - Gestion des exigences pr\u232?s ; parall\u232?lement, et ind\u233? pendamment, les crit\u232?res sont pond\u233?r\u233?s lors d'une r\u233?union avec les responsables, chez le client. Approfondissement Les trois logiciels \u171? short-list\u233?s \u187? sont examin\u233?s de pr\u232?s. Une note est attribu\ u233?e \u224? chaque crit\u232?re. On aboutit, selon la demande du client, soit \ u224? la s\u233?lection d'un produit unique, soit \u224? un tableau comparatif permettant une prise de d\u233?cision efficace. Scraening Pr\u233?s\u233?lection Shortlist Approfondissement Figure 201 : La m\u233?thode de l'entonnoir Etude comparative complexe Il y a plusieurs fa\u231?ons de traiter les r\u233?ponses \ u224? un cahier des charges. On peut proc\u233?der \u224? une analyse comparative tenant compte de contraintes multiples, non seulement fonctionnelles, techniques et organisation- nelles, mais \u233?galement strat\u233?giques ou politiques. Une fois l'\u233?tude faite, le challenge est de donner \u224? un d\u233?cideur de haut niveau, non sp\u233?cialiste, une vision tr\u232?s claire des potentialit\u233?s des diff\u233?rentes solutions en pr\u233?sence, et ce. souvent en moins de cinq minutes. L'\u233?tude se fera comme pr\u233?c\u233?demment, et inclura des \u233?l\ u233?ments suppl\u233?mentaires d'expertise sur des points particuliers (int\u233? grabilit\u233?, d\u233?ploiement, conduite du changement, etc.). La pr\u233? sentation des r\u233?sultats devra \u234?tre < percutante \u187?. Pour cela, on devra fournir aux d\u233?cideurs des tableaux et des sch\u233?mas extr\u234?mement simples, contenant le minimum d'informations. L'information plus d\u233?taill\u233? e sera jointe si n\u233?cessaire en annexe. Tableau de B.O.R.D. Le tableau de B.O.R.D. (B\u233?n\u233?fices, Opportunit\u233?s. Risques. Dangers) est une variante du tableau SWOT (Strengths. Weaknesses. Opportumtks, Threats, GD\par\pard\ plain\hyphpar} { Chapitre 20 - Au-del\u224? des exigences c'est-\u224?-dire forces, faiblesses, opportunit\u233?s et menaces) en plus contrast\u233?. L'id\u233?e est de pr\u233? senter un tableau tr\u232?s synth\u233?tique, \u224? l'usage des d\u233?cideurs. Ce tableau indique, pour chaque solution pr\u233?sent\u233?e, les : \u8226? B\u233?n\ u233?fices : avantages procur\u233?s de fa\u231?on certaine ou tr\u232?s probable par l'acquisition du produit, \u224? court ou moyen terme, sans investissement, ou avec un investissement faible. \u8226? Opportunit\u233?s : avantages apport\u233?s par le produit, au prix d'un effort financier ou organisationnel raisonnable. \ u8226? Risques : difficult\u233?s pouvant surgir, avec une probabilit\u233? faible ou moyenne, suite \u224? la mise en place du produit, et pouvant \u234?tre surmont\ u233?es avec un investissement financier ou organisationnel raisonnable. \u8226? Dangers : difficult\u233?s lourdes de cons\u233?quences, ayant une forte probabilit\u233? de surgir suite \u224? la mise en place du produit, et ne pouvant \u234?tre jugul\u233?es que par un effort financier ou organisationnel important. Dans l'exemple1 donn\u233? au tableau 20-1. la solution Y a \u233?t\ u233? choisie, car elle apporte un v\u233?ritable avantage concurrentiel sans risques insurmontables. La solution X semble moyennement bien plac\u233?e, la solution Z risqu\u233?e. Cependant, le choix revient au d\u233?cideur, qui aurait pu en d\u233?cider autrement. Tableau 20-1 - Tabteau d\u171? B.O.R.D B 0 R D Solution X Possibilit\u233? pour le client de d\u233?velopper sa propre solution. Manque d'exp\u233?rience du fournisseur sur des projets d'envergure similaire. Solution Y Exp\u233?rience dans au moins un projet d'envergure et de nature similaires. Excellente capacit\u233? de conseil et de gestion de projet. Solution ouverte, en particulier extensible (workfiow). Possibilit\u233? de tirer profit de l'exp\u233?rience chez un autre client Produit complexe, exigeant une bonne formation et un bon suivi de projet Solution Z Possibilit\u233? de tirer profit de l'exp\u233?rience de l'entreprise \u171? W \u187?. Solution ferm\u233?e, difficilement extensible ; n\u233?gociations techniques difficiles. Solution tr\ u232?s contraignante pour l'utilisateur final 1. L'exemple pr\u233?sent\u233? id correspond \u224? un cas r\u233?d (outil de workfiow pour le syst\u232?me d'information administratif dans l'industrie automobile). Q0\par\pard\plain\ hyphpar} { Partie 3 - Gestion des exigences Graphique de synth\u232?se Le graphique de la figure 20-2 fait la synth\u232?se des \u233?l\u233?ments mentionn\u233?s dans le texte du rapport et les tableaux, et permet de comparer les diff\u233?rentes solutions propos\u233?es en mettant en balance les b\u233?n\u233?fices apport\u233? s et les difficult\u233?s pressenties. Il permet de comparer : \u8226? les b\u233? n\u233?fices, qui se d\u233?composent en : - r\u233?ponse de l'offre aux exigences du cahier des charges. - potentiel d'\u233?volution de la solution propos\u233?e. - capacit\u233? de service du fournisseur : conseil, support, et assistance technique ; \u8226? et les co\u251?ts pour le client, qui se d\u233?composent en : - prix d'achat et co\u251?t de la mise en \u339?uvre. - co\u251?ts de la phase transitoire (baisse initiale de la productivit\u233? du personnel), - conduite du changement (formation, information et accompagnement). " Solution X Solution Y Solution Z | Capacit\u233? de service S Potentiel d'\u233?volution R\u233?ponse aux exigences I Achat et mise en \u339?uvre Q Phase transloire | Conduite du changement Figure 202 : Graphique comparatif de synth\u232?se co\u251?ts/b\u233?n\u233?fices \u201? tude d'opportunit\u233? complexe Un exemple d'\u233?tude Une \u233?tude d'opportunit\u233? peut \u234?tre tr\u232?s complexe et faire \u224? appel \u224? des comp\u233?tences et des savoir-faire tr\u232?s divers. Dans l'exemple qui suit, nous QQ\par\pard\plain\hyphpar} { Chapitre 20 - Au-del\u224? des exigences allons d\u233?crire une \u233?tude qu'un cabinet de conseil a effectu\u233?e pour une grande ville fran\u231?aise. Il s'agissait d'\u233?tudier l'opportunit\u233? de remplacer toute la bureautique existante par du logiciel libre. L'\u233?tude a mobilis\u233? deux consultants seniors (un consultant ma\u238?trise d'ouvrage et un expert technique) pendant trois mois, avec une charge totale de 50 jours- hommes. \u8226? \u201?tape 1 : lancement. Il s'agit ici de d\u233?finir le p\u233?rim\u232?tre de la mission, d'identifier les acteurs (tr\u232?s nombreux), et de figer le plan d\u233?taill\ u233? des livrables \u8226? \u201?tape 2 : \u233?tude de la strat\u233?gie d'\u233? volution. L'objectif est de d\u233?finir l'ordre et la strat\u233?gie de mise en place d'un projet de passage au logiciel libre dans l'administration de la ville. \ u8226? \u201?tape 3 : \u233?tat des lieux fonctionnel et technique sur l'existant. Elle consiste en une consultation de l'Administration (France) au moyen d'interviews des responsables informatiques (d\u233?veloppement, maintenance et exploitation). \u8226? \u201?tape 4 : \u233?tude de l'exp\u233?rience dans une autre ville europ\u233?enne. L'objectif de cette \u233?tape est d'avoir un retour d'exp\u233?rience dans une administration analogue, dans un autre pays europ\u233? en, et de conna\u238?tre les avantages, inconv\u233?nients, co\u251?ts, contraintes, difficult\u233?s rencontr\u233?es suite au passage au logiciel libre. \u8226? \u201?tape 5 : \u233?tude des besoins des d\u233?cideurs et utilisateurs. Ce n'est qu'\u224? cette \u233?tape qu'intervient l'\u233?tude des besoins, \u224? tr\u232?s grosses mailles. L'objectif n'est pas de d\u233?finir des besoins fonctionnels, mais d'avoir un avis des d\u233?cideurs et futurs utilisateurs. Une majorit\u233? d'entretiens a \u233?t\u233? faite par t\u233?l\ u233?phone. \u8226? \u201?tape 6 : \u233?tude des produits disponibles et de leur utilisation. L'objectif est ici de conna\u238?tre les contraintes techniques inh\ u233?rentes au passage au logiciel libre, les avantages, inconv\u233?nients, le potentiel de ces outils. L'\u233?tape a consist\u233? \u224? examiner les diff\ u233?rents types de produits logiciels libres sur le march\u233? (r\u233?seaux, syst\u232?mes d'exploitation, applicatifs...). On a essentiellement examin\u233? l'utilisation qui en \u233?tait faite. Cela a n\u233?cessit\u233? de rencontrer \ u224? la fois les utilisateurs et les industriels. \u192? cette \u233?tape, les aspects techniques \u233?taient secondaires. \u8226? \u201?tape 7 : \u233?tude des contraintes techniques. On a examin\u233? les contraintes techniques sur le mat\ u233?riel et le logiciel, et analys\u233? l'impact li\u233? au renouvellement du parc informatique (mises \u224? niveau, migration ou portage des applications, impacts sur la s\u233?curit\u233?). QO\par\pard\plain\hyphpar} { Partie 3 - Gestion des exigences L'analyse a permis de mettre en regard les contraintes et les produits disponibles. \u8226? \u201?tape 8 : \u233?tude des aspects financiers. On a examin\u233? les aspects financiers sur plusieurs crit\ u232?res : utilisation, mise en \u339?uvre, conversion de fichiers, co\u251?ts des \u233?mulateurs (pour les applications qui n'ont pas d'\u233?quivalent dans le monde du logiciel libre), mise en \u339?uvre de la s\u233?curit\u233?, migration des applicatifs et formation. \u8226? \u201?tape 9 : synth\u232?se tenant compte des aspects techniques, organisa- tionnels et financiers. Cette synth\u232?se comprend : les sc\u233?narios cibles de passage, l'analyse technique, l'analyse \ u233?conomique, l'analyse des risques. Elle est formalis\u233?e par un tableau de synth\u232?se pour l'estimation du co\u251?t de la migration, et un tableau de bord avantages et inconv\u233?nients pour chaque sc\u233?nario. Une mission \u224? la limite Une mission de conseil de ce type est \u224? la fronti\u232?re entre la d\ u233?finition des besoins et une \u233?tude pr\u233?alable \u224? un sch\u233?ma directeur. Dans cette mission, l'\u233?tude des besoins proprement dite, au sens de l'ing\u233?nierie des exigences, n'occupe qu'une place modeste. L'\u233?tude a \ u233?t\u233? men\u233?e par un consultant senior et un expert technique. Les tr\ u232?s forts enjeux politiques ont constitu\u233? une difficult\u233? suppl\u233? mentaire. Cependant, si le consultant senior avait eu le r\u233?flexe de mener une analyse formalis\u233?e des parties prenantes, certains \u233?cueils auraient probablement \u233?t\u233? \u233?vit\u233?s. Une autre difficult\u233? provient de la dichotomie op\u233?r\u233?e entre les aspects techniques et les autres, accentu\ u233?e par le fait que les consultants \u233?taient de profils tr\u232?s diff\u233? rents. Tout au long de cet ouvrage, nous avons pu voir que les exigences pouvaient \u234?tre structur\u233?es en \u171? couches \u187?. depuis les exigences strat\u233?giques (en l'occurrence, politiques) jusqu'aux exigences fonctionnelles et techniques. Les consultants ont examin\u233? ces deux aspects extr\u234?mes, sans consacrer le temps n\u233?cessaire \u224? l'examen des exigences de niveaux interm\u233?diaires (exigences m\u233?tier et exigences utilisateurs). Etude d'int\ u233?grabilit\u233? et design Tout au long de cet ouvrage, nous avons r\u233?p\ u233?t\u233? cette recommandation \u224? la mani\u232?re d'un dogme : il faut sp\ u233?cifier des besoins, et non une solution. Cela reste toujours vrai lorsque l'on \u233?labore un cahier des charges. QQ\par\pard\plain\hyphpar} { Chapitre 20 - Au-del\u224? des exigences Ce n'est qu'\u224? la phase suivante, la phase de conception, que l'on sp\u233?cifie la solution. Or. la fronti\u232?re entre d\u233?finition des besoins et conception de la solution n'est pas toujours \ u233?tanche. Prenons un cas fr\u233?quent : nous avons \u233?labor\u233? un cahier des charges pour une application de gestion complexe. Plus pr\u233?cis\u233?ment, nous avons d\u233?fini les exigences pour un syst\u232?me d'information (sans m\ u234?me parler d'application, puisque nous cherchons une solution). Ce cahier des charges, nous l'avons \u233?labor\u233? dans les r\u232?gles de l'art, dans le plus strict respect de la m\u233?thodologie. Puis nous avons \u233?labor\u233? une grille de d\u233?pouillement qui reprend point par point chaque exigence. Cependant, les offres des fournisseurs ressemblent \u224? ce que l'on peut voir dans la figure 20-3 : malgr\u233? leurs qualit\u233?s respectives, aucun produit ne correspond parfaitement \u224? la demande. Cependant, le besoin peut \u234?tre couvert par une int\u233?gration entre deux des logiciels, ou les trois logiciels. Grill* de d\u233?pouillemenj Exigence 1i Exigence 2- Exigence 3' Exigence 4\'5c Exigence 5' Exigence 6> Exigence 7. Exigence 8 X Offre A /Exigence 1 /Exigence 2 /Exigence 3 \u9632?XFxigenced X Exigence 5 Exigence 6 X Exigence 8 Offre C /Exigence' X Exigence 2 X Exigence 3 V / Exigence 4 X Exigence 5 / Exigence 6 X Exigence 7 /Exigence 8 Offre B ./Exigence 1 X Exigence 2 X Exigence 3 ./ Exigence 4 X Exigence 5 X Exigence 6 ./Exigence 7 X Exigence 8 Figure 20-3 : Des exigences \ u224? l'architecture de la solution Nous venons de franchir la fronti\u232?re qui s\u233?pare les exigences de la conception. Nous sommes face \u224? un probl\u232? me de design, d'architecture du syst\u232?me d'information. Nous devons faire un choix entre trois sc\u233?narios : \u8226? choisir un produit parmi les trois et faire d\u233?velopper en sp\u233?cifique les fonctions manquantes ; \u8226? faire d\u233?velopper une interface entre les deux produits ; \u8226? faire int\u233?grer les trois produits. QE)\par\pard\plain\hyphpar} { ie 3 - Gestion des exigences L'\u233?tude de l'int\u233?gration entre diff\u233? rentes < briques \u187? du syst\u232?me d'information doit se faire non seulement sur le plan technique, mais aussi sur le plan \u233?conomique, et aussi sur le plan de l'ergonomie. Deux produits peuvent tr\u232?s bien communiquer entre eux sur le plan technique et aboutir \u224? une catastrophe en ce qui concerne l'utilisabilit\ u233?. la fiabilit\u233?, et bien s\u251?r la maintenabilit\u233? de la solution. Apr\u232?s \u233?tude, nous devrons reformuler notre demande vis-\u224?-vis d'un, de deux ou de trois fournisseurs, et donc \u233?laborer un nouveau cahier des charges. Et nous voil\u224? de nouveau pass\u233?s de l'autre c\u244?t\u233? de la fronti\u232?re, \u224? nouveau dans la phase d'exigences. Voil\u224? pourquoi on dit que la fronti\u232?re entre la phase d'exigences et la phase de conception est souvent floue. (ED\par\pard\plain\hyphpar} { Chapitre 21 NeuF conseils Nous avons d\u233?crit le processus, la d\u233?marche d'\ u233?laboration, les \u233?tapes, techniques et outils. Nous avons montr\u233? pourquoi et comment le processus peut \u234?tre adapt\u233? aux diff\u233?rents contextes, et pourquoi et comment il peut \u234?tre am\u233?lior\u233?. Voici quelques conseils pour r\u233?ussir encore mieux, plus efficacement. 1. Ayez toujours l'objectif en t\u234?te En principe, vous connaissez l'objectif de votre client, et si ce n'est pas le cas. votre premi\u232?re t\u226?che consiste \u224? le d\u233?couvrir et le d\u233?finir avec pr\u233?cision. Votre objectif est align\ u233? sur celui de votre client, mais il n'est pas identique \u224? celui du client. Votre objectif \u224? vous, analyste des exigences, est de livrer \u224? votre client, \u224? l'heure convenue avec lui, un cahier des charges \u233?labor\ u233? selon les r\u232?gles de l'art. Vous pouvez affiner cette formulation et la mettre par \u233?crit. Il faudra la garder en t\u234?te et avancer. Vous devez tenir le cap contre vents et mar\u233?es. Il est parfaitement normal que le client lui-m\u234?me retarde le projet, change d'avis, en demande trop ou au contraire n'exprime rien. Il est normal que les id\u233?es divergent d'un acteur \u224? l'autre, que la motivation passe par des hauts et des bas, que l'analyste devienne l'exutoire de tous les conflits. Pour Hier la m\u233?taphore de la navigation, c'est lorsque le bateau tangue qu'il est utile de savoir clairement o\u249? l'on va. Vous devez garder le cap malgr\u233? les d\u233?rives. Cette vision claire de l'objectif vous permettra de planifier l'\u233?laboration du cahier des charges, et guidera vos d\u233?cisions lors de vos interventions sur le terrain.\par\pard\ plain\hyphpar} { Partie 3 - Gestion des exigences 2. Analysez et validez au plus t\u244?t Dans les chapitres pr\u233?c\u233?dents, nous avons indiqu\u233? plusieurs raisons d'analyser et de valider au plus t\u244?t, et nous avons donn\u233? quelques techniques pour y parvenir. Mais il y a aussi des raisons psychologiques, qui sont compl\u233?mentaires aux raisons techniques. L'analyse au plus t\u244?t apporte une visibilit\u233? qui permet de mieux ma\u238?triser la situation et encourage les diff\u233?rents participants \u224? travailler ensemble. La validation au plus t\ u244?t donne un feedback rapide et une vision claire qui encouragent \u224? aller de l'avant. 3. Lancez-vous un d\u233?fi et donnez-vous les moyens de le r\u233? ussir La d\u233?finition des besoins ne devrait jamais \u234?tre une routine, car deux clients n'ont jamais le m\u234?me objectif, les m\u234?mes besoins, le m\u234? me pass\u233?, les m\u234?mes acteurs. \u201?laborer un cahier des charges est un travail difficile, m\u234?me pour les plus dou\u233?s et les plus exp\u233?riment\ u233?s d'entre nous. Certains consultants font du travail \u224? la cha\u238?ne, en br\u251?lant les \u233?tapes. Ils \u171? vendent \u187? \u224? leur client un cahier des charges pr\u233?fabriqu\u233?, en sp\u233?cifiant de mani\u232?re approximative des exigences valid\u233?es en vitesse par une minorit\u233? d'acteurs. Malgr\u233? les apparences, la valeur ajout\u233?e d'un tel document est faible. La satisfaction professionnelle, elle aussi, est faible. D'autres baissent les bras devant les difficult\u233?s. Ils pensaient que la t\u226?che serait facile. Elle ne l'est qu'en apparence. Les vraies difficult\u233?s sont humaines et concernent la r\u233?solution de conflits et la gestion des priorit\u233?s. La tentation est grande alors de faire de l'analyse des besoins une t\u226?che purement technique, et de court-circuiter certaines parties prenantes. Au premier abord, la qualit\u233? du livrable semble satisfaisante. L'ensemble est en apparence correct et complet. Mais le v\u233?ritable besoin n'a pas \u233?t\u233? cern\u233?. Le challenge est de concilier la rigueur et la souplesse, et de fournir un livrable dans un temps court et au moindre co\u251?t, sans que cela se fasse au d\u233?triment de la qualit\u233?. Pour y arriver, il faut utiliser la bonne d\ u233?marche et les bonnes techniques, s'y entra\u238?ner encore et encore, et aussi c\u233?l\u233?brer les r\u233?ussites.\par\pard\plain\hyphpar} { Chapitre 21 - Neuf conseils 4. Conciliez concepts et action de terrain Supposons que vous ayez lu un ou plusieurs ouvrages sur l'ing\u233?nierie des exigences ou l'\u233?laboration du cahier des charges pour le logiciel. Vous avez appris une d\ u233?marche, des concepts, sans rien mettre en pratique. Supposons maintenant qu'apr\u232?s cela, vous partez sur le terrain avec un consultant aguerri pour \ u233?laborer un cahier des charges. Il est fort probable que vous constatiez un fort d\u233?calage entre ce que vos avez lu et ce que vous voyez et entendez. Vous commencez \u224? avoir des doutes. Ce que vous avez lu est-il pure th\u233?orie, ou bien est-ce le consultant qui s'y prend mal ? La v\u233?rit\u233? doit se situer entre les deux. Sans doute le consultant utilise sa m\u233?thode, qui a fait ses preuves, sans chercher \u224? l'optimiser outre mesure. Peut-\u234?tre a-t-il pris quelques mauvais plis en m\u234?me temps qu'il a pris de l'assurance vis-\u224?-vis de ses clients. Mais le plus probable est qu'il utilise de nombreuses techniques d\ u233?crites dans cet ouvrage de mani\u232?re tr\u232?s souple. Pour un petit projet, les objectifs peuvent \u234?tre d\u233?crits en quelques lignes et appara\ u238?tre dans le compte-rendu d'une r\u233?union de lancement. De m\u234?me, l'analyse des parties prenantes peut \u234?tre faite rapidement et son r\u233? sultat tenir en quelques lignes. Lorsqu'on est d\u233?butant, il vaut mieux aller lentement, formaliser et tracer dans la mesure du possible, pour des raisons p\ u233?dagogiques et pour s\u233?curiser leur relation avec le client. Lorsque les bonnes pratiques sont devenues des r\u233?flexes, on peut prendre de l'assurance et de la vitesse. Dans le feu de l'action, quand le processus est optimis\u233?, les concepts et la pratique sont une seule et m\u234?me chose. 5. Concentrez-vous sur votre livrable Le d\u233?sir d'atteindre un livrable de qualit\u233? est le meilleur moteur de l'action. En pratique, cela signifie que les livrables interm\ u233?diaires, c'est-\u224?-dire les versions interm\u233?diaires du cahier des charges, m\u234?me \u171? en chantier \u187? doivent, toutes proportions gard\u233? es, \u234?tre irr\u233?prochables. Un document navette n'est pas un document poubelle. Les parties \u224? compl\u233?ter, \u224? retravailler, \u224? valider doivent \u234?tre clairement signal\u233?es au moyen de conventions connues de tous. Si des \u171? paquets d'exigences \u187?. en provenance de sources diverses, doivent \u234?tre int\u233?gr\u233?s au document interm\u233?diaire, cela doit se faire selon des r\u232?gles strictes, mais simples \u224? mettre en \u339?uvre. Avec cette mani\u232?re de proc\u233?der, l'\u233?quipe d'analystes et leurs clients ont \u224? leur disposition un document toujours pr\u233?sentable, sur lequel on peut discuter, qui demandera le moins de remaniement possible. Dans le cas contraire, l'\u233?quipe passera son temps \u224? bricoler et \u224? rafistoler, ce qui consomme beaucoup de temps et d'\u233?nergie.\par\pard\plain\ hyphpar} { Partie 3 - Gestion des exigences Sur le plan psychologique, cette m\u233?thode pr\ u233?sente aussi de nombreux avantages. On a plaisir \u224? travailler sur un document bien clair, on voit le travail avancer, et cela tire tous les participants dans une spirale vertueuse. Dans le cas contraire, c'est l'\u233?nervement permanent. 6. Sachez r\u233?ussir presque \u224? coup s\u251?r Savoir que l'on ne court aucun risque, ou presque, de rater un cahier des charges, est tr\u232?s s\ u233?curisant et permet de travailler dans de bonnes conditions. Encore faut-il savoir s'y prendre. Il y a un secret pour r\u233?ussir de cette mani\u232?re : la mission d'\u233?laboration d'un cahier des charges doit \u234?tre structur\u233?e de telle sorte que, quoi qu'il arrive, elle ne soit jamais un \u233?chec complet, et toujours une r\u233?ussite ou une quasi-r\u233?ussite. Mais comment faire ? D'apr\u232?s la \u171? loi \u187? de Pareto. 20 % de l'effort d'\u233?laboration permettra d'atteindre 80 % du r\u233?sultat escompt\u233?. En d'autres termes, si tout se met \u224? aller mal alors que vous n'en \u234?tes qu'\u224? un cinqui\ u232?me du parcours, le cahier des charges, lui. sera pr\u234?t aux quatre cinqui\ u232?mes. La loi de Pareto se v\u233?rifie si l'on choisit le bon mod\u232?le de document, les bonnes m\u233?thodes, le bon rythme, et qu'on travaille de mani\u232? re m\u233?thodique pour faire les choses dans le bon ordre. Il n'y a pas de r\u232? gle absolue pour savoir quel est le bon ordre d'\u233?laboration, mais le plus souvent, il vaut mieux travailler de mani\u232?re descendante, par raffinements successifs, depuis les objectifs jusqu'aux d\u233?tails les plus fins. Dans le cas contraire, o\u249? nous sommes face \u224? un existant, (par exemple une sp\u233? cification existante), le bon ordre consiste \u224? consolider cet existant en le (re)formalisant, puis \u224? remonter jusqu'aux objectifs, puis \u224? redescendre \u224? nouveau dans les d\u233?tails de plus en plus fins. La loi de Pareto s'applique \u233?galement en ce qui concerne le champ de l'\u233?tude, les objectifs et les parties prenantes. D'o\u249? l'int\u233?r\u234?t de bien les conna\u238?tre d\u232?s le d\u233?but, et de conna\u238?tre les priorit\u233?s. Si on ne peut pas tout faire ou satisfaire tout le monde, il vaut mieux savoir qui satisfaire en premier et quels sont ses objectifs prioritaires. 7. Mettez en avant votre client C'est votre client, la ma\u238?trise d'ouvrage, qui \u233?labore le cahier des charges, pas vous. Effacez-vous devant lui et valorisez son travail. Vous \u234?tes animateur, facilitateur. expert, mais c'est votre client qui exprime un besoin, et il l'exprime \u224? sa ma\u238?trise d'\u339?uvre. Se mettre en avant n'est ni fair-play. ni efficace. Lorsque vous parlez au ma\u238?tre d'\u339?uvre. vous \u234?tes le porte-parole \u338?D\par\pard\plain\hyphpar} { Chapitre 21 - Neuf conseils du ma\u238?tre d'ouvrage, vous ne faites que traduire ses besoins. Lorsque vous faites une pr\u233?sentation brillante en comit\u233? de pilotage, rappelez-vous : votre pr\u233?sentation est une repr\u233?sentation des besoins de votre client. Lorsque le cahier des charges sera livr\u233?, si tout se passe bien, si votre client est g\u233?n\u233?reux et bon joueur, il reconna\u238? tra peut-\u234?tre que vous avez fait du bon travail et vous remerciera pour le service que vous lui aurez apport\u233?. Cela fait tr\u232?s plaisir et encourage \ u224? faire encore mieux la prochaine fois. Mais au cours de l'\u233?laboration, votre ego doit rester au vestiaire. 8. Perdez un peu de temps pour en gagner beaucoup Le temps \u171? perdu \u187? n'est pas toujours celui que l'on croit. Faire l'impasse sur le recueil d'un objectif, laisser de c\u244?t\u233? une partie prenante pour, soi-disant, gagner du temps, est purement et simplement un manque de professionnalisme. Bien s\u251?r, votre hi\u233?rarchie, votre client, le ma\u238? tre d'\u339?uvre ou toute autre partie prenante peut faire pression pour vous pousser \u224? aller plus vite. Il est de votre responsabilit\u233? d'expliquer \ u224? vos interlocuteurs qu'il faut consolider les fondations avant de s'attaquer aux murs, et que le temps investi sera r\u233?cup\u233?r\u233? au d\u233?cuple. Il ne faut donc pas h\u233?siter \u224? consacrer du temps aux \u233?tapes en amont de l'\u233?laboration : d\u233?finition de l'objectif, des parties prenantes et du champ de l'\u233?tude. Si un de ces points est mal d\u233?fini, il faudra apr\u232? s coup d\u233?faire le travail et le refaire. Et parfois, tout reprendre du d\u233? but. Cela occasionne beaucoup de temps perdu, de fatigue inutile, de stress et de d\u233?couragement. Ce qui est vrai pour le macroprocessus d'\u233?laboration l'est aussi au niveau des microprocessus. Le temps pass\u233? \u224? pr\u233?parer une interview ou une r\u233?union n'est pas du temps perdu. Parfois, il vaut mieux passer beaucoup de temps \u224? discuter autour d'un sch\u233?ma que d'avancer. C'est l'exp\u233?rience qui permet de distinguer l'investissement en temps, de la perte de temps pure et simple. Aussi, est-il important d'observer sa propre mani\ u232?re de proc\u233?der et d'essayer de s'am\u233?liorer en permanence. 9. Faites de la d\u233?finition des besoins un projet en soi D\u233?finir les besoins est un vrai m\u233?tier, avec ses m\u233?thodes, ses techniques, ses outils, avec des experts et un savoir-faire propre. Les analystes ont leur propre rythme de travail, leurs r\u232?gles et leur code de bonne conduite.\par\pard\plain\hyphpar} { ie 3 - Gestion des exigences qui diff\u232?rent de ceux des r\u233?alisateurs ou des testeurs. Voil\u224? pourquoi il faut consid\u233?rer l'\u233?laboration d'un cahier des charges comme un projet en soi. avec son livrable bien d\u233?fini. De plus, avoir une vision globale de la mission de d\u233?finition des besoins est beaucoup plus valorisant et pousse \u224? l'action. Consid\u233?rer la d\u233? finition des besoins seulement comme un sous-projet, et non un projet en soi. n'est pas tr\u232?s motivant. Vous avez acquis un savoir- faire, ou vous \u234?tes en train de l'acqu\u233?rir, c'est votre m\u233?tier, vous \u234?tes pay\u233? pour \ u231?a, vous portez le projet. Bien s\u251?r, vous devez vous assurer que les exigences que vous sp\u233?cifiez sont r\u233?alisables, que les contraintes techniques sont elles aussi sp\u233?cifi\u233?es, que l'ensemble est coh\u233?rent. Bien s\u251?r. vous pouvez, et parfois vous devez, dialoguer avec la ma\u238?trise d'\u339?uvre. Mais ce qui adviendra du syst\u232?me apr\u232?s la livraison du cahier des charges ne fait pas partie de votre mission. Cela peut l\u233?gitimement vous int\u233?resser, mais ne doit en aucun cas consommer votre \u233?nergie. \ u338?)\par\pard\plain\hyphpar} { Les questions \u224? large spectre Comment utiliser ces questions ? Ces questions peuvent servir \u224? constituer un guide d'entretien de derni\u232?re minute, ou \ u224? d\u233?fricher un terrain inconnu, en \u233?vitant l'angoisse de la page blanche. Il ne s'agit en aucun cas de les \u233?grener de la premi\u232?re \u224? la derni\u232?re : cela ne ferait que mettre l'interlocuteur mal \u224? l'aise (ou s'il l'est d\u233?j\u224?, de le mettre encore plus mal \u224? l'aise). Et de toute fa\u231?on, elles sont redondantes. Quoi qu'il en soit, ces questions g\u233?n\ u233?riques peuvent \u234?tre une aide : elles ne sont pas une panac\u233?e. Liste de questions Questions de situation, questions g\u233?n\u233?riques Ces questions permettent de conna\u238?tre le contexte. \u8226? En quoi consiste votre activit\ u233? actuelle ? (Cette question permet de d\u233?finir ou de cerner la partie du processus qui va impacter le futur utilisateur interview\u233?.) \u8226? Pouvez- vous d\u233?crire la mani\u232?re dont votre service ( bureau, organisation, entreprise...) fonctionne actuellement ? \u8226? Quel est votre r\u244?le actuel ? \u8226? Dans quelle mesure votre activit\u233? sera-t-elle impact\u233?e par le futur syst\u232?me ? Les questions suivantes sont tr\u232?s g\u233?n\u233? rales. La premi\u232?re, tr\u232?s (trop) g\u233?n\u233?rique, est \u224? utiliser avec mod\u233?ration. \u8226? Ou'attendez-vous du futur syst\u232?me ?\par\pard\ plain\hyphpar} { Expression des besoins pour le syst\u232?me d'information \u8226? Que souhaitez- vous que le syst\u232?me fasse ? \u8226? En quoi le futur syst\u232?me va-t-il am\ u233?liorer votre activit\u233? ? Questions d'objectif Ces questions sont \u224? poser au ma\u238?tre d'ouvrage strat\u233?gique et aux parties prenantes d\u233? cisionnaires. \u8226? Quel probl\u232?me voulez-vous r\u233?soudre ? \u8226? Qu'attendez-vous de la solution future, du futur logiciel ? \u8226? Comment saurez- vous que la solution propos\u233?e aura atteint son objectif ? \u8226? Une fois que votre syst\u232?me sera op\u233?rationnel, que va-t-il vous apporter ? \u8226? Quelles seront les retomb\u233?es positives de la mise en place de la solution future, du futur logiciel ? \u8226? Quelles seront les cons\u233?quences n\u233? gatives de la mise en place de la solution future, le logiciel ? Questions de manque Par d\u233?finition, un manque est un besoin. Chercher les manques est donc une bonne fa\u231?on de faire exprimer les besoins. \u8226? Qu'est-ce qui manque au syst\u232?me actuel ? \u8226? Comment ce manque qui pourrait-il \u234?tre combl\ u233? par le futur syst\u232?me ? \u8226? Qu'est-ce qui est d\u233?faillant avec le syst\u232?me actuel ? \u8226? Qu'est-ce qui vous d\u233?range le plus dans le syst\ u232?me actuel ? \u8226? Si une chose vous d\u233?rangeait avec le syst\u232?me actuel, ce serait quoi ? \u8226? Que voudriez-vous que le syst\u232?me \u224? venir fasse et que le syst\u232?me actuel ne fait pas ? \u8226? Peut-on faire ensemble la liste de toutes les fonctions que le syst\u232?me actuel accomplit mal ? Questions sur le syst\u232?me \u224? l'\u233?tude Pour conna\u238?tre les donn\u233?es : \ u8226? Quelles sont les donn\u233?es manipul\u233?es par le syst\u232?me ? \u8226? Quelles donn\u233?es le syst\u232?me devra-t-il stocker ? \u8226? Quelles sont les donn\u233?es contenues dans cette entit\u233? ? \u8226? Quelles sont les relations entre ces deux donn\u233?es ? Pour identifier les \u233?tats et transitions d'un objet : \u8226? Quel est le cheminement du dossier, d'un objet ? \u8226? Dans quels \u233?tats peut se trouver le dossier, l'objet ? \u338?\par\pard\plain\hyphpar} { Annexe - Les questions \u224? large spectre \u8226? Quel \u233?v\u233?nement va modifier le dossier, l'objet ? \u8226? Que se passe-t-il suite \u224? cet \u233?v\ u233?nement ? \u8226? Oue se passe-t-il si cet \u233?v\u233?nement n'a pas lieu ? (Exception) Questions de perspective On demande au futur utilisateur ou toute autre partie prenante de se projeter dans l'avenir. \u8226? Ou'attendez-vous du futur syst\u232?me ? \u8226? Que voudriez-vous que le syst\u232?me \u224? venir fasse ? \ u8226? Que voudriez-vous que le syst\u232?me \u224? venir fasse mieux que le syst\ u232?me actuel ? \u8226? Qu'est-ce qui doit \u234?tre am\u233?lior\u233? par le futur syst\u232?me ? (Sans n\u233?cessairement d\u233?finir une solution, cette question approfondit le besoin.) \u8226? Quel crit\u232?re doit-on utiliser pour prouver que le syst\u232?me satisfait cette exigence ? \u8226? Pouvez-vous d\u233? crire le futur syst\u232?me, tel que vous l'imaginez ? Questions de pr\u233? cision \u8226? Oui... ? (Se taire et attendre que l'interview\u233? pr\u233?cise spontan\u233?ment la pens\u233?e.) \u8226? Oui. et plus pr\u233?cis\u233?ment ? (\ u201?viter \u171? oui. mais... \u187? ; pr\u233?f\u233?rer \u171? oui. et... \ u187?.) \u8226? Un de vos coll\u232?gues (si n\u233?cessaire, pr\u233?server la confidentialit\u233?) a exprim\u233? le besoin d'avoir |...|. \u202?tes-vous du m\ u234?me avis que lui ? (Rassurer l'interlocuteur : il a le droit d'avoir un avis diff\u233?rent.) \u8226? Comment faites-vous ? (Apporte du d\u233?tail.) \u8226? Pourquoi|...| ? (Remonte \u224? des exigences de plus haut niveau ; \u224? utiliser avec prudence, et ne jamais impliquer l'interview\u233? avec ce type de questions.) Crit\u232?res de priorisation et de validation On demande maintenant \u224? l'utilisateur de d\u233?finir ses priorit\u233?s et des crit\u232?res de validation de l'exigence. \u8226? En quoi cette exigence est-elle importante pour vous ? \ u8226? Qu'est-ce qui fera que vous serez satisfait avec le futur syst\u232?me ? \ u8226? Comment saurez-vous que le futur syst\u232?me est satisfaisant ? \u8226? Pouvez-vous indiquer les trois fonctions indispensables du futur syst\u232?me? \ u8226? Si vous ne deviez conserver que trois fonctions parmi celles d\u233?crites, lesquelles conserveriez-vous ? QD\par\pard\plain\hyphpar} { Besoin. N\u233?cessit\u233? ou d\u233?sir \u233?prouv\u233? par un utilisateur (AFNOR X50-150). Cahier des charges. Document par lequel le demandeur exprime son besoin (ou celui qu'il est charg\u233? de traduire), en termes de fonctions de service et de contraintes. Pour chacune d'elles, sont d\u233?finis des crit\u232? res d'appr\u233?ciation et leurs niveaux. Chacun de ces niveaux doit \u234?tre assorti d'une flexibilit\u233? (AFNOR X50-150). Client. Le client (ou ma\u238?tre d'ouvrage) sera le propri\u233?taire de l'objet du cahier des charges. Il est responsable de la d\u233?finition des exigences, du financement, et de l'approbation de la solution. Contrainte. Limitation \u224? la libert\u233? de choix du concepteur r\u233?alisateur du produit (AFNOR X50-150). Crit\u232?re d'appr\u233?ciation. Caract\u232?re retenu pour appr\u233?cier la mani\u232?re dont une fonction est remplie ou une contrainte respect\u233?e (AFNOR X50-150). Demande. Expression, encore subjective et partielle, de la perception d'un besoin, \u224? un instant donn\u233?. D\u233?veloppement de logiciel. Processus par lequel les besoins des utilisateurs sont transform\u233?s en sp\u233?cifications, les sp\u233? cifications en conception, la conception en code, et le code test\u233?, document\ u233? et valid\u233? en vue d'un usage op\u233?rationnel (d\u233?finition IEEE). Domaine fonctionnel. Ensemble d'activit\u233?s coh\u233?rentes concourant \u224? une finalit\u233? de l'organisme. \u201?l\u233?mentaire (exigence). Se dit d'une exigence qui ne peut \u234?tre d\u233?compos\u233?e, ins\u233?cable (en anglais, atomic). Ergonomie. Discipline scientifique qui vise la compr\u233?hension fondamentale des interactions entre les \u234?tres humains et les autres composantes d'un syst\u232?me, et la mise en \u339?uvre dans la conception de th\ u233?ories, de principes, de m\u233?thodes et de donn\u233?es pertinentes afin d'am\u233?liorer le bien-\u234?tre des hommes et l'efficacit\u233? globale des syst\u232?mes (Association Internationale d'Ergonomie). GD\par\pard\plain\hyphpar} { ion des besoins pour le syst\u232?me d'information Exigence. Description formelle d'un objectif. L'appr\u233?ciation de la satisfaction d'une exigence peut \u234?tre mesur\u233?e. \u201?tat de l'art Ensemble des r\u232?gles respect\u233?es implicitement par les professionnels d'une activit\u233?. Fonction. Action d'un produit, ou de l'un de ses constituants, exprim\u233?e exclusivement en termes de finalit\u233?s (AFNOR X50-I50). Fonction de service. Action attendue d'un produit (ou r\u233?alis\u233?e par lui) pour r\u233?pondre \u224? un \u233?l\u233?ment du besoin d'un utilisateur donn\u233? (AFNOR X50-150). Fournisseur. Le fournisseur (ou ma\u238?tre d'ceuvre) s'engage sur les conditions qu'il accepte : \u233?ch\u233? ancier des livraisons, ma\u238?trise des co\u251?ts, satisfaction des exigences. Ing\u233?nierie du logiciel ou g\u233?nie logiciel (en anglais. Software Engineering). Approche syst\u233?matique du d\u233?veloppement, de l'exploitation, de la maintenance et de la mise \u224? la retraite d'un logiciel (d\u233?finition IEEE). Logiciel. La somme des programmes, proc\u233?dures, r\u232?gles de gestion, en rapport avec le fonctionnement d'un ordinateur, ainsi que la documentation et les donn\u233?es qui leur sont associ\u233?es (d\u233?finition IEEE). Maquette. Objet destin\u233? \u224? aider un client \u224? sp\u233?cifier ses demandes. Processus. Ensemble d'activit\u233?s corr\u233?l\u233?es ou interactives qui transforme des \u233?l\u233?ments d'entr\u233?e en \u233?l\u233?ments de sortie (ISO 9000). Produit. Ce qui est (ou qui sera) fourni \u224? un utilisateur pour r\ u233?pondre \u224? un besoin. Le produit peut \u234?tre un objet, un fluide, une prestation de service, un processus industriel ou administratif (proc\u233?d\u233?, logiciel, proc\u233?dure, etc) ou toute combinaison de ceux-ci (AFNOR X50-150). Prototype. Objet destin\u233? \u224? v\u233?rifier la faisabilit\u233? d'une solution sous un aspect particulier : conceptuel, organisationnel ou technique. Un prototype encha\u238?ne des parties r\u233?elles (celles dont on veut montrer la faisabilit\u233?) et des parties fictives (en g\u233?n\u233?ral, celles qui correspondent \u224? des fonctions dont la r\u233?alisation ne semble poser aucun probl\u232?me). Qualit\u233?. Ensemble des propri\u233?t\u233?s et caract\u233? ristiques d'un produit, ou service, qui lui conf\u232?rent l'aptitude \u224? satisfaire des besoins, exprim\u233?s ou implicites. La ma\u238?trise d'ouvrage et l'utilisateur s'int\u233?ressent principalement \u224? la qualit\u233? du produit, alors que la ma\u238?trise d'ceuvre s'int\u233?resse \u224? la qualit\u233? du processus. Cette derni\u232?re contribue \u224? la qualit\u233? du produit. Solution. Ensemble coordonn\u233? de moyens mat\u233?riels, logiciels, humains, organis\u233?s pour satisfaire un ensemble d'exigences. Sp\u233?cification. Traduction d'exigences en \u233?l\u233?ments techniques.\par\pard\plain\hyphpar} { Glossaire fran\u231?ais Syst\u232?me. Ensemble coh\u233?rent d'\u233?l\u233?ments mat\u233?riels et logiciels en interaction dynamique, destin\u233? \u224? assurer une finalit\u233? pr\u233?alablement d\u233?finie. UML (Unifted Modeling Language). Langage standard de repr\u233?sentation de l'information (donn\u233?es, traitements), principalement sous forme de diagrammes. Utilisateur. Personne ou entit\u233? pour qui le produit a \u233?t\u233? con\u231?u, qui exploite au moins une des fonctions du produit. (AFNOR X50-150).\par\pard\plain\hyphpar} { Glossaire bilingue) La litt\u233?rature anglophone sur les exigences (en anglais, requiremenls) est tr\u232?s riche et le vocabulaire s'y rapportant fait l'objet d'un large consensus entre auteurs. Ce n'est pas le cas en fran\u231?ais, o\u249? l'on emploie des mots diff\u233?rents pour d\u233?signer les m\u234?mes objets ou concepts. De plus, les termes et expressions varient en fonction du pays (France, Canada. Belgique, Suisse), du m\u233?tier (informatique technique, syst\u232?mes d'information, ing\u233?nierie syst\u232?me) et des auteurs. Le lecteur ne devra donc pas s'\u233?tonner si les termes employ\u233?s dans cet ouvrage sont diff\ u233?rents de ceux avec lesquels il a \u233?t\u233? familiaris\u233?. Malgr\u233? notre effort de minimiser le nombre de termes flous et d'utiliser autant que possible les m\u234?mes mots pour d\u233?signer les m\u234?mes concepts, certaines ambigu\u239?t\u233?s n'ont pu \u234?tre \u233?vit\u233?es. Voici une liste d'\u233? quivalence (non exhaustive) entre les termes anglophones et le(s) \u233? quivalent(s) utilis\u233?(s) en fran\u231?ais dans cet ouvrage. Analyst ou requiremenls analysl. Litt\u233?ralement \u171? analyste des exigences \u187?. Analyste fonctionnel ; analyste m\u233?tier ; assistant \u224? la ma\u238?trise d'ouvrage, conseil \u224? la ma\u238?trise d'ouvrage. Business requiremenls. Exigences m\u233?tier (au Qu\u233?bec : exigences d'affaires). Client, customer. Client ; ma\u238?trise d'ouvrage (strat\u233?gique ou op\u233?rationnelle). Elldtation (requlrements). Recueil des besoins, ou capture des besoins ou des exigences. Need. Besoin. Dans le cadre de l'analyse des besoins, terme beaucoup moins usit\u233? que requirement. NFR, non-functional requiremenls : exigences non fonctionnelles. Owner. Litt\u233?ralement < propri\u233?taire \u187?. Ma\u238?tre d'ouvrage strat\u233?gique, donneur d'ordres. Requirement Besoin ou exigence (cet ouvrage fait explicitement le distinguo entre ces deux termes).\par\pard\plain\ hyphpar} { ion des besoins pour le syst\u232?me d'information Requirements engineering. Ing\ u233?nierie des besoins ; ing\u233?nierie des exigences. Software requirements. Exigences logicielles, exigences du logiciel. SRS, Software requirements sp\u233? cification. Sp\u233?cification du besoin, sp\u233?cification des exigences. SRS document, Software requirements sp\u233?cification document. Cahier des charges ; cahier des charges fonctionnel ; sp\u233?cifications fonctionnelles g\u233?n\u233? rales ; sp\u233?cification des exigences.\par\pard\plain\hyphpar} { Alistair Cockburn. R\u233?diger des cas a*utilisation efficaces, Eyroi les. 2001. Yves Constantinidis. Le logiciel \u224? valeur ajout\u233?e, la perspective de l'utilisateur, Herm\u232?s Science. 2001. Yves Constantinidis, D\u233?finition des besoins pour le logiciel, Herm\u232?s Science, 2006. Tom Giib, Comp\u233?titive Engineering : A handbook for Systems engineering, require- ments engineering, and software engineering management using planguage. Butterworth-Heinemann. 2005. Ellen Gottesdiener. Requirements by collaboration. Addison-Wesley. 2002. Elien Gottesdiener. Software requirements memory \'5cogger, Goai/\u219?PC. 2005. International Institute of Business Anaiysts, A guide to Business Analysis Body of Knowledge (BABOK Guide), version 2.0. 2010. Soren Lauesen, Software Requirements - Styles and Techniques, Addison-Wesley. 2002. Hugues March\u226?t. La gestion de projet par \u233?tapes, \u233?tude des besoins, Eyrolles. 2008. Paul-Hubert des Mesnards, R\u233?ussir \'5c'7banalyse des besoins, Eyrolles, 2007. Suzanne and lames Robertson. Maslering the Requirements Process, Addison- Wesley. 1999. Karl Wiegers. Software requirements, Microsoft Press, 2003. Karl Wiegers. More Aboul Software requirements, Microsoft Press. 2006.\par\pard\plain\hyphpar} { Index A accompagnement (services d'~) 139 acteurs 12, 18,43,93 activit\u233?s (diagramme d'~) 113 affinit\u233?s (diagramme des -) 83 AfnorX50-f 51 (mod\u232?le) 158 AHP (Analytical Hierarchical Pro- cess) 112 ambigu\u239?t\u233?s 32,83,88 am\ u233?lioration du processus d'\u233?laboration 26, 187 analyse 107 check-list d'- 126 comparative Voir \u233?tude comparative de documents 74 de l'existant 12, 180 de produits existants 86 des besoins 182 des exigences 16,44,45 des r\u232?gles m\ u233?tier 107 des risques 63,218 d'impact 199,200 \u233?tape 103 \u233?tape d'- 54 parties prenantes 54 processus 104 analyste 9, 11, 18, 24, 27, 28. 54 activit\u233? 2 comp\u233?tences 27 engagements de I'- 40 savoir-\u233?tre 30 savoir-faire 29 Analytical Hierarchical Process (AHP) 112 animateur (qualit\u233?s d'-) 29 anticipation (technique de l'~) 190 arbres de d\u233?cision 121 assistant ma\u238? trise d'ouvrage Voir analyste assistant, ma\u238?trise d'ouvrage Voir analyste atomic requlrements Voir exigences \u233?l\u233?mentaires attributs de qualit\u233? 15 des exigences 200 automate d'\u233?tats finis 120 B besoins alternatifs 89 concept 18 exceptionnels 89 n\u233?gatifs 90 B.O.R.D. (tableau de ~) 214 Box, George 178 bralnstorming 29,83 business requlrement Voir exigence m\u233?tier \ u199? cadrage document 58 \u233?tape 178\par\pard\plain\hyphpar} { Expression des besoins pour le syst\u232?me d'information cahier des charges 12, 19 mod\u232?le 106, 155 utilit\u233? 21 des clauses techniques particuli\u232?res (CCTP) 164 capacit\u233? fonctionnelle 129 capitalisation (\u233?tape de ~) 185 caract\u233?ristiques de qualit\u233? 127 carte de processus 113 cas d'utilisation 15, 42, 93, 105. 126 avantages 96 contenu 94 diagramme 100 difficult\u233?s et risques 99 \u233?laboration 96 mod\u233?lisation 96 cat\u233?gories d'exigences 15, 105 CCB (Change Control Board) 198 CCTP (cahier des clauses techniques particuli\ u232?res) 24, 164 cent points (m\u233?thode des ~) 110 Change Control Board (CCB) 198 changement demandes de- 201 gestion des 197,209 charges enregistrement 63 et d\ u233?lais, estimation 62 check-list cahier des charges 165 d'analyse 126 de bonne formulation 145 de contenu 169 de l'\u233?tape de validation 175 de propri\u233?t\ u233?s 169 de s\u233?lection d'outils 205 de sp\u233?cification d'une exigence 152 d'\u233?tape de sp\u233?cification 153 \u233?tape de concept et objectifs 58 \u233? tape de recueil 91 plan projet 47.64 r\u232?gle des 5 C 146 v\u233?rification par - s 169 classes (diagramme de -) 117 classification des exigences 42 Cockburn, Allstair 94,95, 100, 101 coh\u233?rence 89 commission de contr\u244?le des changements 198 compatibilit\u233? (ergonomie) 134 concept check-list 58 et objectifs 49 concision (d'ergonomie) 136 contexte (diagramme de -) 14, 53,58,94,97, 116, 126, 157, 179, 180, 183 contraintes 13, 15 de co\u251?t 137 de maintenance 140 d'environnement 138 de projet 137 de support 140 organisationnelles 42 r\u233? glementaires 42 techniques 16.25.49 contr\u244?le explicite (ergonomie) 136 co\ u251?t contraintes de - 137 de correction d'une erreur 22 des exigences 25 des exigences (\u233?valuation) 124 cr\u233?ativit\u233? 25,31,73 CRUD (matrice) 124 cycle de vie du logiciel 35 d\u233?lais, enregistrement 63 demandes concept 18 de changement 201 d\u233?veloppement des exigences 21,44,65 2D\par\pard\plain\hyphpar} { Index diagramme d'activit\u233?s 113 de cas d'utilisation 100 d\u233?classes 117 de contexte 53, 58.94,97. 116. 126. 157. 179. 180. 183 de flux de donn\u233?es 114 deKano 124 des affinit\u233?s 83 de s\u233?quence 116 entit\u233?s-associations 117 \u233?tats-transitions 120 process map 113 UML 113 dictionnaire de donn\u233?es 107,126 directeur d\u233?mission 62 de projet 62 documentation des besoins 69 des exigences 41 exigences de- 141 documents analyse de- 74 de cadrage 58 navette (m\ u233?thode du ~) 191 documents-types 61 domaine d'application (d\u233?termination) 52 donneur d'ordres 23, 54, 86 E \u233?chelle de Ukert 85 \u233?coute (qualit\u233? d'~) 30, 80, 90 Elsenhower (principe d'~) 110 \u233?l\u233?mentaires (exigences) 42 entit\u233?s-associations (diagramme) 117 entonnoir d\u233?marche de recueil 80 m\ u233?thode de s\u233?lection 213 environnement contraintes 138 de d\u233? veloppement (contraintes) 138 physique d'utilisation 141 estimation charges et d\ u233?lais 62 \u233?tape d'analyse 54. 103. 182 d'analyse de l'existant 180 de cadrage 178 de capitalisation 185 de planification 179 de recueil 67. 182 de sp\ u233?cification 143,184 de validation 167, 184 planification 59 processus d'exigences 43 \u233?tats-transitions (diagramme ~) 120 \u233?tude comparative 60, 214 de choix 213 design 218 d'int\u233?grabilit\u233? 218 d'opportunit\u233? 216 \ u233?v\u233?nement m\u233?tier 94, 97 exigences 11, 19 comportementales 42 de haut niveau 42 de qualit\u233? 42. 106 d'int\u233?gration 140 d'interface 106 d'interfaces externes 15 \u233?l\u233?mentaires 42.97, 151 fonctionnelles 14. 15. 106 formulation 147 m\u233?tier 14. 16. 108 non fonctionnelles 15, 106. 127, 151 caract\u233?ristiques de qualit\u233? 127 norme ISO 25000 128 processus de d\u233? veloppement 44 sp\u233?cifications rampantes 111 sur les donn\u233?es 15 sur les formats de donn\u233?es 106 GD\par\pard\plain\hyphpar} { Expression des besoins pour le syst\u232?me d'information expert m\u233?tier 62 technique 63 expression \u233?crite (aptitude) 30 H facilit\u233? d'utilisation (utillsabilit\u233?) 130 faisabilit\u233? des exigences (\u233?valuation) 124 feedback 69,88 fiabilit\u233? 129 flnalit\u233?-avantage-mesure (objectifs) 51 flux de donn\u233?es (diagramme de ~) 114 fonction \u224? satisfaction proportionnelle 125 attractive 125 obligatoire 125 fonctionnalit\u233? 129 formalisation des objectifs 51 formation (exigences de ~) 141 forme de description des exigences 150 formulation des exigences 143, 144 gains 23 g\u233?n\u233?ralisations 81 gestion de configuration 197 de projet 197 des attributs 208 des changements 197,209 des erreurs (ergonomie) 136 des exigences 45,63. 195. 197 des versions 209 Gottesdiener, Ellen 76, 191 grille pouvoir-impact 55 groupe de travail 75,87 guidage (ergonomie) 135 homog\u233?n\u233?it\u233? (ergonomie) 135 I IEEE 830 (mod\ u232?le) 149,156 IEEE 982 (cycle de vie du logiciel) 35 impact (analyse d'~) 200 Ing\u233?nierie des besoins 27 des exigences 9, 11, 13, 14, 19, 35,41,44,67 du logiciel 197 installation 137 int\u233?grabilit\u233? (\u233?tude d'-) 140 int\ u233?gration (exigences d'-) 140 interface contraintes 139 exigences d'- 106 interview d\u233?roulement 77 distorsions 82 structur\u233?e individuelle 76 types de questions 78 ISO 25000 (norme) 128,152 It\u233?rations, processus d'exigences 189 jurisprudence 17 K Kano (diagramme de ~) 124 L langue de bois 90, 146 lettre de mission 24, 58, 74, 178 Llkert (\u233?chelle de ~) 85 liste des parties prenantes 54 logiciel 35 loldePareto 224 sb\par\pard\plain\hyphpar} { Index M maintenabilit\u233? 132 maintenance contraintes de - 140 phase de- 35 ma\ u238?tre d'oeuvre 11, 36 ma\u238?tre d'ouvrage 36 engagements du - 40 op\u233? rationnel 11 strat\u233?gique 12 ma\u238?trise d'ouvrage 54 maquette 29 matrice CRUD 124 RACI 124 McCall (typologie de ~) 127 m\u233?thode des cent points 110 m\ u233?thodologie 60 migration 138 mise en exploitation 137 mod\u232?le AfnorX50-l5l 158 de cahier des charges 155 de document 61 de processus d'exigences 177 deWiegers 160 IEEE 830 149, 156 Volere 132, 149. 162 mod\u233?lisation 9,44,63 cas d'utilisation 96 graphique 112 bo\u238?te \u224? outils 122 maquette 122 prototype 122 techniques de - 28 MTBF, mean time between fai- lures 130 N n\u233?gociation des exigences 15, 29, 89, 110, 192 niveau d'exigences 42 norme ISO 25000 128, 152 norme ISO/CEI 25000 128 o objectifs 50, 105 strat\u233?giques 42 observation directe 84 observation (qualit\u233? d'~) 31 Ockham (rasoir d'~) 119 omissions 81 op\u233?rateurs modaux 81 organigrammes 121 outils 60, 205 choix 210 fonctions de base et avanc\u233?es 206 P Pareto (loi de -) 224 parties prenantes 12, 43, 50 analyse 18, 54 concept de - 18 liste 54 tableau 57 p\u233?rim\u232?tre 50, 52 phase d'exigences 38 plan de recueil 70 planguage (planning language) 151 planification 59 aptitude 29 \u233?tape 179 recueil des besoins 68 plan projet 59 check-list 47,64 contenu 63 \u233?laboration 61 portabilit\u233? 132 pouvoir-impact (grille ~) 55 principe d'Eisenhower 110 principe de simplicit\u233? 119 \u163?E)\par\pard\ plain\hyphpar} { Expression des besoins pour le syst\u232?me d'information priorisation, projet 109 processus carte de- 113 d'analyse 104 d'\u233?laboration 185 de recueil 68 de sp\ u233?cification 143 de validation des exigences 168 d\u233?veloppement des exigences 45 d'exigences am\u233?lioration 187 processus d'exigences 60 am\u233? lioration 189 description formelle 44 description pratique 45 \u233?tapes 43 it\ u233?rations 189 mod\u232?le 177 r\u233?cursions 188 r\u233?troactions 188 profils utilisateurs 25 d\u233?termination 71 exemple de typologie 72 identification des - 61 segmentation (ergonomie) 134 typologie 71 projet d'\u233?laboration 59 m\u233? thodologie 60 priorit\u233?s (d\u233?finition des -) 109 prototypage 123 QFD (Quality Functlon D\u233?ployaient) 112 qualit\u233? contr\u244?le des exigences 174 Quality Functlon D\u233?ployaient 112 quantificateurs universels 81 questionnaires (recueil par ~) 85 questionnement (recueil d'objectifs ; grille de ~) 56 RACI (matrice) 124 rasoir d'Ockham 119 recette 137 recueil 44 bonnes pratiques 87 check list 91 de planification 68 des besoins 182 des exigences 45 des objectifs 51 entonnoir 80 \u233?tape 67 grille de questionnement 56 par observation directe 84 par questionnaires 85 plan de- 70 processus 68 risques 70 techniques 73 v\u233?rification 69 r\u233?cursions sur le processus d'exigences 188 r\u232?gles analyse 107 de gestion 13. 15, 105, 107 m\u233?tier 15. 16. 105, 108 tra\u231? abilit\u233? 109 relationnelle (qualit\u233? -) 31 relecture crois\u233?e (v\u233? rification par -) 170 simple (v\u233?rification par -) 170 rendement 131 ressources (identification des ~) 62 retour sur investissement 23 retravail 190 r\u233? troactions, processus d'exigences 188 r\u233?utilisation des exigences 86, 150 rework 188, 190 risques 24 analyse 63 Robertson, James 174 GD\par\pard\plain\ hyphpar} { Index Robertson, Suzanne 174 Robertson, Suzanne et James 162 S SAE (syst\u232?me \ u224? l'\u233?tude) 14 savoir-faire 27 screening 213 segmentation des profils utilisateurs 134 s\u233?quence (diagramme de -) 116 services d'accompagnement 139 short-list 213 simplicit\u233? (principe de -) 119 solutions (suggestions de ~) 106 souplesse (ergonomie) 135 sources d'exigences 61, 72, 74 sous-sp\u233?ciflcation 25 sp\u233?cification concept 18 des exigences 45, 184 \u233?tape 184 processus de - 143 rampante 24,26, 123, 198 structuration des exigences 105, 144, 149 suggestions de solutions 106 support (contraintes de -) 140 sursp\u233?cification 25 SWOT (analyse) 214 syst\u232?me 13 T tableau deB.O.R.D. 214 des parties prenantes 57 tables de d\u233?cision 121 techniques de l'anticipation 190 de recueil 73 de recueil des objectifs 52 de validation 168 template 61 tra\u231?abilit\u233? des exigences 207 typologie de McCall 127 U UML (Unifled Modeling Lan- guage) 93, 100, 105, 113, 118 Unifled Modeling Language Voir UML use cases Voir cas d'utilisation utilisabiltt\u233? 130 utilisateurs besoins des- 15 participation des - 23 profils 25 y validation check-list 175 des exigences 44,45, 184 \u233?tape 167. 184 processus de- 168 v\u233?rification cas de test (\u233?laboration de ~) 173 cont\ u244?le qualit\u233? des exigences 174 crois\u233?e 170 des exigences 144 inspection 171 parcheck-lists 169 par relecture crois\u233?e 170 simple 170 revue formelle 171 simple 170 versions (gestion des) 209 Volere (mod\u232?le ~) 132,149,162 W Wlegers, Karl 15, 105, 160 Wlegers (mod\u232?le de -) 160 Z zone floue 39,89,213 SB\par\pard\plain\hyphpar} { pour le syst\u232?me d'information rr L'auteur Consultant en syst\u232?mes d'information. Yves Constantinidis a dirig\u233? avec succ\u232?s l'\u233? laboration de plusieurs cahiers des charges de port\u233?e nationale (minist\u232? re de la Sant\u233?, minist\u232?re de l'\u201?ducation nationale). Informaticien de formation, il intervient sur des missions de choix de solutions, de diagnostic du syst\u232?me d'information et d'am\u233?lioration du processus de d\u233? veloppement. Son expertise l'a amen\u233? \u224? publier trois ouvrages sur l'ing\ u233?nierie du syst\u232?me d'information et la qualit\u233? du logiciel (\u233? ditions Herm\u232?s), et \u224? intervenir comme formateur aupr\u232?s d'\u233? tablissements d'enseignement sup\u233?rieur (Epita. \u201?cole des hautes \u233? tudes en sant\u233? publique). lie est pr\u233?sident cfhonneur du Club des Martres d'Ouvrage des Syst\u232?mes d'Information - omment recueillir tous tes besoins des acteurs du syst\u232?me d'information, et rien que leurs besoins r\u233?els? Comment se mettre \u171?d'accord sur la sp\u233?cification des exigences? Comment aboutir \u224? un cahier des charges clair, complet et consensuel? Phase cruciale dans le choix, le d\u233?veloppement ou ta mise en oeuvre d'une solution d'entreprise, la d\u233?finition des besoins conditionnera en effet la r\u233? ussite du projet, notamment son co\u251?t et sa qualit\u233?. Mais cette \u233?tape est complexe et d\u233?licate, en raison du nombre et de la diversit\u233? des parties prenantes, des demandes souvent divergentes, des contraintes vari\u233?es et. last but not least. du facteur humain. V\u233?ritable guide de terrain, nourri par la grande exp\u233?rience de son auteur, cet ouvrage pr\u233?sente une d\u233? marche et des techniques \u233?prouv\u233?es pour recueillir et formaliser les vrais besoins, afin d'\u233?laborer un cahier des charges dune qualit\u233? irr\ u233?prochable, dans des d\u233?lais raisonnables et au moindre co\u251?t. \u192? partir d'un exempte permettant de mieux saisir les enjeux, la premi\u232?re partie expose les pr\u233?requis, puis d\u233?crit le processus et les activit\u233?s pr\ u233?paratoires indispensables : d\u233?finition des objectifs et du p\u233?rim\ u232?tre, analyse des parties prenantes, planification de l'\u233?laboration. La deuxi\u232?me partie d\u233?taille les quatre grandes \u233?tapes de cette m\u233? thode (recueil, analyse, sp\u233?cification et validation), avec \u224? la cl\u233? des mod\u232?les de documents, des grilles et des check-lists. Enfin, ta troisi\ u232?me partie porte sur les techniques et les outils de gestion des exigences, et s'ach\u232?ve par des conseils pour s'am\u233?liorer encore. Gr\u226?ce \u224? cet ouvrage d'une clart\u233? exceptionnelle, te lecteur sera ainsi pr\u234?t \u224? relever les d\u233?fis que pose toute mission de d\u233?finition des besoins. \ u192? qui s'adresse ce livre ? \u8226? Aux assistants \u224? la ma\u238?trise d'ouvrage (AMOA) \u8226? Aux consultants en syst\u232?mes d'information \u8226? Aux experts techniques et m\u233?tier \u8226? Aux architectes du syst\u232?me d'information \u8226? \u192? tous ceux qui sont impliqu\u233?s dans l'\u233? laboration d'un cahier des charges Au sommaire M\u233?thodologie. La m\u233?thode en action. Les enjeux d'une bonne d\u233?finition des besoins. Comp\u233?tences et savoir-faire. Exigences et cycle de vie du logiciel. La d\u233?marche. D\u233?finir le concept et les objectifs. Planifier le projet d'\u233?laboration. D\u233? veloppement des exigences. L'\u233?tape de recueil. Les cas d'utilisation. L'\u233? tape d'analyse. Les exigences non fonctionnelles. Exigences projet et contraintes techniques. L'\u233?tape de sp\u233?cification. Structure du cahier des charges. L'\u233?tape de validation. Am\u233?liorer le processus. Faire vivre les exigences. La gestion des exigences. Les outils. Au-del\u224? des exigences. Neuf conseils. www.editions-eyrolles.com Groupe Eyroles |\par\pard\plain\hyphpar} {\page } }