Plan du cours
I. II.
III. Mthodes SADT, PETRI, MERISE IV. Mthodes objets, introduction UML V. Etude de cas en UML
VI. Tests
1/1
Ch1.doc
28/04/04
Bibliographie :
P.Andr et A.Vailly Gnie Logiciel T1 et T2 Ellipses 2001 P.Jaulent Gnie logiciel : les mthodes Colin 1992 MC Gaudel B. Marre Prcis de gnie logiciel Masson 1996. B. Meyer Conception et programmation par objet, pour du logiciel de qualit Inter ditions 1990. J.RUMBAUCH et al Modlisation et conception objet Masson 1997 Coad et Yourdon Analyse oriente objet Prentice Hall Masson 1992. P. Desfray Modlisation par objets Inter Editions 1997. P.A.Muller Modlisation objet avec UML Eyrolles 1998 www.cui.unige.ch/ScDep/Cours/GenieLogiciel/index.html http://www.gpa.etsmtl.ca/cours/gpa77 http://cui.unige.ch/ScDep/Cours/GenieLogiciel/ http://www.cours.polymtl.ca/inf2300 2/2
Ch1.doc
28/04/04
Ch I : Introduction
A : Gnralits
Dfinitions :
Gnie logiciel : expression ne en Europe Garmisch-Partenkirchen (software engineering) sous le parrainage de lOTAN (1968) Ensemble des techniques et des mthodes permettant de produire du logiciel, de AZ
http://www.laria.u-picardie.fr/docs/www.linux-france.org/prj/jargonf/G/geacutenie_logiciel.html
Le gnie logiciel dsigne lensemble des activits de conception et de mise en uvre des produits et des procdures pour rationaliser la production logiciel et son suivi (maintenance). Il se proccupe de la ralisation, de la gestion, de la maintenance, de la qualit et de lutilisation dun produit de programmation par un nombre important de personnes et pour une dure longue (multiples versions). La ncessit sest faite sentir tant donn le peu de fiabilit du logiciel et des difficults rendre dans les dlais prvus, des logiciels satisfaisant un cahier des charges.
Ch1.doc
3/3
28/04/04
Dfinitions (3)
le gnie logiciel sintresse aux diffrentes thories aux mthodologies : ( techniques, mthodes ) aux outils lorganisation gnrale la gestion de projets
Ch1.doc
4/4
28/04/04
Constat :
linformatique reprsente une part significative du PNB Les logiciels deviennent de plus en plus importants en taille et en complexit : (ex : volution des S.E) La diminution des cots du matriel (hardware) a conduit associer lordinateur de plus en plus de produits. Les cots des logiciels connaissent une trs forte croissance, dominant maintenant le cot du matriel et peuvent reprsenter plus de 80 % du cot total dun systme informatique. (ex cot de la mmoire conomise).
Ch1.doc
5/5
28/04/04
Constat (2)
Fiabilit souvent plus importante quefficacit : (activits militaires, bancaires, gestion des transports, distribution des ressources ) les cots de maintenance dpassent ceux du dveloppement Le cot dune erreur peut dpasser largement le cot du systme les pannes causes par des problmes de logiciel ont cot en 2000 aux entreprises du monde entier environ 175 milliards de dollars, soit au moins deux fois plus qu'il y a deux ans. Le Monde 23 oct. 2001. Paradoxe : on estime que 80 % du dveloppement du logiciel existe dj. Rem : il est plus facile dacclrer un programme qui fonctionne que de faire fonctionner un programme cens tre rapide. [Dijkstra]
Ch1.doc
6/6
28/04/04
Existant
La taille des programmes augmente considrablement : Chez Thomson, les programmes sont passs en 5 ans de 20.000 lignes assembleur en moyenne 150.000 lignes ADA. La gestion dun central tlphonique comporte 1 million de lignes. La navette spatiale en demande 50 millions, soit plusieurs milliers dhommes annes . Par ailleurs les domaines traits deviennent de plus en plus sensibles : nuclaire, systmes bancaires, tlcommunications, fichiers de personnes etc. (SoftWar)
Ch1.doc
7/7
28/04/04
Bilan :
Semi chec : tude sur 487 sites de toutes sortes de dveloppement de logiciels o 70% du cot du logiciel est consacr sa maintenance. o 42% des modifications sont dues des demandes de lutilisateur o 30% des exigences de spcification changent entre la 1re dition dune documentation et la premire sortie du produit o 17% des changements de format des donnes (an 2000, 2a 2b ) o 12% problmes durgence rsolus la hte. o 9% dboguages de programmes o 6% des changements de matriel o 6% problmes de documentation. o 4% amliorations de lefficacit o 3% autres Certaines organisations de production de logiciel consacrent la quasi totalit de leurs efforts la maintenance des produits livrs. 8/8
Ch1.doc
28/04/04
Quelques exemples
Mission Vnus : passage 500 000 km au lieu de 5000 (remplacement dune virgule par un point) Perte dune sonde (Mariner) pour cause derreur en Fortran avion F16 dclar sur le dos au passage de lquateur. faux dpart de la premire navette spatiale (pb de synchro entre 2 calculateurs) guerre des malouines : non reconnaissance de lExocet fuse russe pointant Hambourg au lieu du ple Nord (erreur de signe do erreur de 180 ) 72 ballons dtruits par un satellite mtorologique. Fuse tombant dans leau (mauvaises units dans les donnes) le dveloppement du compilateur PL1 de Control Data (jamais abouti) dcs dans un hpital (erreur de monitoring)
Ch1.doc
9/9
28/04/04
Ch1.doc
28/04/04
Ch1.doc
11/11
28/04/04
Principes (2)
rle de linformaticien : o modliser et utiliser ce modle comme rfrence o traduire un cahier de charges vagues en spcifications prcises o communiquer avec tous les intervenants. o transmettre les informations lutilisateur en terme dapplication et non de problme dordinateur o matriser les diffrents niveaux dabstraction o Spcifier o Programmer o Faire les preuves de programmes et vrifications o Soccuper de la maintenance
Ch1.doc
12/12
28/04/04
Principes (3)
le gnie logiciel propose des mthodes et des outils pour Faciliter la communication Organiser des projets (planification et communication pour le travail en quipe). Documenter, dfinir et respecter des normes Estimer les cots et les dlais Organiser les ressources (humaines, matrielles, logicielles) Suivre lvolution du logiciel (maintenance, cycle de vie) Mesurer la qualit des logiciels utiliss
Ch1.doc
13/13
28/04/04
Objectifs externes :
point de vue de lutilisateur Diminuer les cots augmenter la productivit amliorer la qualit des produits faciliter le travail des programmeurs Diminuer terme la part laisse aux spcialistes (analystes, programmeurs, experts )
Ch1.doc
14/14
28/04/04
Objectifs internes
point de vue du programmeur Aide lanalyse Rutilisation, gnralisation Dcomposition, modularit Portabilit Modifiabilit Testabilit Qualit-Fiabilit Ergonomie Efficacit Edition de documents
Ch1.doc
15/15
28/04/04
Ch1.doc
16/16
28/04/04
Ch1.doc
17/17
28/04/04
Exemple 1
Rgles de gestion valables pour toute lapplication Tous les crans ont la mme ergonomie. Tous les crans doivent proposer d'enregistrer les modifications lors de leur fermeture lorsqu'ils ont t modifis. La mme fonction est toujours reprsente par la mme icne. Le libell d'une donne est toujours le mme. Chaque fonction accessible par une icne est systmatiquement double par une occurrence dans un menu. Chaque icne spcifique l'application doit avoir une bulle explicative. Pour chaque critre de recherche, une liste d'aide est disponible en slectionnant la flche positionne en bout du champ. etc.
Ch1.doc
18/18
28/04/04
Exemple 2
Ch1.doc
19/19
28/04/04
Exemple 3
Elaboration dun module e-miage.
VII.
Ch1.doc
20/20
28/04/04
Ch1.doc
21/21
28/04/04
Ch1.doc
22/22
28/04/04
Cycle de vie
Spcifications Analyse des besoins Etude de la faisabilit du systme. Planification Conception prliminaire du systme Conception dtaille du systme Conception prliminaire du logiciel Conception dtaille du logiciel Codage Tests unitaires du logiciel Intgration et tests dintgration Validation du logiciel Intgration matriel-logiciel production Validation du systme Maintenance du systme 23/23
Productions
Contrles
Ch1.doc
28/04/04
Ch1.doc
24/24
28/04/04
25/25
28/04/04
rigoureuses ds le dpart modlisant les cas gnraux puis les cas difficiles ou particuliers prparant la flexibilit mieux adaptes la maintenance Exemple : noyau dun langage, dun systme dexploitation
Ch1.doc
26/26
28/04/04
Ch1.doc
27/27
28/04/04
Ch1.doc
28/28
28/04/04
Ch1.doc
28/04/04
Enrichissement :
De la description du logiciel jusqu une description proche du programme proprement dit
Conception architecturale :
prcision de linterface et de la fonction de chaque composant.
Conception dtaille :
pour chaque composant, description des algos et de la reprsentation des donnes traites. Rem : la conception peut remettre en cause la spcification (pb de faisabilit)
Ch1.doc
30/30
28/04/04
Ch1.doc
31/31
28/04/04
Contrles
Vrification de ladquation entre la description des besoins (cahier des charges) et les proprits du systme
Correction :
A-t-on crit le bon systme (rpondant lattente utilisateur et aux contraintes de lenvironnement ? Cest la validation qui rpond cette question.
Vrification :
sassurer que le logiciel satisfait la spcification globale. Les preuves sont tablies pour des spcifications dtailles, parties de programmes et sont contrls par des tests.
Ch1.doc
32/32
28/04/04
Les tests :
Les tests peuvent tre faits en statique (par examen ou analyse du code) en dynamique (en utilisant lexcution un sous ensemble de donnes).
Ch1.doc
33/33
28/04/04
Exploitation et maintenance.
volution du systme rparation des erreurs
Ch1.doc
34/34
28/04/04
V. Incrmental
Ch1.doc
35/35
28/04/04
Exploratoire
Spcification informelle
Ch1.doc
36/36
28/04/04
En cascade :
Reprend lenchanement des tapes dcrites plus haut. Les flches symbolisent le principe itratif tout en conservant le principe quune modification dans une tape ne remet en cause que ltape prcdente. Analyse Spcification Programmation Tests
Ch1.doc
37/37
28/04/04
Ch1.doc
38/38
28/04/04
Schma du modle en V
Conformit/compltion/Correction
Ch1.doc
39/39
28/04/04
Modle En V (2) :
Le principe de ce modle est qu'avec toute dcomposition doit tre dcrite la recomposition, et que toute description d'un composant est accompagne de tests qui permettront de s'assurer qu'il correspond sa description On retrouve lenchanement du modle en cascade. Les tapes de droite utilisent directement les rsultats des tapes de gauche et doivent tre raliss dans la foule. On insiste sur la partie test, ralis chaque tape, permettant de sassurer que le composant correspond la description. Par ailleurs on sassure de la recomposition (intgration) de chaque composant. obligation de concevoir les jeux de test et leurs rsultats ; rflexion et retour sur la description en cours ; meilleure prparation de la branche droite du V.
Ch1.doc
40/40
28/04/04
Conception gnrale
Ch1.doc
28/04/04
Conception dtaille
Conception de chaque module et dcomposition en fonctions simples facilement testables Traduction des traitements en code Test de chaque composant
Codage
Tests unitaires
Entre : DCG Sortie : Dossier de Conception Dtaille Dossier provisoire de Tests Unitaires Entre : DCD Sortie : listings et dossier des tests unitaires Entre : DCD, DTU Sortie : listage des composants tests Dossier des Tests d'Intgration
Ch1.doc
42/42
28/04/04
Intgration
Validation
Test du logiciel complet en fonctionnement oprationnel, tests faits par le commanditaire Vrification et gestion des modifications dossier dfinitif de livraison
Entre : DCG, DTI Sortie : DTI complet listings des composants tests Dossier des Tests de Validation Entre : DSL, DTV, cahier des recettes Sortie : DTV complet, manuel d'utilisation et d'installation dossier de livraison
Ch1.doc
43/43
28/04/04
En spirale :
Propos par B.Boehem en 88, gnralise les 2 prcdents. o Le quadrant 1 dtermine les objectifs du cycle, les alternatives, les contraintes en sappuyant sur les cycles prcdents, ou sur une analyse primaire. o Le quadrant 2 analyse les risques, value les alternatives, propose un maquettage. o Le quadrant 3 soccupe du dveloppement et de la vrification de la solution retenue en cours. o Le quadrant 4 passe en revue les rsultats du cycle prcdent et planifie le cycle suivant.
Ch1.doc
44/44
28/04/04
Ch1.doc
45/45
28/04/04
Modle incrmental :
Identification des incrments Spcification des incrments Codage des incrments Evaluation des incrments
Ch1.doc
46/46
28/04/04
Modle incrmental :
Un logiciel noyau est dabord dvelopp, puis des incrments sont dvelopps puis intgrs. Approche suivie pour de grands projets, permettant de mieux rpartir les efforts, traiter en parallle, de grer harmonieusement diffrentes comptences. Par contre ils sont plus sensibles aux modifications et aux problmes dintgration. Il ncessite une spcification rigoureuse et une bonne planification ainsi que la plus grande indpendance possible au niveau fonctionnel comme au niveau du calendrier.
Ch1.doc
47/47
28/04/04
Risques
Risques majeurs encourus lors du dveloppement dun logiciel : o Dfaillance de personnel o Irralisme du calendrier ou des budgets o Dveloppement inappropri o Produits trop luxueux o Volatilit (changements brusques avec de nombreuses rpercutions) o Composants manquants (tches externes, mesures, essais, analyses ) o Performances o Faisabilit (en rapport avec les techniques ou connaissances actuelles) o Formalisation excessive entranant une augmentation inopportune de documents points de dcision niveaux de dcisions ou de coordinations 48/48
Ch1.doc
28/04/04
Humeurs
Ch1.doc
49/49
28/04/04