Liens utiles - Etat de l'art des méthodologies | ||||||||||||||||
Préambule :Un panorama rapide des méthodologies utilisées pour le développement d'applications Web est présenté ci-après. Ce résumé est composé essentiellement d'une collection d'extraits de documents variés (source citée) : il n'est donc pas toujours d'un style d'écriture homogène. Il n'est par ailleurs certainement pas exhaustif.
Résumé et plan de l'exposé :En premier lieu, il est important de différencier les techniques de modélisation de l'application (modèles entité-relation, flux, objet (dont UML)…) et les méthodes de conduite de projet (Merise, RAD, UP…) :
Langage de modélisation : UML (Unified Modeling Langage)Le texte qui suit est extrait de [OCTO-architecture-des-SI.pdf]. "Les premiers langages objet sont apparus au milieu des années 80 (SmallTalk,Eiffel) et les premières méthodes d’analyse OO sont quant à elles apparues au début des années 90, époque à laquelle on dénombrait plusieurs dizaines de méthodologies OO. La concentration s’est accélérée vers 1995, par la stabilisation autour de trois méthodes (OOM,OMT,OOSE) puis par la fusion en 1997 de ces méthodes dans un langage unique, UML, sous la coupe de l’OMG. En terme d’analyse et de modélisation objet, UML est aujourd’hui un standard incontournable, stabilisé, industriel (pris en charge par la plupart des outils de modélisation et de développement). Au delà des maîtrises d’oeuvre, UML est également de plus en plus utilisé par les maîtrises d’ouvrage pour spécifier fonctionnellement les cas d’utilisation d’une application, pour modéliser les processus métier au niveau SI… A travers les différents cas d’usage possibles, UML reste un langage formel de modélisation (basé sur un méta-modèle,un formalisme rigoureux), mais n’est ni une méthodologie (on peut très bien adopter par exemple une méthodologie OMT en utilisant le formalisme UML), ni un processus de développement qui définit les étapes du processus, les acteurs, la démarche (UP, RUP). En revanche, UML cadre l’analyse en proposant une démarche de modélisation basée sur l’élaboration itérative de modèles . Principes d'UML :
Quelques sites :
Cycles de vie comparés (méthodes de conduite de projet)Le schéma qui suit est extrait de Rad.fr.
RAD (Rapid Application development)Né dans les années 80, défini par James Martin, repris et adapté au contexte français par Jean-Pierre Vickoff dès 1989. Le texte qui suit est extrait du site Rad.fr. "L'organisation du projet s'appuie sur un principe fondamental : la séparation des rôles et des responsabilités entre maîtrise d'ouvrage (MOA) et maîtrise d'œuvre (MOE). Cette dichotomie renforcée par la présence d’une instance d’animation RAD (Groupe d’Animation et de Rapport (GAR)) implique une véritable réingénierie des méthodes de conduite de projet et impose aux deux maîtrises une redistribution des rôles opérationnels et un apprentissage. La méthode RAD structure le cycle de vie du projet en 5 phases :
RAD 2 : processus d’ingénierie de produit logiciel, générique et adaptable à la typologie du projet comme aux formes de modélisation choisies. Le processus est un répertoire des tâches indispensables. Les fondements du processus RAD2 sont les principes de la méthode RAD. Le processus supporte 3 formes de modélisation : MERISE (version 2, allégée), les FLUX (DFD) et la notation Objet UML."
DSDM (Dynamic Software Development Method)Cette méthode est apparue en 1994. Le texte qui suit est extrait du site : http://www.businessprocesspartner.com/methodes/dsdm.html. "La méthode DSDM propose une approche globale du développement de logiciel dans un environnement de développement rapide (RAD). De nombreuses méthodes de développement de logiciels se concentrent uniquement sur une activité, telle que l’analyse et la conception ou la gestion de projet. DSDM fournit un canevas couvrant l’ensemble du cycle de développement afin d’assurer le succès du projet. Le schéma 1.1 illustre tous les domaines abordés par DSDM. La couche supérieure représente le cycle de développement propre à la méthode DSDM. Les couches inférieures correspondent à toutes les parties du projet de développement qui sont prises en considération par la méthode. Les principes de base sur lesquels repose la méthode DSDM. Chacun de ces principes est appliqué, de façon appropriée, au cours des différentes étapes de cette méthode.
UP (Unified Process)Le texte qui suit est extrait d'un article de Pascal Roques (http://www.dotnetguru.org/articles/Methodes/AgileDotNet.htm). "Le Processus Unifié (UP) est un processus de développement logiciel " itératif et incrémental, centré sur l’architecture, conduit par les cas d’utilisation et piloté par les risques :
La gestion d’un tel processus est organisée suivant les quatre phases suivantes : initialisation (inception), élaboration, construction et transition. La phase d’initialisation conduit à définir la " vision " du projet, sa portée, sa faisabilité, son " business case ", afin de pouvoir décider au mieux de sa poursuite ou de son arrêt. La phase d’élaboration poursuit trois objectifs principaux en parallèle :
La phase de construction consiste surtout à concevoir et implémenter l’ensemble des éléments opérationnels (autres que ceux de l’architecture de base). C’est la phase la plus consommatrice en ressources et en effort. Enfin, la phase de transition permet de faire passer l’application des développeurs aux utilisateurs finaux. Les mots-clés sont : conversion des données, formation utilisateurs, déploiement, béta-tests. Chaque phase est elle-même décomposée séquentiellement en itérations limitées dans le temps (entre 2 et 4 semaines). Le résultat de chacune d’elles est un système testé, intégré et exécutable. L’approche itérative est fondée sur la croissance et l'affinement successifs d’un système par le biais d’itérations multiples, feed-back et adaptation cycliques étant les moteurs principaux permettant de converger vers un système satisfaisant. Le système croît avec le temps de façon incrémentale, itération par itération, et c’est pourquoi cette méthode porte également le nom de développement itératif et incrémental. Il s’agit là du principe le plus important du Processus Unifié.
UP doit donc être compris comme une trame commune des meilleures pratiques de développement, et non comme l’ultime tentative d’élaborer un processus universel." Le schéma qui suit est extrait de : http://www.jerome.capirossi.org/prj_mgt/cycle_10.htm
Méthodologies dérivées
Méthodes agiles (AM = Agile Modeling)"Méthodes itératives à planification souple qui leur permettent de s'adapter à la fois aux changements de contexte et de spécifications du projet". Le texte qui suit est extrait de [BI-methodes-agiles.pdf : "Extreme programming, Méthodes agiles, Tour d'horizon"]. "Les instigateurs des principales méthodes agiles se sont réunis pour former l'Agile Alliance (http://www.agilealliance.org). Ensemble, ils ont pu dégager des principes fondamentaux sur lesquels s'appuyer pour que le développement puisse se faire rapidement et s'adapter au changement. Leur travail a abouti au "Manifeste pour le développement agile d'applications"… Ce manifeste comporte quatre valeurs principales :
Ces quatre valeurs sont déclinées sur douze principes plus généraux qui caractérisent en détail les méthodes agiles. Par exemple :
Quelques sites :
XP (Extreme Programming)Ensemble de bonnes pratiques de développement qui vise à remettre le développeur au centre du processus de développement. Ses prises de positions originales (et extrêmes) lui ont valu un succès d'estime depuis 4 ou 5 ans, surtout aux Etats-Unis. Le texte qui suit est extrait du site : http://www.design-up.com/methodes/XP/ "Voici les principaux éléments du fonctionnement de XP :
Quelques sites :
En guise de conclusion : propositions pour une méthodologieLe texte et schémas qui suivent sont extrait de "Processus de développement Objet : Best Practices" (Steve Sfartz - IMPROVE) [IMPROVE-best-practices.pdf] "Synthèse des processus les plus en vogue dans la communauté Objet et Nouvelles Technologies Projection de XP et 2TUP sur la matrice du RUP
|
Description | Points forts | Points faibles | |
RUP Rational Unified Process |
Promu par Rational. Le RUP est à la fois une méthodologie et un outil prêt à l’emploi (documents types partagés dans un référentiel Web) Cible des projets de plus de 10 personnes |
Itératif
Spécifie le dialogue entre les différents intervenants du projet : les livrables, les plannings, les prototypes… Propose des modèles de documents, et des canevas pour des projets types |
Coûteux à
personnaliser : batterie de consultants Très axé processus, au détriment du développement : peu de place pour le code et la technologie
|
2TUP Two Track Unified Process
|
S’articule autour de
l’architecture Propose un cycle de développement en Y Détaillé dans " UML en action " (voir références) Cible des projets de toutes tailles |
Itératif
Fait une large place à la technologie et à la gestion du risque Définit les profils des intervenants, les livrables, les plannings, les prototypes
|
Plutôt superficiel sur
les phases situées en amont et en aval du développement : capture
des besoins, support, maintenance, gestion du changement… Ne propose pas de documents types |
XP eXtreme Programming |
Ensemble de " Bests Practices " de développement (travail en équipes, transfert de compétences…) Cible des projets de moins de 10 personnes
|
Itératif Simple à mettre en oeuvre Fait une large place aux aspects techniques : prototypes, règles de développement, tests… Innovant: programmation en duo, kick-off matinal debout … |
Ne couvre pas les phases en amont et en aval au développement : capture des besoins, support, maintenance, tests d’intégration… Elude la phase d’analyse, si bien qu’on peut dépenser son énergie à faire et défaire Assez flou dans sa mise en oeuvre: quels intervenants, quels livrables ? |
Définir pour chaque phase, le nombre d’itérations et leur contenu précis.
Ne passez pas des mois à définir votre méthodologie de développement.
Prenez connaissance des processus les plus utilisés pour en intégrer un ou plusieurs à votre méthodologie de projet.
Exemple : Dans le cas d’un projet Nouvelles Technologies, on pourra intégrer :
Le processus de développement doit faire une place importante à la maîtrise des Nouvelles Technologies.
Sous-estimer cet aspect, c’est résoudre les problèmes techniques au fil des développements, avec des risques importants de remise en cause des réalisations (décalage de planning, démotivation des équipes, …).
Exemple : Faire reposer la phase de réalisation sur un processus en Y, en s’attachant à
En règle générale, on peut être confiant quant à la réussite du projet lorsque le prototype fonctionnel est validé et testé.
En effet, à cette étape, les équipes de développement sont productives (formées sur les frameworks techniques, bibliothèques de composants et règles de développement…). "
La construction des systèmes s'appuie fortement sur des modèles ou méta-modèles (framework, design patterns) qu'ils soient d'analyse, de conception, de développement ou technique tels que MDA (Model Driven Architecture), MVC (Modèle Vue Controleur), MVC II, Struts, J2EE…
Basées sur des outils BPM ou BPR du marché (MEGA/System architecture, Rational/ROSE, Casewise…), Visio ou Word.
Pas de standard actuellement.
Mais initiatives en cours, par exemple : UMM = Unified Modeling Methodology (UN/CEFACT), avec pour objectif de fournir une méthodologie standard basée sur UML pour la modélisation des processus métier entre une entreprise et ses partenaires.
Des patterns métiers existent dans le domaine des télécommunications, du Supply Chain Management.