Génie Logiciel Mejdi BLAGHGI - academiepro.com · Le génie logiciel (anglais software...

54
Génie Logiciel Gé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 [email protected]

Transcript of Génie Logiciel Mejdi BLAGHGI - academiepro.com · Le génie logiciel (anglais software...

Page 1: Génie Logiciel Mejdi BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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

����[email protected]

Page 2: Génie Logiciel Mejdi BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

Historique

PageGénie Logiciel par M. BLAGHGI 5

Page 6: Génie Logiciel Mejdi BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

� 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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

Répartition des phases

PageGénie Logiciel par M. BLAGHGI 26

Page 27: Génie Logiciel Mejdi BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

� 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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

� 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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

Deux grandes approches

PageGénie Logiciel par M. BLAGHGI 43

Page 44: Génie Logiciel Mejdi BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

� 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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

� 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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

�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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

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 BLAGHGI - academiepro.com · Le génie logiciel (anglais software engineering) C’une science de génie industriel qui étudie les méthodes de travail et les

A suivre …A suivre …