Introduction au génie logiciel



Documents pareils
Cours Gestion de projet

Génie logiciel (Un aperçu)

Analyse,, Conception des Systèmes Informatiques

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

Les méthodes itératives. Hugues MEUNIER

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

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

Développement itératif, évolutif et agile

CHAPITRE 3 : LES METHODES AGILES?

But de cette introduction à la gestion de projets :

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

Gestion Projet. Cours 3. Le cycle de vie

Processus d Informatisation

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

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

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

Le génie logiciel. maintenance de logiciels.

Génie Logiciel. Notes de l an passé-k. Planning Projets. Evolution des approches (1/4) Evolution des approches (2/4) Evolution des approches (3/4)

Séance 1 Méthodologies du génie logiciel

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

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

25/12/2012

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

Méthodes Agiles et gestion de projets

Chapitre I : le langage UML et le processus unifié

IFT2255 : Génie logiciel

Les Méthodes Agiles. description et rapport à la Qualité. Benjamin Joguet Rémi Perrot Guillaume Tourgis

GL Processus de développement Cycles de vie

Processus de Développement Logiciel

Introduction à la modélisation

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

Méthodes de développement

Processus de Développement Logiciel

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

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

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

Méthodologies Orientées-Objet!

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

IBM Business Process Manager

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

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

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

Eclipse Process Framework et Telelogic Harmony/ITSW

INDUSTRIALISATION ET RATIONALISATION

Jean-Pierre Vickoff

Gestion de projets logiciels. Xavier Dubuc

Qualité et Test des Logiciels. Le génie logiciel. Moez Krichen.

Vérifier la qualité de vos applications logicielle de manière continue

Conception, architecture et urbanisation des systèmes d information

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

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

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

Jean-Pierre Vickoff J-P Vickoff

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

L Architecture d Entreprise au service de la Transformation. Ludovic Relandeau VP, Managing Director MEGA

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

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

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

Rational Unified Process

Méthodologies de développement de logiciels de gestion

Introduction à l extreme Programming et au développement agile

Gé nié Logiciél Livré Blanc

2. Activités et Modèles de développement en Génie Logiciel

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

Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique

ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE

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

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

UML (Paquetage) Unified Modeling Language

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

GL Le Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel

2.DIFFERENTS MODELES DE CYCLE DE VIE

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

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

Maîtriser les mutations

Business Process Design Max Pauron

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

Présentation UBO 12/2008 Présentation des méthodes agiles

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

CNAM cours NFE107 : Urbanisation et architecture des SI Xavier Godefroy, Rapport sur le BPM, mai Le BPM

Plan d action SMB d une Approche Agile de la BITM Pour les PME

Méthodes de développement. Analyse des exigences (spécification)

W4 - Workflow La base des applications agiles

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Conception des IHM. Fabien Duchateau

Cours Composant 2. Qualité logicielle et spécications algébriques

Business Process Modeling (BPM)

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

Testeur Agile Niveau Fondation Bertrand Cornanguer, Vice-chair Agile tester WG

1. Considérations sur le développement rapide d'application et les méthodes agiles

Agile 360 Product Owner Scrum Master

Rendez-vous la liberté avec Rational Quality Manager

Système d Information du CNRST - SIC -

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

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

Silk Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications

Transcription:

Introduction au génie logiciel Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) Introduction au génie logiciel 2007 1 / 36

Plan du cours 1 Problématique du génie logiciel 2 Méthodes de développement logiciel 3 Conclusion 4 Bibliographie G. Laurent (ENSMM) Introduction au génie logiciel 2007 2 / 36

Problématique du génie logiciel Définition du génie logiciel Le génie logiciel est l ensemble des activités de conception et de mise en oeuvre des produits et des procédures tendant à rationaliser la production du logiciel et son suivi (arrêté du 30 déc. 1983) Le génie logiciel englobe les tâches suivantes : Spécification : capture des besoins, cahier des charges, spécifications fonctionnelles et techniques Conception : analyse, choix de la modélisation, définition de l architecture, définition des modules et interfaces, définition des algorithmes Implantation : choix d implantations, codage du logiciel dans un langage cible Intégration : assemblage des différentes parties du logiciel Documentation : manuel d utilisation, aide en ligne Vérification : tests fonctionnels, tests de la fiabilité, tests de la sûreté Validation : recette du logiciel, conformité aux exigences du CDC Déploiement : livraison, installation, formation Maintenance : corrections, évolutions G. Laurent (ENSMM) Introduction au génie logiciel 2007 3 / 36

Problématique du génie logiciel Les différentes catégories de logiciels Logiciels génériques vendus comme les produits courants Logiciels sans impact économique significatif (logiciels amateurs) Logiciels jetables ou consommables (par exemple les traitements de texte), leur remplacement n engendrent pas de risque majeur pour l entreprise Logiciels spécifiques développés pour une application précise et destinés à un seul client Logiciels essentiels au fonctionnement d une entreprise. Ce type de logiciel est le fruit d un investissement non négligeable et doit avoir un comportement fiable, sûr et sécurisé. Logiciels vitaux, c est-à-dire ceux dont dépend la vie d êtres humains (domaines du transport, de l armement et de la médecine). G. Laurent (ENSMM) Introduction au génie logiciel 2007 4 / 36

Problématique du génie logiciel Un logiciel de qualité Critères externes (côté client) Adéquation, validité Efficacité Ergonomie Facilité d apprentissage Ponctualité Fiabilité dans le temps Sûreté, robustesse Sécurité Intégrité Critères internes (côté concepteur) Flexibilité, modularité Réutilisabilité Lisibilité, clarté Facilité d extension, de maintenance, d adaptation et d évolution Portabilité Compatibilité, interopérabilité Traçabilité Testabilité, vérificabilité G. Laurent (ENSMM) Introduction au génie logiciel 2007 5 / 36

Problématique du génie logiciel La crise du logiciel Permanente depuis les années 70 Étude du Standish Group sur plus de 350 entreprises totalisant plus de 8000 projets d applications : G. Laurent (ENSMM) Introduction au génie logiciel 2007 6 / 36

Exemples d échecs Problématique du génie logiciel Exemples d abandons Confirm (1992) : projet d American Airlines de système de réservation commun (avions, voitures, hôtels, etc.). Investissement : 125 M $ sur 4 ans, plus de 200 ingénieurs. Résultat : les différentes parties n ont pas pu être assemblées en raison de la diversité des méthodes de développement. Taurus (1993) : projet d automatisation des transactions pour la bourse de Londres annulé après 5 années de développement. Pertes estimées à 75 M $ pour la société et 450 M $ pour les clients. Exemple de bug Ariane V (1996) : explosion de la fusée en vol due à une erreur de débordement lors de la conversion d un nombre flottant 64 bits vers un entier 16 bits. Code hérité de Ariane IV. Coût : 500 M $. G. Laurent (ENSMM) Introduction au génie logiciel 2007 7 / 36

Problématique du génie logiciel Principales causes de la crise du logiciel Fuite en avant de la complexité Coût du changement Le coût d un changement de fonctionnalité dans un logiciel est 10 fois plus élevé s il a lieu en phase de développement que s il est connu au départ, 100 fois plus élevé s il a lieu en phase de production Idem pour les corrections d erreurs L importance de la maintenance est souvent sous-estimée Faiblesse des tests G. Laurent (ENSMM) Introduction au génie logiciel 2007 8 / 36

Problématique du génie logiciel Défis du génie logiciel Maintenance et évolution des logiciels spécifiques Adaptation aux nouveaux besoins des clients ou de l entreprise Gestion de l entropie des logiciels qui ne cesse de croître Gestion de l hétérogénéité Mise en réseau de systèmes variés Portabilité des logiciels sur toutes les plateformes (windows, linux, etc.) Maîtrise et raccourcissement des temps de développement Maîtrise de la qualité (sûreté, fiabilité, robustesse) G. Laurent (ENSMM) Introduction au génie logiciel 2007 9 / 36

Méthodes de développement logiciel Une méthode de développement logiciel nécessite Une modélisation (concepts manipulés) Une notation associée à la modélisation Un processus de développement Un (ou des) langage(s) et plateforme(s) cible(s) G. Laurent (ENSMM) Introduction au génie logiciel 2007 10 / 36

2.1 Modélisation des logiciels Modélisation des logiciels 2 Méthodes de développement logiciel Modélisation des logiciels Processus de développement séquentiels Processus de développement itératifs Processus unifié Méthodes agiles et extreme Programming G. Laurent (ENSMM) Introduction au génie logiciel 2007 11 / 36

Modéliser, pour quoi faire? Modélisation des logiciels Objectifs Identifier les caractéristiques pertinentes d un système dans le but de pouvoir l étudier Faciliter la compréhension du système, synthétiser son fonctionnement (par l abstraction et la simplification) Normaliser Simuler le comportement du système futur Gérer le risque (état d avancement, découverte de problèmes, etc.) Communiquer Remarques Le choix du modèle initial a une grande influence Les meilleurs modèles sont ceux qui sont connectés à la réalité Un modèle peut être exprimé à divers niveaux de précision On peut utiliser plusieurs modèles (fonctionnels, structurels, etc.) pour décrire tous les différents aspects d un système complexe G. Laurent (ENSMM) Introduction au génie logiciel 2007 12 / 36

Axes de modélisation d un logiciel Modélisation des logiciels G. Laurent (ENSMM) Introduction au génie logiciel 2007 13 / 36

Modélisation formelle Méthodes de développement logiciel Modélisation des logiciels Principe : toutes les activités du logiciel sont validées par des preuves formelles, conception obtenue par raffinements successifs de la machine abstraite au code Intérêts/inconvénients Comportement du logiciel garanti Bien adaptée aux processus de développement séquentiels Coûts et délais de développement importants G. Laurent (ENSMM) Introduction au génie logiciel 2007 14 / 36

Modélisation des logiciels Modélisation fonctionnelle et structurée Principe : décomposer le système selon les fonctions qu il doit réaliser par une analyse descendante modulaire Intérêts/inconvénients Bon outil de communication pour réaliser les spécifications fonctionnelles Possibilité de vérifier la cohérence du modèle (modèle semi-formel) Bien adaptée aux processus de développement séquentiels Modélisation partielle du logiciel Conçue initialement pour des applications de gestion mais également utilisée dans les domaines de la production et des systèmes automatisés Souvent associée à d autres outils (grafcet, statecharts, réseaux de Pétri) G. Laurent (ENSMM) Introduction au génie logiciel 2007 15 / 36

Modélisation orientée objets Modélisation des logiciels Principe : décomposer le logiciel en un ensemble d entités (objets) qui interagissent entre elles (objet = données + fonctions) Intérêts/inconvénients Réduction des coûts de développement grâce à la modularité, à la réutilisabilité et à la compacité du code Réduction des coûts de maintenance grâce à l encapsulation (18% des coûts de maintenance sont dûs à un changement de structure de données) Bien adaptée aux processus de développement itératifs Passage délicat de la spécification à la conception Possibilité de vérifier la cohérence du modèle avec OCL (Object Constraint Language) par exemple G. Laurent (ENSMM) Introduction au génie logiciel 2007 16 / 36

Processus de développement séquentiels 2.2 Processus de développement séquentiels 2 Méthodes de développement logiciel Modélisation des logiciels Processus de développement séquentiels Processus de développement itératifs Processus unifié Méthodes agiles et extreme Programming G. Laurent (ENSMM) Introduction au génie logiciel 2007 17 / 36

Processus de développement séquentiels Processus de développement séquentiels Modèle en cascade (waterfall model) Proposé en 1970 par W. Royce G. Laurent (ENSMM) Introduction au génie logiciel 2007 18 / 36

Processus de développement séquentiels Processus de développement séquentiels Illustration des inconvénients du modèle en cascade Source Univ. of London Computer Center Newsletter n 53 march 73 G. Laurent (ENSMM) Introduction au génie logiciel 2007 19 / 36

Processus de développement séquentiels Processus de développement séquentiels Modèle en V Normalisé (AFNOR Z67-131 et Z67-131) G. Laurent (ENSMM) Introduction au génie logiciel 2007 20 / 36

Processus de développement séquentiels Processus de développement séquentiels Avantages / inconvénients Exemples de méthodes Méthode B (Abrial, 1980) SADT (Ross, 1977) MERISE (1978-1979) Avantages Bien adaptés aux outils de modélisation formelle et fonctionnelle Visibilité de l état d avancement (mais pas forcément réaliste!) Mise en avant de l analyse Inconvénients Nécessitent une bonne connaissance des besoins sous peine de développer un logiciel inadapté Non prise en compte de l évolution ou de l instabilité des besoins, logiciels peu évolutifs Découverte tardive des erreurs d analyse, de conception et de codage Paralysie par l analyse Démotivation et effet big bang G. Laurent (ENSMM) Introduction au génie logiciel 2007 21 / 36

Processus de développement itératifs 2.3 Processus de développement itératifs 2 Méthodes de développement logiciel Modélisation des logiciels Processus de développement séquentiels Processus de développement itératifs Processus unifié Méthodes agiles et extreme Programming G. Laurent (ENSMM) Introduction au génie logiciel 2007 22 / 36

Processus de développement itératifs Processus de développement itératifs G. Laurent (ENSMM) Introduction au génie logiciel 2007 23 / 36

Processus de développement itératifs Processus de développement itératifs Avantages / inconvénients Exemples de méthodes Cycle en b (N.D. Birrel et M.A. Ould, 1985) Cycle en spirale (B. Boehm, 1988) Cycle en O (P. Kruchten, 1991) Processus unifié (J. Rumbaugh, I. Jacobson et G. Booch, 1999) Processus en Y (Two Track Unified Process) de la société Valtech (P. Roques et F. Vallée, UML en action, Eyrolles, 2003) Méthodes agiles Avantages Capture des besoins continue et évolutive Détection précoce des erreurs Etat d avancement connecté à la réalité Implication des clients/utilisateurs Motivation de l équipe par les prototypes Inconvénients Explosion des besoins Difficile définition de la dimension d un incrément Nécessite une direction rigoureuse pour ne pas retomber dans le code and fix G. Laurent (ENSMM) Introduction au génie logiciel 2007 24 / 36

2.4 Processus unifié Méthodes de développement logiciel Processus unifié 2 Méthodes de développement logiciel Modélisation des logiciels Processus de développement séquentiels Processus de développement itératifs Processus unifié Méthodes agiles et extreme Programming G. Laurent (ENSMM) Introduction au génie logiciel 2007 25 / 36

Processus unifié Processus unifié (Unified Process) Méthode itérative et incrémentale (J. Rumbaugh, I. Jacobson et G. Booch, 1999) Piloté par les cas d utilisation Centré sur l architecture Modélisation orientée objets Utilise la modélisation visuelle (UML) Fondé sur la production et l utilisation de composants G. Laurent (ENSMM) Introduction au génie logiciel 2007 26 / 36

Processus unifié Processus unifié (Unified Process) 4 phases de développement Étude d opportunité (préparation) Quoi? / pour qui? / combien? Étude de marché, estimation du coût Capture des besoins majeurs et analyse préliminaire Maquette, éventuellement réalisée avec un outil de développement rapide d application (RAD) par une petite équipe Élaboration Capture et analyse des besoins Choix de l architecture Réalisation de prototypes d architecture par une petite équipe Construction Répartition des tâches sur plusieurs équipes Enrichissement progressif des fonctionnalités offertes Rédaction de la documentation finale Réalisation d une version bêta Transition Fabrication, livraison Installation, formation Support technique, maintenance, corrections mineures G. Laurent (ENSMM) Introduction au génie logiciel 2007 27 / 36

Processus unifié Processus unifié (Unified Process) Synchronisation des phases et des incréments G. Laurent (ENSMM) Introduction au génie logiciel 2007 28 / 36

Processus unifié Processus unifié (Unified Process) Importance des activités au cours des différentes phases activités phases Etude du business Etude d opportunité Elaboration Construction Transition Expression des besoins Analyse et Conception Implémentation Tests Déploiement itérations Source Rational Software Corporation G. Laurent (ENSMM) Introduction au génie logiciel 2007 29 / 36

Méthodes agiles et extreme Programming 2.5 Méthodes agiles et extreme Programming 2 Méthodes de développement logiciel Modélisation des logiciels Processus de développement séquentiels Processus de développement itératifs Processus unifié Méthodes agiles et extreme Programming G. Laurent (ENSMM) Introduction au génie logiciel 2007 30 / 36

Méthodes agiles et extreme Programming Méthodes agiles Méthodes itératives à planification souple Itérations très courtes (2 semaines à 2 mois) S opposent à la procédure et à la spécification à outrance Exemples de méthodes : (http ://www.businessinteractif.fr/contents/documents/methodesagiles2001-v1.1.zip) extreme Programming DSDM ASD CRYSTAL SCRUM FDD... Création de l Agile Alliance en 2001 (http ://agilealliance.org) G. Laurent (ENSMM) Introduction au génie logiciel 2007 31 / 36

Méthodes agiles Méthodes de développement logiciel Méthodes agiles et extreme Programming 4 priorités : Priorité aux personnes et aux interactions sur les procédures et les outils Priorité aux applications fonctionnelles sur une documentation pléthorique Priorité de la collaboration avec le client sur la négociation de contrat Priorité de l acceptation du changement sur la planification G. Laurent (ENSMM) Introduction au génie logiciel 2007 32 / 36

extreme Programming (XP) Méthodes agiles et extreme Programming Méthode agile de Kent Beck et Ward Cunningham (2000) 4 valeurs : La communication La simplicité Le retour d information Le courage 12 pratiques : Client sur site Jeu du planning Intégration continue Petites livraisons Rythme soutenable Tests (unitaires et fonctionnels) Conception simple (YAGNI) Utilisation de métaphores Remaniement du code Convention de nommage Appropriation collective du code Programmation en binôme G. Laurent (ENSMM) Introduction au génie logiciel 2007 33 / 36

extreme Programming (XP) Méthodes agiles et extreme Programming Avantages Efficace pour de petits projets Logiciels de qualité Bonne adéquation aux besoins du clients Inconvénients Équipe de 12 à 20 développeurs au maximum Négociations commerciales plus compliquées Investissement important du client Programmation en binôme pas toujours bien ressentie G. Laurent (ENSMM) Introduction au génie logiciel 2007 34 / 36

Conclusion Conclusion La meilleure méthode est celle adaptée au contexte Type de logiciel Ampleur du projet Équipe de développement Itérations courtes Excellence technique Simplicité Modularité/réutilisabilité Développeurs polyvalents Petites équipes motivées Tests encore et toujours G. Laurent (ENSMM) Introduction au génie logiciel 2007 35 / 36

Bibliographie Bibliographie Jacques Printz. Le génie logiciel. Que sais-je? Presses Universitaires de France, 2002. Bertrand Meyer. Conception et Programmation Orientée Objet. Eyrolles, 2000. Pierre-Alain Muller and Nathalie Gaertner. Modélisation Objet avec UML. Eyrolles, 2000. Pascal Roques. UML en action. Eyrolles, 2003. Alfred Strohmeier and Didier Buchs. Génie logiciel : principes, méthodes et techniques. Presses polytechniques et universitaires romandes, 1996. G. Laurent (ENSMM) Introduction au génie logiciel 2007 36 / 36