Cycle de vie d un logiciel

Documents pareils
Processus d Informatisation

Gestion Projet. Cours 3. Le cycle de vie

2. Activités et Modèles de développement en Génie Logiciel

Développement itératif, évolutif et agile

Cours Gestion de projet

Introduction au génie logiciel

Les méthodes itératives. Hugues MEUNIER

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Guichet automatique de banque

Développement spécifique d'un système d information

IFT3913 Qualité du logiciel et métriques. Chapitre 2 Modèles de processus du développement du logiciel. Plan du cours

GL Processus de développement Cycles de vie

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

En face du commanditaire, on met un chef de projet qui connait le domaine (banque, administration, etc.)

2.DIFFERENTS MODELES DE CYCLE DE VIE

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

Qualité du logiciel: Méthodes de test

Génie logiciel (Un aperçu)

Analyse,, Conception des Systèmes Informatiques

AQUADEV asbl (Belgique)

CHAPITRE 3 : LES METHODES AGILES?

Méthodes Agiles et gestion de projets

Vérifier la qualité de vos applications logicielle de manière continue

Méthodes de développement. Analyse des exigences (spécification)

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Eclipse Process Framework et Telelogic Harmony/ITSW

Le génie logiciel. maintenance de logiciels.

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

RTDS G3. Emmanuel Gaudin

Rational Unified Process

La Certification de la Sécurité des Automatismes de METEOR

GL Le Génie Logiciel

Conception, architecture et urbanisation des systèmes d information

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

But de cette introduction à la gestion de projets :

Découverte du tableur CellSheet

Projet Active Object

Gestion de projets logiciels. Xavier Dubuc

PROJET DE PORTAIL INTRANET YNNA

Système d Information du CNRST - SIC -

Administrateur de Parc PC

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Diagrammes de Package, de déploiement et de composants UML

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique

Outil de gestion et de suivi des projets

W4 - Workflow La base des applications agiles

ORIENTATIONS POUR LA CLASSE DE TROISIÈME

Réussir l externalisation de sa consolidation

LA GESTION DE PROJET INFORMATIQUE

UE 8 Systèmes d information de gestion Le programme

Méthodes de développement

Cours 1 : La compilation

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

Maîtrise d ouvrage agile

Gé nié Logiciél Livré Blanc

Processus de Développement Logiciel

ITIL V3. Transition des services : Principes et politiques

Chef de projet H/F. Vous avez au minimum 3 ans d expérience en pilotage de projet de préférence dans le monde du PLM et de management d équipe.

Identification du module

Le Guide Pratique des Processus Métiers

La gestion du compte de l État

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

Nom de l application

Les mécanismes d'assurance et de contrôle de la qualité dans un

Métiers d études, recherche & développement dans l industrie

Architecture d'entreprise : Guide Pratique de l'architecture Logique

LE TRAITEMENT DES DONNEES COMPTABLES. Objectif(s) : Présenter une synthèse sur les différentes solutions comptables. TABLE DES MATIERES

Proposition pour la création d un site de gestion de projet

Présentation UBO 12/2008 Présentation des méthodes agiles

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Brique BDL Gestion de Projet Logiciel

25/12/2012

Fiche méthodologique Rédiger un cahier des charges

Annexe : La Programmation Informatique

LE BUDGET DES VENTES

M1if22 - Logiciels éducatifs Conception & rôle de l enseignant

Alignement stratégique du SI et gestion de portefeuille de projets

Télé-Procédure de Gestion d Incidents : Spécifications et Prototype.

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Un environnement de déploiement automatique pour les applications à base de composants

PEPI GPI (Gestion de Projet Informatique) - Note de Cadrage décembre

LA GESTION DE PROJET INFORMATIQUE

Analyse structurée de solutions pour BMC Remedy IT Service Management v 7

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

PROFIL DE POSTE AFFECTATION. SERIA (service informatique académique) DESCRIPTION DU POSTE

UM2 - Master 2 Année Sensibilisation aux Tests de Projets Informatique - Managed Testing -

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Agilitéet qualité logicielle: une mutation enmarche

Transcription:

d un logiciel Ilhem Boussaïd ilhem_boussaid@yahoo.fr Université des Sciences et de la Technologie Houari Boumediene Licence 3 Académique http://sites.google.com/site/ilhemboussaid 20 novembre 2010 I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 1 / 60

Plan 1 Cycle de vie Processus de développement Étapes du cycle de vie Forte cohésion Forte cohésion Cycle de vie en cascade Cycle de vie en V Prototypage Cycle de vie en spirale Cycle itératif et incrémental I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 2 / 60

Processus de développement Processus de développement : c est quoi? Le développement et l évolution d un logiciel doit être vu comme un processus. Processus : Ensemble d activités coordonnées et régulées, en partie ordonnées, dont le but est de créer un produit. Processus de développement L ordre et la manière d enchaîner les étapes d un développement Un processus décrit 2 choses importantes : Les activités (étapes) (QUOI?) L enchainement des activités (QUAND?) I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 3 / 60

Processus de développement Processus de développement : Pourquoi? Un logiciel à développer est un problème très complexe à résoudre. Pour appréhender la complexité de développement du logiciel, il faut arriver : à rendre les choses simples. séparer les problèmes qui peuvent l être afin de les résoudre de manière presque indépendante. «Diviser pour mieux régner.» I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 4 / 60

Étapes du cycle de vie Activité Les activités d un processus sont souvent décrites en termes de : Entrées de l activité (matière première) Sorties de l activité (résultat) Intervenants et rôles (qui?) Description de l activité (quoi - quel est le problème à traiter?) Standards, guides, «best practices»à appliquer (comment?) Activité Quoi Comment I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 5 / 60

Activités : les classiques Étapes du cycle de vie Activités: les classiques Les Activités activités courantes et problèmes et problèmes traités traités: : Spécifier Qu est-ce que le logiciel doit faire? Comment s assurer qu il le fait? Comment s assurer qu on développe le bon logiciel? Concevoir Comment organiser le logiciel pour qu il fasse ce qu il doit faire? Quelles choix techniques faut-il faire pour que le logiciel fasse ce qu il doit faire? Comment s assurer que le logiciel est organisé et construit de manière à faire ce qu il doit faire? Coder Comment traduit-on cette organisation en code source? Valider Le logiciel fait-il ce qu il doit faire? Développe t on le bon logiciel? Intégrer Le logiciel est-il organisé et construit de manière à faire ce qu il doit faire? Tester unitairement Le code source est-il bien écrit? ESISAR GENIE LOGICIEL - E.CHENU 51 I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 6 / 60

Étapes du cycle de vie Faisabilité (pourquoi?) Questions Pourquoi développer le logiciel? Y a-t-il de meilleures alternatives? Comment procéder pour faire ce développement? Y a-t-il un marché pour le logiciel? Quels moyens faut-il mettre en oeuvre? A-t-on le budget, le personnel, le matériel nécessaires? I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 7 / 60

Étapes du cycle de vie Faisabilité (pourquoi?) Activité Description Entrées Sorties Étude préalable Etudier la faisabilité du projet, ses contraintes techniques (coût, temps, qualité) et les alternatives possibles Problème à résoudre, objectifs à atteindre OUI(la décision est prise de réaliser le logiciel) ou NON(le projet est abandonné) I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 8 / 60

Étapes du cycle de vie Spécification (quoi?) Activité Description Entrées Sorties Spécifier Décrire ce que doit faire le logiciel (comportement en boitenoire). Décrire comment vérifier en boite-noire que le logiciel fait bien ce qui est exigé. Client qui a une idée de ce qu il veut. Exigences, désir, besoins... concernant le système permettant de résoudre le problème. Cahier des charges du logiciel (ou spécification du logiciel). Des procédures de validation. Version provisoire des manuels d utilisation et d exploitation du logiciel Une spécification peut suivre de nombreux formalismes : cas d utilisation, modèles UML, exigences,... Les procédures de validation peuvent être des procédures manuelles ou des tests. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 9 / 60

Étapes du cycle de vie Spécification - Bonnes pratiques Une bonne définition des exigences est capitale et contribue à la réussite du projet en : permettant d obtenir un accord explicite entre les développeurs, les clients et les utilisateurs sur le travail à réaliser et les critères d acceptation du système final, fournissant une base solide pour l estimation des ressources nécessaires (temps, coût, équipement, qualifications des développeurs,... ), évitant les incompréhensions et les omissions. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 10 / 60

Étapes du cycle de vie Spécification - Difficultés I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 11 / 60

Étapes du cycle de vie Spécification - Difficultés Les besoins du client sont imprécis et changeants, 2 pratiques différentes du génie logiciel s opposent sur la manière de traiter ce problème : Faut-il faire un effort pour préciser et figer le besoin du client en début de projet? Faut-il développer de manière à être tolérant aux imprécisions et aux changements de besoins? I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 12 / 60

Étapes du cycle de vie Spécification - Difficultés Les erreurs dans les exigences sont plus fréquentes que celles de conception et d implémentation. Elles sont également les plus difficiles et les plus coûteuses à corriger a posteriori. Il est donc important de les repérer le plus rapidement possible. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 13 / 60

Spécification - Cahier de charges Cycle de vie Étapes du cycle de vie Le cahier des charges est un document recensant les spécifications/exigences. Il résulte de l analyse et est contractuel entre le client et l entreprise informatique qui va réaliser le logiciel. Il doit donc être validé par les deux. Qualités attendues : non ambigu, complet, vérifiable, cohérent, modifiable, traçable, utilisable durant la maintenance, indépendant des solutions (voir notamment la norme IEEE 830). Plan type : 1. introduction : présentation générale, motivations, définitions des termes 2. contexte : environnement matériel et humain, acteurs et utilisateurs, interaction avec d autres systèmes et logiciels, existant 3. spécifications fonctionnelles : grandes fonctionnalités du système, acteurs et autres systèmes qu elles impliquent 4. spécifications non fonctionnelles, contraintes : charte graphique matériel : marques, RAM, débit de connexion Internet... interfaçage : protocoles de communication, formats de fichiers, etc., pour l interaction avec des matériels, logiciels, systèmes d exploitation... performances : temps réel... sécurité : sauvegardes, confidentialité,... charge à supporter : volume des données, nombre d utilisateurs simultanés,... comportement en cas de panne... 5. priorités relatives des spécifications, versions à prévoir, délais 6. évolutions à prévoir 7. annexes Couramment, les points 2 à 6 sont présentés en deux temps, de façon générale puis de façon détaillée, donnant alors lieu à deux parties organisées essentiellement de la même façon. Une (norme IEEE exigence 830 :1993) générale se décline alors en plusieurs exigences détaillées. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 14 / 60

Étapes du cycle de vie Spécification - Cahier de charges Qualités requises dans un cahier de charges : Bon niveau de généralité Formulation adéquate des besoins? Problème bien décrit Être précis, non ambigu malgré l usage d un langage naturel ( mathématique) Être complet (pas d omission involontaire) Être cohérent (pas d inférence de fonctionnalités) Être vérifiable : critères de validation définis. Évaluer la faisabilité des besoins? faire éventuellement une maquette, une simulation Être modifiable : facilité à exprimer un changement ou ajout de besoins I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 15 / 60

Étapes du cycle de vie Spécification - Cahier de charges Rédaction d un cahier des charges : norme IEEE 830 (1998) pour la rédaction des spécifications ; organisation : numérotation, tableaux, schémas, exemples... (ce n est pas un roman!) ; diagrammes UML : en particulier des cas d utilisation pour présenter les fonctionnalités et les acteurs qu elles impliquent ; autres schémas : écrans types, diagramme de déploiement UML... scénarios (d interaction) : illustration des cas d utilisation complexes par un exemple d interaction le réalisant ; spécifier les acteurs impliqués et l enchaînement des interactions sur un exemple (éventuellement par un diagramme de séquence UML), ainsi que le traitement des erreurs et les éventuelles préconditions et postconditions ; I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 16 / 60

Étapes du cycle de vie Spécification - Exemple Un Guichet Automatique de Banque (GAB) offre les services suivants : Distribution d argent à tout Porteur de carte de crédit, via un lecteur de carte et un distributeur de billets. Consultation de solde de compte, dépôt en numéraire et dépôt de chèques pour les clients porteurs d une carte de crédit de la banque. Un opérateur de maintenance se charge de la collecte des dépôts d argent et de la recharge du distributeur. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 17 / 60

Étapes du cycle de vie Spécification - Exemple System Retirer de l'argent Porteur de carte Consulter son solde Déposer l'argent Client de la banque Recharger la caisse Collecter dépôt d'argent Opérateur de maintenance Maintenir l'état opérationnel I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 18 / 60

Étapes du cycle de vie Spécification - Exemple Besoins d interface Homme/Machine (IHM) Les dispositifs d entrée/sortie à la disposition du Porteur de carte doivent être : Un lecteur de carte bancaire. Un clavier numérique (pour saisir son code), avec des touches "validation", "correction" et "annulation". Un écran pour l affichage des messages du GAB. Des touches autour de l écran pour sélectionner un montant de retrait parmi ceux qui sont proposés. Un distributeur de billets. Un distributeur de tickets. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 19 / 60

Étapes du cycle de vie Conception (comment?) Activité Description Entrées Sorties Concevoir Organiser le logiciel afin qu il puisse satisfaire les exigences de la spécification. Faire les principaux choix techniques pour satisfaire les exigences de la spécification. Une spécification. Une description des décisions de conception. Des procédures de tests qui permettent de vérifier que les décisions de conception sont correctement implémentées en code source et qu elles contribuent à satisfaire les exigences de la spécification. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 20 / 60

Étapes du cycle de vie Conception architecturale Décomposer le système en sous-systèmes Définir les interfaces, les liens entre les composants Résultat : Une description de l architecture du logiciel. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 21 / 60

Étapes du cycle de vie Conception détaillée Détailler le fonctionnement des composants Définir quelques algorithmes, la représentation des données,... des tests unitaires sont définis pour s assurer que les composants réalisés sont bien conformes à leurs descriptions. Résultat : pour chaque composant, le résultat consiste en Un dossier de conception détaillée. Un dossier de tests unitaires. Un dossier de définition d intégration logiciel. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 22 / 60

Étapes du cycle de vie Qualité d une conception La composante la plus importante de la qualité d une conception est la maintenabilité. maximiser la cohésion à l intérieur des composants minimiser le couplage entre ces composants Les dégradations de la conception sont liées aux modifications des spécifications, Ces modifications sont à faire vite et par d autres que les concepteurs originaux ça marche mais sans respect de la conception initiale corruption de la conception (avec effet amplifié au fur et à mesure) I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 23 / 60

Étapes du cycle de vie Couplage/Cohésion A RETENIR ABSOLUMENT Pour qu un logiciel soit extensible et réutilisable, il faut qu il soit découpé en modules faiblement couplés et à forte cohésion. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 24 / 60

Étapes du cycle de vie Couplage Couplage Une entité (fonction, module, classe, package, composant) est couplée à une autre si elle dépend d elle. Couplage faible Désigne une relation faible entre plusieurs entités (classes, composants), permettant une grande souplesse de programmation, de mise à jour. Ainsi, chaque entité peut être modifiée en limitant l impact du changement au reste de l application. Couplage fort au contraire, tisse un lien puissant qui rend l application plus rigide à toute modification de code. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 25 / 60

Étapes du cycle de vie Couplage fort Couplage Fort Mesurez l impact d une modification de ces modules Module 1 Module 2 Module 3 Module 6 Module 4 Module 5 I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 26 / 60

Étapes du cycle de vie Couplage faible Couplage Faible Module 1 Mesurez l impact de modification d un des modules Module 2 Module 3 Module 6 Module 4 Module 5 I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 27 / 60

Forte cohésion Forte cohésion Cohésion entre modules dans un composant, entre services dans un module :"qui se ressemble s assemble " L idée est de vérifier que nous rassemblons bien dans une classe des méthodes cohérentes, qui visent à réaliser des objectifs similaires. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 28 / 60

Forte cohésion Cohésion - Mauvais exemple Mauvais exemple : il serait mal venu d implémenter une méthode "Afficher()" ou "Tracer()" puisque l objectif de cette classe est de représenter le modèle d un compte en banque et non celui d une fenêtre graphique ou d un service de journalisation. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 29 / 60

Forte cohésion Implantation (comment?) Activité Description Entrées Sorties Coder et tester Écrire le code source du logiciel. Tester le comportement du code source afin de vérifier qu il réalise les responsabilités qui lui sont allouées. Spécification, conception. Code source. Tests unitaires. Documentation I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 30 / 60

Forte cohésion Intégration Activité Description Entrées Sorties Intégrer Assembler le code source du logiciel (éventuellement partiellement) et dérouler les tests d intégration. Conception, code source, tests d intégration (tests). Un rapport de test d intégration. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 31 / 60

Forte cohésion Validation Activité Description Entrées Sorties Valider Construire le logiciel complet exécutable. Dérouler les tests de validation sur le logiciel complet exécutable. Logiciel complet exécutable à valider. Tests de validation. Rapport de tests de validation. Qualification (ou recette), c est-à-dire la vérification de la conformité du logiciel aux spécifications initiales. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 32 / 60

Forte cohésion Maintenance Activités : maintenance corrective : correction des bugs maintenance adaptative : ajuster le logiciel Maintenance perfective, d extension : augmenter/améliorer les possibilités du logiciel Productions : logiciel corrigé mises à jour documents corrigés I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 33 / 60

Forte cohésion Maintenance corrective Corriger les erreurs : défauts d utilité, d utilisabilité, de fiabilité... Identifier la défaillance, le fonctionnement Localiser la partie du code responsable Attention La plupart des corrections introduisent de nouvelles erreurs Les coûts de correction augmentent exponentiellement avec le délai de détection Corriger et estimer l impact d une modification La maintenance corrective donne lieu à de nouvelles livraisons (release) I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 34 / 60

Forte cohésion Maintenance adaptative Maintenance adaptative Ajuster le logiciel pour qu il continue à remplir son rôle compte tenu du l évolution des Environnements d exécution Fonctions à satisfaire Conditions d utilisation Ex : changement de SGBD, de machine, de taux de TVA, an 2000, euro... I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 35 / 60

Forte cohésion Maintenance perfective Maintenance perfective, d extension Accroître/améliorer les possibilités du logiciel Ex : les services offerts, l interface utilisateur, les performances... Donne lieu à de nouvelles versions I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 36 / 60

Cycle de vie en cascade Cycle de vie en cascade Le modèle en cascade (Waterfall model) est le plus classique des cycles de vie. Cycle de vie linéaire sans aucune évaluation entre le début du projet et la validation Le projet est découpé en phases successives dans le temps A chaque phase correspond une activité principale bien précise produisant un certain nombre de livrables Chaque phase ne peut remettre en cause que la phase précédente I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 37 / 60

Cycle de vie en cascade Cycle de vie en cascade Faisabilité & cahier des charges Spécification Conception architecturale Conception détaillée Programmation Intégration Installation Exploitation & maintenance I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 38 / 60

Cycle de vie en cascade Cycle de vie en cascade - Inconvénients Inconvénients Les vrais projets suivent rarement un développement séquentiel Établir tous les besoins au début d un projet est difficile Aucune validation intermédiaire (Aucune préparation des phases de vérification) Obligation de définir la totalité des besoins au départ augmentation des risques car validation tardive : remise en question coûteuse des phases précédentes Sensibilité à l arrivée de nouvelles exigences : refaire toutes les étapes Bien adapté lorsque les besoins sont clairement identifiés et stables I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 39 / 60

Cycle de vie en cascade Cycle de vie en cascade - Inconvénients Modèle en cascade Spécification Conception Code & Test Intégration Validation Maintenance Spécification 100% Utilisable 0% Conception 100% Utilisable 0% Code & Test 100% Utilisable 0% Intégration 100% Utilisable 0% Validation 100% Utilisable 100% Customer Feed-back starts I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 40 / 60

Cycle de vie en V Cycle de vie en V A ce jour, le cycle en V reste le cycle de vie le plus utilisé. C est un cycle de vie orienté test : A chaque activité créative (spécification, conception et codage) correspond une activité de vérification (validation, intégration, tests unitaires). Chaque phase en amont prépare la phase correspondante de vérification (la vérification est prise en compte au moment même de la création). I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 41 / 60

Cycle de vie en V Cycle de vie en V Faisabilité & cahier des charges Installation & test système Spécification Test d acceptation Conception architecturale Intégration & test d intégration Conception détaillée Test unitaire Programmation I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 42 / 60

Cycle de vie en V Avantages et inconvénients Avantages La préparation des dernières phases (validation-vérification) par les premières (construction du logiciel), permet d éviter d énoncer une propriété qu il est impossible de vérifier objectivement après la réalisation. Inconvénients Construit-on le bon logiciel? Le logiciel est utilisé très (trop) tard. Il faut attendre longtemps pour savoir si on a construit le bon logiciel. Difficile d impliquer les utilisateurs lorsque qu un logiciel utilisable n est disponible qu à la dernière phase Idéal quand les besoins sont bien connus, quand l analyse et la conception sont claires I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 43 / 60

Cycle de vie en V Documents et phases phases documents cahier des charges du projet spécification conception générale conception détaillée listages tests unitaires test d intégration avantprojet analyse conception générale conception détaillée implémentation tests unitaires?? intégration installation et test et test de d intégration réception test de réception manuels d utilisation et d exploitation??? document élaboré entièrement pendant la phase document partiellement élaboré pendant la phase document en entrée de la phase? document éventuellement complété pendant la phase Fig. 8 Documents et phases I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 44 / 60

Prototypage Prototypage Construit et utilisé en phase d analyse (spécification) Discuter et interagir avec l utilisateur - Pour montrer aux clients les fonctions que l on veut mettre en oeuvre identifier les besoins : Je saurai ce que je veux quand je le verrai! Vérifier des choix spécifiques d IHM Construit et utilisé en phase de conception s assurer de la faisabilité de parties critiques valider des options de conception Vérifier l efficacité réelle d un algorithme I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 45 / 60

Prototypage Prototypage évolutif/jetable (Prototype jetable) : squelette du logiciel qui n est crée que dans un but et dans une phase particulière du développement Si gardé, alors s appelle (prototype évolutif) Première version du prototype = embryon du produit final On itère jusqu au produit final I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 46 / 60

Prototypage Prototypage : Avantages/Inconvénients Avantage : Les efforts consacrés au développement d un prototype sont le plus souvent compensés par ceux gagnés à ne pas développer de fonctions inutiles Mais : Les décisions rapides sont rarement de bonnes décisions Le prototype évolutif donne-t-il le produit demandé? I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 47 / 60

Cycle de vie en spirale Cycle de vie en spirale I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 48 / 60

Cycle de vie en spirale Cycle de vie en spirale Chaque cycle de la spirale se déroule en quatre phases : 1 détermination, à partir des résultats des cycles précédents, ou de l analyse préliminaire des besoins, des objectifs du cycle, des alternatives pour les atteindre et des contraintes ; 2 analyse des risques, évaluation des alternatives et, éventuellement maquettage ; 3 développement et vérification de la solution retenue, un modèle «classique» (cascade ou en V) peut être utilisé ici ; 4 revue des résultats et vérification du cycle suivant. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 49 / 60

Cycle de vie en spirale Spirale : Analyse des risques Risques technologiques exigences démesurées par rapport à la technologie l incomprehension des fondements de la technologie changement de technologie en cours de route... Risques liés au processus gestion projet mauvaise ou absente calendrier et budget irréalistes calendrier abandonné sous la pression des clients développement de fonctions inappropriées... Risques humains défaillance du personnel surestimation des compétences travailleur solitaire manque de motivation I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 50 / 60

Cycle itératif et incrémental Cycle itératif et incrémental I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 51 / 60

Cycle itératif et incrémental Cycle itératif et incrémental Segmentation du travail Concentration sur les besoins et les risques Les itérations sont des prototypes Expérimentation et validation des technologies Planification et évaluation Les prototypes «s enroulent» autour du noyau de l architecture Une mini-cascade I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 52 / 60

Cycle itératif et incrémental Principes Développez de petits incréments fonctionnels livrés en courtes itérations " Un tiens vaut mieux que deux tu l auras. " Un incrément fonctionnel est un besoin du client. Pour chaque version à développer après la 1ère version livrée, il faut arbitrer entre : les demandes de correction, les demandes de modification et les nouvelles fonctionnalités à développer. Demande de correction Demande de modification Nouvelles fonctionnalités Définir le contenu de l itération Contenu de l itération I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 53 / 60

Cycle itératif et incrémental Dans quel ordre faut-il réaliser les itérations? Pilotez le développement par les priorités. Commencez par développer les fonctionnalités les plus importantes pour le client et les plus risquées. Pilotez le développement par les tests d acceptation. Écrivez des tests automatisés d acceptation. Utilisez ces tests pour mesurer l avancement du développement Il n y a pas de meilleure mesure de l avancement que les fonctionnalités s exécutant conformément aux besoins du client. Une fonctionnalité s exécute conformément au besoin du client si elle réussit ses tests d acceptation. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 54 / 60

Cycle itératif et incrémental Pilotage par les risques Pilotage par les risques Démarche itérative et incrémentale 17 Pierre-Alain Muller I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 55 / 60

Cycle itératif et incrémental Avantages Le cycle de vie itératif est en phase avec la réalité permet la prise en compte de l évolution demande un pilotage continu bien adapté à l approche objet (et inversement) Les choix techniques (spécification, conception, codage) sont validés très tôt par test. L enchainement des itérations permet de régulièrement vérifier que l on construit bien le logiciel. Le logiciel est utilisé très tôt. L enchainement des itérations permet aux utilisateurs de vérifier régulièrement que l on construit le bon logiciel. I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 56 / 60

Cycle itératif et incrémental Principaux risques récurrents Intégration trop complexe Environnement non adapté Utilisateurs défavorables Technologie complexe Lourdeur des activités manuelles Composants réutilisables inadaptés I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 57 / 60

Cycle itératif et incrémental Cycle de vie en cascade vs. Itératif Modèle en cascade Spécification Conception Code & Test Intégration Validation Maintenance Spécification 100% Utilisable 0% Conception 100% Utilisable 0% Code & Test 100% Utilisable 0% Intégration 100% Utilisable 0% Validation 100% Utilisable 100% Customer Feed-back starts Modèle itératif & incrémental Spec. Design Code Intég. Valid. Spec. Design & Test Code Intég. Valid. Spec. Design & Test Code Intég. Valid. Spec. Design & Test Incrément #1 Incrément #2 Incrément #3 Incrément #4 Code Intég. Valid. & Test Utilisable 30% Utilisable 55% Utilisable 80% Customer Feedback starts Utilisable 100% I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 58 / 60

Cycle itératif et incrémental Cycle en V versus iter&inc Cycle de vie en cascade vs. Itératif ESISAR GENIE LOGICIEL - E.CHENU 84 I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 59 / 60

Cycle itératif et incrémental Cycle de vie en cascade vs. Itératif Cycle en V versus iter&inc ESISAR GENIE LOGICIEL - E.CHENU 85 I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 60 / 60

Cycle itératif et incrémental Chenu, Emmanuel Cours - Génie Logiciel orienté Objet, ESISAR Chenu, Emmanuel Cours - Génie Logiciel pragmatique, ESISAR Marie-Claude Gaudel Précis de génie logiciel Editions Dunod Gérard, Pierre Génie Logiciel - Principes et Techniques, Bertrand Meyer Conception et programmation orientées objet Editions Eyrolles, 2000 Pierre-Alain Muller Démarche itérative et incrémentale I. Sommerville et Franck Vallée Software Engineering 6th edition, Addison-Wesley, 2001 Strohmeier, Alfred Cycle de vie du Logiciel, Laboratoire de Génie Logiciel - Département d Informatique. Ecole Polytechnique Fédérale de Lausanne I. BOUSSAID (USTHB) Cycle de vie 20 novembre 2010 60 / 60