Beruflich Dokumente
Kultur Dokumente
Stefano Zacchiroli
zack@pps.jussieu.fr
Laboratoire PPS, Universit Paris Diderot - Paris 7
3 Fvrier 2011
URL http://upsilon.cc/zack/teaching/1011/gla/ Copyright 2011 Stefano Zacchiroli 2010 Yann Rgis-Gianas License Creative Commons Attribution-ShareAlike 3.0 Unported License http://creativecommons.org/licenses/by-sa/3.0/
Introduction
3 Fvrier 2011
1 / 66
Sommaire
Quest-ce que le gnie logiciel ? Les processus de dveloppement logiciel La gestion de projet Le cours de GLA Auto-valuation
Introduction
3 Fvrier 2011
2 / 66
Sommaire
Quest-ce que le gnie logiciel ? Les processus de dveloppement logiciel La gestion de projet Le cours de GLA Auto-valuation
Introduction
3 Fvrier 2011
3 / 66
Introduction
3 Fvrier 2011
4 / 66
Exemple
une fourmilire, lconomie mondiale, le noyau Linux, . . .
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 5 / 66
Dnition (Logiciel)
Un logiciel est un ensemble dentits ncessaires au fonctionnement dun processus de traitement automatique de linformation.
Parmi ces entits, on trouve par exemple : des programmes (en format code source ou excutables) ; des documentations dutilisation ; des informations de conguration.
Introduction
3 Fvrier 2011
6 / 66
Il ralise une spcication : son comportement vrie un ensemble de critres qui rgissent ses interactions avec son environnement. Le gnie logiciel vise garantir que :
1 2 3 4
la spcication rpond aux besoins rels de ses clients ; le logiciel respecte sa spcication ; les cots allous pour sa ralisation sont respects ; les dlais de ralisation sont respects.
Introduction 3 Fvrier 2011 7 / 66
Rpondre la question
La spcication dun logiciel peut prendre de nombreuses formes. La complexit et les dimensions de la spcication peuvent varier normment en fonction de lenvironnement dutilisation du logiciel et des objectifs auxquels il rpond.
Introduction
3 Fvrier 2011
8 / 66
Ce sont des spcications simples dont la conformit aux objectifs de leurs clients ne fait aucun doute. (Cela ne rend pas aise pour autant leur ralisation.)
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 9 / 66
En plus du respect (essentiel) de sa spcication, la qualit dun logiciel dpend des 4 critres suivants :
Maintenabilit Peut-on faire voluer le logiciel ? 1 Robustesse Le logiciel est-il sujet des dysfonctionnements ? Ecacit Le logiciel fait-il bon usage de ses ressources ? Utilisabilit Est-il facile utiliser ?
1. Un logiciel ne suse pas. La correction dune erreur nest pas volution mais un chec du concepteur.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 11 / 66
Pour rpondre cette crise, on a essay dappliquer les mthodes connues de lingnieur au domaine du logiciel, pour tablir des mthodes ables sur lesquelles construire une industrie du logiciel.
Guider le dveloppement du logiciel, de sa conception sa livraison. Contrler les cots, valuer les risques et respecter les dlais. tablir des critres dvaluation de la qualit dun logiciel.
2 3
Introduction
3 Fvrier 2011
13 / 66
Introduction
3 Fvrier 2011
14 / 66
Le gnie logiciel est un domaine en pleine volution qui ore une grande palette doutils et de mthodes pour parvenir construire du logiciel de qualit. Aucune de ses mthodes ne sest impose ce jour : il faut donc prendre du recul sur les concepts et les conseils quelles prconisent et utiliser son bon sens pour les adapter chaque situation. Ces mthodes se distinguent principalement par :
leur degr de formalisme ; leur champ dapplication ; les contraintes de qualit quelles ambitionnent.
Introduction
3 Fvrier 2011
15 / 66
Introduction
3 Fvrier 2011
16 / 66
Les approches empiriques mettent en avant un ensemble de bonnes pratiques qui ont fait leur preuve par lexprience.
Introduction
3 Fvrier 2011
18 / 66
La rigueur. La dcomposition des problmes en sous-problmes indpendants. La modularit. Labstraction. Lanticipation des volutions. La gnricit. La construction incrmentale.
C. Ghezzi. Fundamentals of Software Engineering. Prentice Hall, 2nd edition, 2002.
3 4 5 6 7
Introduction
3 Fvrier 2011
19 / 66
Principe #1 la rigueur
Les principales sources de dfaillances dun logiciel sont dorigine humaine. tout moment, il faut se questionner sur la validit de son action. Des outils de vrication accompagnant le dveloppement peuvent aider rduire les erreurs. Cette famille doutils sappelle CASE (Computer Aided Software Engineering).
Exemple
typeurs, gnrateurs de code, assistants de preuves, gnrateurs de tests, outil dintgration continue, fuzzer, . . .
Introduction
3 Fvrier 2011
20 / 66
Introduction
3 Fvrier 2011
23 / 66
Exemple (Comment crer dynamiquement une page internet pour visualiser et modier le contenu dune base donne sans la corrompre ?)
Dcomposition en trois composants : Modle son rle est grer le stockage des donnes. Vue son rle est formatter les donnes. Contrleur son rle est de nautoriser que les modications correctes.
Introduction
3 Fvrier 2011
23 / 66
Principe #3 la modularit
Cest une instance cruciale du principe de dcomposition des problmes. Il sagit de partitionner le logiciel en modules qui :
ont une cohrence interne (des invariants) ; possdent une interface ne divulgant sur le contenu du module que ce qui est strictement ncessaire aux modules clients.
Lvolution de linterface est indpendante de celle de limplmentation du module. Les choix dimplmentation sont indpendants de lutilisation du module. Ce mcanisme sappelle le camouage de linformation (information hiding). D. L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM. Vol. 15 Issue 12, 1972
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 24 / 66
Principe #4 labstraction
Cest encore une instance du principe de dcomposition des problmes. Il sagit dexhiber des concepts gnraux regroupant un certain nombre de cas particuliers et de raisonner sur ces concepts gnraux plutt que sur chacun des cas particuliers. Le fait de xer la bonne granularit de dtails permet :
de raisonner plus ecacement ; de factoriser le travail en instanciant le raisonnement gnral sur chaque cas particulier.
Un logiciel a un cycle de vie plus complexe que lhabituel cycle commande-spcication-production-livraison . La maintenance est la gestion des volutions du logiciel. Il est primordial de prvoir les volutions possibles dun logiciel pour que la maintenance soit la plus ecace possible. Pour cela, il faut sassurer que les modications eectuer soient le plus locales possibles. Ces modications ne devraient pas tre intrusives car les modications du produit existant remettent en cause ses prcdentes validations. Concevoir un systme susamment riche pour que lon puisse le modier incrmentalement est lidal.
Introduction
3 Fvrier 2011
26 / 66
Principe #6 la gnricit
Figure: template
Un logiciel rutilisable a beaucoup plus de valeur quun composant ddi. Un composant est gnrique lorsquil est adaptable.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 27 / 66
Un dveloppement logiciel a plus de chances daboutir si il suit une cheminement incrmental (baby-steps).
Exemple
Laquelle de ses deux mthodes de programmation est la plus ecace ?
1 2
crire lensemble du code source dun programme et compiler. crire le code source dune fonction, le compiler et passer la suivante.
Pourquoi ?
Introduction
3 Fvrier 2011
28 / 66
1 2 3 4 5 6 7
La rigueur. La dcomposition des problmes en sous-problmes indpendants. La modularit. Labstraction. Lanticipation des volutions. La gnricit. La construction incrmentale.
Introduction
3 Fvrier 2011
29 / 66
Sommaire
Quest-ce que le gnie logiciel ? Les processus de dveloppement logiciel La gestion de projet Le cours de GLA Auto-valuation
Introduction
3 Fvrier 2011
30 / 66
La spcication du logiciel dnit ses fonctionnalits et leurs contraintes. La conception . . . . . . et limplmentation sont charges de raliser le logiciel, en conformit avec sa spcication. La validation sassure eectivement du respect de la spcication par le logiciel produit. Lvolution adapte le logiciel aux besoins futurs de ses clients.
2 3
Introduction
3 Fvrier 2011
32 / 66
Il est trs rare dappliquer un processus comme une unique squence des 5 activits prcdentes. En eet, ce serait lencontre du principe dincrmentalit. En gnral, un logiciel complet est le fruit de plusieurs itrations. Chaque itration contient les 5 activits de spcication, conception, implmentation, validation et volution. Il existe dirents modles de processus qui organisent de faon direntes ces activits, entre eux : le modle en cascade, le modle de dveloppement volutif et le modle de dveloppement par composants.
Introduction
3 Fvrier 2011
33 / 66
Modle en cascade
Dnition des besoins Conception Implmentation et tests unitaires Intgration et test du systme Livraison et maintenance
Chaque phase doit se terminer pour commencer la suivante. Des documents sont produits pour concrtiser la ralisation de chaque phase.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 34 / 66
La production de documents entre chaque phase amliore le suivi du projet. Lorsquune erreur a t commise dans une phase et quelle est dtecte dans une phase suivante, il faut faire remonter cette information dans la phase incrimine et recommencer le processus partir de celle-ci. On doit alors reproduire de nouveaux documents . . . Ce modle de processus impose donc une importante rexion sur les choix faits en amont car le cot de la correction dune erreur est important.
Typique dun dveloppement industriel pour lequel les cots de la construction du produit sont trop importants pour se permettre une erreur de choix de conception.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 35 / 66
Le modle en cascade rend coteux le dveloppement itratif puisque la rdaction des documents de validation de chaque phase demande beaucoup de travail. Ce modle est inadapt au dveloppement de systmes dont la spcication est dicile formuler a priori.
Introduction
3 Fvrier 2011
36 / 66
Spcication
Dveloppement
Validation
Ces trois activits sont entrelaces. Un prototype est crit rapidement et est confront lutilisateur. En fonction du rsultat, on rane la spcication. On reprend le prototype ou on le rcrit jusqu lobtention du systme nal.
Introduction
3 Fvrier 2011
37 / 66
Ce modle augmente les chances de rpondre aux besoins de lutilisateur car il permet de les comprendre plus rapidement.
Are we building the right product ?
Il remplit le critre dincrmentalit. Ce modle ne dispense dcrire la spcication du systme car il faut sassurer que limplmentation est correct.
Are we building the product right ?
Cest un processus particulirement adapt aux projets de taille moyenne (infrieur 100 000 lignes de code) comme par exemple des grosses applications Web ou encore les solutions intgres pour les petites entreprises.
Introduction
3 Fvrier 2011
38 / 66
Il est dicile de structurer correctement le logiciel (dnir de bonnes abstractions, modulariser ecacement) car les prototypes sont par dnition des produits bricols. Le cot en termes de tests et de validation du produit nal peuvent tre trs importants.
Des approches mixtes intgrant modle de dveloppement volutif pour produire un premier prototype valid et un modle en cascade pour reconstruire correctement un produit nal constituent en gnral de bons compromis.
Introduction
3 Fvrier 2011
39 / 66
Dveloppement
Validation
Une approche mi-chemin entre les modles cascade et volutif sappuie sur une livraison incrmentale du produit. On hirarchise les besoins du client en termes de priorit. Chaque itration du modle vise obtenir un ensemble de fonctionnalits par ordre de priorit. Traiter les parties les plus critiques du systme en premier minimise les risques dinadquation avec le produit nal. Cependant, il se peut que les choix pris en amont, trop focaliss sur ce noyau de fonctionnalits, compromettent le dveloppement des fonctionnalits secondaires.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 40 / 66
Dveloppement et intgration
Validation du systme
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 41 / 66
Ce modle permet dobtenir rapidement des produits de bonne qualit puisquils sont construits partir de composants qui ont fait leur preuve. Le travail dintgration peut sappuyer sur des outils dirigs par des descriptions de haut niveau du systme qui gnrent le code de glue par exemple.
Introduction
3 Fvrier 2011
42 / 66
Le principal dfaut de ce modle est de ne pas construire un produit adapt aux besoins du client.
Un travail complexe de conguration et dadaptation peut tre ncessaire.
Introduction
3 Fvrier 2011
43 / 66
Sommaire
Quest-ce que le gnie logiciel ? Les processus de dveloppement logiciel La gestion de projet Le cours de GLA Auto-valuation
Introduction
3 Fvrier 2011
44 / 66
Les activits de gestion dun projet informatique sont trs similaires celles des autres domaines :
1 2 3 4 5 6
criture de proposition de projet Planication du projet valuation des cots Surveillance du projet et criture de rapport dtapes Slection du personnel et valuation criture de rapport et de prsentation
Introduction
3 Fvrier 2011
45 / 66
partir dun appel dore, un chef de projet doit crire une proposition de projet dcrivant les objectifs du projet (en gnral, ses dlivrables) et les grandes lignes de sa ralisation. Une proposition doit aussi contenir une valuation des risques et des cots. La plupart du temps, cette proposition doit servir dargumentaire pour justier la mise en route du projet.
Cest une activit qui requiert une importante exprience et comprhension du domaine dactivit. Le chef de projet engage sa responsabilit.
Introduction
3 Fvrier 2011
46 / 66
Planier un projet
Le chef de projet doit tablir un jalonnement (depuis jalon, milestone en Anglais) , cest--dire une rpartition des activits dans le temps en fonction de leurs dpendances et des ressources disponibles et dune valuation des risques lis leur ralisation. Il sagit dun travail dordonnancement qui ncessite encore une connaissance trs prcise du domaine, des quipes de dveloppement, etc. . . Mthodes et outils : diagrammes de Gantt, rseau PERT, modle COCOMO II
Introduction
3 Fvrier 2011
47 / 66
De faon continue, le chef de projet sassure du progrs des tches et du respect des dlais. En cas de retard, il doit rvaluer la planication et ventuellement rengocier les ressources et les contraintes du projet. La visibilit de la progression des activits est ici essentielle. Un chef de projet doit donc savoir se doter dindicateurs rvlateurs sur ltat du dveloppement.
Introduction
3 Fvrier 2011
48 / 66
Slectionner le personnel
En cohrence avec la politique de gestion du personnel (projet de carrire, formation continue, sous-traitement, . . . ), le chef de projet doit aecter des activits et des rles aux direntes personnes impliques dans le projet.
Des qualits relationnelles semblent donc utiles. . .
Introduction
3 Fvrier 2011
49 / 66
crire un rapport
Le chef de projet doit pouvoir communiquer une vue synthtique du projet dirents publics (autres chefs de projet, clients, responsables, etc . . . ).
Introduction
3 Fvrier 2011
50 / 66
Sommaire
Quest-ce que le gnie logiciel ? Les processus de dveloppement logiciel La gestion de projet Le cours de GLA Auto-valuation
Introduction
3 Fvrier 2011
51 / 66
Objectifs du cours
Ce cours a pour but de vous familiariser avec les futures structures de votre vie professionnelle et de vous donner les outils de vous adapter la situation, ncessairement singulire, dans laquelle vous serez acteurs. Il a aussi pour objectif de dvelopper vos capacits danalyse de problmes de conception logiciel.
Introduction
3 Fvrier 2011
52 / 66
Organisation du cours
Le cours se droule le jeudi en amphi 6C de 10h30 12h30 et sera prsent par Stefano Zacchiroli et Delia Kesner. Les travaux dirigs (TD) se droulent le jeudi de 14h30 16h30 en salle 470E et sont encadrs par Marie Ferbus.
Introduction
3 Fvrier 2011
53 / 66
Validation
Le cours est valid par un projet et par un examen (50/50). Le projet consiste dvelopper un logiciel, en utilisant les mthodes et outils de gnie logiciel que nous dcouvrirons
voir les travaux dirigs
Introduction
3 Fvrier 2011
54 / 66
Bibliographie
Ian Sommerville Software Engineering. Pearson, 9th edition, 2010. Kent Beck Extreme Programming Explained : Embrace Change. Addison-Wesley, 2nd edition, 2004. Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides Design Patterns : Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
Introduction
3 Fvrier 2011
55 / 66
Sommaire
Quest-ce que le gnie logiciel ? Les processus de dveloppement logiciel La gestion de projet Le cours de GLA Auto-valuation
Introduction
3 Fvrier 2011
56 / 66
QCM : Question 1
Le gnie logiciel fournit des outils et des mthodes pour : analyser les besoins dun client. crer des besoins chez un potentiel client. sassurer que les contraintes budgtaires dun projet sont respectes. raliser correctement une spcication. construire des composants logiciels rutilisables.
Introduction
3 Fvrier 2011
57 / 66
QCM : Question 2
Le produit appel logiciel peut tre compos : de programmes excutables. de tests. de manuels dutilisation. de scripts de conguration automatique.
Introduction
3 Fvrier 2011
58 / 66
QCM : Question 3
La spcication dun logiciel peut : tre dnie aprs son implmentation. tre issue de ltape de validation. ne pas exister. tre inapproprie. tre incohrente.
Introduction
3 Fvrier 2011
59 / 66
QCM : Question 4
La robustesse dun programme est : caractrise par sa rsistance aux chocs. proportionnelle sa stabilit. une consquence de sa correction vis--vis de sa spcication. une condition ncessaire sa correction vis--vis de sa spcication.
Introduction
3 Fvrier 2011
60 / 66
QCM : Question 5
La crise du logiciel tait cause par : une crise de linvestissement dans le domaine informatique ; un inversement du rapport entre les cots du logiciel et du matriel ; un dcit en informaticiens sur le march du travail.
Introduction
3 Fvrier 2011
61 / 66
QCM : Question 6
Une mthode de dveloppement formelle : prouve mathmatiquement la correction dun logiciel vis--vis de sa spcication. nest pas trs coteuse. rend inutile les phases de tests. est toujours applicable. peut sappuyer sur le langage UML.
Introduction
3 Fvrier 2011
62 / 66
QCM : Question 7
Quels sont les bons principes de dveloppement dans la liste suivante : la modularit ; le code spaghetti ; la rinvention de la roue ; le code est la spcication ; la dcomposition des problmes. (C.f. les anti-patterns )
Introduction
3 Fvrier 2011
63 / 66
QCM : Question 8
Cacher les dtails dimplmentation : est une erreur de conception puisquil faut que le client dun module ait un maximum dinformation sur ce module pour lutiliser au mieux. permet de faire rendre indpendant limplmentation dun module de ses utilisations. introduit une forme dabstraction. est impossible lorsque lon programme vraiment.
Introduction
3 Fvrier 2011
64 / 66
QCM : Question 9
Un processus de dveloppement : xe un cadre rigoureux pour le dveloppement de projets de taille importante. est une perte de temps ! doit sappliquer la lettre. peut tre itr. peut tre sappuyer sur plusieurs modles de processus.
Introduction
3 Fvrier 2011
65 / 66
QCM : Question 10
Cest le rle dun chef de projet : de programmer les composants dun logiciel. de vrier le bon droulement des tches. dorganiser lenchanement des tches. de fournir une visibilit globale sur un projet. dcrire la spcication du logiciel.
Introduction
3 Fvrier 2011
66 / 66