Génie–logiciel 3. Modèles du cycle de vie du logiciel Azeddine Chikh Université de Tlemcen Faculté des Sciences Départment d’informatique Filière : L2 Informatique Génie–logiciel 3. Modèles du cycle de vie du logiciel Azeddine Chikh 2016-2017 (Semestre 2)
Objectifs de ce cours Connaître Les modèles de cycle de vie d’un logiciel: Le modèle en cascade Le modèle en V Le modèle incrémental Le modèle orienté réutilisation Le modèle en spirale Le prototypage Remarque: en pratique il y a mélange de divers modèles
Plan du cours Le modèle en cascade Le modèle en V Le modèle incrémental Le modèle orienté réutilisation Le modèle en spirale Processus Le prototypage
1. Le modèle en cascade / Représentation graphique
1. Le modèle en cascade / Phases Role Etude préalable Y-a-t-il lieu de réaliser le logiciel ? Analyse – Spécification Définition précise des besoins et des exigences Conception générale Architecture du système Definition des modules Conception détaillée Raffinement des éléments précédents jusqu’à l’obtention d’une forme permettant d’écrire immédiatement les programmes Codage Écriture des textes des programmes
1. Le modèle en cascade / principe Décrit par Royce en 1970 On doit suivre toutes les étapes L’ordre doit être respecté : on passe à l’étape n que lorsque l’étape n-1 est terminée Les remises en cause font remonter d’un seul niveau Principale faiblesse : difficulté à s’adapter aux changements une fois le processus lancé
1. Le modèle en cascade / Analyse
1. Le modèle en cascade / Conception
1. Le modèle en cascade / Vérification et Validation Are we doing the product right? Validation Are we doing the right product?
1. Le modèle en cascade / Tests Tests unitaires, Les composants sont testés individuellement Tests d’intégration, Test du système global Tests de recette, Test avec des données clients pour vérifier que le système répond aux exigences du client
1. Le modèle en cascade / Evolution du logiciel
1. Le modèle en cascade / Problèmes Modèle bien adapté si les spécifications peuvent être précises dès le début et changeront peu Toutefois, il est rare d’avoir des spécifications stables Les tests sont prévus tardivement Le modèle en cascade est principalement utilisé dans les grands projets où les systèmes sont développés sur plusieurs sites Dans ce cas, le modèle en cascade facilite la planification du projet
Plan du cours Le modèle en cascade Le modèle en V Le modèle incrémental Le modèle orienté réutilisation Le modèle en spirale Processus Le prototypage
2. Le modèle en V / Représentation graphique
2. Le modèle en V / Déroulement du processus
Plan du cours Le modèle en cascade Le modèle en V Le modèle incrémental Le modèle orienté réutilisation Le modèle en spirale Processus Le prototypage
3. Le modèle incrémental / Représentation graphique
3. Le modèle incrémental / Principe Ce modèle est du a D.L. Parnas Plutôt que de livrer un système en une fois, le développement et la livraison sont découpés en incréments, chaque incrément permettant de livrer une partie de la fonctionnalité Les exigences sont ordonnées suivant leur priorité. Les exigences les plus prioritaires sont inclues dans les premiers incréments Lorsque le développement d’un incrément a commencé, les exigences sont figées. Les exigences pour les autres incréments peuvent continuer à évoluer
3. Le modèle incrémental / Bénéfices Les coûts de l’adaptation aux évolutions des exigences clients sont réduits Le volume d’analyse et documentation qui doivent être conçus à nouveau est moindre que dans le modèle en cascade Il est plus facile d’avoir des feedbacks réguliers du client Les clients peuvent faire des commentaires lors de démonstrations et constater l’avancée du travail Possibilité de livrer plus rapidement des morceaux de logiciels utiles au client Le client peut utiliser des morceaux de logiciels plus tôt que dans le modèle en cascade
3. Le modèle incrémental / Problèmes Le processus n’est pas visible (moins que dans le modèle en cascade) Les managers ont besoin de documents pour mesurer les progrès. Si le système évolue rapidement il n’est pas productif de produire des documents reflétant chaque version du système La structure du système a tendance à se dégrader à chaque nouvel incrément À moins que du temps et de l’argent soient dépensés pour reconstruire le logiciel pour l’améliorer, les changements réguliers conduisent à une détérioration de la structure du logiciel.
Plan du cours Le modèle en cascade Le modèle en V Le modèle incrémental Le modèle orienté réutilisation Le modèle en spirale Le prototypage
4. Le modèle orienté réutilisation / Représentation graphique
4. Le modèle orienté réutilisation / Principe Basé sur une réutilisation systématique de composants existants (Commercial-Off-The-Shelf – COTS) pour concevoir un nouveau système Les étapes du processus Analyse des composants Spécification des modifications Conception avec réutilisation Développement et intégration De plus en plus utilisé de nos jours
4. Le modèle orienté réutilisation / Les types de composants logiciels Web services Développés selon des standards Disponibles par appel sur un serveur Collections d’objets intégrés dans un framework (tel que .NET ou J2EE) Logiciels autonomes (COTS) configurés pour une utilisation dans un environnement particulier
Plan du cours Le modèle en cascade Le modèle en V Le modèle incrémental Le modèle orienté réutilisation Le modèle en spirale Le prototypage
5. Le modèle en spirale / Représentation graphique
5. Le modèle orienté réutilisation / Principe Introduit par Boehm Le processus de développement est représenté par une spirale plutôt qu’une séquence d’activités avec retours arrière éventuels Chaque boucle dans la spirale représente une étape du processus de développement Les risques sont explicitement adressés et résolus tout au long du processus
Plan du cours Le modèle en cascade Le modèle en V Le modèle incrémental Le modèle orienté réutilisation Le modèle en spirale Le prototypage
6. Prototypage / Représentation graphique
6. Prototypage / Principe Un prototype est : est une version initiale/intermédiaire d’un système, utilisée pour démontrer des concepts et faire des essais de choix de conception est basé sur des langages ou outils de prototypage Un prototype se focalise : plutôt sur des côtés du produit qui ne sont pas bien compris sur les exigences fonctionnelles plutôt que les non fonctionnelles Un prototype peut être utilisé pour: Le processus de spécification pour aider à l’élicitation des exigences et leur validation L’étape de conception, pour explorer des choix et proposer diverses versions d’interfaces
6. Prototypage / Divers types de prototypes Prototype exploratoire (maquette) Pour expliciter plus clairement l’expression des besoins (exigences) Horizontal : permet de tester toutes les fonctionnalités à un niveau abstrait Vertical : quelques fonctions sont testées complètement Prototype expérimental Etude de choix de conception Prototype évolutif Réalisé par raffinements successifs
6. Prototypage / Bénéfices Améliorer la facilité d’utilisation du système Meilleure adéquation avec les besoins réels Améliorer la qualité de la conception Améliorer la maintenabilité Réduire les efforts de développement