Télécharger le fichier pdf d’un mémoire de fin d’études
Ingenierie des Exigences (IE)
Processus d’Ingenierie des Exigences
Comme nous avons vu dans la section precedente, il existe di erentes methodes et tech-niques pour executer les etapes de l’Ingenierie des Exigences. Dans cette section, nous pre-sentons certaines d’entre elles et des outils qui les supportent.
Les methodes et les techniques pour l’ingenierie des exigences sont inspirees des sciences de la psychologie cognitive, l’anthropologie, la sociologie et la linguistique [NE00]. De facon generale, une methode est de nie comme « une facon de considerer quelque chose » et, une technique comme « une facon d’executer une actitivite avec habilete, ou les quali cations ne-cessaires pour la faire » [Cam08].
Pour les besoins de l’ingenierie des exigences, nous de nissons une methode comme une facon de considerer les processus d’ingenierie des exigences, et une technique comme une procedure ou une facon d’executer les processus de l’Ingenierie des Exigences. De ce fait, nous considerons que les methodes pour l’Ingenierie des Exigences utilisent les techniques pour l’Ingenierie des Exigences, et chaque technique est supportee par des outils.
Dans cette section, nous presentons d’abord les methodes a travers une categorisation, puis nous presentons les di erentes classes de techniques avec des exemples et nalement quelques outils. Methodes collaboratives
Il existe selon la litterature [Cou07] des methodes de Modelisation, de type Methodologique et des methodes Collaboratives pour l’Ingenierie des Exigences. Compte tenu du contexte de notre etude, nous choisissons de presenter ici seulement quelques methodes collaboratives.
Dans les methodes collaboratives, un groupe de participants travaille de maniere conjointe. La di erence entre les methodes collaboratives et les methodes de groupes est que les me-thodes collaboratives sont plus structurees et organisees avec des r^oles et des t^aches speci-ques. Cela presente l’avantage de faciliter le contr^ole et la gestion du processus. En voici quelques exemples:
Developpement Conjoint d’Application (JAD) [LC93] – est une methodologie de deve-loppement de systemes pour supporter la collaboration parmi les membres d’une equipe de projet dans le processus de developpement d’applications, specialement pour la de nition des exigences. JAD implique les utilisateurs naux dans un atelier structure et intensif avec le personnel des systemes d’information et un leader de session experiment . Les participants sont capables de faire ressortir des connaissances tacites. Le r^ole du leader est de de nir, avec les managers et les utilisateurs, la portee et les objectifs du projet et de determiner les participants d’un atelier JAD. Durant les sessions, le leader presente les informations et capture les exigences qu’un scribe documente sous une forme standardisee. En cas de con its entre les exigences, le leader doit jouer le r^ole de mediateur. Donc, les qualites du leader determinent grandement la reussite des sessions JAD. Deploiement de la Fonction Qualite (QFD) [Aka90] – qui est aussi appelee « Maison de la Qualite » est une approche visant a accro^tre la satisfaction des clients. Les besoins des clients (le quoi) sont collectes et transformes en speci cations techniques ou solutions (le comment) qui repondent aux besoins. Une matrice de correlation est creee pour montrer les relations entre les besoins et les vues techniques (quoi-comment) et aussi entre les solutions (comment1-comment2). Ces relations sont ponderees pour determiner si une solution satisfait ou pas un besoin. Les solutions non pertinentes, incoherentes et redondantes sont identi ees en vue de faciliter la prise de decision tout en considerant le co^ut du developpement [PK98]. Cette methode est vue comme la voix du client en entreprise parce qu’elle est centree sur la satisfaction de l’utilisateur.
Conception Centree sur l’Utilisateur (UCD) [Gul99] – est une approche qui vise a assurer l’unite entre le systeme technique et le systeme social en impliquant activement les utilisateurs comme une partie d’une equipe interdisciplinaire du projet. Les utilisateurs sont consultes, mais les decisions nales reviennent aux developpeurs. Participatory design [Com90] est un type d’approche UCD pour l’evaluation, la conception, et le developpement des systemes technologiques et organisationels qui met l’accent sur l’implication active des utilisateurs potentiels ou actuels du systeme dans les processus de conception et de prise de decision. Cette approche est basee sur l’idee selon laquelle, l’implication des utilisateurs dans le processus de conception contribue a rendre le systeme plus adapte aux besoins et aux procedures de travail des utilisateurs. Un avantage majeur de l’approche est qu’elle aide les participants, et specialement les utilisateurs, a prendre part personnellement au projet. Ils sont susceptibles de travailler pour la reussite du projet [MS00].
WinWin [GB01] – cette methode est axee sur la negociation des exigences en groupe. Elle a et introduite par Barry boehm [BBHL94]. Il y a quatre concepts essentiels dans cette approche :
{ les win-conditions qui representent les objectifs des parties prenantes, { les problemes qui sont les con its entre les parties prenantes,
{ les options qui sont des alternatives pour resoudre les problemes,
{ et les accords qui capturent les engagements partages des parties prenantes par rapport aux win-conditions ou les options adoptees.
WinWin utilise ces concepts pour engager les gens dans un processus de prise de decision a partir d’une situation con ictuelle vers une situation de consensus.
Techniques
On trouve dans la litterature, quatre classes de techniques d’Ingenierie des Exigences [NE00] : les techniques traditionelles, les techniques cognitives, les techniques contextuelles et les tech-niques de groupe. Tout comme pour les methodes, nous decrirons quelques techniques de groupe et citerons quelques exemples des autres categories de techniques.
Techniques Traditionnelles : ce sont des techniques utilisees depuis fort longtemps en genie logiciel pour deternimer les besoins et les souhaits des utilisateurs. Elles ont vu le jour bien avant que l’Ingenierie des exigences ne soit une discicipline a part entiere de l’Ingenierie Systeme [NE00, Cou07]. Parmi ces techniques, nous avons l’Interview [LG96], l’introspection [GL93] et l’Analyse des t^aches [TFS07].
Techniques de la Psychologie cognitive : la psychologie cognitive est l’examen de la facon dont les gens comprennent, diagnostiquent et resolvent les problemes qui les concernent eux-m^emes avec des processus mentaux qui interviennent entre le stimilus et la reponse [Nei67]. Les techniques pour l’Ingenierie des Exigences basees sur la psychologie cognitive ont ete, a l’origine, developpees pour l’acquisition de la connaissance [NE00]. Certaines d’entre elles sont l’analyse des protocoles [vML99] et le Tri de carte [SP05].
Techniques Contextuelles : elles sont vues par Nuseibeh et Easterbrook [NE00] comme alternatives aux techniques tarditionnelles et aux techniques basees sur la psychologie cogni-tive. Comme leur nom l’indique, elles mettent un accent particulier sur le contexte et l’envi-ronnement dans lesquels le systeme vise sera utilise, c’est-a-dire, l’environnement du monde reel. Parmi ces techniques gurent l’Ethnographie [RLD02], les Cas d’utilisation [KG04] et le Prototypage [LS92]. Techniques de groupe : ces techniques cherchent a favoriser l’accord des parties pre-nantes tout en favorisant la dynamique de groupe [NE00]. Elles engagent au moins quatre participants :
{ Equipes expertes [Kru94] – Cette technique amene les membres du groupe a discuter ensemble de certains sujets interessants ou a se centrer sur des problemes particuliers. Dans le developpement de logiciels, les « equipes expertes » ont souvent recours aux ma-teriels tels que les questionnaires, les prototypes etc, pour provoquer et encourager le dialogue dans le groupe. Ces « equipes expertes » ont l’avantage de suivre les inter-actions naturelles entre les gens plus que les techniques traditionnelles parce que le facilitateur prend un r^ole passif durant la session, et egalement parce que la structure requise est exible. Cependant, les groupes ne sont pas habituellement des communau-tes naturelles, mais un collectif ad-hoc constitue pour une occasion speci que. Bien que relativement pratique et economique a mettre en uvre, cette technique n’est pas tres appropriee pour trouver les solutions aux problemes complexes [Cou07].
{ Brainstorming – le Brainstorming est une technique pour la generation d’idees en groupe qui a et proposee par Osborn [Osb48]. Osborn a remarqu que la generation d’idees pouvait ^etre amelioree si les gens suivaient un protocole a quatre regles [Bri06] : { « ne pas critiquer les idees des autres »,
{ « ^etre ouvert aux idees absurdes et inutiles »,
{ « generer beaucoup d’idees autant que faire se peut », { « b^atir sur et etendre les idees des autres ».
Ce processus implique plusieurs participants de diverses origines et ayant di erentes perspectives. Dans la premiere etape, un grand nombre d’idees sont produites, puis on passe a une etape de consolidation durant laquelle le nombre d’idees decro^t. Un des grands avantages de cette technique est qu’elle permet la re exion et l’expression libre qui favorisent l’emergence d’idees nouvelles, creatives et innovatrices.
{ Construction d’une histoire collective [AG06] – Il s’agit d’une activite collective de construction d’une histoire a laquelle participent plusieurs personnes qui contribuent, avec leurs souvenirs et interpretations, aux experiences vecues. Un contexte partage d’une t^ache executee par un groupe peut ^etre « elicite » et represent a travers cette technique car elle aide a identi er, representer et rendre explicite les elements contex-tuels lies aux evenements de la t^ache decrite dans l’histoire, et cela, dans le but d’etablir les bonnes relations entre les elements [SB05]. Pendant que les membres d’une equipe contribuent a creer une histoire concernant un travail ou une situation experimentee par eux, ils peuvent progressivement en rajouter, poser des questions, faire des corrections et des commentaires et aussi faire des objections. Une phase de negociation peut ^etre envisagee, si cela est necessaire, pour faire des contre-propositions, les accepter ou les rejeter.
{ Conception collaborative [AEF+00] – Elle est une approche pour la conception avec des acteurs multiples. Cette conception est faite a travers l’interaction, la cooperation, la communication, l’harmonisation et la negociation entre di erents acteurs [JCLW08]. Dans le processus de la conception collaborative, plusieurs concepteurs completent l’ob-jet a concevoir (artefact). Il s’agit d’une conception dite « en m^eme temps » ou « en pa-ralelle ». Une conception complete d’un artefact inclut la capture des exigences pour cet artefact basees sur des retours des participants, la speci cation de l’artefact lui-m^eme, le processus de creation de l’artefact et ainsi de suite a travers tout son cycle de vie [KSFBY03].
La plupart des approches citees ci-dessus ne sont pas exclusivement dediees a l’Elicitation des Exigences. Par contre, elles sont ou peuvent ^etre utilisees pour les besoins d’Elicitation des Exigences. En outre, chacune d’elles a ses points forts et ses points faibles [GL93], si bien qu’un debat sur la suprematie de l’une par rapport a l’autre de maniere generale ne serait que speculation. En revanche, une telle discussion aurait un sens dans un contexte speci que, car certaines approches peuvent s’averer mieux adaptees que d’autres selon les situations.
Chacune des techniques et methodes precedemment citees peut ^etre supportee par un outil. En e et, selon Nuseibeh et Easterbrook, l’utilisation d’un outil automatise est essentiel pour une execution e cace des activites du processus d’Elicitation des Exigences [NE00]. Ainsi, nous presentons dans la section suivante, quelques outils pour l’elicitation.
Outillage des methodes et techniques
Les outils existants sont regroupes en categories selon des similitudes en termes d’usages. Il n’existe pas de classi cation communement adoptee comme dans le cas des techniques pre-cedemment vues [Cou07]. Nous nous focaliserons davantage sur des outils qui permettent la collaboration tout en donnant quelques exemples sur d’autres types.
Outils de collaboration – Ils supportent des t^aches de groupe et specialement la phase d’Elicitation des Exigences. Ils sont souvent une collection de supports basiques tels que les outils de messagerie instantanee et les outils de vote [BGB01]. Ils peuvent aussi inclure la vi-deo conference, tout un environnement virtuel specialement concu pour les projets de groupe. Les outils de collaboration visent a promovoir une comprehension partagee de leurs utilisa-teurs et la resolution conjointe des problemes. Des exemples sont CRETA (Collaborative Requirements Engineering Support Tool) [TdAFdM02] et WikiWinWin [YWK+08] qui est un outil pour le modele de negociation des exigences pr^one par l’approche WinWin [BBHL94]. WikiWinWin est base sur le principe de contribution collective des idees appel le wiki. Nous avons egalement les GSS (Group Support Systems) dont GroupSystems est un leader dans la construction de tels systemes [Gro08]. Les GSS sont en general des applications Web suppor-tant les principales activites collaboratives et qui sont souvent utilises pour l’Elicitation des Exigences. Ils permettent aux utilisateurs d’enregistrer des rendez-vous, de faire des echanges « d’Emails », d’inclure d’autres dispositifs tels que l’agenda, les supports de messagerie instan-tanee et de vote. Ils permettent aussi le chargement et la recherche de document et de faire egalement des questionnaires. Les GSS sont basees sur quelques patrons de collaboration comme « generer », « reduire », « organiser » et « le consensus » [BdVJ03] que nous presenterons en detail dans le chapitre suivant. Des etudes ont revel que l’utilisation des solutions telles que celles proposees par GroupSystems est tres utile pour l’e cacit du processus et permet m^eme de reduire le temps de travail a 50% et faire un gain sur le temps du projet entre 70% a 90% [FSHD07, DHNV90].
Nous avons realis deux cas d’etudes avec l’outil ThinkTank de GroupSystems que nous presentons en detail dans la section 5.5 a la page 115.
D’autres types d’outils sont des outils de modeles ou templates qui sont essentielle-ment centres sur la modelisation des exigences dans une perspective de documentation. Par exemple, la che Volere [RR07] pour la speci cation et ScenarioPlus pour les cas d’utilisa-tion [Ale97]. Il y a aussi les outils de gestion des exigences qui sont, comme leur nom l’indique, principalement utilises pour identi er, organiser et enregistrer les exigences selon un format speci que et de maniere hierarchique et aussi assurer la tracabilite et le contr^ole de versions. On peut citer les outils AnalystPro [IBM08] et Truereq [Tru08]. Il y a egalement des outils pour les etudes comme QuestionPro [Que08]. Il existe bien d’autres outils encore, mais nous nous limiterons a ceux deja cites.
|
Table des matières
Table des mati`eres
I Probl´ematique et cadre de travail
1.1 Probl´ematique
1.2 Cadre de travail : Ing´enierie des Exigences
1.2.1 D´efinitions
1.2.2 Ing´enierie des Exigences (IE)
1.2.3 Processus d’Ing´enierie des Exigences
1.2.4 M´ethodes et techniques pour l’Elicitation des Exigences
1.2.5 Outillage des m´ethodes et techniques
1.2.6 Synth`ese
II Etat de l’art
2.1 La collaboration en g´en´eral
2.2 Pourquoi la collaboration ? Dimension sociale
2.2.1 Intelligence Collective (IC)
2.2.2 Des formes d’intelligence collective
2.2.3 L’Intelligence Collective dans les organisations
2.2.4 Les forces et faiblesses de l’Intelligence Collective : exemples d’illustration
2.3 Ing´enierie de la Collaboration
2.3.1 Quelques concepts cl´es
2.3.2 Peut-on faire l’ing´enierie de la collaboration ?
2.3.3 Bases formelles
2.3.4 Bases conceptuelles
2.3.5 Concevoir des processus de collaboration
2.4 Conclusions
IIIProposition d’un mod`ele pour la collaboration
3.1 Introduction
3.2 Mod`ele de Collaboration
3.2.1 Constraintes de la collaboration : CON
3.2.2 Conception de Processus de Collaboration : PROCC
3.3 Un mod`ele conceptuel
3.4 Environnement de Travail Collaboratif pour l’Elicitation
3.4.1 Mod´elisation des Acteurs Collaboratifs
3.4.2 Mod`ele d’Interaction avec UML
IV Vers une m´ethodologie pour l’Elicitation Collaborative des Exigences
4.1 Pr´esentation g´en´erale
4.2 Identification des parties prenantes pertinentes et pr´esentation de la liste initiale des besoins Illustration
4.3 Evolution et affinement de la liste des besoins
Illustration
4.4 Analyse des besoins
4.4.1 Suppression des ambigu¨ıt´es
4.4.2 Suppression des redondances
4.4.3 Suppression des incoh´erences
Illustration
4.5 Transformation des besoins en exigences techniques
Illustration
4.6 Hi´erarchisation des exigences techniques
Illustration
4.7 V´erification et Validation des exigences
4.7.1 Identification du probl`eme
4.7.2 Proposition d’options aux probl`emes
4.7.3 Validation des options
Illustration
V Outillage et travaux exp´erimentaux de la m´ethodologie
5.1 Introduction
5.2 Les Syst`emes Supports de Groupe
5.3 A propos de ThinkTank
5.4 SpecJ
5.4.1 Architecture fonctionnelle
5.4.2 Mod`ele conceptuel de donn´ees de l’application
5.4.3 Interface de SPECJ avec sc´enario
5.5 Travaux Exp´erimentaux et ´etudes de cas
5.5.1 D´emarche
5.5.2 R´esultats
Conclusion g´en´erale
References
Liste des tableaux
Télécharger le rapport complet