Sie sind auf Seite 1von 67

Gnie Logiciel Avanc Cours 1 Introduction

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/

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

3 / 66

Quest-ce que le gnie logiciel ?

Dnition (Gnie logiciel)


Le gnie logiciel est un domaine des sciences de lingnieur dont lobjet dtude est la conception, la fabrication, et la maintenance des systmes informatiques complexes.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

4 / 66

Quest-ce quun systme ?


Un systme est un ensemble dlments intragissant entre eux suivant un certains nombres de principes et de rgles dans le but de raliser un objectif. La frontire dun systme est le critre dappartenance au systme. Lenvironnement est la partie du monde extrieure au systme. Un systme est souvent hirarchis laide de sous-systmes. Un systme complexe se caractrise par :
sa dimension, qui ncessite la collaboration de plusieurs personnes ; son volutivit.

Exemple
une fourmilire, lconomie mondiale, le noyau Linux, . . .
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 5 / 66

Quest-ce quun logiciel ?

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

6 / 66

Quest-ce quun logiciel ?


Un logiciel est en gnral un sous-systme dun systme englobant. Il peut interagir avec des clients, qui peuvent tre :
des oprateurs humains (utilisateurs, administrateurs, . . . ) ; dautres logiciels ; des contrleurs matriels.

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

Stefano Zacchiroli (Paris 7)

Comment spcier un logiciel ?

Rpondre la question

Que doit faire le logiciel ?

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

8 / 66

Quelques exemples de spcications


I , Precondition(I ) O , Postcondition(I , O )

Exemple (Un algorithme de tri)


Entre Pre Sortie Post un tableau t il existe une relation dordre sur les lments du tableau un tableau u u est tri et contient exactement les mmes lments que t

Exemple (La partie arrire dun compilateur)


Entre Pre Sortie Post un arbre de syntaxe abstraite P le programme est bien typ un chier excutable E la smantique de E est la mme que celle de P

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

Quelques exemples de spcications plus complexes


Exemple (Une interface graphique)
Le modle dinteraction avec le client est non dterministe. Doit-on spcier toutes les traces dexcution possibles ?

Exemple (Un traducteur automatique)


Quest-ce quun texte anglais bien crit ?

Exemple (Un logiciel boursicoteur )


(eectuant des achats et des ventes en bourse) Comment tablir une spcication sans y inclure un modle du systme nancier ?

Exemple (Un jeu vido)


Comment spcier ce qui est amusant ?
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 10 / 66

Comment fabriquer un logiciel de qualit ?

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

Comment fabriquer un logiciel de qualit ?


Historiquement, il y a eu une prise de conscience dans les annes 70, appele la crise du logiciel, d un tournant dcisif : cest cette poque que le cot de construction du logiciel est devenu plus important que celui de la construction du matriel. The major cause of the software crisis is that the machines have become several orders of magnitude more powerful ! To put it quite bluntly : as long as there were no machines, programming was no problem at all ; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.
Edsger W. Dijkstra The Humble Programmer. ACM Turing Lecture, 1972.
http://cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD340.html
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 12 / 66

Comment fabriquer un logiciel de qualit ?

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.

Il sagit de se donner un cadre rigoureux pour :


1

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

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

13 / 66

Les spcicits du logiciel


Cependant, la construction dun logiciel dire de celle dun pont : une modication inme peut avoir des consquences critiques ; les progrs technologiques trs rapides peuvent rendre un logiciel caduque ; il est dicile de raisonner sur des programmes ; les domaines des entres des logiciels sont trop grands pour le test exhaustif ; les dfaillances des programmes sont en gnral dues des erreurs humaines ; on ne sait pas trs bien rutiliser les programmes existants ; chaque logiciel a son organisation et sa logique propre ; ...

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

14 / 66

Comment fabriquer un logiciel de qualit ?

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

15 / 66

Qualit du logiciel approches formelles


Les approches formelles utilisent des outils mathmatiques et des mthodes de preuve pour construire un logiciel correct par construction dont la vrication est automatise ou assiste.

Exemple (approches formelles)


Mthodes : mthode B, model-checking, logique de Hoare, . . . Outils et notations : Coq, Z, Atelier B, Why, Frama-C, . . . Ces mthodes sont utilises pour dvelopper des logiciels critiques. Elles correspondent au niveau le plus lev de certication.
e.g. applications de la mthode B pour dvelopper le logiciel embarqu des lignes de mtro 14 (1998) et 1 Paris

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

16 / 66

Qualit du logiciel approches semi-formelles


Les approches semi-formelles visent introduire un langage normalis pour dcrire le logiciel et sa spcication. Cependant, la smantique du langage de spcication nest pas formalise. Bien que ces approches prcisent le discours du concepteur si on le compare celui dcrit laide du langage naturel, elles contiennent certaines ambiguts et norent aucune garantie sur la qualit des rsultats.

Exemple (approches semi-formelles)


Mthodes : Rationale Unied Process, Merise, . . . Outils et notations : UML, AnalyseSI, . . . Ces mthodes sont utilises aujourdhui par lindustrie du logiciel.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 17 / 66

Qualit du logiciel approches empiriques

Les approches empiriques mettent en avant un ensemble de bonnes pratiques qui ont fait leur preuve par lexprience.

Exemple (approches empiriques)


Mthodes : relecture de code, extreme programming, programmation dfensive, . . . Outils : gestionnaire de versions, outil de documentation automatique / literate programming, . . .

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

18 / 66

Les grands principes du gnie logiciel


Un certain nombre de grands principes (de bon sens) se retrouvent dans toutes ces mthodes. En voici une liste propose par Ghezzi :
1 2

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

Stefano Zacchiroli (Paris 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, . . .

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

20 / 66

Principe #2 la dcomposition en sous-problmes

Separation of concerns en anglais. Il sagit de :


Dcorrler les problmes pour nen traiter quun seul la fois. Simplier les problmes (temporairement) pour aborder leur complexit progressivement.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 21 / 66

Principe #2 la dcomposition en sous-problmes


Let me try to explain to you, what to my taste is characteristic for all intelligent thinking. It is, that one is willing to study in depth an aspect of ones subject matter in isolation for the sake of its own consistency, all the time knowing that one is occupying oneself only with one of the aspects. We know that a program must be correct and we can study it from that viewpoint only ; we also know that it should be ecient and we can study its eciency on another day, so to speak. In another mood we may ask ourselves whether, and if so : why, the program is desirable. But nothing is gainedon the contrary !by tackling these various aspects simultaneously. It is what I sometimes have called the separation of concerns, which, even if not perfectly possible, is yet the only available technique for eective ordering of ones thoughts, that I know of. This is what I mean by "focusing ones attention upon some aspect" : it does not mean ignoring the other aspects, it is just doing justice to the fact that from this aspects point of view, the other is irrelevant. It is being one- and multiple-track minded simultaneously.

Edsger W. Dijkstra On the role of scientic thought.


http://cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD447.html
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 22 / 66

Principe #2 la dcomposition en sous-problmes

Exemple (Comment acheminer un email de faon sr travers un rseau ?)


Dcomposition en couches utilise sur Internet : SMTP protocole de la couche application (sr, grce au store and forward) qui suppose une couche de transport de paquet sr. TCP protocole de la couche transport permettant de sassurer que tous les paquets arrivent, mme si le rseau peut perdre des paquets.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

23 / 66

Principe #2 la dcomposition en sous-problmes

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.

Stefano Zacchiroli (Paris 7)

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.

Exemple (Support dans les langages de programmation)


les classes abstraites dans les langages objets, le polymorphisme de Caml et le generics de Java, les fonctions dordre suprieur, les foncteurs de Caml et le templates de C++, . . .
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 25 / 66

Principe #5 lanticipation des volutions

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.

Stefano Zacchiroli (Paris 7)

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

Principe #7 la construction incrmentale

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 ?

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

28 / 66

propos des principes


Vous devez avoir en tte ces principes : ils se retrouvent dans toutes les mthodes et outils que nous allons aborder.

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.

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

30 / 66

Quest-ce quun processus ?


Dnition (processus de dveloppement logiciel)
Un processus de dveloppement logiciel est un ensemble (structur) dactivits que conduisent la production dun logiciel Il nexiste pas de processus idal. La plupart des entreprises adapte les processus existants leurs besoins. Ces besoins varient en fonction du domaine, des contraintes de qualit, des personnes impliques. Ce qui est essentiel, cest de comprendre quel est son rle dans ce processus et den saisir les rouages. Ltude et la pratique de processus existants doit vous permettre de vous forger un regard at (et mme critique) sur ces processus.
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 31 / 66

Activits du dveloppement logiciel

Les activits des processus de dveloppement logiciels se regroupent en 5 grandes catgories :


1

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

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

32 / 66

Schma gnral dun processus de dveloppement

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.

Stefano Zacchiroli (Paris 7)

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

Modle en cascade caractristiques


Le modle en cascade est hrit des mthodes classiques dingnierie.
Il sadapte donc bien dans un contexte o le logiciel fait partie dun systme complexe englobant.

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

Modle en cascade critique

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

36 / 66

Modle de dveloppement volutif

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

37 / 66

Modle de dveloppement volutif caractristiques

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

38 / 66

Modle de dveloppement volutif critique


Il est plus dicile de grer un projet utilisant ce modle car la visibilit de lavancement du dveloppement est peu clair.
Dans ce cadre, encore plus que dans un autre, un chef de projet doit aussi tre un bon programmeur puisquil doit tre capable de se faire une ide de ltat du systme en observant le dveloppement (possiblement chaotique) des prototypes.

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

39 / 66

Modle de dveloppement livraison incrmentale


Spcication 1re version Versions intermdiaires Version nale

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

Modle de dveloppement par composants


Dnition des besoins

Analyse des composants

Modication des besoins

Conception pas rutilisation

Dveloppement et intgration

Validation du systme
Stefano Zacchiroli (Paris 7) Introduction 3 Fvrier 2011 41 / 66

Modle de dvel. par composants caractristiques


Ce modle vise dvelopper un logiciel en grande partie laide dune base de composants gnriques pr-existants. Llaboration de la spcication est dirige par cette base : une fonctionnalit est propose lutilisateur en fonction de sa facilit lobtenir laide dun composant existant.
Situation typique chez les socits de services (hbergement de serveurs, dploiement automatique de site Web, . . . ).

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

42 / 66

Modle de dvel. par composants critique

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.

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

44 / 66

Quel est le rle dun chef de projet ?

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

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

45 / 66

crire une proposition de projet

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.

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

47 / 66

Veiller sur un projet

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.

Stefano Zacchiroli (Paris 7)

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. . .

Stefano Zacchiroli (Paris 7)

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 . . . ).

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Page web du cours


http://upsilon.cc/~zack/teaching/1011/gla/

Inscrivez-vous sur la mailing-list ! (voir le site).

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

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.

Peut-tre (si le temps le permet) :


Andreas Zeller Why Programs Fail : A Guide to Systematic Debugging. Morgan Kaufmann, 2nd edition, 2009.

Stefano Zacchiroli (Paris 7)

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

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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 )

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

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.

Stefano Zacchiroli (Paris 7)

Introduction

3 Fvrier 2011

66 / 66

Das könnte Ihnen auch gefallen