génie logiciel mejdi blaghgim.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… ·...
TRANSCRIPT
![Page 1: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/1.jpg)
Génie LogicielGénie Logiciel
Direction Générale des Études Technologiques
Institut Supérieur des Etudes Technologiques de Djerba
Département Technologies de l’informatique
Mejdi BLAGHGI
![Page 2: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/2.jpg)
Chapitre 1 : Définitions et Chapitre 1 : Définitions et
principes de baseprincipes de baseprincipes de baseprincipes de base
![Page 3: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/3.jpg)
�Le génie logiciel (anglais softwareengineering)
�C’une science de génie industriel qui étudieles méthodes de travail et les bonnespratiques des ingénieurs qui développent des
Définitions
Page
pratiques des ingénieurs qui développent deslogiciels. [Wikipedia]
�C’est l'ensemble des activités de conceptionet de mise en œuvre des produits et desprocédures tendant à rationaliser laproduction du logiciel et son suivi [JO Fr1984]
Génie Logiciel par M. BLAGHGI 3
![Page 4: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/4.jpg)
�Les Coûts restent dans les limites prévuesau départ.
�La Qualité correspond au contrat de serviceinitial.
�Le système répond aux besoins des
Objectifs : Règle du CQFD
Page
�Le système répond aux besoins desutilisateurs et réalise les Fonctionnalitésdemandées.
�Les Délais restent dans les limites prévuesau départ.
Génie Logiciel par M. BLAGHGI 4
![Page 5: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/5.jpg)
Historique
PageGénie Logiciel par M. BLAGHGI 5
![Page 6: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/6.jpg)
�TAURUS, un projet d'informatisation de labourse londonienne : abandonné après 4années de travail et 100 millions de £ depertes,
�Avion C17 livré avec un dépassement de 500
Célèbres exemples
Page
�Avion C17 livré avec un dépassement de 500millions de $ ... (19 calculateurs hétérogèneset 6 langages de programmation différents),
�Non différenciation entre avion civil et avionmilitaire : guerre du Golfe - Airbus iranienabattu : 280 morts
Génie Logiciel par M. BLAGHGI 6
![Page 7: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/7.jpg)
�Le logiciel est un objet immatériel, trèsmalléable au sens de facile à modifier�Ses caractéristiques attendues sont difficiles à
figer au départ et souvent remises en cause encours de développement
Raisons des problèmes
Page
cours de développement
�Les défaillances et erreurs ne proviennent nide défauts dans les matériaux ni dephénomènes d’usure dont on connaît les loismais d’erreurs humaines, inhérentes àl’activité de développement
�Le logiciel ne s’use pas, il devient obsolèteGénie Logiciel par M. BLAGHGI 7
![Page 8: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/8.jpg)
�Carlo Ghezzi liste sept principesfondamentaux :�Rigueur�Séparation des problèmes�Modularité
Principes :
Page
�Modularité�Abstraction�Anticipation du changement�Généricité�Construction incrémentale
Génie Logiciel par M. BLAGHGI 8
![Page 9: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/9.jpg)
�La production de logiciel est une activitécréative, mais qui doit se conduire avec unecertaine rigueur.
�Le niveau maximum de rigueur est la
Principes : Rigueur
Page
�Le niveau maximum de rigueur est laformalité,�c’est à dire le cas où les descriptions et les
validations s’appuient sur des notations et loismathématiques.
Génie Logiciel par M. BLAGHGI 9
![Page 10: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/10.jpg)
�Stratégie générale du « diviser pour régner »
�Séparation dans le temps avec la notion decycle de vie du logicielSéparation des qualités que l’on cherche à
Principes : Séparation des problèmes
Page
�Séparation des qualités que l’on cherche àoptimiser à un stade donné
�Séparation des vues que l’on peut avoird’un système
�Séparation du système en parties
Génie Logiciel par M. BLAGHGI 10
![Page 11: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/11.jpg)
�Exemple 1 :Comment acheminer un email de façon sûr àtravers un réseau ?
�Solution :Décomposition en couches utilisée sur
Principes : Séparation des problèmes
Page
Décomposition en couches utilisée surInternet :�STMP : protocole de la couche application qui
suppose une couche de transport de paquet sûr.�TCP : protocole de la couche transport permettant
de s’assurer que tous les paquets arrivent, mêmesi le réseau peut perdre des paquets.
Génie Logiciel par M. BLAGHGI 11
![Page 12: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/12.jpg)
�Exemple 2 :Comment créer dynamiquement une pageinternet pour visualiser et modifier lecontenu d’une BD sans la corrompre ?
�Solution :
Principes : Séparation des problèmes
Page
�Solution :Décomposition en trois composants :�Modèle : son rôle est gérer le stockage des
données.�Vue : son rôle est formater les données.�Contrôleur : son rôle est de n’autoriser que les
modifications correctes.Génie Logiciel par M. BLAGHGI 12
![Page 13: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/13.jpg)
�Un système est modulaire s’il est composéde sous-systèmes plus simples, ou modules.
�La modularité permet de considérerséparément le contenu du module et lesrelations entre modules.
Principes : Modularité
Page
relations entre modules.�Elle facilite la réutilisation de composants.�Un bon découpage modulaire se caractérise
par :�une forte cohésion interne des modules�un faible couplage entre les modules
Génie Logiciel par M. BLAGHGI 13
![Page 14: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/14.jpg)
�L’abstraction consiste à ne considérer que lesaspects jugés importants d’un système à unmoment donné, en faisant abstraction desautres aspects.
�L’abstraction permet une meilleure maîtrise
Principes : Abstraction
Page
�L’abstraction permet une meilleure maîtrisede la complexité.
�Exemple : circuit électronique
Génie Logiciel par M. BLAGHGI 14
![Page 15: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/15.jpg)
�La caractéristique essentielle du logiciel, parrapport à d’autres produits, est qu’il estpresque toujours soumis à des changementscontinuels :�corrections d'imperfections
Principes : Anticipation du changement
Page
�corrections d'imperfections�évolutions en fonctions des besoins
�Il faut par exemple :�faire en sorte que les changements soient les plus
localisés possibles (bonne modularité),�être capable de gérer les multiples versions des
modules et configurations des versions.
Génie Logiciel par M. BLAGHGI 15
![Page 16: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/16.jpg)
�Il est parfois avantageux de remplacer larésolution d’un problème spécifique par larésolution d’un problème plus général.
�Cette solution générique (paramétrable ouadaptable) pourra être réutilisée plus
Principes : Généricité
Page
adaptable) pourra être réutilisée plusfacilement.
�Exemple : cas d’une template web :�Plutôt que de définir un style spécifique pour un
moyen de visualisation particulier, écrire (ouréutiliser) une feuille de styles.
Génie Logiciel par M. BLAGHGI 16
![Page 17: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/17.jpg)
�Un procédé incrémental atteint son but parétapes en s’en approchant de plus en plus.
�Chaque résultat est construit en étendant leprécédent.
Principes : Construction incrémentale
Page
�Par exemple :�réaliser d’abord un noyau des fonctions
essentielles et ajouter progressivement lesaspects plus secondaires.
�construire une série de prototypes simulant plusou moins complètement le système envisagé
Génie Logiciel par M. BLAGHGI 17
![Page 18: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/18.jpg)
Chapitre 2 : Processus Chapitre 2 : Processus
et Cycles de vieet Cycles de vieet Cycles de vieet Cycles de vie
![Page 19: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/19.jpg)
Les acteurs dans la vie du logiciel
Maître d’ouvrage (MO)
� Commande le logicielet assure la relationentre les usagers etles développeurs
Maître d’œuvre (ME)
� Responsable du suiviet développementlogiciel
Page
les développeurs
� Utilisateur(s) � Programmeur(s)
Génie Logiciel par M. BLAGHGI 19
![Page 20: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/20.jpg)
� Projet :� Ensemble d’activités organisées permettant de créer un
produit ou un service avec une qualité définie dans le cadred’un budget fixé.
� Processus :� Savoir-faire associé à une discipline
Terminologie
Page
� Savoir-faire associé à une discipline� Un processus est un ensemble structuré :
• d’acteurs
• d’activités pour chaque acteur (code, planification, …)
• d’artefacts pour chaque activité (exécutable, planning…)
• de workflows (un workflow = un ensemble d’activités)
� Un processus peut lui-même englober des sous-processus
Génie Logiciel par M. BLAGHGI 20
![Page 21: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/21.jpg)
�Un processus regroupe un ensemble d’étapes(dites activités, phases)�Séquentielles :
• Définition des besoins• Analyse / Conception
Processus de développement de
logiciels
Page
• Analyse / Conception• Implémentation• Validation et tests• Déploiement et maintenance
�Permanentes (horizontales) :• Produits intermédiaires• Plan d’assurance qualité et documentation• Gestion de projet, des ressources
Génie Logiciel par M. BLAGHGI 21
![Page 22: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/22.jpg)
�Permet d’assurer le cycle de vie du logiciel :�Depuis sa création … jusqu’à son retrait�En passant par sa distribution sur un marché�Ensemble séquentiel de phases : déterminées en
fonction des besoins du projet
Processus de développement de
logiciels (2)
Page
fonction des besoins du projet
Génie Logiciel par M. BLAGHGI 22
![Page 23: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/23.jpg)
Exemple de processus de
développement
PageGénie Logiciel par M. BLAGHGI 23
=
enchaînement
des activités
RUP (Rational Unified Process)
![Page 24: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/24.jpg)
Retrait et remplacement
Retrait et remplacement
MaintenanceMaintenance
Mise en exploitation
Mise en exploitation
Définitions des besoinsDéfinitions
des besoins
ObjectifsObjectifs
Les étapes du cycle de vie
Page
QualificationQualification
Validation et intégration
Validation et intégration
Implémentation et tests unitairesImplémentation et tests unitairesConceptionConception
PlanificationPlanification
Analyse des besoins
Analyse des besoins
Génie Logiciel par M. BLAGHGI 24
![Page 25: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/25.jpg)
Vie du logiciel
PageGénie Logiciel par M. BLAGHGI 25
(d’après J. Printz)
67% du coût total d’un logiciel � maintenance (dont 48% à réparer des défauts)
60% des défauts correspondent à des erreurs de spécification et de conception(d’après A.-M. Hugues)
![Page 26: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/26.jpg)
Répartition des phases
PageGénie Logiciel par M. BLAGHGI 26
![Page 27: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/27.jpg)
�Ensemble séquentiel d’étapes
Cycle de vie et qualité
Activitéprincipale
Intrants (autres processus) Extrants (autres process us)
Validation / VérificationDocGestion des versions, tests
Page
�Cycle de vie et assurance qualité lié :�Assurance qualité : contrôles réguliers dont :
• Validation : le bon produit ?• Vérification : le produit correct ?
�Solutions pour réduire les erreurs : prototypes,maquettes, documents de spécif, conception,tests, …
Génie Logiciel par M. BLAGHGI 27
![Page 28: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/28.jpg)
ObjectifsObjectifs
Retrait et remplacement
Retrait et remplacement
MaintenanceMaintenanceAnalyse des besoins
Analyse des besoins
Définitions des besoinsDéfinitions
des besoins
Les étapes du cycle de vie
Page
Mise en exploitation
Mise en exploitation
QualificationQualification
Validation et intégration
Validation et intégration
Implémentation et tests unitairesImplémentation et tests unitaires
ConceptionConception
PlanificationPlanification
Génie Logiciel par M. BLAGHGI 28
![Page 29: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/29.jpg)
�Objectifs :�Schéma directeur, étude d’opportunité
(avantages, risques)
�Besoins :�Définition du Cahier des Charges (CdC)
Objectifs et définition des besoins
Page
�Définition du Cahier des Charges (CdC)�Consultation des intervenants du projet�Description du produit à partir de scénarii
d'utilisation (use cases)
�Un appel d'offres est peut êtreéventuellement lancé
Génie Logiciel par M. BLAGHGI 29
![Page 30: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/30.jpg)
� Spécifications :� Fonctionnelles et non fonctionnelles� Base du contrat commercial avec le client
� Comprendre et modéliser le métier� Contraintes de réalisation, ébauche du manuel utilisateur,
glossaire
Analyse des besoins et du système
Page
glossaire�Maquettes, prototypes, spécification d’interfaces, simulation
�Maquette :� Système incomplet� Tester l’ergonomie� Dialogue entre développeur et utilisateur� Ne permet pas de tester : performance / temps de réponse
Génie Logiciel par M. BLAGHGI 30
![Page 31: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/31.jpg)
� Prototype (dans un langage quelconque)� Faisabilité du système, oublis de spécification, contradictions� Fonctionnalités finales : sans contraintes de fiabilité,
robustesse
� Spécification d’interfaces : Maquette pour validerl’IHM
Prototypes, spécification d’interfaces
et simulations
Page
l’IHM�Outils de simulation :
� Comparer plusieurs solutions envisageables, étude defaisabilité
�Méthodes utilisées :� Théorie des réseaux de files d'attente (le plus utilisé)� Réseaux de Pétri (petits systèmes)� Chaînes de Markov (petits systèmes)
Génie Logiciel par M. BLAGHGI 31
![Page 32: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/32.jpg)
ObjectifsObjectifs
Retrait et remplacement
Retrait et remplacement
MaintenanceMaintenanceAnalyse des besoins
Analyse des besoins
Définitions des besoinsDéfinitions
des besoins
Les étapes du cycle de vie
Page
Mise en exploitation
Mise en exploitation
QualificationQualification
Validation et intégration
Validation et intégration
Implémentation et tests unitairesImplémentation et tests unitaires
ConceptionConception
PlanificationPlanification
Génie Logiciel par M. BLAGHGI 32
![Page 33: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/33.jpg)
�Gestion de projet (matériel et logiciel) :�Découper en tâches puis les ordonnancer (MS
Project)�Système de contrôle pour les produits
intermédiaires du cycle de vie
Planification et gestion de projet
Page
intermédiaires du cycle de vie
�Gestion de projet (humain) :�Organiser la formation sur les méthodes, outils,
nouvelles technologies�Motiver les équipes, anticiper les problèmes
Génie Logiciel par M. BLAGHGI 33
![Page 34: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/34.jpg)
�Gestion de la configuration�Assurer la cohérence des composants et leur
évolution au cours du temps�Nombreux outils pour faciliter :
• la gestion des versions (CVS, SVN)
Planification et gestion de projet
(2)
Page
• la gestion des versions (CVS, SVN)• la reconstruction du système (Ant, Maven, Make)
�Plan qualité, suivi de projet, documentation
Génie Logiciel par M. BLAGHGI 34
![Page 35: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/35.jpg)
�Choix d’une architecture techniques :�Suivant certaines priorités�Expertise informatique
�Modèles conceptuels :�Méthodes graphiques : Merise (MCD, MCT) - UML
Conception d’une solution
(structurée ou OO)
Page
�Méthodes graphiques : Merise (MCD, MCT) - UML(diagrammes de classes, d’états, …) - Réseaux dePetri
�Méthodes formelles : automates (langage VDM, Z,Larch, Eiffel)
�Dossier de conception, plan d'intégration desmodules, plans de tests
Génie Logiciel par M. BLAGHGI 35
![Page 36: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/36.jpg)
Modèles conceptuels : UML
PageGénie Logiciel par M. BLAGHGI 36
Tiré de : http://www-lipn.univ-paris13.fr/~gerard/index.php/uml
![Page 37: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/37.jpg)
�Implémentation + documentation :�Environnements de développement (AGL :
Microsoft Visual C++, Dev C++, Windev, Eclipse,Borland Turbo Pascal, Oracle Designer, …)
�Outils de génération de code (Rational Rose,
Codage
Page
�Outils de génération de code (Rational Rose,Topcased, Omondo, …)
�Réutilisation de composants existants (DesignPatterns, Java Beans)
Génie Logiciel par M. BLAGHGI 37
![Page 38: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/38.jpg)
�Tests de vérification (le produit correct ?)�De la robustesse et cohérence du système (cas
d’exceptions)�Environnements de tests unitaires (JUnit, Boost,
JML)
Tests
Page
JML)
�Tests de validation (le bon produit ?)�En accord avec les besoins du client�Une fois les tests de vérification satisfaits
Génie Logiciel par M. BLAGHGI 38
![Page 39: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/39.jpg)
ObjectifsObjectifs
Retrait et remplacement
Retrait et remplacement
MaintenanceMaintenanceAnalyse des besoins
Analyse des besoins
Définitions des besoinsDéfinitions
des besoins
Les étapes du cycle de vie
Page
Mise en exploitation
Mise en exploitation
QualificationQualification
Validation et intégration
Validation et intégration
Implémentation et tests unitairesImplémentation et tests unitaires
ConceptionConception
PlanificationPlanification
Génie Logiciel par M. BLAGHGI 39
![Page 40: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/40.jpg)
�Intégration matérielle et logicielle :�Modules intégrés avec les autres (plan
d'intégration)�L'ensemble est testé conformément au plan de
tests
Intégration et qualification
Page
tests
�Qualification (une fois le logiciel terminé) :�Produit testé dans des conditions normales
d'utilisation�A l'issue de cette phase, le logiciel est prêt à la
mise en exploitation
Génie Logiciel par M. BLAGHGI 40
![Page 41: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/41.jpg)
�Correction des erreurs :�robustesse
�Demandes d’évolution :nouvelles fonctionnalités, portabilité, …
Maintenance et évolution
Page
�nouvelles fonctionnalités, portabilité, …
�Etape longue, critique et coûteuse :�80% de l’effort de certaines entreprises
Génie Logiciel par M. BLAGHGI 41
![Page 42: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/42.jpg)
�Méthodes prédictives (GL traditionnel) :�on planifie au début du projet
�Méthodes adaptatives (agiles) :Intègrent le changement
Deux grandes approches
Page
�Intègrent le changement�La planification est réévaluée au cours du
développement
Génie Logiciel par M. BLAGHGI 42
![Page 43: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/43.jpg)
Deux grandes approches
PageGénie Logiciel par M. BLAGHGI 43
![Page 44: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/44.jpg)
�Création : 1970�Séquentiel linéaire�L’un des premiers
modèles proposésEx : Merise
Modèle en cascade
Conceptiongénérale
Conceptiondétaillée
Validation
Vérification
Vérification
Spécifications
Page
�Ex : Merise
Génie Logiciel par M. BLAGHGI 44
Codage
Intégration
Mise en production
Maintenance
Vérification
Tests unitaires
Tests d’intégration
Validation
Erreur de spécification trouvée en maintenance :
coûte + de 100 fois + cher que si trouvée lors des spécifications
![Page 45: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/45.jpg)
� Les vrais projets suivent rarement undéveloppement séquentiel
� Établir tous les besoins au début d’un projet estdifficile
� Applicable pour les projets bien compris et maîtrisés
Problèmes du modèle en cascade
Page
� Applicable pour les projets bien compris et maîtrisés� Pas de frontière claire entre conception et
développement� Cadre de développement rigide et non transparent
au client� Le produit apparaît très tard� Risques élevés et non contrôlés
Génie Logiciel par M. BLAGHGI 45
![Page 46: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/46.jpg)
Modèle en V
Définition des testsSpécifications fonctionnelleset planification
Conception détaillée
Conception globale
Tests unitaires
Intégration
Qualification
Définition du plan d’intégration
Horizontal : préparation de la vérification
Ver
tical
: dé
velo
ppem
ent d
es m
odul
es
PageGénie Logiciel par M. BLAGHGI 46
Programmation
Gestion des configurations
Gestion de projet
Plan assurance qualité
Ver
tical
: dé
velo
ppem
ent d
es m
odul
es
![Page 47: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/47.jpg)
�Avantages :�Permet une meilleure anticipation, validation
intermédiaire�Evite les retours en arrière
Avantages et inconvénients du
cycle en V
Page
�Inconvénients :�Le cadre de développement reste rigide�La durée est souvent trop longue�Le produit apparaît toujours très tard
Génie Logiciel par M. BLAGHGI 47
![Page 48: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/48.jpg)
� Chaque nouvel incrément :� a pour objectif la maîtrise d'une partie des risques� apporte une preuve de faisabilité ou d'adéquation avec les
objectifs
� Développement logiciel :� processus graduel d’élimination des risques
Modèle itératif
Page
objectifs
48
A chaque itération :
1. Spécification2. Conception
3. Implémentation4. Tests
Génie Logiciel par M. BLAGHGI
![Page 49: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/49.jpg)
�Basé sur les maquettes / prototypes�Vérifier l’efficacité réelle d’un algorithme�Identifier les besoins (prototype jetable)�Implémenté par des générateurs de code
(prototype évolutif)
RAD(Rapid Application Development)
Page
(prototype évolutif)
Génie Logiciel par M. BLAGHGI 49
![Page 50: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/50.jpg)
�Avantages :�Client : acteur dans le processus et reçoit des
résultats rapidement�Temps de développement très court
RAD(Rapid Application Development)
Page
�Inconvénients : prototyper n’est pas spécifier�Qualité du produit développé souvent faible�Pour des petits projets ou à courte durée de vie�Approprié pour les systèmes dont la modularité
est évidente
Génie Logiciel par M. BLAGHGI 50
![Page 51: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/51.jpg)
Modèle incrémental
Combine des éléments des modèles linéaires et du prototypage
utilisé quand il n’y a pas assez de ressources disponibles pour une livraison à temps
PageGénie Logiciel par M. BLAGHGI 51
Produit opérationnel :incréments livrables
�Le premier incrément est souvent le noyau
� Les incréments aident à gérer les risques techniques (matériel non disponible)
![Page 52: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/52.jpg)
Modèle en spirale
communiquer avec le clientrisques techniques et de gestion
Couplage de la nature itérative du prototypage avec les aspects contrôlés du modèle en cascade
PageGénie Logiciel par M. BLAGHGI 52
construire, tester, installer
définir les ressources, la répartition dans le temps
Réduit les risques si bien
appliqué
![Page 53: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/53.jpg)
eXtreme Programming (XP)
« Comment mieux travailler avec le client pour nous focaliser sur ses besoins les plus prioritaires et être aussi réactifs que possible ? »
Pour des petits projets (moins de 10 personnes)
Valeurs d’XP :
1. Communication
PageGénie Logiciel par M. BLAGHGI 53
1. Communication
2. Feedback
3. Simplicité
4. Courage
Inconvénients :- Phase d’analyse pas assez couverte- Manque de contrôle et de structuration
![Page 54: Génie Logiciel Mejdi BLAGHGIm.academiepro.com/uploads/cours/2015_01_07_notes-cours-gl-mblag… · Le logiciel ne s’use pas, il devient obsolète Génie Logiciel par M. BLAGHGI](https://reader031.vdocuments.net/reader031/viewer/2022020304/5b9da01509d3f253238c6eed/html5/thumbnails/54.jpg)
A suivre …A suivre …