Séance 1 Méthodologies du génie logiciel Objectifs : Histoire du développement du logiciel. La crise du logiciel. Explorer les différentes méthodologies de développement. Comprendre l importance d adopter une méthodologie pour la réussite d un projet. Présentation du modèle de maturité CMMI. 2008 Ingénierie du logiciel avec Ada N.KERZAZI
Agenda Présentation du chargé de cours. Présentation des participants. Présentation du plan de cours. Documentation. Évaluation. Coordonnées. Importance de l ingénierie du logiciel (Software engineering). Rappel sur les processus de développement. Quelques chiffres qui démontrent l importance du GL. 2
Documentation Livres: «Programming in ADA 2005», John Barnes, Addison Wesley 2006. «ADA as a second language» 2 éd, Norman H.Cohen, McGraw Hill. Autres documentations: À venir. Des articles scientifiques seront fournis. 3
Évaluation Projet 80%. Cinq (5) livrables Présentation (1) 20%. 4
Processus du Génie Logiciel Pourquoi des processus du génie logiciel Présentation des processus du génie logiciel (GL) L approche prédictive (Traditionnelle) L approche adaptative (Agile) Présentation d un modèle de maturité CMMI 5
Pourquoi des processus du génie logiciel Ratés Défis Réussis 2000 23% 49% 28% 1998 28% 46% 26% 1995 40% 33% 27% 1994 31% 53% 16% Ces données ont été compilées à partir de 30 000 projets industriels (Grands, Moyens et Petits) Source: Extreme Chaos, The Standish Group International, Inc., 2000 6
Des chiffres empiriques Causes d é d échec Spécifications incomplètes Faible communication entre les parties prenantes Mauvaise gestion des changements Source : Forrester 2006 Source: Standish Group 2004 7
Pourquoi nous utilisons un processus? Nous le faisons parce qu on a peur que : le projet ne produit pas le bon produit, le projet produit un système de qualité inférieure, le projet dépasse la date de livraison ou les ressources prévues, L on prouve aux parties prenantes que l organisation est assez mature et capable de livrer le produit. 8
Airbus A380 Trop d ordinateurs et trop de logiciels 9
La taille des logiciels Airbus 380: Environ 1 billion (1.000.000.000) de lignes de code Windows XP: ~40 million de lignes de code Ceci donne une idée de la taille du défi auquel font face les ingénieurs logiciel!!! 2008 Ingénierie du logiciel avec Ada N.KERZAZI 10
Symptômes des projets réalisés avec des défis Ca ne marche pas dans notre environnement Ca ne correspond pas à nos attentes Nous sommes mécontents contents Le projet fut en retard et hors budget C est trop difficile à utiliser Au final, ce n est n pas ce dont nous avions besoin Ce truc est imprévisible On découvre chaque jour de nouveaux problèmes mes Nous ne pouvions obtenir les informations nécessaires au projet Nous n avons n pas vraiment compris ce que nous devions faire. Nous ne savions pas si le travail des autres équipes impacteraient notre travail 11
Les trois facteurs pour l amélioration de la productivité 12
Processus de génie logiciel Un processus de génie logiciel est un ensemble structuré de pratiques. Une pratique est composée d un rôle (entité abstraite) qui réalise une activité pour produire un artefact. Rôle Activité Artefact Réf: UPEDU 13
Exemple: Spécification des exigences système SRS Besoins du client Ingénieur système Formaliser les besoins Spécification des exigences du système Spécification des exigences non fonctionnels SRS révisé Glossaire Liste de risques Réf: UPEDU Réviser Spécifications des exigences du système 14
Exemple: Modélisation des besoins Besoins du client Analyste Définir les cas d utilisation et les maquettes d interfaces CUI Modèles des cas d utilisation CUI révisé Modèles des Interfaces utilisateurs Cas d utilisation et interfaces Réf: UPEDU Réviser 15
Encore des chiffres (Martin & Leffinwell) Distribution des défectuosités Distribution de l effort pour réparer les défectuosités Exigences 56% Code 7% Autres 10% Exigences 82% Code 1% Autres 4% Conception 13% Conception 27% 16
La sonde sur Mars En 1999 le «Mars Climate Orbiter» disparait alors qu il débute son orbite autour de Mars. Coût: environ 125 millions de dollars US. Problème causé par une erreur de transfert d information entre une équipe au Colorado et une en Californie. Une équipe utilisait le système de mesure anglais (pouces, pieds, livres ) alors que l autre utilisait le système métrique pour une fonction clé de l appareil 17
GIRES, Le plus grand projet du Québec Projet de 8 ans du gouvernement du Québec, commencé en 1998. GIRES, ou Gestion intégrée des ressources, consiste à implanter dans l'administration publique les pratiques les plus efficaces de gestion en ressources humaines, matérielles et financières. Ces pratiques seront appuyées par le progiciel de gestion intégré (PGI) de la firme Oracle. Budget: 80 millions de dollars. 18
Impact prévu de GIRES GIRES touchera : plus de 68 000 employés de l État près de 140 ministères et organismes GIRES remplacera : les systèmes SAGIP et SYGBEC plus de 1000 systèmes ministériels GIRES sera installé dans toutes les régions du Québec GIRES sera «le plus important chantier informatique jamais entrepris au Québec» 19
Suite GIRS, le gouffre Ce qui devait être une opération peu coûteuse et efficace est devenu un véritable fiasco financier. Projet d une durée de 8 ans: Défi de maintenir le rythme et de gérer le changement. Après 5 ans, les coûts avoisinaient les 400 millions de dollars et les retards s'accumulaient.. Le projet est abandonné en 2003, le gouvernement préférant investir dans les programmes sociaux. Sources: http://www.cric.ca/fr_html/focus/focus_archives/focus_v1n6.html http://radio canada.ca/nouvelles/index/nouvelles/200303/04/012 GIRES.shtml 20
Progression des dépenses Mais en 1995, les dépenses se chiffraient à 85 millions de dollars. En 2000 : 327 millions de dollars. En 2002 : 688 millions de dollars. Plusieurs imprévus non informatique: Frais de bataille juridique Scandales au niveau des achats de matériel Frais de voyage indécents Autres frais obscurs... Mais il y eût aussi plusieurs dérapages du côté informatique. 21
Dérapages 30 permis différents, long formulaires (jusqu'à huit pages) qui changent souvent. 90 % d'erreurs ou d'omissions sur les demandes de permis. En 1998, on engage la firme EDS pour le système informatique. Coût : 1 million de dollars. EDS avait échoué à informatiser les pensions de vieillesse du fédéral, en 1997. EDS n avait pu terminer son contrat au Québec pour le fameux projet GIRES. En 2002, après 32 amendements au contrat, le système informatique luimême a coûté 227 millions de dollars. Et il ne suffit pas à la tâche. Il faut dire que le client, le Centre des armes à feu, a demandé 2000 changements informatiques. Par exemple, le permis, qui coûtait 60 $, a été réduit à 10 $, pour ensuite être gratuit un certain temps. Le gouvernement a remboursé ceux qui avaient payé. Presque 8 millions de dollars. Une dépense imprévue. Sans compter que les remboursements ont été faits à la main, le système informatique n'ayant pas prévu une telle chose! 22
Et ça dérape encore Mais pas moyen de couper dans le système informatique qui continue de coûter cher, très cher. Après la tentative de EDS, les firmes CGI et BDP doivent tout recommencer! Un contrat de 300 millions de dollars pour le créer, l'installer et le faire fonctionner. CGI et BDP demandent 15 millions de dollars de plus. À la surprise de plusieurs, EDS a un nouveau contrat de 115 millions de dollars. Elle aura reçu, au total, 410 millions de dollars. Tout compris, le système informatique aura coûté 725 millions de dollars. C'est beaucoup d'argent pour une loi qui n'est pas appliquée dans la plupart des provinces! Près d un milliard de dollars ont déjà été dépensés (mars 2005), comme l'a révélé la vérificatrice générale, avec les coûts informatiques, les dépenses occultes et les frais courants. 23
Facteurs de succès Standish Group Inc., 2000 24
Causes des problèmes 25
Orientation des processus de développement les approches de développement pilotées par : Conception Risque Tests Outils Maturité Agilité (Humain). 26
Les processus prédictifs Structurés. Organisés en phases avec des livrables identifiés. Activités et Rôles. «Breakdown list» avec des «Milestones». RUP Macroscope Merise ITIL Ebase 27
RUP 28
Exemple: Processus XP L importance donnée aux: Individus et aux interactions. Logiciels immédiatement disponibles Collaboration plus qu une négociation contractuelle Réactivité face aux changements plus que le respect d un plan 1 Tests unitaires 2 Tests de recette 3 Planification itérative 4 Client sur site 5 Programmation en binôme 6 Intégration continue 7 Remaniement du code (Refactoring) 8 Livraisons fréquentes 9 Conception simple 10 Métaphore 11 Responsabilité collective du code 12 Règles de codage 13 Rythme durable Les 13 pratiques de la méthode XP 29
Les processus Agiles (adaptatifs) Processus itératif centré sur l humain Travailler directement sur le code Collaborer avec le client Répondre aux changements XP (Extreme Programming) Scrum Feature Driven Developpement (FDD) Dynamic System Development Method (DSDM) Crystal Pragmatic Programming 30
Positionnement de quelques processus types Peu de risques, séquentiel, intégration et tests tardifs En Cascade Merise eroadmap Faible formalisme Peu de documentation, processus légers RUP MACROSCOPE UMM Formalisme élevé Bien documenté DSDM Crystal XP Scrum Itératif Piloté par les risques avec intégration et tests continus 31
Les niveaux de maturité du CMMI L évolution du processus vers une amélioration continue est gérée par des niveaux de maturité organisationnelle (1 à 5) Pour un niveau ciblé, l organisation doit démontrer par une évaluation qu elle couvre les pratiques de ce palier et des paliers inférieurs 32
CMMI > Domaines de processus 33