management de projets informatiques if5 2008-2009
TRANSCRIPT
Management de Projets Informatiques
IF5
2008-2009http://www.phillips-publishing.com/softeng/fall2008/if5.html
Reference
Copies
Disponibles a la bibliotheque. www.phillips-publishing.com/ www.amazon.com L’Univers du Livre (Rue de Naplouse,
Mandela)
Autre Reference:
Copies
Disponibles a la bibliotheque. www.phillips-publishing.com/ www.lulu.com L’Univers du Livre (Rue de Naplouse,
Mandela)
Notes de Cours
Preparees a l’avance. Mises sur le web. Page reservee a ce cours.
Plan du Cours
Generalites sur le Genie Logiciel (Fusion avec le cours de GL). Ch 1.
Cycles de Vie du Logiciel (Fusion avec le cours de GL). Ch2.
Aspects Organizationnels de Projets Logiciels. Ch3.
Metriques de Logiciels. Ch 15. Estimation de Couts des Logiciels. Ch 16. Planification de Projets logiciels. Ch 17. Gestion de l’Evolution des Logiciels. Ch 18.
Generalites sur le Genie Logiciel Logiciel/ Informatique: Place importante et
croissante dans la vie economique et sociale globale.
HW: amelioration de la performance, fiabilite, rapidite, cout, integration, etc.
SW: plus complexe, plus grand, moins fiable, moins gerable, etc.
Ingenieurie du Logiciel: organize le secteur des logiciels, au moyen de methodes, modeles, outils, etc.
Logiciels
Systeme Informatique: HW et SW. HW: materiel electronique. SW: programmes, documentation
associee.
Difference entre Programme et Logiciel: Taille. Nature.
Difference de Nature
Logiciel: Programme executable. Programme source. Documentation. Conception. Cahier des Charges. Historique de Maintenance. Metriques.
Difference de Taille
Grande. OS 360: 6000 mois personnes.
Croissante avec le temps (mm systeme). Croissante avec la generation.
Saturn V: 1.3 millions de loc. Space Shuttle: 40 millions de loc. ULS: 1 milliard de lignes de code.
Difference de taille: lourde de consequences.
Types de Logiciels
Systems Programming. Applications Temps Reel. Applications de Gestion. Applications Scientifiques / de Genie. Applications embarquees. Applications des PC. Applications de l’IA.
Systems Programming
Compilateurs, Interpreteurs, Editeurs, File systems, Systemes d’exploitation. Systemes de communication.
Characteristiques: interaction intense avec le HW; temps partage; scheduling; gestion de ressources; structures de donnees complexes.
Systemes Temps Reel
Surveillance/ controle de processus temps reel.
Boucle a trois cycles: capter; calculer; agir.
Caracteristiques: traitement en ligne; temps de reponse critique.
Applications de Gestion
Application e-commerce. Application de gestion de ressources. Application de comptabilite/ fiscalite. Aide a la decision.
Caracteristiques: interaction avec des bases de donnees; batch ou interactif; grands enjeux de disponibilite.
Applications scientifiques/ de Genie.
Simulation de phenomenes naturels. Prevoir la meteo; valider des theories;
tester des hypotheses; construire des modeles.
Simulateur de vol.
Caracteristiques: applications numeriques, grandes consommatrices de CPU.
Applications Embarquees
Avionique, Telephonie cellulaire, Programmes abord des voitures,
Caracteristiques: HW special, Instructions speciales, I/O specializees.
Applications PC
Marche ouvert avec l’emergence du PC. Traitement de texte. Tableurs. Jeux. SGBD.
Emergence d’un nouveau type de produit logiciel.
Applications IA
Traitement Symbolique (vs numerique) Systemes experts. Systemes a base de connaissances. Apprentissage symbolique. Systemes educatifs.
Caracteristiques: techniques d’intelligence artificielle; traitement des connaissances; methodes heuristiques.
Genie Logiciel
Le genie logiciel consiste en l’application de methodes systematiques, precises, quantitatives a la production, l’exploitation et la maintenance de logiciels. I.e. L’application des principes de l’ingeniorat au secteur du logiciel.
GL: une discipline differente d’ingeniorat Nature du produit. Evolution du produit. Structure de cout. Cout unitaire. Longevite. Maintenance. Distribution du cout
de production. Standards de qualite.
Absence d’architecture standard.
Absence de discipline de reutilisation.
Developpement incontrollable.
Specificite des programmeurs.
Nature du produit
Produit logiciel: composition d’idees. Copiable, reproductible. Essence du produit est l’idee, non sa
forme.
Evolution du produit
Pas d’usure physique. Evolution adaptative attendue.
Structure de Cout
Voiture Conception: Fabrication:
Logiciel Conception: Fabrication:
Cout Unitaire
Produit classique Cout de 1000 unites Vs 1000 cout de 1
unite.
Produit logiciel Cout de 1000 lignes Vs 1000 cout de 1
ligne.
Longevite excessive
Plusieurs facteurs Pas d’usure physique Cout de developpement excessif Impact de changement de systeme
Longevite excessive industries de maintenance, reverse
engineering, reengineering, etc…
Cout de l’evolution et maintenance
Cout de la maintenance d’un systeme pendant son exploitation: entre 200 % et 10000 % de son cout de developpement.
Longevite. Degradation du systeme.
Distribution du cout de developpement
Genie mecanique 2 % test. Qualite
irreprochable.
Genie logiciel 50 % test. Echec quasiment
certain.
Standards de qualite
Genie mecanique Assurance de
qualite. Responsabilite civile.
Genie logiciel Assurance de
manque de qualite. Absence de
responsabilite civile (en train de changer).
Absence d’architecture standard
Genie mecanique
Chassis
Carrosserie
Moteur
Boite a vitesse
Freins
Direction
Roues
ventilation
Genie logiciel
????
Difficulte de reutilisation
Genie mecanique Roues Freins Carburateurs Klaxons Moteur Boite a vitesse
Tous reutilises
Genie logiciel Petite echelle (<15%) Petites composantes
(ADT)
Developpement incontrollable
90% percent finished 90% of the time.
Specificite des programmeurs
Profil de motivation special. Interesse par les realisations techniques. Motive par le challenge technique.
Histoire du Genie Logiciel
Les annees 60: les aventures et les heros.
Les annees 70: la vague du structur’e. Les annees 80: l’ere de la cinquieme
generation. Les annees 90: l’ere de la reutilisation. Les annees 00: l’ere de web
engineering/ globalization.
Les annees 60
Chaque project est une aventure. Chaque chef de project un hero. Beaucoup d’improvisation. Beaucoup d’echecs, de pertes. OS 360: une decision qui a coute a IBM 10 M$.
Garmish Parten Kirchen: Crise du logiciel. Pratique ad-hoc. Besoin d’une discipline de genie.
Les annees 70
Programmation Structuree Conception structuree Analyse structuree Verification structuree
Sur le terrain, rien n’a change…
Les annees 80’s
Lecons du passe: Causes de l’echec essentiellement
managerielles vs techniques. Outils ont peu d’impact. Outils n’affectent pas la productivite du
programmeur. Modeles d’estimation de couts Outils bases sur l’IA (plutot que le structure) Programmation logique (se rapproche du
raisonnement humain).
Les annees 90
Trois idees cles caracterisent cette periode: Reutilisation. Bases de logiciels. Architecture de Logiciels. Programmation Orientee Objet.Lecons de cette decade: Reutilisation dans un cadre reduit: PLE. Succes de reutilisation dependant des aspects
organizationnels. Stockage et filtrage des logiciels: peu
d’importance en reutilisation. Ce qui est important: l’architecture.
Les annees 00
Aspects techniques: Product Line Engineering Web Engineering Programming for the www (Java) Cybersecurity.
Les annees 00
Aspects Organizationnels: Outsourcing Distributed development Extreme programming
Aspects Economiques Emigration de la Programmation au tiers
monde. Rien ne la remplace au premier monde.