Argument. Méthodologies agiles. Plan. Manifesto for Agile Software Development. Première partie



Documents pareils
Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

Développement ebusiness

IFT2255 : Génie logiciel

Scrum et l'agilité des équipes de développement

Analyse,, Conception des Systèmes Informatiques

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Presses des MINES - TRANSVALOR, 60, boulevard Saint-Michel Paris Cedex 06 - France

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

CC30 Certificat de compétence Conception, développement et animation de sites Web

Génie logiciel (Un aperçu)

Introduction au génie logiciel

M1 : Ingénierie du Logiciel

Chapitre I : le langage UML et le processus unifié

UML est-il soluble dans les méthodes agiles?

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Cours Gestion de projet

Les méthodes Agile. Implication du client Développement itératif et incrémental

Cours en ligne Développement Java pour le web

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Les méthodes itératives. Hugues MEUNIER

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Génie Logiciel Orienté Objet UML

Méthodologie d ingénierie logicielle adaptée à une PME

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

SECTION 5 BANQUE DE PROJETS

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Université de Bangui. Modélisons en UML

Professeur-superviseur Alain April

Cours STIM P8 TD 1 Génie Logiciel

Méthodologies de développement de logiciels de gestion

Les méthodes agiles en développement informatique : Fondements théoriques et retours d expérience

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Refonte front-office / back-office - Architecture & Conception -

Formation : Modélisation avec UML 2.0 et Mise en pratique

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Description de la formation

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire

Introduction à la modélisation

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Mail: Linkedin:

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

CQP Développeur Nouvelles Technologies (DNT)

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Méthodologies Orientées-Objet!

Développement d un interpréteur OCL pour une machine virtuelle UML.

Rational Unified Process

3. UML - Unified Modeling Language Diagrammes statiques

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

UML 2.0. (IUT, département informatique, 1 re année) Laurent AUDIBERT

But de cette introduction à la gestion de projets :

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

Les BRMS Business Rules Management System. Groupe GENITECH

Évaluation et implémentation des langages

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

ANGULAR JS AVEC GDE GOOGLE

EXIN Agile Scrum Master

Génie Logiciel Avancé Cours 3 Le modèle à objets

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Visual Paradigm Contraintes inter-associations

Méthodologies de gestion de projet agiles et en cascade : définition, combinaison et application.

Diagrammes de Package, de déploiement et de composants UML

Patrons de Conception (Design Patterns)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Les nouvelles architectures des SI : Etat de l Art

Roques. Programmeur UML 2. Modéliser une une application web. 4 e e édition

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Ne renvoyez pas vos architectes! Utilisez-les avec agilité

Ingénierie des Modèles. Méta-modélisation

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Eclipse Process Framework et Telelogic Harmony/ITSW

Le Processus Unifié. Une Démarche Orientée Modèle. IUP NTIE - Master 1 - Jérémie Guiochet - 4/11/09

Gestion de la relation Client (CRM)

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Objecteering. La convergence SOA, UML2, BPMN, EA, pour le développement guidé par le modèle.

GL Le Génie Logiciel

CHAPITRE 3 : LES METHODES AGILES?

Urbanisation des systèmes d information

OCL - Object Constraint Language

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Le développement d'applications informatiques

les Cahiers Programmeur Modéliser une application web Pascal Roques 3 e édition

Stage Ingénieur en développement logiciel/modélisation 3D

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

AGILE Historique et évolution

RTDS G3. Emmanuel Gaudin

Analyse par Objets. avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I

Transcription:

Argument Méthodologies agiles Première partie Contexte Les projets informatiques. Statistiques embarrassantes. Problématique récente Le changement fréquent, permanent, d ampleur, continu Évolution fonctionnelle : dynamique économique, mondialisation, concurrence, rachats & fusions, euro, bulle internet, recentrages, etc. Évolution technologique : Matériel, OS, SGBD, Langage, API, drivers, protocoles, versions, etc. Les méthodologies (façons de faire) «classiques» sont trop rigides Coût certain, résultats discutables, délais trop longs (incompressibles) Exemple : mise en ligne de la nouvelle offre en quelques semaines Émergence d autres façons de faire dites «agiles» Marginales, résultats, curiosité, médiatisation, discours généralisé Efficaces dès les petits projets Principes : flux tendus (informationnels), simplicité, aspects humains Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 1 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 2 Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value : Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas 2001, the above authors this declaration may be freely copied in any form, but only in its entirety through this notice. Plan 1.1 Introduction Cycle de vie des projets (oo) Analyse, Conception, Développement, Test Le paradigme orienté objet Encapsulation, Héritage, Polymorphisme Aspects méthodologiques couverts Modélisation, Patterns, Processus 1.2 Modélisation Rappels de la notation UML / exemple Outils de modélisation : BlueJ, Rose, Together Design Pattern par un exemple UML 1.3 Modèles de processus (oo) Démarches : RUP, ICONIX, FDD, ZOE, (XP) http://agilemanifesto.org/ Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 3 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 4

Cycle de vie d un projet 1.1 Introduction Phases et activités (simplification) Analyse, Conception, Développement, Test Test : exécution Exécutable + autres ressources (BD, fichiers) Développement : programmation Sources : C++, Java, C#, Analyse : compréhension du problème Cahier de charges Conception : ébauche de la solution Modèle Element de continuité : l objet monaie unique, matière première, pâte à modeler, coder et tester Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 5 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 6 Le paradigme orienté objet Principes Encapsulation : objet, classe/type, méthodes/opérations Héritage : nouveaux types, substitution (Liskov) Polymorphisme : comportement dynamique Avantages Maintenabilité : évolutivité, extensibilité, maintenabilité Intuitivité : apprentissage, assimilation, mémorisation Usage (omniprésent) Langages de programmation : Smalltalk, C++, Java, C# Langages de modélisation : UML (OMT, Schlaer-Mellor, Coad, OOD, OOSE) Persistance orientée objet SGBDOO (Versant, ObjectStore) SGBDR + mapping O/R (TopLink, JDO, Lido, ObjectDriver, SQLJ, etc.) IHM OO menu principal simplifié : opérations / menu local, état / options grisées, etc Programmation et modélisation orientée objet Abstraire Occulter des informations jugées de moindre importance pour en garder les infos les «plus importantes» Ex. Structure d un objet => classe Syntaxe du langage vs. symboles Indépendance du langage de programmation Code -> diagrammes : aspects multiples et complémentaires structurel/dynamique/temporel, individuel/collectif, besoins/solution, métier/technique, conceptuel/implémentation/déploiement Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 7 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 8

Du code au diagramme Aspects méthodologiques class Personne { String nom; Integer age; void bonjour() { } } class Employe extends Personne { String metier; void bonjour() { } } Personne nom : String age : Integer bonjour () Employe metier : string bonjour () Modélisation : notation, outils (1.2) Patterns : DP, Idiômes, AP, P -1, MP (2-4) Processus/démarche (1.3) Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 9 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 10 Rappel de la notation UML 1.2 UML Rappel de la notation UML Outils de modélisation Exemple de Design Pattern Système Ce que l on veut modéliser (application / organisation) Modèle Description du système Concepts Acteur, cas d utilisation Objet, classe, attribut Vue Diagrammes de Cas d utilisation, Classe, Objet Séquence, Collaboration, État, Activité Composants et Déploiement Symboles Icônes spécialisées : classe, objet Session nom : String code : Integer 1104 : Session code = 1104 nom = MyUML Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 11 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 12

Diagramme de cas d utilisation Acteurs, cas d utilisation, participation Le système Cas d utilisation Diagramme de cas d utilisation But But --Entrer Entrer dans dans la la conférence Acteurs, cas d utilisation, participation Déroulement principal --Le Le participant se se présente à l'accueil et et donne donne son son nom nom --L'hôtesse (système ou ou l'organisateur) lui lui fournit fournit un un badge badge --Le Le participant montre son son badge badgeà l'entrée de de la la session Le système Déroulement alternatif --Si Si le le participant n'est n'est pas pas inscrit inscrit => => inscription ad-hoc ad-hoc --...... Cas d utilisation Acteur Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 13 Acteur accueil badge badge entrée entrée inscription nom nom organisateur participant session Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 14 Diagramme d activités Activité Diagramme d activités Activité Proposition Flux Inscription Flux Couloir Couloir Accueil Session Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 15 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 16

Diagramme de classes Classe, attribut, opération, association, agrégation, gation, généralisation, multiplicité Diagramme de séquence Objet, ligne de vie, message, activation Personne # Nom : String + Société : String + email : String : Organisateur : Participant : Conférence Inscription(Date, Conférence) <<Actor>> Participant accueil badge badge entrée entrée inscription nom nom organisateur participant session Inscription() Inscription + DateInscription : Date Conférence Thème 1104 : Session code = 1104 nom = MyUML <<Act or>> Organisateur Accueil() Session + Code : String nom : String <<Ac tor>> +orateur code : Integer Intervenant est animée par 1 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 17 Accueil(P artic ipant) Entrée( ) Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 18 Diagramme de collaboration Diagramme d état-transitions Objet, message, lien État, transition Invitable 1: Ins cription(date, Conférence) 3: Entrée( ) : Conférence Invitat ion Invité Classe = Participant 2: Accueil(Participant) : Organis ateur : Parti cipant Inscription fin conférence Inscrit Entrée Badgé Séquence Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 19 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 20

Diagrammes d implémentation Outils de modélisation Composants et déploiement <<Application>> SvApp SGBD BC2006.gdb <<Application>> BC2006.exe BlueJ Apprentissage des concepts objet par l expérimentation Rational Rose Leader du marché, bonne navigation Racheté par IBM en 2002 Together/J Leader du RoundTrip synchrône Racheté par Borland en 2002 Bien d autres outils Objecteering, ArgoUML, ModelMaker, WithClass, Voir aussi www.objectsbydesign.com http://www.objectsbydesign.com/tools/umltools_bycompany.html Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 21 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 22 BlueJ Rational Rose Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 23 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 24

Together/J État des lieux Complexité objets : répartition de la responsabilité et délégation (sous-traitance) Documentation structurelle/comportementale, individuelle/collective : bien Pertes en performances : Client.CalcCA() ->> Cde.CalcTotal()->>Ligne.GetTotal() Caractère intuitif : pas évident pour «tous»; courbe d apprentissage allongée Productivité dégradée Instabilité observée très fréquemment Réutilisation à large échelle composants «industriels», utilisables et connectables aisément (sans développement lourd) Pas encore çà : applications = ensemble de gros modules utilisant des centaines de composants Évolutivité par extensibilité : héritage, encapsulation et polymorphisme => insuffisant Traçabilité chaîne de production «complètement» orientée objet : spécification->réalisation->exploitation : «round-trip» très peu adopté Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 25 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 26 Obstacles, critiques et coupables Exemples Sous-évaluation de l importance des «cas d utilisation» Relations entre les diagrammes peu évidentes Discours abstrait des évangélistes Maturité et coût des outils Intégration avec les librairies : JDK, Struts Intégration objet-relationnel Intégration modélisation / programmation / IHM Processus ouvert, non dirigé, non unifié Bilan UML = nécessaire, mais insuffisant Coupables potentiels OMG, éditeurs d outils & plateformes, clients, préconisateurs, prestataires, utilisateurs, nos attentes, le genre humain? Design Patterns Défauts courants de conception [GoF94] Créer un objet en spécifiant explicitement sa classe Assujettissement à une opération particulière Dépendance d une librairie particulière Assujettissement à une représentation interne Assujettissement à un algorithme Couplage fort Extension des fonctionnalités par sous-classement => Besoin de repères plus forts, de cas d école Design Patterns Solutions efficaces à des problèmes récurrents Enregistrement du passé Formalisation réutilisable : fiches de cuisine Traduction : «Modèle de conception» ou «Patron» Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 27 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 28

Composite «H» «T» 1.3 Processus Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 29 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 30 Quel processus pour UML? Caractéristiques Itératif Incrémental Plusieurs démarches Guidé Rational Iconix FDD Opportunisme éclairé (Z) XP Processus pour UML «Rational Unified Process» Phases Itérations Jalons (milestones) Workflow Activités Collaborateur (worker) Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 31 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 32

Rational Unified Process Une itération traverse les workflows Workflow du processus Spécifications Analyse & Conception Implémentation Test Deploiement Workflow auxiliaires Gestion de configurations / changements Gestion de projet et du processus Inception #-1 #0 Elaboration #1 #2 Phases Itérations Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 33 #n Construction #n+1 #n+2 [Rational99] Transition #m #m+1 System Analyst Architect Use Case Specifier User Interface Designer Workflow Use Case and Actor identification Use Case Prioritization Les workflow peuvent être adaptés Un diagramme d activité Use Case Detailing Use Case model Structuring User Interface Prototyping [Rational99] Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 34 Rational Unified Process Adoption RUP Assimiler la notation UML et les stéréotypes Apprendre les extensions orientés gestion «business specific extensions» Intégrer le processus unifié et ses «workflows» Le spécialiser pour son entreprise / équipe Enfin, l instancier dans un projet Processus Iconix [ros] Inspiré d Objectory, simplifié articulations : dia. robustesse ; conseils et AP Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 35 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 36

FDD Peter Coad Zoé Modèles théoriques de processus En cascade, «V», spirale, «Y» Le modèle en «Z» : un anti-modèle Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 37 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 38 Opportunisme éclairé Bibliographie UML Correspondances microscopiques légitimes / sémantique transformations vérifications Use Case Invitable Invité Inscrit Composants Déploiement Activité Classe.PAS.H,.CPP.JAVA Collaboration Etat-transition Séquence OMG www.omg.org, guide de notation [UML/Not] Los 3 amigos Booch, Rumbaugh & Jacobson, AW, 3 livres / 1 CD Introduction facile Fowler & Scott : «UML Distilled» [fow] Rosenberg & Scott : «Use Case Driven Object Modeling With UML» Autres Pierre-Alain Muller : «Modélisation OO avec UML» [pam] James Rumbaugh : «OMT» [rum] Larman : «Applying UML And Patterns» P. Coad : «Java Modeling with Colors» Rational Unified Process, 99 Badgé.EXE,.DLL Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 39 Méthodologies agiles - POLEINFO3 TIO - (c) 2006 zam@lamsade.dauphine.fr 40