400 likes | 680 Views
Genie Logiciel. IF5 2008-2009 http://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.
E N D
Genie Logiciel IF5 2008-2009 http://www.phillips-publishing.com/softeng/fall2008/if5.html
Copies • Disponibles a la bibliotheque. • www.phillips-publishing.com/ • www.amazon.com • L’Univers du Livre (Rue de Naplouse, Mandela)
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 • Aspects Organizationnels (Partie I). • Cahiers des Charges des Logiciels (Partie II). • Conception des Logiciels (Partie III). • Dependabilite des Logiciels (Parti2 IV). • Aspects Economiques (Partie V).
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: 60000 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.
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. GL: une discipline differente d’ingeniorat
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.
Voiture Conception: 0.01 Fabrication: 99.99 Logiciel Conception:100/ Fabrication:0 Structure de Cout
Produit classique Cout de 1000 unites < Vs 1000 cout de 1 unite. Produit logiciel Cout de 1000 lignes > Vs 1000 cout de 1 ligne. Cout Unitaire
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.
Genie mecanique 2 % test. Qualite irreprochable. Genie logiciel 50 % test. Echec quasiment certain. Distribution du cout de developpement
Genie mecanique Assurance de qualite. Responsabilite civile. Genie logiciel Assurance de manque de qualite. Absence de responsabilite civile (en train de changer). Standards de qualite
Genie mecanique Chassis Carrosserie Moteur Boite a vitesse Freins Direction Roues ventilation Genie logiciel ???? Absence d’architecture standard
Genie mecanique Roues Freins Carburateurs Klaxons Moteur Boite a vitesse Tous reutilises Genie logiciel Petite echelle (<15%) Petites composantes (ADT) Difficulte de reutilisation
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.