Introduction au Génie logiciel
Transcription
Introduction au Génie logiciel
Introduction au génie logiciel # 1 Génie logiciel 1 Introduction au Génie logiciel • Programmer n'est pas Concevoir un système informatique • La technique ? nécessaire, mais pas si importante que ça ! • Le VRAI problème difficile : l'organisation, la gestion – difficulté de formalisation – multitude de paramètres, facteurs – gestions des humains © A. Beugnard ENST Bretagne Génie logiciel 2 Génie logiciel • Ensemble de moyens (techniques,méthodes) mis en œuvre pour la construction de systèmes informatiques. • Ensemble de moyens (techniques,méthodes) mis en œuvre pour la construction de logiciels. © A. Beugnard A. Beugnard ENST Bretagne 1 1998 Introduction au génie logiciel # 1 Génie logiciel 3 Problématique • Comment acquérir/développer un système sur mesure ? – Que le logiciel soit » développé en interne » acheté, sous-traité • Comment avoir/donner confiance – respect des coûts, du calendrier – respect des besoins fonctionnels –… © A. Beugnard ENST Bretagne Génie logiciel 4 Vue globale besoins (requirements) Utilisateur fourniture et acceptation © A. Beugnard A. Beugnard ENST Bretagne 2 1998 Introduction au génie logiciel # 1 Génie logiciel 5 Vue globale besoins Acheteur (requirements) Acquisition Utilisateur fourniture Vendeur Génie logiciel et acceptation © A. Beugnard ENST Bretagne Génie logiciel 6 Vue globale besoins Acheteur (requirements) Acquisition Gestion de projet Utilisateur fourniture Vendeur Génie logiciel et acceptation © A. Beugnard A. Beugnard ENST Bretagne 3 1998 Introduction au génie logiciel # 1 Génie logiciel 7 Politique Relations Concurrence besoins Acheteur Utilisateur Co-contractant fourniture Fournisseur Vendeur Sous-traitant Sous-traitant © A. Beugnard ENST Bretagne Génie logiciel 8 Points de vue Client Fournisseur Analyser les besoins Faire un cahier des charges Faire un cahier des charges Répondre à un appel d'offre Faire un appel d'offre Etre capable de prévoir, planifier Evaluer la plausibilité d'une réponse Concevoir, analyser Suivre le projet, éviter les dérapages Suivre le projet, éviter les dérapages, les gérer. temps © A. Beugnard A. Beugnard ENST Bretagne 4 1998 Introduction au génie logiciel # 1 Génie logiciel 9 But de ces cours Couvrir le domaine de la production de logiciels – mettre en évidence les besoins (C1) – aspects organisationnels » cycles de vie (C2) » démarches (C2) » « organisational patterns » – aspects techniques » » » » qualité (C3) test (C3) spécification, méthode (C4) « design patterns » © A. Beugnard ENST Bretagne Génie logiciel 10 plan Introduction Le développement vu du client estimation planification Méthode et Méthodologie Qualité Cycles de vie © A. Beugnard A. Beugnard Test ENST Bretagne 5 1998 Introduction au génie logiciel # 1 Génie logiciel 11 Introduction • Parallèle avec le génie civil • Les difficultés liées au logiciel • Constats : – L'organisation – Le développement : une étude de cas – la maintenance © A. Beugnard ENST Bretagne Génie logiciel 12 Métaphore de la maison : génie civil d'après C. Chartier-Kastler "Précis de conduite de projet informatique" comment ? © A. Beugnard A. Beugnard ENST Bretagne 6 1998 Introduction au génie logiciel # 1 Génie logiciel 13 Quelques questions ... • • • • • • • • • Quelle tâches accomplir ? Dans quel ordre ? Qui faire intervenir ? Comment les synchroniser ? Quels outils utiliser ? Quand ? Avec des experts ? Quels plans réaliser ? Ont-ils des liens entre eux ? Existe-t-il des contraintes administratives ? Comment suivre les opérations ? Comment effectuer la recette ? Quand payer ? … © A. Beugnard ENST Bretagne Génie logiciel 14 De nombreuses réponses ! • • • • • • • • • Plan d'occupation des sols Permis de construire Architecte Plan d'ensembles, puis techniques (eau, gaz, électricité) Nommer un maître d'œuvre Avoir un plan de financement Prévoir un point hebdomadaire Avoir des engins de chantiers ... structurons ! © A. Beugnard A. Beugnard ENST Bretagne 7 1998 Introduction au génie logiciel # 1 Génie logiciel 15 Phases du projet étude de faisabilité études de scénarios étude détaillée étude technique construction réception et démarrage entretien Cycle de vie © A. Beugnard ENST Bretagne Génie logiciel 16 Organisation interne comité de direction Experts Architecte Responsabilité Clients Chef de projet Contremaître Ouvriers Soustraitants comité de suivi © A. Beugnard A. Beugnard ENST Bretagne 8 1998 Introduction au génie logiciel # 1 Génie logiciel 17 Outils © A. Beugnard ENST Bretagne Génie logiciel 18 Analyse Comment vivra t-on dans cette maison ? Quelles pièces ? Quelle organisation des pièces ? Salon Comprendre les besoins Comprendre le problème plan général © A. Beugnard A. Beugnard ENST Bretagne 9 1998 Introduction au génie logiciel # 1 Génie logiciel 19 Cohérence Complétude Gestion des versions Conception Salon Salon Raffinement : • aération • électricité • chauffage • ... plan général plan détaillé © A. Beugnard ENST Bretagne Génie logiciel 20 Aspects juridiques • Plan d'occupation des sols • Permis de construire • • • • Responsabilité Contrats Assurances Garanties ne pas attendre la mise en exploitation, pour se soucier des aspects juridiques... © A. Beugnard A. Beugnard ENST Bretagne 10 1998 Introduction au génie logiciel # 1 Génie logiciel 21 Gestion des ressources Finances Temps 1- prévision de coûts 2- plan de financement 3- suivi des dépenses et de l'avancement 1- planning prévisionnel et scénarios 2- tableau de marche 3- suivi de l'avancement des travaux Hommes Matériel 1- recherche personnel 2- coordination des équipes 3- suivi de l'avancement des travaux 1- recensement des matériels 2- suivi de l'utilisation des matériels © A. Beugnard ENST Bretagne Génie logiciel 22 Tableau de bord Indicateurs : – – – – – – – nombre d'incidents nombre d'accidents sur le chantier nombre de jours de retard nombre de dépôts de bilan des sous-traitants nombre des tâches ayant subit une reprise coût réel du projet / coût prévisionnel etc. © A. Beugnard A. Beugnard ENST Bretagne 11 1998 Introduction au génie logiciel # 1 Génie logiciel 23 Assurance qualité Plan d'assurance qualité – – – – – démarche utilisée procédure de décision procédure de circulation de l'information documents à produire etc. © A. Beugnard ENST Bretagne Génie logiciel 24 Introduction • Parallèle avec le génie civil • Les difficultés liées au logiciel • Constats : – L'organisation – Le développement : une étude de cas – la maintenance © A. Beugnard A. Beugnard ENST Bretagne 12 1998 Introduction au génie logiciel # 1 Génie logiciel 25 Difficultés • La complexité intrinsèque d'un projet – l'ingénierie du logiciel est un métier récent • La nature du produit informatique – de l'information ! copiable, modifiable, malléable, bref « soft » © A. Beugnard ENST Bretagne Génie logiciel 26 Les difficultés liées à la nature du logiciel • un logiciel ne s'use pas, sa fiabilité ne dépend que de sa conception • mais, pour rester utilisé un logiciel doit évoluer • pas de direction clairement exprimée, • changements fréquents, • contradictions des besoins,… formaliser modéliser prototyper Alors ... © A. Beugnard A. Beugnard ENST Bretagne 13 1998 Introduction au génie logiciel # 1 Génie logiciel 27 Difficultés liées aux personnes • ne savent pas toujours ce qu'elles veulent, ou ne savent pas bien l'exprimer • communication difficile entre personnes de métiers différents (jargons) • l'informaticien est souvent perçu comme introverti, peu solidaire du groupe (...ça change...) • beaucoup d ’autodidactes qui croient savoir... © A. Beugnard ENST Bretagne Génie logiciel 28 Les difficultés technologiques • courte durée de vie du matériel, • beaucoup de méthodes de langages • évolution des outils de développement,… adaptation formation © A. Beugnard A. Beugnard investissement lourds ENST Bretagne 14 1998 Introduction au génie logiciel # 1 Génie logiciel 29 Introduction • Parallèle avec le génie civil • Les difficultés liées au logiciel • Constats : – L’organisation – Le développement : une étude de cas – la maintenance © A. Beugnard ENST Bretagne Génie logiciel 30 Mots... ’’Les professionnels de l’informatique se distinguent des autres par la piètre qualité de leur production. Ils ne fournissent pas de garantie de leurs logiciels, pire, ils dégagent leur responsabilité pour toutes les erreurs que leurs produits pourraient contenir.'' Cit. approx. C.A.R. Hoare "Aujourd'hui les problèmes importants (de la production de logiciel) ne sont pas des problèmes techniques, mais des problèmes de gestion" Président d'un groupe de travail du DoD pour l'amélioration de l'acquisition de logiciel Pourquoi ces jugements ... © A. Beugnard A. Beugnard ENST Bretagne 15 1998 Introduction au génie logiciel # 1 Génie logiciel 31 Une modélisation Processus de gestion Processus Qualité Estimation, planification, suivi, analyse Documentation Processus qualité Processus de production organisation conception réalisation Cycle de vie exploitation © A. Beugnard ENST Bretagne Génie logiciel 32 Le processus Processus Prévision © A. Beugnard A. Beugnard ENST Bretagne 16 1998 Introduction au génie logiciel # 1 Génie logiciel 33 Le processus Processus décision Prévision Contrôle choix © A. Beugnard ENST Bretagne Génie logiciel 34 Le processus Processus détection Prévision Contrôle Analyse fin © A. Beugnard A. Beugnard ENST Bretagne 17 1998 Introduction au génie logiciel # 1 Génie logiciel 35 Le processus Processus Prévision Contrôle Analyse Apprentissage © A. Beugnard ENST Bretagne Génie logiciel 36 Niveau de maturité des entreprises SEMA niveau caractéristiques problèmes clés 5. optimisé feedback dans le automatisation processus 4. géré mesures anal. et préven. 3. défini mesures définies utilisation 2. répétable intuition formation, std 1. initiation ad hoc/ chaotique AQL, gestion,... résultat product. & qualité des problèmes © A. Beugnard A. Beugnard risque ENST Bretagne 18 1998 Introduction au génie logiciel # 1 Génie logiciel 37 Triste constat 0% Enquête pour le DoD auprès de ses soustraitant (juin 89) 2% 14 % 84 % © A. Beugnard ENST Bretagne Génie logiciel 38 Introduction • Parallèle avec le génie civil • Les difficultés liées au logiciel • Constats : – L'organisation – Le développement : une étude de cas – la maintenance © A. Beugnard A. Beugnard ENST Bretagne 19 1998 Introduction au génie logiciel # 1 Génie logiciel 39 Etude de cas ... • Projet de télécommunication de taille moyenne. • Prix forfaitaire. • Pas d'évaluation de la proposition du contractant. • Pas de mesure de productivité, ni d'évaluation des projets antérieurs du contractant. • Pas d'estimation de la taille du projet et de ses sous systèmes. • Le client ne demande pas d'informations supplémentaires. © A. Beugnard ENST Bretagne Génie logiciel 40 Charge prévisionnelle Personnes 25 20 15 Mai 89 10 59 HM 5 mai jun jul aou sep oct nov dec janv fev mar avr © A. Beugnard A. Beugnard ENST Bretagne 20 1998 Introduction au génie logiciel # 1 Génie logiciel 41 5 mois plus tard ... Personnes 25 20 15 Sep 89 + 2 mois + 86 HM 145 HM 10 5 mai jun jul aou sep oct nov dec janv fev mar avr © A. Beugnard ENST Bretagne Génie logiciel 42 encore 3 mois après... Personnes 25 Dec 89 20 15 + 5 mois + 59 HM 118 HM 10 5 mai jun jul aou sep oct nov dec janv fev mar avr • Aucune information sur ce qui est réalisé... • La confiance diminue... • Audit... Tiens, avez-vous une idée de votre productivité ? © A. Beugnard A. Beugnard ENST Bretagne 21 1998 Introduction au génie logiciel # 1 Génie logiciel 43 Analyse de la situation 23 sous-systèmes avaient été isolés. Une estimation des tailles minimale, probable et maximale est réalisée. Le projet fait 67597 ± 1596 lignes. L'état courant après 8 mois ... – 2 sous-systèmes en installation et – 21 en conception détaillée ou codage. Les productivités souhaitées étaient : – en mai, 19 – en septembre, 17 – en décembre, 15 © A. Beugnard ENST Bretagne Génie logiciel 44 Résultat • La productivité réelle est réévaluée...à 7...( - 8) • La durée du projet est réévaluée à 30 mois...( +18) • La charge est réévaluée à 420 HM... ( +300) • Le budget a augmenté de 4 500 000 $ Ce n'est pas un cas isolé ... © A. Beugnard A. Beugnard ENST Bretagne 22 1998 Introduction au génie logiciel # 1 Génie logiciel 45 Conclusion • Il n'est jamais trop tard pour bien faire. • Des mesures simples permettent de réaliser des estimations fiables... • Mais, faut-il encore vouloir le faire... • Le contractant y gagne en confiance et sérieux... • Le client y gagne en sécurité, en coût et en temps... • Des outils appropriés sont bien utiles à ce genre d'analyse... © A. Beugnard ENST Bretagne Génie logiciel 46 Triste constat livré, utilisé sans succès 47% utilisé après modif. 3% payé, non livré 29% utilisé avec succès 2% utilisé, modif. abandonné 19% début 90 DoD : ~7 M$ © A. Beugnard A. Beugnard ENST Bretagne 23 1998 Introduction au génie logiciel # 1 Génie logiciel 47 Introduction • Parallèle avec le génie civil • Les difficultés liées au logiciel • Constats : – L'organisation – Le développement : une étude de cas – la maintenance © A. Beugnard ENST Bretagne Génie logiciel 48 Coût de la maintenance % coût 90 100 75 80 % 60 55 40 40 20 0 Début 70 Début 80 Fin 80 Début 90 (DATAMATION 15 fév 90) © A. Beugnard A. Beugnard ENST Bretagne 24 1998 Introduction au génie logiciel # 1 Génie logiciel 49 Répartition de la maintenance 25% Adaptations 20% Corrections Améliorations 55% © A. Beugnard ENST Bretagne Génie logiciel 50 Objectifs du génie logiciel • Maîtrise de la qualité Dire ce qu’on va faire Faire ce qu’on a dit • Maîtrise des coûts • Maîtrise des délais © A. Beugnard A. Beugnard Prévoir Suivre Apprendre ENST Bretagne 25 1998 Introduction au génie logiciel # 1 Génie logiciel 51 Comment maîtriser ? • Pour réaliser un bon projet il faut : – un bon fournisseur – un bon client – de l ’organisation – de la communication © A. Beugnard ENST Bretagne Génie logiciel 52 plan Introduction Le développement vu du client Cycles de vie estimation Test planification Qualité © A. Beugnard A. Beugnard Méthode et Méthodologie ENST Bretagne 26 1998 Introduction au génie logiciel # 1 Génie logiciel 53 Gestion d’acquisition • Le processus d’acquisition – modèle, cycle de vie, stratégie • Que doit-on prévoir avant le développement ? – Organisation, planning, méthode, test, risques, ... • Que faire pendant le développement – revues, configuration, qualité, évaluation • La documentation : mémoire du développement © A. Beugnard ENST Bretagne Génie logiciel 54 Acquisition en 5 étapes • Définition et lancement – besoins, stratégies • Préparation de l'appel d'offre – l'attendu pour les réponses • Contrat • Suivi du projet • Acceptation (recette) © A. Beugnard A. Beugnard ENST Bretagne 27 1998 Introduction au génie logiciel # 1 Génie logiciel 55 Cycle de vie d’acquisition besoins concepts Définition Lancement Cahier des charges Appel d ’offre Propositions Contrat Suivi du Développement Stratégies - compétition Fourniture Acceptation/Recette Maintenance Opérationnelle - 2-phases - simple © A. Beugnard ENST Bretagne Génie logiciel 56 Contracter • Les objectifs et les besoins techniques doivent être précis. • Le type de contrat doit être fixé : – Prix fixe --> Risque assuré par le fournisseur – Régie --> Risque partagé • Quelques critères d'évaluation... – – – – Disponibilité de fournisseurs Risque du développement Besoin de l'utilisateur Urgence, Taille de l'effort, Exigences à satisfaire © A. Beugnard A. Beugnard ENST Bretagne 28 1998 Introduction au génie logiciel # 1 Génie logiciel 57 Gestion d’acquisition • Le processus d'acquisition – modèle, cycle de vie, stratégie • Que doit-on prévoir avant le développement ? – Organisation, planning, méthode, test, risques, ... • Que faire pendant le développement – revues, configuration, qualité, évaluation • La documentation : mémoire du développement © A. Beugnard ENST Bretagne Génie logiciel 58 Points clés (plan de développement) • • • • • • • • • • • • • Structure des activités Organisation et interface Ressources Co-contractants Gestion des sous-traitants Planning et jalons Méthode de développement Revues Documentation Environnement logiciel Tests Evaluation du produit Risques Organisation Temps Technique Qualité © A. Beugnard A. Beugnard ENST Bretagne 29 1998 Introduction au génie logiciel # 1 Génie logiciel 59 Organisation et interface • Définition de la hiérarchie du projet – il faut des décideurs dans cette hiérarchie – formation de groupe de travail • Définition des flux de communication dans l'organisation du projet – verticaux et horizontaux • Prévision de l'évolution de l'organisation en fonction de l'avancement du projet • Impliquer client et fournisseur dans les groupes de travail pour assurer une bonne visibilité © A. Beugnard ENST Bretagne Génie logiciel 60 Revues • Objectifs – rendre visible au manager l'avancement technique – améliorer la communication et la qualité du développement – obtenir un consensus entre client et fournisseur • Types – – – – Management reviews Formal reviews In-progress reviews Peer reviews manager fournisseur fournisseur/client manager client technique fournisseur Plus avec la qualité... © A. Beugnard A. Beugnard ENST Bretagne 30 1998 Introduction au génie logiciel # 1 Génie logiciel 61 Documentation • Produit – procédures techniques et leurs produits – spécifications, listings, tests • Processus – procédures de management – plan de test, de configuration, de qualité, logiciel • Support – manuels – tutoriels © A. Beugnard ENST Bretagne Génie logiciel 62 Environnement logiciel Documentation tools Front-end CASE Reuse library Coding tools Repository/ Référentiel Measurement tools Database management tools Testing tools Prototyping tools Communication tools Configuration management tools Project management tools © A. Beugnard A. Beugnard ENST Bretagne 31 1998 Introduction au génie logiciel # 1 Génie logiciel 63 Risques • Etude des risques techniques et managériaux – – – – Identification Analyse Evaluation Diminution/Elimination liste, expérience, modèles,… impact financier, technique,… étude des moyens pour limiter le risque mise en œuvre des moyens • Faisabilité, coût, effort, incertitudes Plus avec la gestion des risques... © A. Beugnard ENST Bretagne Génie logiciel 64 Adaptations • Ces principes doivent être adaptés à chaque projet – choix des points importants – allégements – suppléments spécifiques • En fonction – – – – de la taille du projet des participants de la nature du projet etc. © A. Beugnard A. Beugnard ENST Bretagne 32 1998 Introduction au génie logiciel # 1 Génie logiciel 65 Gestion d’acquisition • Le processus d'acquisition – modèle, cycle de vie, stratégie • Que doit-on prévoir avant le développement ? – Organisation, planning, méthode, test, risques, ... • Que faire pendant le développement – revues, configuration, qualité, évaluation • La documentation : mémoire du développement © A. Beugnard ENST Bretagne Génie logiciel 66 Gérer le développement • Garantir la visibilité – Management Reviews • Maintenir la confiance – groupe de discussion informel (SWG) • Vérifier que les termes du contrat sont appliqués – paiements – fournitures (rapports, produits) – qualité © A. Beugnard A. Beugnard ENST Bretagne 33 1998 Introduction au génie logiciel # 1 Génie logiciel 67 Gestion de configuration • Gérer la multitude de produits et de documents générés en : – – – – identifiant chaque produit, chaque document contrôlant les modifications demandées gérant les rapports d'anomalie suivant l'état d'avancement de chaque élément au cours de son cycle de vie Plus avec la gestion de configuration... © A. Beugnard ENST Bretagne Génie logiciel 68 Assurance qualité • Garantir la satisfaction du client en atteignant les objectifs contractuels – respect des procédures » » » » de développement de configuration de test de qualité – respect des objectifs » techniques » documentaires Plus avec la qualité... © A. Beugnard A. Beugnard ENST Bretagne 34 1998 Introduction au génie logiciel # 1 Génie logiciel 69 Gestion d’acquisition • Le processus d'acquisition – modèle, cycle de vie, stratégie • Que doit-on prévoir avant le développement ? – Organisation, planning, méthode, test, risques, ... • Que faire pendant le développement – revues, configuration, qualité, évaluation • La documentation : mémoire du développement © A. Beugnard ENST Bretagne Génie logiciel 70 Documents étude de faisabilité étude préalable étude détaillée étude technique Dossier bilan existant Plan de développement Fiche-Projet Dossier de choix Rapport étude faisabilité Rapport étude préalable Cahier charges utilisateurs Cahier charges réalisation Recette Plan de recette Synthèse des recettes Plan de migration Plan de mise en œuvre Bilan du projet Rapport étude détaillée Rapport étude technique © A. Beugnard A. Beugnard Réalisation Rapport de réalisation ENST Bretagne 35 1998 Introduction au génie logiciel # 1 Génie logiciel 71 Bibliographie • BROOKS, F.P., The Mythical man-month. Essays on software engineering, Addison-Wesley, 1982 • Cyrille Chartier-Kastler, Précis de conduite de projet informatique, Les éditions d'organisation, 1995 • John J. Marciniak, Acquisition Management, in Encyclopædia of Software Engineering, Vol 1, pp 4--24, John Wiley & Sons, 1994 • John J. Marciniak and D.J Reifer, Software Acquisition Management, John Wiley &Sons, Inc, New York, 1990 • CMM : http://www.sei.cmu.edu/activities/sema/profile.html • Immaturité du CMM : http://www.stlabs.com/testnet/docs/CMM_AP1.htm • Organisational Patterns : http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns © A. Beugnard A. Beugnard ENST Bretagne 36 1998