Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique



Documents pareils
Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Introduction au génie logiciel

Génie logiciel (Un aperçu)

CQP Développeur Nouvelles Technologies (DNT)

Conception, architecture et urbanisation des systèmes d information

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

Cours Gestion de projet

Analyse,, Conception des Systèmes Informatiques

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

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Le Guide Pratique des Processus Métiers

Les nouvelles architectures des SI : Etat de l Art

Méthode Agile de 3 ème génération J-P Vickoff

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

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

Agile 360 Product Owner Scrum Master

Les méthodes itératives. Hugues MEUNIER

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

CHAPITRE 3 : LES METHODES AGILES?

Urbanisation des systèmes d information

25/12/2012

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

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

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

IFT2255 : Génie logiciel

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

Description de la formation

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Rational Unified Process

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

DES SYSTÈMES D INFORMATION

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

REX Scrum Master du terrain

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

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

Architecture Agile et développement durable

Liste des Formations

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

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Retour d expérience. Le rôle du Business Analyst chez Orange. Nadia Magarino & Christophe Dufour 29 avril 2015

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

Retour d expérience implémentation Scrum / XP

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

Identification du module

Méthodes de développement

Développement itératif, évolutif et agile

Certification Scrum Master

Cours en ligne Développement Java pour le web

1/15. Jean Bernard CRAMPES Daniel VIELLE

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Agile Maroc 24 Novembre Méthodes agiles. Thierry Cros. Agile Maroc 24 novembre 2010

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

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Les méthodes Agiles. Introduc)on aux méthodes Agiles Exemple : Scrum

Méthodologies de développement de logiciels de gestion

Scrum + Drupal = Julien Dubois

Business Process Modeling (BPM)

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

Jean-Pierre Vickoff

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

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

Eclipse Process Framework et Telelogic Harmony/ITSW

COMPÉTENCES TECHNIQUES

Guide de Préparation. EXIN Agile Scrum. Foundation

Scrum/XP adapté au BI/DW

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

Le 09 et 10 Décembre 09

Patrons de Conception (Design Patterns)

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

Plan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Le Product Backlog, qu est ce c est?

Expert technique J2EE

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Un serveur d'archivage

Scrum Une méthode agile pour vos projets

SCRUM chez BWIN : implémentation d une méthode agile dans Focalpoint Spasija Taseva et Corinne Bacle

Jean-Pierre Vickoff J-P Vickoff

Architecture pragmatique pour la gestion du cycle de vie des applications (ALM)

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Formation pour Product Owner

Java à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

UML (Paquetage) Unified Modeling Language

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

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

INGÉNIEUR - DÉVELOPPEUR SENIOR.NET. 31 ans - 8 ans d'expérience

SCRUM BUT, LE LIVRE BLANC. De la problématique de mener un projet AGILE dans une organisation classique

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

LA MÉTHODE AGILE VS LE CYCLE EN V UNE RÉVOLUTION DANS LA GESTION DE PROJET. Franck BEULÉ

Bertrand Cornanguer Sogeti

Plateforme de capture et d analyse de sites Web AspirWeb

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

Chapitre I : le langage UML et le processus unifié

Le génie logiciel. maintenance de logiciels.

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

Transcription:

Avant-propos 1. Objectifs 17 2. Public visé 18 3. Organisation de l ouvrage 18 Ingénierie pilotée par les modèles 1. Sémantique introductive 19 1.1 Designer 21 1.2 Finitude 21 1.3 Conjectures 22 2. Architecture logicielle 23 2.1 Architecte 23 2.2 Points clés d une architecture 24 2.3 Challenges 24 2.4 Agilité 25 2.5 Spécification 25 2.5.1 Le System Architecture Document (SAD) 25 2.5.2 Le Guide de design des composants 26 2.5.3 Le Prototype architectural 26 2.5.4 Le Modèle 26 2.6 Workflow 27 2.6.1 Spécification des exigences 27 2.6.2 Analyse architecturale 28 2.6.3 Design architectural 28 2.6.4 Design orienté objet 29 3. Architecture pilotée par les modèles (MDA) 29 1/16

3.1 Fondations 30 3.1.1 MOF 30 3.1.2 XMI 30 3.1.3 UML 31 3.1.4 OCL 31 3.2 Architecture MDA 31 3.2.1 Cycle de vie du développement 31 3.2.2 Modèle indépendant de la plateforme (PIM) 32 3.2.3 Modèle spécifique à la plateforme (PSM) 33 3.2.4 Code 33 3.3 Exemple 33 3.3.1 PIM 34 3.3.2 PSM base de données 34 3.3.3 PSM Java 36 3.3.4 Code 37 3.4 Conclusion 38 Approche processus 1. Management 39 1.1 Arborescence 39 1.2 Machine à café 40 1.3 Organisation 41 1.4 Kanban 42 1.5 PMBOK 42 2. Processus 45 2.1 Manifeste 46 2.2 Cycle vertueux 47 2.3 Qualité 48 2.4 Classification 49 2.5 Choix cornélien 49 3. Maturité 50 2/16

4. Épistémologie 53 4.1 Le formalisme libère! 53 4.2 Waterfall 54 4.3 Prototype 57 4.4 Spirale 58 4.5 Itération 60 4.6 SADD 61 5. Agilité 63 5.1 Manifeste Agile 63 5.2 Principes 64 5.3 Gourous 65 5.4 Le grand mix 66 5.5 Détracteurs 67 Méthodes agiles 1. Extreme Programming 69 1.1 Quatre valeurs 69 1.2 Douze pratiques 70 1.2.1 Développement piloté par les tests (TDD) 70 1.2.2 Le jeu du planning 70 1.2.3 Client dans l équipe 71 1.2.4 Petites livraisons 71 1.2.5 Usage des métaphores 71 1.2.6 Design simple 72 1.2.7 Refactorisation à outrance 72 1.2.8 Propriété collective 72 1.2.9 Programmation par binômes 73 1.2.10 Intégration continue 73 1.2.11 Rythme de travail raisonnable 73 1.2.12 Conventions de nommage 73 1.3 Particularités 73 3/16

1.3.1 Humanisme 73 1.3.2 Vélocité 74 1.3.3 YAGNI 75 1.3.4 Espace 75 1.4 Conclusion 75 1.4.1 Architecture émergente 76 1.4.2 Exosquelette 76 1.4.3 Entropie 77 2. Scrum 78 2.1 Concept 78 2.2 Processus 79 2.3 Rôles 80 2.3.1 Product Owner 80 2.3.2 Team 81 2.3.3 Scrum Master 81 2.4 Backlog 82 2.5 Sprint Planning 83 2.6 Daily Scrum 84 2.7 Burndown Chart 84 2.8 Bénéfices 85 2.9 Questions socratiques 85 2.10 Tour d ivoire 86 3. Processus Unifié Ouvert (Open UP) 87 3.1 Rational Unified Process (RUP) 87 3.2 Open UP 88 3.3 Principes 88 3.4 Organisation 89 3.4.1 Zone de contenu 89 3.4.2 Rôles 90 3.5 Cycle de vie du projet 91 3.5.1 Inception 92 3.5.2 Élaboration 92 3.5.3 Construction 92 4/16

3.5.4 Transition 92 3.6 Itérations 92 Spécifications 1. Exigences 97 1.1 Formulations 97 1.1.1 Café 98 1.1.2 Code 98 1.1.3 Tests 99 1.1.4 Modèle 99 1.1.5 Backlog 99 1.1.6 Documents 100 1.2 Les parties prenantes 100 1.3 Typologie des exigences 100 1.3.1 Fonctionnalité 101 1.3.2 Exigences fonctionnelles 101 1.3.3 Cas d utilisation 101 1.3.4 Prototype 102 1.4 Exigences non fonctionnelles 102 1.4.1 Disponibilité 102 1.4.2 Fiabilité 102 1.4.3 Souplesse 102 1.4.4 Flexibilité 103 1.4.5 Performance 103 1.4.6 Montée en charge 103 1.4.7 Réutilisation 104 1.4.8 Sécurité 104 2. Ingénierie 104 2.1 Capture 104 2.2 Analyse 105 2.3 Documentation 106 2.4 Validation 106 5/16

2.5 Gestion 106 3. Vision 106 3.1 Exigences d entreprise 107 3.1.1 Fondements 107 3.1.2 Opportunité commerciale 107 3.1.3 Objectifs commerciaux et critères de succès 107 3.1.4 Besoins clients 108 3.1.5 Risques métier 108 3.2 Vision de la solution 108 3.2.1 Énoncé de la vision 108 3.2.2 Fonctionnalités majeures 108 3.2.3 Hypothèses et dépendances 108 3.2.4 Périmètre et limitations 109 3.2.5 Périmètre de la version initiale 109 3.2.6 Périmètre des versions ultérieures 109 3.2.7 Limitations et exclusions 109 3.3 Contexte métier 109 3.3.1 Profil des parties prenantes 110 3.3.2 Priorités du projet 110 3.3.3 Environnement d exécution 110 4. Spécification 110 4.1 Introduction 111 4.1.1 Intention 111 4.1.2 Conventions 111 4.1.3 Audience 111 4.1.4 Cadre du projet 111 4.1.5 Références 111 4.2 Description générale 111 4.2.1 Perspective du produit 111 4.2.2 Fonctionnalités du produit 112 4.2.3 Classes d utilisateurs 112 4.2.4 Environnement opérationnel 112 4.2.5 Contraintes de design et d implémentation 112 6/16

4.2.6 Documentation utilisateur 112 4.2.7 Hypothèses et dépendances 112 4.3 Fonctionnalités du système 113 4.4 Exigences des interfaces externes 114 4.4.1 Interfaces utilisateur 114 4.4.2 Interfaces matérielles 114 4.4.3 Interfaces logicielles 114 4.4.4 Interfaces de communication 114 4.4.5 Exigences non fonctionnelles 114 4.5 Appendices 115 5. Modélisation 116 5.1 Modèle fonctionnel 116 5.1.1 Exigences 116 5.1.2 Reporting 117 5.1.3 Diagrammes d exigences 119 5.1.4 Diagrammes de cas d utilisation 119 5.2 Gestion du changement 120 5.2.1 Traçabilité 121 5.2.2 Matrice 122 Cas d utilisation 1. Histoires d usage 123 1.1 Historique 124 1.2 Terminologie 124 1.2.1 Acteur 124 1.2.2 Scénario 124 1.2.3 Étape 125 1.3 Formalisme 125 1.3.1 Tout habillé 125 1.3.2 Relaxe 127 1.4 Rédaction 127 1.5 Erreurs classiques 128 7/16

2. Diagrammes 128 3. Use Case points 129 3.1 Pourquoi l utiliser? 129 3.2 Adoption 129 3.3 Auteurs 130 3.4 Méthode de Karner 130 4. Étude de cas 134 4.1 Exigences 134 4.2 Cas d utilisation 135 4.2.1 Version intégrale 135 4.2.2 Version allégée 138 4.3 Modèle UML 139 4.4 Estimation de coûts 140 4.4.1 Estimation 141 4.4.2 Conclusion 143 Test et assurance qualité 1. Contexte 145 1.1 Utilisation 145 1.1.1 Agilité 145 1.1.2 Refactorisation 147 1.1.3 Intégration continue 148 1.2 Granularité 150 1.2.1 Tests d acceptance 151 1.2.2 Tests unitaires 152 1.3 Plan de test 152 1.3.1 Smoke testing 153 1.3.2 Positive/Negative testing 153 1.3.3 Performance testing 153 1.3.4 Stress testing 154 8/16

1.4 Testabilité 154 1.4.1 Membres statiques 155 1.4.2 Encapsulation 155 1.4.3 Non-MVC 155 1.4.4 IOC 155 1.4.5 Factory 155 2. Outils 155 2.1 JUnit 155 2.2 JMeter 156 2.3 Code coverage 157 3. Techniques 160 3.1 Boîte noire 160 3.1.1 Exemple 161 3.1.2 Corolaire de Gödel 162 3.2 Boîte blanche 163 3.3 Tests d interface 164 3.4 Mock object 165 Architectures d application 1. Principes d architecture 169 2. Couches 169 2.1 Présentation 170 2.2 Logique métier 171 2.3 Accès aux données 171 3. Tier 171 3.1 Monolithique 172 3.1.1 Mise à jour automatique 172 3.1.2 Compatibilité 174 9/16

3.1.3 Business model 174 3.2 Le deuxième tier 174 3.3 Architectures n-tier 175 3.3.1 Schéma conceptuel 175 3.3.2 Avantages 176 3.3.3 Linéarité 176 3.3.4 Client léger 177 3.3.5 Middle-tier 177 4. MVC 178 4.1 Bénéfices 178 4.2 Workflow 179 4.3 Différences 180 5. Applications mobiles 180 5.1 Développement natif 181 5.2 Application web 182 5.3 Approche hybride 182 6. Exemple 183 6.1 Architecture 183 6.1.1 3-tier 183 6.1.2 Modèle MVC 184 6.2 Implémentation 184 6.2.1 Vue 185 6.2.2 Contrôleur 188 6.2.3 Modèle 190 6.3 Conclusion 192 Architectures d intégration 1. Paysage IT 193 1.1 Évolution des SI 193 1.2 Les limites de l objet 194 10/16

2. Architecture orientée services (SOA) 195 2.1 Le concept de service 195 2.2 Vue d ensemble 196 2.3 Service 197 2.3.1 Contrat 197 2.3.2 Interface 197 2.3.3 Implémentation 198 2.3.4 Logique métier 198 2.3.5 Données 198 2.4 Bus de services 198 2.4.1 Journalisation 200 2.4.2 Sécurité 200 2.4.3 Transaction 201 2.5 Dépôt de services 201 2.5.1 Utilité 201 2.5.2 Liaison 202 2.6 Application front-end 202 3. Technologies 203 3.1 Systèmes distribués 203 3.1.1 Objets distribués (ORB) 203 3.1.2 Middleware orienté messages (MOM) 204 3.1.3 Serveurs d application 205 3.2 Services web 206 3.2.1 WSDL 206 3.2.2 SOAP 208 3.2.3 UDDI 210 3.2.4 BPMN 210 3.2.5 BPEL 210 3.3 RESTful web services 215 3.3.1 REST 215 3.3.2 WADL 217 3.4 Stubs et Dispatcher 219 3.4.1 Top/Down 220 11/16

3.4.2 Bottom/Up 220 3.4.3 MDA 221 Modélisation 1. MERISE 223 1.1 Origine 224 1.2 Cycle de vie 224 1.3 Modèle conceptuel de données (MCD) 225 1.3.1 Entités 225 1.3.2 Associations 226 1.3.3 Cardinalités 227 1.3.4 Dimension 228 1.3.5 Méthode 229 1.3.6 Formes normales 230 1.4 Modèle logique des données (MLD) 231 1.4.1 Tables 231 1.4.2 Relations n/m 232 1.4.3 Relations 1/n 233 1.5 Modèle physique des données (MPD) 233 2. UML 234 2.1 Modèles et vues 236 2.2 Éléments 236 2.2.1 Classe 237 2.2.2 Interface 239 2.2.3 Package 240 2.2.4 Composant 240 2.2.5 Nœud 241 2.2.6 État 241 2.3 Relations 242 2.3.1 Types 242 2.3.2 Multiplicité 243 2.4 Notes et stéréotypes 244 12/16

2.5 Diagrammes 245 2.5.1 Diagramme de classes 245 2.5.2 Diagramme de structure composite 247 2.5.3 Diagramme de composants 248 2.5.4 Diagramme de déploiement 249 2.5.5 Diagramme d objets 250 2.5.6 Diagramme de packages 250 2.5.7 Diagramme de profils 251 2.5.8 Diagramme d activité 252 2.5.9 Diagramme de cas d utilisation 253 2.5.10 Machine à états 254 2.5.11 Diagramme de timing 255 2.5.12 Diagramme de séquence 255 2.5.13 Diagramme de communication 257 2.5.14 Diagramme global d interaction 258 Conception orientée objet 1. L avènement des objets 261 1.1 Quelles sont les différences? 262 1.2 Complexité 262 1.2.1 Modularité 262 1.2.2 Abstraction 263 1.2.3 Polymorphisme 263 1.3 Entropie 263 2. Principes élémentaires 264 2.1 Encapsulation 264 2.1.1 Comment l'appliquer? 264 2.1.2 Exemple 264 2.2 Cohésion 265 2.3 Couplage 266 3. Principes avancés 266 13/16

3.1 Responsabilité unique (SRP) 266 3.1.1 Comment l'appliquer? 267 3.1.2 Exemple 268 3.2 Ouverture/fermeture (OCP) 270 3.2.1 Comment l'appliquer? 270 3.2.2 Exemple 1 271 3.2.3 Exemple 2 271 3.3 Substitution de Liskov (LSP) 272 3.4 Ségrégation d interfaces (ISP) 276 3.5 Inversion de dépendances (DIP) 277 3.6 Inversion de contrôle (IOC) 280 3.6.1 Service locator 282 3.6.2 Injection par container 283 4. Conclusion 285 Design Patterns 1. Introduction 287 1.1 Genèse 288 1.2 Origine 288 1.3 Définition 289 1.4 Intérêt 289 1.5 Formalisme 290 2. Patterns 291 2.1 Création 292 2.1.1 Abstract Factory 292 2.1.2 Builder 294 2.1.3 Factory Method 296 2.1.4 Prototype 297 2.1.5 Singleton 299 2.2 Structure 300 2.2.1 Adapter 300 14/16

2.2.2 Bridge 302 2.2.3 Composite 303 2.2.4 Decorator 305 2.2.5 Facade 306 2.2.6 Flyweight 308 2.2.7 Proxy 309 2.3 Comportement 311 2.3.1 Chain of Responsibility 311 2.3.2 Command 313 2.3.3 Interpreter 314 2.3.4 Iterator 316 2.3.5 Mediator 317 2.3.6 Memento 319 2.3.7 Observer 320 2.3.8 State 321 2.3.9 Strategy 322 2.3.10 Template Method 324 2.3.11 Visitor 325 Boîte à outils 1. Métrologie 329 1.1 Productivité 329 1.1.1 Métriques d ordre général 330 1.1.2 Lignes de code (LOC) 330 1.2 Qualité du design 331 1.2.1 Complexité cyclomatique 331 1.2.2 Couplage entre objets (CBO) 331 1.2.3 Manque de cohésion des méthodes (LCOM) 332 1.3 Qualité de service 332 1.3.1 Durée moyenne de panne (MTTF) 332 1.3.2 Défauts par lignes de code 332 1.4 Exemple 333 1.4.1 Classe à l étude 333 15/16

1.4.2 Résultats 335 2. Outils CASE 336 2.1 Références 337 2.1.1 ArgoUML 337 2.1.2 Rational software 337 2.1.3 PowerAMC 337 2.1.4 Objecteering 338 2.1.5 Entreprise Architect 338 2.2 Génie logiciel 338 2.2.1 Génération de code 338 2.2.2 Reverse engineering 344 2.2.3 Synchronisation 346 2.3 Documentation 346 2.4 Analyse d exécution 346 3. Traité d esthétisme 347 3.1 Théorie constructale 347 3.2 Le nombre d or 348 3.3 Émergence 349 Bibliographie 351 Index 353 16/16