Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 1 Chapitre 4. Les Méth

Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 1 Chapitre 4. Les Méthodes Agiles Les projets informatiques possèdent de plus en plus des aspects très complexes. Ceci est dû à plusieurs facteurs : - la "taille" du projet, - la "complexité" du système étudié (comportement, structure), - « l'hétérogénéité » du projet (plusieurs systèmes d'exploitation, intégration de bases de données, systèmes en réseaux, ...), ….. Ces facteurs sont en quelque sorte intrinsèques aux projets et participent d'une "manière fixe" à la complexité perçue. Pourtant, cette dernière est aussi d'essence subjective dépendant directement du "savoir" et de la compétence du modélisateur. Du fait de la densification des moyens et des outils mis à disposition, la maîtrise d'un projet informatique peut nécessiter un savoir de plus en plus vaste dans différents domaines (logiciels, langage(s), code, APIs, ...). Dans le cadre de l’Ingénierie des logiciels, deux « écoles » s’affrontent actuellement :  Ingénierie basée sur les modèles ou Model-Driven, préconisée par l’OMG (consortium composé de plus de 1000 sociétés), s'appuyant sur une modélisation UML très poussée visant à une génération automatique de code quasi complète en effectuant plusieurs transformations successives.  Ingénierie basée sur les méthodes agiles, qui met plus d'accent sur la production rapide de code opérationnel que sur la documentation, ce qui minimise la modélisation en amont. Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 2 4.1. Historique des méthodes agiles Les méthodes dites Agiles ont été créées notamment suite à un nombre trop important d’échecs dans les projets. Historiquement, on peut citer le modèle en spiral, créé par Barry W. Boehm pour le développement logiciel. Il se base sur des phases itératives. Ce modèle a notamment influencé l’Extreme Programming (XP) par la suite. Dans le début des années 1980, James Martin, s’appuyant sur cette vision d’une évolution continue, proposa une méthode de développement rapide d’application (le RAD). Elle a été reprise par la suite en 1991, par Jean Pierre Vickoff, pour l’adapter au système français (RAD2). Elle repose sur un cycle de développement en cinq phases : • Initialisation pour définir le périmètre fonctionnel et le plan de communication • Cadrage pour la définition des objectifs et des moyens à allouer au projet. • Design avec notamment la présentation générale de l’application. • Construction, phase pendant laquelle le produit sera construit module par module avec une validation permanente de l’utilisateur pour les spécifications et les différents prototypes. • Finalisation, avec la recette et le déploiement du livrable. Dès 1994 Jennifer Stapleton, en Grande-Bretagne, présentait DSDM, équivalente au RAD2. DSDM est souvent considérée comme la première méthode Agile et, dans la seconde moitié des années quatre-vingt-dix, une vague d’une dizaine de méthodes dont « Extreme programming » et « Scrum » sont les principales Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 3 représentantes, développa encore les techniques adaptatives d’estimation, de planification et de pilotage de projet. Les méthodes agiles sont constituées d’un ensemble de méthodes qui ont un seul objectif : satisfaire le client. C’est dans cette optique qu’en 2001 aux Etats- Unis, 17 grands noms du développement logiciel se sont réunis. Parmi eux on peut citer Ward CUNNINGHAM l'inventeur du Wiki, Kent BECK le père de l'Extreme Programming et coauteur de JUnit, Ken SCHWABER et Jeff SUTHERLAND, fondateurs de Scrum, Martin Fowler avec la société « Thought Works » et le serveur d’intégration continue Cruise Control. Ces 17 personnalités qui viennent toutes d'horizons différents ont réussies à extraire de leurs concepts respectifs des critères pour définir une nouvelle façon de développer des logiciels. A l’issue de cette réunion est né le « Manifeste Agile », considéré comme une définition du développement Agile et de ses principes. Il contient les quatre valeurs fondamentales ainsi que les treize principes de fonctionnement. 4.2. Les principes agiles L’idée de base est de faire face efficacement aux multiples problèmes de lourdeur et parfois d’imprécision dans la gestion des projets ; ou encore un cahier des charges figé dont les exigences ont évolué au cours de l'élaboration du projet. L’objectif principal ici est de satisfaire le client, et non un contrat établi préalablement. Pour réduire ce risque de fossé au stricte minimum, les méthodes agiles prônent l'incrément et l'itération. Nous citons ici les quatre principes fondateurs d’agile : Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 4 1- Priorité aux personnes et aux interactions par rapport aux procédures et aux outils • L’accent est mis sur les individus, leur expertise, l’esprit d’équipe plutôt que sur les processus et les outils Ce sont les individus qui font la valeur du travail accompli, ce sont donc eux que l’on doit privilégier. Sans l’artisan, les meilleurs outils ne servent à rien. Les processus qui définissent ce que doit faire chaque personne brident le potentiel caché derrière chacun : faire interagir les gens au maximum est bien plus prolifique et permet d'améliorer grandement l'efficacité et la qualité du travail fourni, en rassemblant des visions différentes d'un même problème. 2- Priorité aux applications fonctionnelles opérationnelles par rapport à une documentation pléthorique • On privilégie le code testé Les processus lourds génèrent une documentation exhaustive avec tous ses inconvénients : ambiguïté du langage, coût de la rédaction, coût du maintien en accord avec la réalité, etc. Ces documents ne sont qu'une illusion d'avancement du projet. Dans les méthodes Agiles, un seul critère permet de mesurer l'avancement d'un projet : le logiciel qui fonctionne. La documentation n'est qu'un support concret qui aide à produire le logiciel. 3- Priorité à la collaboration avec le client par rapport à la négociation de contrats • Le client devient un partenaire qui participe au projet pour donner régulièrement son feedback Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 5 Le but d’un projet est de gagner de l’argent aussi bien pour le client que pour le fournisseur. En négociant un contrat chaque partie se protège plus ou moins des risques financiers, mais les projets peuvent échouer à tout moment si les délais sont non respectés ou bien les budgets insuffisants. La conséquence n’est pas compliquée. Le client et le fournisseur se retrouvent alors devant un procès où finalement tout le monde est perdant puisque le client ne peut avoir son logiciel et le fournisseur risque tout simplement de faire faillite selon l’importance que le projet avait. Il faut sortir de la guerre client/fournisseur et penser en équipe qui veut atteindre un but commun pour réussir le projet, c’est une relation gagnant/gagnant 4- Priorité à l’acceptation et la réactivité au changement par rapport à la planification • Le planning est flexible pour accepter les modifications nécessaires Lorsqu’un plan est défini, l’équipe essaie de s’y tenir et ne fait pas attention aux évènements extérieurs qui peuvent arriver à tout moment du projet. Il est en plus à l'origine des conflits client/fournisseur classiques sur les délais de livraison. Pour le client, pouvoir adapter les besoins en cours de projet est un atout concurrentiel : il est réactif aux changements des marchés et s'assure en plus que le logiciel développé est parfaitement conforme à ses véritables besoins. Nous présentons ci-dessous, les champs de valeurs des méthodes agiles par rapport aux autres méthodes (classiques). Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 6 Figure : Classification des valeurs des méthodes agiles et classiques Le terme AGILE regroupe un ensemble de méthodes, parmi lesquelles XP (eXtreme Programming). Ces méthodes essayent aussi d’assembler des atouts majeurs des approches RUP (Rationl Unified Process) et RAD (Rapid Application Development), tout en gardant une souplesse de planification et d’adaptation au changement. 4.3. « Modélisation agile » des projets Les méthodes agiles placent justement l’agilité au centre de l’innovation. En plus, elles mélangent différentes approches de management (travail en binôme, responsabilité collective,…) et libèrent la créativité tout en garantissant réalisme et conformité. Issues de l'observation pragmatique de la vie des projets informatiques et se basant sur le partage des responsabilités, les méthodologies agiles évitent de s'encombrer de ce qui n'est pas nécessaire, « coupant » ainsi les coûts. Ainsi la documentation sera limitée au strict minimum, le code faisant référence, les Cours d’Ingénierie du Logiciel Elvis Noël IRAMBONA, MSc. 7 tests prennent une importance capitale et tout est fait pour faciliter un dialogue simple et direct. Nous listons ici quelques-uns des principes fondamentaux : - Avoir une culture de la qualité, préventive, pas réactive : Donc, éliminer les « bugs » à la source, le plus tôt possible. Le "test drived development", les revus par les pairs, la conception commune sur tableau blanc, une souplesse. - Avoir en vue le gain pour le client, garder la souplesse et livrer le plus vite possible ce qui a de la valeur. - S'adapter en tout temps aux circonstances, être adapté et évolutif. Rester souple. - Réduire les pertes le plus possible. Est-ce que tel document est vraiment utile? Est-ce que cette fonctionnalité a vraiment une valeur ? - Il faut également un changement de mentalité de la part des participants. Ils doivent avoir deux préoccupations à cœur, tous les jours : livrer et améliorer ses façons de faire, uploads/Ingenierie_Lourd/ chapitre-4-ingenierie-du-logiciel 1 .pdf

  • 12
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager