SlideShare una empresa de Scribd logo
1 de 114
Cours 2 : Cycles de vie de logiciels Cours IGLcours 2Cycles de vie de logiciels 1 Mostefai Mohammed Amine – m_mostefai@esi.dz Batata Sofiane – s_batata@esi.dz
Découvrir les principales activités de développement de logiciels Connaître les cycles de vie (SDLC) et leur motivation Connaître les SDLC classiques et les méthodes agiles Pourvoir choisir un SDLC sur la base des données concernant un projet de développement Prise de contact avec la méthodologie UP Découvrir les outils de support (CASE) Objectifs du cours 2 Cours 2 – Cycle de vie de logiciels Objectifs du cours
Cours 2 Cycles de vie de logiciels 3 Introduction au génie logiciel
Cycles de vie de logiciels 4 Cours igl Section 1 : Activités de développement
Tout logiciel passe par plusieurs étapes pour être développé Ces étapes peuvent être résumées dans les étapes ci-dessous : Section 1 - introduction 5 Cours 2 – Cycle de vie de logiciels Etapes de développement
Définir les besoins : Que doit faire le logiciel De quelle façon Et sous quelles conditions Section 1 - introduction 6 Cours 2 – Cycle de vie de logiciels Définition
Transformation des données collectées pendant l’étape de définition en plusieurs produits : Logiciel fonctionnel Code source Produits connexes Section 1 - introduction 7 Cours 2 – Cycle de vie de logiciels Développement
Section 1 - introduction 8 Cours 2 – Cycle de vie de logiciels Support
Correction : réparation des fonctions qui ne marchent pas ou qui ne marchent pas comme souhaité. Adaptation : adaptation de fonctions aux évolutions technologiques actuelles.  Amélioration : en terme de performance, ergonomie, … Prévention : Rendre le logiciel plus facile à la maintenance Section 1 - introduction 9 Cours 2 – Cycle de vie de logiciels Support
Chaque projet de développement est composé de plusieurs activités Chaque activité est conduite et réalisée par plusieurs acteurs Une activité a des entrées et des sorties. Les livrables font partie des sorties des activités, Les livrables sont des produits ou des documents produits par une activités et utilisé par les activités qui en dépendent Par exemple : document, planning, code source sont tous des livrables Section 1 - introduction 10 Cours 2 – Cycle de vie de logiciels Activités
Tous les projets de développement ont des activités communes Section 1 - introduction 11 Cours 2 – Cycle de vie de logiciels Principales activités
Conditions qui doivent être respectées par un nouveau produit ou un produit altéré Aussi appelé spécifications Dans les grands projets (par exemple projets nationaux), c’est composé d’un cahier de charges Cette phase est difficile car le client et les développeurs ne parlent pas le même langage Le livrable de cette phase est un document de spécification Section 1 - introduction 12 Cours 2 – Cycle de vie de logiciels Analyse de besoins
La conception utilise les spécifications pour décider les solutions relatives au différents problèmes de développement La conception décide aussi d’un planning de la solution La conception décide de l’architecture de la solution Si le produit est centré sur l’utilisateur, la conception propose une ébauche de l’interface utilisateur Section 1 - introduction 13 Cours 2 – Cycle de vie de logiciels Conception
Le codage est une activité très importante du GL Le codage transforme les solutions proposées lors de la conception en un code opérationnel La conception et le codage peuvent toutes les deux produire du code source, mais c’est l’étape de codage qui rend ce code opérationnel. Les techniques de codage dépendent intrinsèquement du langage de programmation utilisé et du paradigme.  Section 1 - introduction 14 Cours 2 – Cycle de vie de logiciels Codage
Les tests déterminent la qualité du logiciel Les tests déterminent si le logiciel fait ce qu’on attend de lui par rapport aux spécifications Plusieurs types de test dont deux principaux : tests unitaires et tests d’acceptation Les tests unitaires sont orientés code. Ils se rédigent durant l’activité de codage et se revérifient pendant la phase de test Les tests d’acceptation vérifient les attentes d’un produit logiciel Section 1 - introduction 15 Cours 2 – Cycle de vie de logiciels Tests
La maintenance consiste à modifier le produit (le logiciel) après sa livraison au client Son but est correctif ou évolutif La maintenance a deux facettes : organisationnelle et technique L’aspect organisationnel concerne l’organisation des équipes pour une réactivité face aux changements L’aspect technique concerne une maintenance sans impact négatif sur le produit Le degré de maintenance dépend de la qualité de la conception Section 1 - introduction 16 Cours 2 – Cycle de vie de logiciels Maintenance
Cycles de vie de logiciels 17 COURS IGL Débat (10 Mns)
Cycles de vie de logiciels 18 Cours igl Section 2 : Cycle de vie de logiciels
Un procédé logiciel (software process) est un ensemble d’activités conduisant à la production d’un logiciel Ils sont aussi appelés cycle de vie d’un logiciel (SDLC) Un procédé définit les étapes qui le composent ainsi que leur enchaînement Les Cycles de vie de logiciels sont complexes et dépendent fortement des acteurs qui dirigent les activités Les activités des procédés ne peuvent être automatisées mais il y a des outils de support, appelés outils CASE (Computer-Aided Software Engineering) Section 2 – Cycles de vie de logiciels 19 Cours 2 – Cycle de vie de logiciels Procédé Logiciel
Un modèle de procédé est une abstraction d’un procédé Un modèle décrit le procédé selon une certaine perspective Un procédé logiciel est une application d’un modèle pour un projet spécifique, qui peut inclure une certaine adaptation Section 2 – Cycles de vie de logiciels 20 Cours 2 – Cycle de vie de logiciels Modèles de procédés
Pour maîtriser les gros projets Pour découper le projet et affecter correctement les tâches Pour anticiper et gérer les risques Section 2 – Cycles de vie de logiciels 21 Cours 2 – Cycle de vie de logiciels Modèles de procédés – Pourquoi ?
Il existe deux types de modèles de procédés : Section 2 – Cycles de vie de logiciels 22 Cours 2 – Cycle de vie de logiciels Modèles de procédés
Section 2 – Cycles de vie de logiciels 23 Cours 2 – Cycle de vie de logiciels Modèles de procédés
Aucun modèle n’est meilleur que l’autre Le choix se fait selon certains critères tels que la nature du projet, sa taille, la nature du client et les compétences de l’équipe Section 2 – Cycles de vie de logiciels 24 Cours 2 – Cycle de vie de logiciels Choix d’un modèle
Cycles de Vie des Logiciels 25 Cours igl Section 2 : Débat (5 mn) ,[object Object]
Comment mesure-t-on un gros projet ?
Pourquoi un modèle de procédé est-il essentiel pour conduire un projet de développement ?,[object Object]
L’un des premiers modèles proposés, inspiré du modèle de Royce (1970) Aussi appelé modèle linéaire Le résultat de chaque phase est un ensemble de livrables, Une phase ne peut démarrer que si la précédente est finie Le modèle académique par excellence Section 3 – modèles classiques 27 Cours 2 – Cycle de vie de logiciels Modèle en cascade
Section 3 – modèles classiques 28 Cours 2 – Cycle de vie de logiciels Modèle en cascade
Avantages : Facile à utiliser et à comprendre Un procédé structuré pour une équipe inexpérimentée Idéal pour la gestion et le suivi de projets Fonctionne très bien quand la qualité est plus importante que les coûts et les délais Section 3 – modèles classiques 29 Cours 2 – Cycle de vie de logiciels Modèle en cascade
Inconvénients  : Les besoins des clients sont très rarement stables et clairement définis Sensibilité aux nouveaux besoins : refaire tout le procédé Une phase ne peut démarrer que si l’étape précédente est finie Le produit n’est visible qu’à la fin Les risques se décalent vers la fin Très faible implication du client Section 3 – modèles classiques 30 Cours 2 – Cycle de vie de logiciels Modèle en cascade
Quand l’utiliser ? Quand les besoins sont connus et stables Quand la technologie à utiliser est maîtrisée Lors de la création d’une nouvelle version d’un produit existant Lors du portage d’un produit sur une autre plateforme Section 3 – modèles classiques 31 Cours 2 – Cycle de vie de logiciels Modèle en cascade
Variante du modèle en cascade qui fait l’accent sur la vérification et la validation Le test du produit se fait en parallèle par rapport aux autres activités Section 3 – modèles classiques 32 Cours 2 – Cycle de vie de logiciels Modèle en V
Section 3 – modèles classiques 33 Cours 2 – Cycle de vie de logiciels Modèle en V
Avantages : Met l’accent sur lest tests et la validation et par conséquent, ça accroît la qualité du logiciel Chaque livrable doit être testable Facile à planifier dans une gestion de projets Facile à utiliser Section 3 – modèles classiques 34 Cours 2 – Cycle de vie de logiciels Modèle en V
Inconvénients : Ne gère pas les activités parallèles Ne gère pas explicitement les changements des spécifications Ne contient pas d’activités d’analyse de risque Section 3 – modèles classiques 35 Cours 2 – Cycle de vie de logiciels Modèle en V
Quand l’utiliser: Quand le produit à développer à de très hautes exigences de qualité Quand les besoins sont connus à l’avance Les technologies à utiliser sont connues à l’avance Section 3 – modèles classiques 36 Cours 2 – Cycle de vie de logiciels Modèle en V
Le projet se fait sur plusieurs itérations Les développeurs construisent un prototype selon les attentes du client Le prototype est évalué par le client Le client donne son feedback Les développeurs adaptent le prototype selon les besoins du client Quand le prototype satisfait le client, le code est normalisé selon les standards et les bonnes pratiques Section 3 – modèles classiques 37 Cours 2 – Cycle de vie de logiciels Prototypage
Section 3 – modèles classiques 38 Cours 2 – Cycle de vie de logiciels Prototypage
Avantages Implication active du client Le développeur apprend directement du client S’adapte rapidement aux changements des besoins Progrès constant et visible Une grande interaction avec le produit Section 3 – modèles classiques 39 Cours 2 – Cycle de vie de logiciels Prototypage
Inconvénients Le prototypage implique un code faiblement structuré Degré très faible de maintenabilité Le processus peut ne jamais s’arrêter Très difficile d’établir un planning Section 3 – modèles classiques 40 Cours 2 – Cycle de vie de logiciels Inconvénients
Quand l’utiliser ? Quand les besoins sont instables et/ou nécessitent des clarifications Peut être utilisé avec le modèle en cascade pour la clarification des besoins Quand des livraisons rapides sont exigées Section 3 – modèles classiques 41 Cours 2 – Cycle de vie de logiciels Inconvénients
Chaque incrément est une construction partielle du logiciel Trie les spécifications par priorités et les regroupent dans des groupes de spécifications Chaque incrément implémente un ou plusieurs groupes jusqu’à ce que la totalité du produit soit finie Section 3 – modèles classiques 42 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
Section 3 – modèles classiques 43 Cours 2 – Cycle de vie de logiciels Modèle Incrémental Incrément 1 Incrément  2 Incrément  N Spécifications Conception Implémentation Tests Spécifications Conception Implémentation Tests Spécifications Conception Implémentation Tests
Avantages Développement de fonctionnalités à risque en premier Chaque incrément donne un produit fonctionnel Le client intervient à la fin de chaque incrément Utiliser l’approche « diviser pour régner » Le client entre en relation avec le produit très tôt Section 3 – modèles classiques 44 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
Inconvénients Exige une bonne planification et une bonne conception Exige une vision sur le produit fini pour pouvoir le diviser en incréments Le coût total du système peut être cher Section 3 – modèles classiques 45 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
Quand l’utiliser ? Quand la plupart des spécifications sont connues à l’avances et vont être sujettes à de faibles évolutions Quand on veut rapidement un produit fonctionnel Pour des projets de longues durées Pour des projets impliquant de nouvelles technologies Section 3 – modèles classiques 46 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
Modèle itératif Des incréments sous forme de cycle À la fin de chaque cycle on détermine les objectifs du cycle suivant Chaque cycle est composé des même activités que du modèle en cascade Inclut l’analyse de risque et le prototypage Section 3 – modèles classiques 47 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Section 3 – modèles classiques 48 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Détermination des objectifs En terme de fonctionnalité, de performance, de coût,...etc. Déterminer les alternatives : développer, réutiliser, acheter, sous-traiter…etc. Contraintes : coûts, plannings, … etc. Section 3 – modèles classiques 49 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Identification et évaluation de risques Etudier les alternatives de développement Identification des risques : technologie non maîtrisées, équipe peu expérimentée, planning trop serré, …etc. Evaluation des risques : voir si les risques peuvent impacter le projet et à quel degré Section 3 – modèles classiques 50 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Développement et test Contient pratiquement la plupart des activités : conception, codage, test, … etc. Planification de la prochaine itération Un planning de l’itération Un plan de tests Section 3 – modèles classiques 51 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Avantages Identification rapide des risques Impacts minimaux des risques sur le projet Fonctions critiques développées en premier Feedback rapide du client Une évaluation continue du procédé Section 3 – modèles classiques 52 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Inconvénients L’évaluation des risques peut prendre beaucoup de temps Le modèle est très complexe La spirale peut s’éterniser Les développeurs doivent être réaffectés pendant les phases de non-développement Les objectifs ne sont pas souvent faciles à formuler Section 3 – modèles classiques 53 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Quand est-ce que l’utiliser ? Quand le prototypage est exigé Quand le risque du projet est considérable Quand les spécifications ne sont pas stables Pour les nouveaux produits Quand le projet implique de la recherche et de l’investigation Section 3 – modèles classiques 54 Cours 2 – Cycle de vie de logiciels Modèle en spirale
Cycles de vie de logiciels 55 Cours igl Section 3 : Débat (15 Mn) ,[object Object]
Quels sont les critères qui définiront quel modèle choisir ?
Quelle est la chose la plus difficile pour un modèle incrémental ou itératif ?,[object Object]
Au milieu des années 90, un groupe d’expert en Cycles de vie de logiciels voulaient proposer de nouveaux modèles Les nouveaux modèles sont plus « légers » : moins de documentation et moins de contrôle sur le procédé Ces modèles s’adresse à des projets de petite ou moyenne taille avec une équipe réduite Ces modèles permettent de s’ajuster rapidement aux changements des spécifications tout en garantissant des livraisons fréquentes Ces modèles sont qualifiés de « modèles agiles » Section 4 – méthodes agiles 57 Cours 2 – Cycle de vie de logiciels Apparition
Section 4 – méthodes agiles 58 Cours 2 – Cycle de vie de logiciels Principes agiles
INDIVIDUS ET INTERACTIONS AU LIEU DE PROCESSUS ET OUTILS Les collaborateurs sont la clé du succès Les « seniors » échoueront s’ils ne collaborent pas en tant qu’équipe Un bon collaborateur n’est pas un forcément un bon programmeur. C’est quelqu’un qui travaille bien en équipe Une surabondance d’outils est aussi mauvaise que le manque d’outils Démarrer petit et investir peu au démarrage Construire l’équipe c’est plus important que construire l’environnement Section 4 – méthodes agiles 59 Cours 2 – Cycle de vie de logiciels Principes
LOGICIEL FONCTIONNEL AU LIEU DE DOCUMENTATION MASSIVE Un code sans documentation est un désastre Trop de documents est pire que pas de documents Difficulté à produire et à synchroniser avec le code Souvent les documents sont des « mensonges » formels Le code ne ment jamais sur lui-même Produire toujours des documents aussi courts que possible Section 4 – méthodes agiles 60 Cours 2 – Cycle de vie de logiciels Principes
COLLABORATION DU CLIENT AU LIEU DE LA NÉGOCIATION DE CONTRATS Très difficile de décrire la totalité du logiciel depuis le début Les projets réussis impliquent les clients d’une manière fréquente et régulière Le client doit avoir un contact direct avec l’équipe de développement Section 4 – méthodes agiles 61 Cours 2 – Cycle de vie de logiciels Principes
RÉAGIR AUX CHANGEMENTS AU LIEU DE SUIVRE UN PLAN Un logiciel ne peut pas être planifié très loin dans le futur Tout change : technologie, environnement et surtout les besoins Les chefs de projets classiques fonctionnent sur la base de GANTT, PERT et le système de tâches Avec le temps, les diagrammes se dégradent car des tâches s’ajoutent et d’autres deviennent non nécessaires Une meilleure stratégie est de planifier très court (02 semaines à 01 mois) Plannings détaillés pour la semaine à venir, rigoureux pour les trois mois et très vagues au-delà Section 4 – méthodes agiles 62 Cours 2 – Cycle de vie de logiciels Principes
LES DOUZE PRINCIPES AGILES Toujours satisfaire le client à travers des livraisons rapides et continues Bien accueillir tous les changements même les tardifs Livrer fréquemment un système fonctionnel Les clients et les développeurs doivent collaborer Conduire le projet autour d’équipes motivées La meilleure méthode de faire circuler l’information c’est le contact direct entre collaborateurs La première mesure d’avancement c’est un logiciel fonctionnel Section 4 – méthodes agiles 63 Cours 2 – Cycle de vie de logiciels Principes
LES DOUZE PRINCIPES AGILES Le développement doit être durable et à un rythme constant La bonne conception et l’excellence technique augmentent l’agilité Simplifier au maximum Les meilleurs architectures, besoins et conceptions proviennent d’équipes qui s’organisent d’elles-mêmes L’équipe s’améliore d’une manière autonome et régulière Section 4 – méthodes agiles 64 Cours 2 – Cycle de vie de logiciels Principes
Section 4 – méthodes agiles 65 Cours 2 – Cycle de vie de logiciels Principales méthodologies agiles
eXtreme Programming Créée en 1995 Kent Beck and Ward Cunningham XP est un moyen léger, efficace, à bas risques, flexible, scientifique et amusant de développer des logiciels Destinée à des équipes de moyenne taille avec des spécifications incomplets et / ou vagues Le codage est le noyau de XP Section 4 – méthodes agiles 66 Cours 2 – Cycle de vie de logiciels Méthodologie XP
Section 4 – méthodes agiles 67 Cours 2 – Cycle de vie de logiciels Méthodologie XP - Fondamentaux
Section 4 – méthodes agiles 68 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Principales activités
1- LE JEU DE PLANNING :  Le client et les développeurs décident quoi mettre dans la prochaine livraison en triant les spécifications par priorité L’estimation est la responsabilité du développeur, pas du chef de projet ni du client 2 – DE PETITES ET FRÉQUENTES LIVRAISONS : D’abord livrer un système minimaliste puis le faire évoluer à travers des versions à des délais très courts Section 4 – méthodes agiles 69 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
3- LES MÉTAPHORES Exprimer de manière naturelle et très simples des fonctions du système Le client et les développeurs doivent s’accorder sur les métaphores 4 – CONCEPTION SIMPLE Le système doit être conçu de la manière la plus simple possible 5 – TESTS Les développeurs rédigent les tests unitaires d’une manière continue, Le client rédige les tests d’acceptation des fonctionnalités, Section 4 – méthodes agiles 70 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
6 – REFACTORING Les développeurs améliorent continuellement le code tout en veillant à le garder fonctionnel 7 – PROGRAMMATION PAR PAIRES La totalité du code est écrite par deux programmeurs sur une seule machine. L’un est appelé conducteur (driver) et l’autre navigateur. Les rôles s’inversent régulièrement. 8 - PROPRIÉTÉ COLLECTIVE N’importe qui peut changer le code n’importe où dans le système à n’importe quel moment 9 - 40 HEURES LA SEMAINE Le travail ne doit pas dépasser 40 heures par semaine Section 4 – méthodes agiles 71 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
10 – intégration continue Construire le système à chaque fois qu’une tâche est terminée. 11 – Le client est sur site Le client est tout le temps présent avec l’équipe pour participer et répondre aux questions 12 – Les standards de codage À cause de la propriété collective, des standards (une charte de codage) doivent être établis et adhérés par l’équipe de développement Section 4 – méthodes agiles 72 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
Implication active du client Forte réactivité des développeurs Responsabilisation et solidarité de l’équipe Appel aux meilleurs pratiques de développement Souplesse extrême Section 4 – méthodes agiles 73 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Avantages
Demande une certaine maturité des développeurs La programmation par paires n’est toujours pas applicable Difficulté de planifier et de budgétiser un projet Stress dû aux devoir de l’intégration continue et des livraisons fréquentes La faible documentation peut nuire en cas de départ des développeurs Section 4 – méthodes agiles 74 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Inconvénients
Inspiré par une approche développée en 1986 par H. Takeuchii et II.. Nonaka, le terme « Scrum » utilisé dans « Wiicked Problems, Rightteous Solutions » par DeGrace et Stahl en 1991 Utilisé comme méthodologie dans le livre : « Agile Software Developmentt with SCRUM” par K. Schwaber et M.. Beedlle en 2001 Section 4 – méthodes agiles 75 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum
Section 4 – méthodes agiles 76 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Principes
Section 4 – méthodes agiles 77 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Principes
Section 4 – méthodes agiles 78 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Principes
Méthode très simple et très efficace Adoptée par les géants du marché : Microsoft, Google, Nokia.. Orientée projet contrairement à XP qui est orientée développement Peut inclure d’autres activité venant d’autres méthodologies (surtout XP) Section 4 – méthodes agiles 79 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Avantages
N’est pas 100% spécifique au GL Difficulté de budgétiser un projet Section 4 – méthodes agiles 80 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Inconvénients
Cycles de vie de logiciels 81 Cours igl Section 4 : Débat (10 mns) ,[object Object]
Quels sont les points forts des méthodes agiles ?
Quels en sont les points faibles ?
Quelle est la différence entre Scrum et XP ?
Est-ce que Scrum et XP peuvent-elles être combinées ?,[object Object]
UP est un modèle de procédé très populaire UP est incrémental et itératif UP a plusieurs implémentation et / ou variation dont la plus célèbre est RUP (Rational Unified Process) Section 5 – méthodologie up 83 Cours 2 – Cycle de vie de logiciels UP
Section 5 – méthodologie up 84 Cours 2 – Cycle de vie de logiciels UP – Implémentations
Section 5 – méthodologie up 85 Cours 2 – Cycle de vie de logiciels UP – Principes
PROCESSUS ITÉRATIF ET INCRÉMENTAL UP est composé de quatre phase : l’analyse de besoins (inception), l’élaboration, la construction et la transition Chaque phase peut être décomposée en plusieurs itérations Chaque itération produit un incrément du produit Section 5 – méthodologie up 86 Cours 2 – Cycle de vie de logiciels UP - Principes
PROCESSUS BASÉ SUR LES CAS D’UTILISATION Les cas d’utilisation formalisent les spécifications fonctionnelle du produit Chaque itérations prend un ensemble de cas d’utilisation et les traite selon plusieurs workflows : modélisation métier, analyse de besoins, analyse et conception, implémentation, tests et déploiement Section 5 – méthodologie up 87 Cours 2 – Cycle de vie de logiciels UP - Principes
PROCESSUS CENTRÉ SUR L’ARCHITECTURE UP supporte plusieurs architectures logicielles La phase d’élaboration fournit l’architecture de l’exécutable Cette architecture est une implémentation partielle qui sert de fondation aux développements futurs Section 5 – méthodologie up 88 Cours 2 – Cycle de vie de logiciels UP - Principes
PROCESSUS QUI MET L’ACCENT SUR LES RISQUES Identification rapide des risques Traitement des risques dans les premières phases du projet Section 5 – méthodologie up 89 Cours 2 – Cycle de vie de logiciels UP - Principes
UP est composé de quatre phases principales : analyse de besoins (inception), élaboration, construction et transition Section 5 – méthodologie up 90 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
UP est un processus bidimensionnel La phase horizontale représente le temps et les étapes La phase verticale représente les activités Section 5 – méthodologie up 91 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
Section 5 – méthodologie up 92 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
PHASE D’ANALYSE DE BESOINS (INCEPTION) La plus petite phase et la plus courte Etablit une vision globale du projet Essaye d’identifier les principaux cas d’utilisations Propose une ou plusieurs architectures du système Identifie les risques Etablit un planning préliminaire Peut annuler le projet si l’étape prend trop de temps Section 5 – méthodologie up 93 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
PHASE D’ÉLABORATION Capturer la majorité des cas d’utilisation Valider l’architecture du système Eliminer les facteurs de risque Peut décider de ne pas aller au-delà Livrable : prototype exécutable d’architecture Livrable : un planning détaillé et précis sur la phase de construction Section 5 – méthodologie up 94 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
PHASE DE CONSTRUCTION La phase la plus longue du projet Le reste du système est développé durant cette phase Chaque itération produit un incrément vers le système final Section 5 – méthodologie up 95 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
PHASE DE TRANSITION Le système est déployé chez les utilisateurs Les feedbacks récoltés serviront à améliorer le système Section 5 – méthodologie up 96 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
Expression de besoins Recenser les besoins fonctionnels et non fonctionnels du système Le diagramme UML de cas d’utilisation est utilisé pour cette phase Section 5 – méthodologie up 97 Cours 2 – Cycle de vie de logiciels UP – Activités
Analyse Détaille les besoins en spécifications détaillées Une ébauche de la conception Section 5 – méthodologie up 98 Cours 2 – Cycle de vie de logiciels UP – Activités
Conception Décide comment sera construit le système durant l’implémentation Définition des sous-systèmes et composants Création d’abstractions de la solution Section 5 – méthodologie up 99 Cours 2 – Cycle de vie de logiciels UP – Activités
Implémentation Traduire les résultats de la conception en un système opérationnel Livrables : code source, exécutables, …etc. Section 5 – méthodologie up 100 Cours 2 – Cycle de vie de logiciels UP – Activités
Tests Vérification et validation des résultats de l’implémentation Section 5 – méthodologie up 101 Cours 2 – Cycle de vie de logiciels UP – Activités
Méthodologie complète Identification rapide des risques Largement adoptée en entreprise Intégration avec UML Séparation concise des phases et des livrables Des formations / livres / tutoriaux disponibles Section 5 – méthodologie up 102 Cours 2 – Cycle de vie de logiciels UP – Avantages
Cycles de vie de logiciels 103 Cours igl Débat (05 Mns) ,[object Object]
C’est une méthode bidimensionnelle, pourquoi ?
C’est une méthode itérative et incrémentale, pourquoi ?
Pourquoi est-elle largement adoptée à votre avis ?,[object Object]
CASE est un nom donné aux logiciels utilisés dans les différentes activités de GL (besoins, conception,…) Exemples : compilateurs, éditeurs, débogueurs, …etc. Le but des outils CASE est d’automatiser les tâches et / ou gérer le projet de développement Outils case 105 Cours 2 – Cycle de vie de logiciels Introduction
Le développement est essentiellement basé sur l’intelligence humaine, là, les outils CASE ne peuvent pas trop intervenir Le gros d’un projet de développement c’est la communication entre les membre de l’équipe. Là aussi, les CASE n’ont pas une grande intervention. Outils case 106 Cours 2 – Cycle de vie de logiciels Limite des CASE
Les outils CASE peuvent être classés : D’un point de vue fonctionnel : selon la fonction de l’outil. D’un point de vue activité : selon les activités dans lesquelles intervient l’outil Outils case 107 Cours 2 – Cycle de vie de logiciels Classification des CASE

Más contenido relacionado

La actualidad más candente

Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...tayebbousfiha1
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Ahmed Makni
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...Madjid Meddah
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileNader Somrani
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsMohamed Ayoub OUERTATANI
 
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Symphorien Niyonzima
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionLilia Sfaxi
 

La actualidad más candente (20)

Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
2 TUP
2 TUP2 TUP
2 TUP
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
CM processus-unifie
CM processus-unifieCM processus-unifie
CM processus-unifie
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
 
Rapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobileRapport PFE Développent d'une application bancaire mobile
Rapport PFE Développent d'une application bancaire mobile
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 

Similar a Cours Génie Logiciel - Cours 2 - Cycles de vie

Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptxLatifaBen6
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1DIALLO Boubacar
 
RA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxRA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxtestuser715939
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxinformatiquehageryah
 
3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciel3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciellauraty3204
 
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.jkebbab
 
1bis_ProcessusUnifie.pdf
1bis_ProcessusUnifie.pdf1bis_ProcessusUnifie.pdf
1bis_ProcessusUnifie.pdfWafaNeji1
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 
Cycle de vie des logiciels.ppt
Cycle de vie des logiciels.pptCycle de vie des logiciels.ppt
Cycle de vie des logiciels.ppthbadir
 
[Important] Cycle de vie des logiciels.ppt
[Important] Cycle de vie des logiciels.ppt[Important] Cycle de vie des logiciels.ppt
[Important] Cycle de vie des logiciels.ppttestuser715939
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...Sid Ahmed Benkraoua
 
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptx
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptxChapitre 1 - Introcution & cycles de développement - Etudiant.pptx
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptxssuserec8501
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppthbadir
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étudeDonia Hammami
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des ChargesLilia Sfaxi
 

Similar a Cours Génie Logiciel - Cours 2 - Cycles de vie (20)

Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptx
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
 
RA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxRA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptx
 
Fichier récupéré 1
Fichier récupéré 1Fichier récupéré 1
Fichier récupéré 1
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
 
3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciel3-Cours de Géniel Logiciel
3-Cours de Géniel Logiciel
 
CM Processus Méthodes
CM Processus MéthodesCM Processus Méthodes
CM Processus Méthodes
 
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
 
1bis_ProcessusUnifie.pdf
1bis_ProcessusUnifie.pdf1bis_ProcessusUnifie.pdf
1bis_ProcessusUnifie.pdf
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Cycle de vie des logiciels.ppt
Cycle de vie des logiciels.pptCycle de vie des logiciels.ppt
Cycle de vie des logiciels.ppt
 
[Important] Cycle de vie des logiciels.ppt
[Important] Cycle de vie des logiciels.ppt[Important] Cycle de vie des logiciels.ppt
[Important] Cycle de vie des logiciels.ppt
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
UML4
UML4UML4
UML4
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptx
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptxChapitre 1 - Introcution & cycles de développement - Etudiant.pptx
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptx
 
Lecon 1.1
Lecon 1.1Lecon 1.1
Lecon 1.1
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des Charges
 

Más de Mohammed Amine Mostefai

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Mohammed Amine Mostefai
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationMohammed Amine Mostefai
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsMohammed Amine Mostefai
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionMohammed Amine Mostefai
 

Más de Mohammed Amine Mostefai (20)

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - Personnalisation
 
Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de Documents
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - Introduction
 
Pratiques agiles
Pratiques agilesPratiques agiles
Pratiques agiles
 
Introduction à Scrum
Introduction à ScrumIntroduction à Scrum
Introduction à Scrum
 
Méthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XPMéthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XP
 
Le Manifeste Agile
Le Manifeste AgileLe Manifeste Agile
Le Manifeste Agile
 
Méthodes Agiles - Généralités
Méthodes Agiles - GénéralitésMéthodes Agiles - Généralités
Méthodes Agiles - Généralités
 
Introduction aux technologies mobiles
Introduction aux technologies mobilesIntroduction aux technologies mobiles
Introduction aux technologies mobiles
 
Workflow Foundation - Cours 5
Workflow Foundation - Cours 5Workflow Foundation - Cours 5
Workflow Foundation - Cours 5
 
Workflow Foundation Module 4
Workflow Foundation Module 4Workflow Foundation Module 4
Workflow Foundation Module 4
 
Présentation cloud journée azure
Présentation cloud   journée azurePrésentation cloud   journée azure
Présentation cloud journée azure
 
Wf module3
Wf module3Wf module3
Wf module3
 
Microsoft Workflow Foundation - Cours 2
Microsoft Workflow Foundation - Cours 2Microsoft Workflow Foundation - Cours 2
Microsoft Workflow Foundation - Cours 2
 
Introduction to Workflow Foundation
Introduction to Workflow FoundationIntroduction to Workflow Foundation
Introduction to Workflow Foundation
 
Le Langage CSS
Le Langage CSSLe Langage CSS
Le Langage CSS
 
Sécurisation des applications ASP.NET
Sécurisation des applications ASP.NETSécurisation des applications ASP.NET
Sécurisation des applications ASP.NET
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
 

Cours Génie Logiciel - Cours 2 - Cycles de vie

  • 1. Cours 2 : Cycles de vie de logiciels Cours IGLcours 2Cycles de vie de logiciels 1 Mostefai Mohammed Amine – m_mostefai@esi.dz Batata Sofiane – s_batata@esi.dz
  • 2. Découvrir les principales activités de développement de logiciels Connaître les cycles de vie (SDLC) et leur motivation Connaître les SDLC classiques et les méthodes agiles Pourvoir choisir un SDLC sur la base des données concernant un projet de développement Prise de contact avec la méthodologie UP Découvrir les outils de support (CASE) Objectifs du cours 2 Cours 2 – Cycle de vie de logiciels Objectifs du cours
  • 3. Cours 2 Cycles de vie de logiciels 3 Introduction au génie logiciel
  • 4. Cycles de vie de logiciels 4 Cours igl Section 1 : Activités de développement
  • 5. Tout logiciel passe par plusieurs étapes pour être développé Ces étapes peuvent être résumées dans les étapes ci-dessous : Section 1 - introduction 5 Cours 2 – Cycle de vie de logiciels Etapes de développement
  • 6. Définir les besoins : Que doit faire le logiciel De quelle façon Et sous quelles conditions Section 1 - introduction 6 Cours 2 – Cycle de vie de logiciels Définition
  • 7. Transformation des données collectées pendant l’étape de définition en plusieurs produits : Logiciel fonctionnel Code source Produits connexes Section 1 - introduction 7 Cours 2 – Cycle de vie de logiciels Développement
  • 8. Section 1 - introduction 8 Cours 2 – Cycle de vie de logiciels Support
  • 9. Correction : réparation des fonctions qui ne marchent pas ou qui ne marchent pas comme souhaité. Adaptation : adaptation de fonctions aux évolutions technologiques actuelles. Amélioration : en terme de performance, ergonomie, … Prévention : Rendre le logiciel plus facile à la maintenance Section 1 - introduction 9 Cours 2 – Cycle de vie de logiciels Support
  • 10. Chaque projet de développement est composé de plusieurs activités Chaque activité est conduite et réalisée par plusieurs acteurs Une activité a des entrées et des sorties. Les livrables font partie des sorties des activités, Les livrables sont des produits ou des documents produits par une activités et utilisé par les activités qui en dépendent Par exemple : document, planning, code source sont tous des livrables Section 1 - introduction 10 Cours 2 – Cycle de vie de logiciels Activités
  • 11. Tous les projets de développement ont des activités communes Section 1 - introduction 11 Cours 2 – Cycle de vie de logiciels Principales activités
  • 12. Conditions qui doivent être respectées par un nouveau produit ou un produit altéré Aussi appelé spécifications Dans les grands projets (par exemple projets nationaux), c’est composé d’un cahier de charges Cette phase est difficile car le client et les développeurs ne parlent pas le même langage Le livrable de cette phase est un document de spécification Section 1 - introduction 12 Cours 2 – Cycle de vie de logiciels Analyse de besoins
  • 13. La conception utilise les spécifications pour décider les solutions relatives au différents problèmes de développement La conception décide aussi d’un planning de la solution La conception décide de l’architecture de la solution Si le produit est centré sur l’utilisateur, la conception propose une ébauche de l’interface utilisateur Section 1 - introduction 13 Cours 2 – Cycle de vie de logiciels Conception
  • 14. Le codage est une activité très importante du GL Le codage transforme les solutions proposées lors de la conception en un code opérationnel La conception et le codage peuvent toutes les deux produire du code source, mais c’est l’étape de codage qui rend ce code opérationnel. Les techniques de codage dépendent intrinsèquement du langage de programmation utilisé et du paradigme. Section 1 - introduction 14 Cours 2 – Cycle de vie de logiciels Codage
  • 15. Les tests déterminent la qualité du logiciel Les tests déterminent si le logiciel fait ce qu’on attend de lui par rapport aux spécifications Plusieurs types de test dont deux principaux : tests unitaires et tests d’acceptation Les tests unitaires sont orientés code. Ils se rédigent durant l’activité de codage et se revérifient pendant la phase de test Les tests d’acceptation vérifient les attentes d’un produit logiciel Section 1 - introduction 15 Cours 2 – Cycle de vie de logiciels Tests
  • 16. La maintenance consiste à modifier le produit (le logiciel) après sa livraison au client Son but est correctif ou évolutif La maintenance a deux facettes : organisationnelle et technique L’aspect organisationnel concerne l’organisation des équipes pour une réactivité face aux changements L’aspect technique concerne une maintenance sans impact négatif sur le produit Le degré de maintenance dépend de la qualité de la conception Section 1 - introduction 16 Cours 2 – Cycle de vie de logiciels Maintenance
  • 17. Cycles de vie de logiciels 17 COURS IGL Débat (10 Mns)
  • 18. Cycles de vie de logiciels 18 Cours igl Section 2 : Cycle de vie de logiciels
  • 19. Un procédé logiciel (software process) est un ensemble d’activités conduisant à la production d’un logiciel Ils sont aussi appelés cycle de vie d’un logiciel (SDLC) Un procédé définit les étapes qui le composent ainsi que leur enchaînement Les Cycles de vie de logiciels sont complexes et dépendent fortement des acteurs qui dirigent les activités Les activités des procédés ne peuvent être automatisées mais il y a des outils de support, appelés outils CASE (Computer-Aided Software Engineering) Section 2 – Cycles de vie de logiciels 19 Cours 2 – Cycle de vie de logiciels Procédé Logiciel
  • 20. Un modèle de procédé est une abstraction d’un procédé Un modèle décrit le procédé selon une certaine perspective Un procédé logiciel est une application d’un modèle pour un projet spécifique, qui peut inclure une certaine adaptation Section 2 – Cycles de vie de logiciels 20 Cours 2 – Cycle de vie de logiciels Modèles de procédés
  • 21. Pour maîtriser les gros projets Pour découper le projet et affecter correctement les tâches Pour anticiper et gérer les risques Section 2 – Cycles de vie de logiciels 21 Cours 2 – Cycle de vie de logiciels Modèles de procédés – Pourquoi ?
  • 22. Il existe deux types de modèles de procédés : Section 2 – Cycles de vie de logiciels 22 Cours 2 – Cycle de vie de logiciels Modèles de procédés
  • 23. Section 2 – Cycles de vie de logiciels 23 Cours 2 – Cycle de vie de logiciels Modèles de procédés
  • 24. Aucun modèle n’est meilleur que l’autre Le choix se fait selon certains critères tels que la nature du projet, sa taille, la nature du client et les compétences de l’équipe Section 2 – Cycles de vie de logiciels 24 Cours 2 – Cycle de vie de logiciels Choix d’un modèle
  • 25.
  • 26. Comment mesure-t-on un gros projet ?
  • 27.
  • 28. L’un des premiers modèles proposés, inspiré du modèle de Royce (1970) Aussi appelé modèle linéaire Le résultat de chaque phase est un ensemble de livrables, Une phase ne peut démarrer que si la précédente est finie Le modèle académique par excellence Section 3 – modèles classiques 27 Cours 2 – Cycle de vie de logiciels Modèle en cascade
  • 29. Section 3 – modèles classiques 28 Cours 2 – Cycle de vie de logiciels Modèle en cascade
  • 30. Avantages : Facile à utiliser et à comprendre Un procédé structuré pour une équipe inexpérimentée Idéal pour la gestion et le suivi de projets Fonctionne très bien quand la qualité est plus importante que les coûts et les délais Section 3 – modèles classiques 29 Cours 2 – Cycle de vie de logiciels Modèle en cascade
  • 31. Inconvénients : Les besoins des clients sont très rarement stables et clairement définis Sensibilité aux nouveaux besoins : refaire tout le procédé Une phase ne peut démarrer que si l’étape précédente est finie Le produit n’est visible qu’à la fin Les risques se décalent vers la fin Très faible implication du client Section 3 – modèles classiques 30 Cours 2 – Cycle de vie de logiciels Modèle en cascade
  • 32. Quand l’utiliser ? Quand les besoins sont connus et stables Quand la technologie à utiliser est maîtrisée Lors de la création d’une nouvelle version d’un produit existant Lors du portage d’un produit sur une autre plateforme Section 3 – modèles classiques 31 Cours 2 – Cycle de vie de logiciels Modèle en cascade
  • 33. Variante du modèle en cascade qui fait l’accent sur la vérification et la validation Le test du produit se fait en parallèle par rapport aux autres activités Section 3 – modèles classiques 32 Cours 2 – Cycle de vie de logiciels Modèle en V
  • 34. Section 3 – modèles classiques 33 Cours 2 – Cycle de vie de logiciels Modèle en V
  • 35. Avantages : Met l’accent sur lest tests et la validation et par conséquent, ça accroît la qualité du logiciel Chaque livrable doit être testable Facile à planifier dans une gestion de projets Facile à utiliser Section 3 – modèles classiques 34 Cours 2 – Cycle de vie de logiciels Modèle en V
  • 36. Inconvénients : Ne gère pas les activités parallèles Ne gère pas explicitement les changements des spécifications Ne contient pas d’activités d’analyse de risque Section 3 – modèles classiques 35 Cours 2 – Cycle de vie de logiciels Modèle en V
  • 37. Quand l’utiliser: Quand le produit à développer à de très hautes exigences de qualité Quand les besoins sont connus à l’avance Les technologies à utiliser sont connues à l’avance Section 3 – modèles classiques 36 Cours 2 – Cycle de vie de logiciels Modèle en V
  • 38. Le projet se fait sur plusieurs itérations Les développeurs construisent un prototype selon les attentes du client Le prototype est évalué par le client Le client donne son feedback Les développeurs adaptent le prototype selon les besoins du client Quand le prototype satisfait le client, le code est normalisé selon les standards et les bonnes pratiques Section 3 – modèles classiques 37 Cours 2 – Cycle de vie de logiciels Prototypage
  • 39. Section 3 – modèles classiques 38 Cours 2 – Cycle de vie de logiciels Prototypage
  • 40. Avantages Implication active du client Le développeur apprend directement du client S’adapte rapidement aux changements des besoins Progrès constant et visible Une grande interaction avec le produit Section 3 – modèles classiques 39 Cours 2 – Cycle de vie de logiciels Prototypage
  • 41. Inconvénients Le prototypage implique un code faiblement structuré Degré très faible de maintenabilité Le processus peut ne jamais s’arrêter Très difficile d’établir un planning Section 3 – modèles classiques 40 Cours 2 – Cycle de vie de logiciels Inconvénients
  • 42. Quand l’utiliser ? Quand les besoins sont instables et/ou nécessitent des clarifications Peut être utilisé avec le modèle en cascade pour la clarification des besoins Quand des livraisons rapides sont exigées Section 3 – modèles classiques 41 Cours 2 – Cycle de vie de logiciels Inconvénients
  • 43. Chaque incrément est une construction partielle du logiciel Trie les spécifications par priorités et les regroupent dans des groupes de spécifications Chaque incrément implémente un ou plusieurs groupes jusqu’à ce que la totalité du produit soit finie Section 3 – modèles classiques 42 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
  • 44. Section 3 – modèles classiques 43 Cours 2 – Cycle de vie de logiciels Modèle Incrémental Incrément 1 Incrément 2 Incrément N Spécifications Conception Implémentation Tests Spécifications Conception Implémentation Tests Spécifications Conception Implémentation Tests
  • 45. Avantages Développement de fonctionnalités à risque en premier Chaque incrément donne un produit fonctionnel Le client intervient à la fin de chaque incrément Utiliser l’approche « diviser pour régner » Le client entre en relation avec le produit très tôt Section 3 – modèles classiques 44 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
  • 46. Inconvénients Exige une bonne planification et une bonne conception Exige une vision sur le produit fini pour pouvoir le diviser en incréments Le coût total du système peut être cher Section 3 – modèles classiques 45 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
  • 47. Quand l’utiliser ? Quand la plupart des spécifications sont connues à l’avances et vont être sujettes à de faibles évolutions Quand on veut rapidement un produit fonctionnel Pour des projets de longues durées Pour des projets impliquant de nouvelles technologies Section 3 – modèles classiques 46 Cours 2 – Cycle de vie de logiciels Modèle Incrémental
  • 48. Modèle itératif Des incréments sous forme de cycle À la fin de chaque cycle on détermine les objectifs du cycle suivant Chaque cycle est composé des même activités que du modèle en cascade Inclut l’analyse de risque et le prototypage Section 3 – modèles classiques 47 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 49. Section 3 – modèles classiques 48 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 50. Détermination des objectifs En terme de fonctionnalité, de performance, de coût,...etc. Déterminer les alternatives : développer, réutiliser, acheter, sous-traiter…etc. Contraintes : coûts, plannings, … etc. Section 3 – modèles classiques 49 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 51. Identification et évaluation de risques Etudier les alternatives de développement Identification des risques : technologie non maîtrisées, équipe peu expérimentée, planning trop serré, …etc. Evaluation des risques : voir si les risques peuvent impacter le projet et à quel degré Section 3 – modèles classiques 50 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 52. Développement et test Contient pratiquement la plupart des activités : conception, codage, test, … etc. Planification de la prochaine itération Un planning de l’itération Un plan de tests Section 3 – modèles classiques 51 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 53. Avantages Identification rapide des risques Impacts minimaux des risques sur le projet Fonctions critiques développées en premier Feedback rapide du client Une évaluation continue du procédé Section 3 – modèles classiques 52 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 54. Inconvénients L’évaluation des risques peut prendre beaucoup de temps Le modèle est très complexe La spirale peut s’éterniser Les développeurs doivent être réaffectés pendant les phases de non-développement Les objectifs ne sont pas souvent faciles à formuler Section 3 – modèles classiques 53 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 55. Quand est-ce que l’utiliser ? Quand le prototypage est exigé Quand le risque du projet est considérable Quand les spécifications ne sont pas stables Pour les nouveaux produits Quand le projet implique de la recherche et de l’investigation Section 3 – modèles classiques 54 Cours 2 – Cycle de vie de logiciels Modèle en spirale
  • 56.
  • 57. Quels sont les critères qui définiront quel modèle choisir ?
  • 58.
  • 59. Au milieu des années 90, un groupe d’expert en Cycles de vie de logiciels voulaient proposer de nouveaux modèles Les nouveaux modèles sont plus « légers » : moins de documentation et moins de contrôle sur le procédé Ces modèles s’adresse à des projets de petite ou moyenne taille avec une équipe réduite Ces modèles permettent de s’ajuster rapidement aux changements des spécifications tout en garantissant des livraisons fréquentes Ces modèles sont qualifiés de « modèles agiles » Section 4 – méthodes agiles 57 Cours 2 – Cycle de vie de logiciels Apparition
  • 60. Section 4 – méthodes agiles 58 Cours 2 – Cycle de vie de logiciels Principes agiles
  • 61. INDIVIDUS ET INTERACTIONS AU LIEU DE PROCESSUS ET OUTILS Les collaborateurs sont la clé du succès Les « seniors » échoueront s’ils ne collaborent pas en tant qu’équipe Un bon collaborateur n’est pas un forcément un bon programmeur. C’est quelqu’un qui travaille bien en équipe Une surabondance d’outils est aussi mauvaise que le manque d’outils Démarrer petit et investir peu au démarrage Construire l’équipe c’est plus important que construire l’environnement Section 4 – méthodes agiles 59 Cours 2 – Cycle de vie de logiciels Principes
  • 62. LOGICIEL FONCTIONNEL AU LIEU DE DOCUMENTATION MASSIVE Un code sans documentation est un désastre Trop de documents est pire que pas de documents Difficulté à produire et à synchroniser avec le code Souvent les documents sont des « mensonges » formels Le code ne ment jamais sur lui-même Produire toujours des documents aussi courts que possible Section 4 – méthodes agiles 60 Cours 2 – Cycle de vie de logiciels Principes
  • 63. COLLABORATION DU CLIENT AU LIEU DE LA NÉGOCIATION DE CONTRATS Très difficile de décrire la totalité du logiciel depuis le début Les projets réussis impliquent les clients d’une manière fréquente et régulière Le client doit avoir un contact direct avec l’équipe de développement Section 4 – méthodes agiles 61 Cours 2 – Cycle de vie de logiciels Principes
  • 64. RÉAGIR AUX CHANGEMENTS AU LIEU DE SUIVRE UN PLAN Un logiciel ne peut pas être planifié très loin dans le futur Tout change : technologie, environnement et surtout les besoins Les chefs de projets classiques fonctionnent sur la base de GANTT, PERT et le système de tâches Avec le temps, les diagrammes se dégradent car des tâches s’ajoutent et d’autres deviennent non nécessaires Une meilleure stratégie est de planifier très court (02 semaines à 01 mois) Plannings détaillés pour la semaine à venir, rigoureux pour les trois mois et très vagues au-delà Section 4 – méthodes agiles 62 Cours 2 – Cycle de vie de logiciels Principes
  • 65. LES DOUZE PRINCIPES AGILES Toujours satisfaire le client à travers des livraisons rapides et continues Bien accueillir tous les changements même les tardifs Livrer fréquemment un système fonctionnel Les clients et les développeurs doivent collaborer Conduire le projet autour d’équipes motivées La meilleure méthode de faire circuler l’information c’est le contact direct entre collaborateurs La première mesure d’avancement c’est un logiciel fonctionnel Section 4 – méthodes agiles 63 Cours 2 – Cycle de vie de logiciels Principes
  • 66. LES DOUZE PRINCIPES AGILES Le développement doit être durable et à un rythme constant La bonne conception et l’excellence technique augmentent l’agilité Simplifier au maximum Les meilleurs architectures, besoins et conceptions proviennent d’équipes qui s’organisent d’elles-mêmes L’équipe s’améliore d’une manière autonome et régulière Section 4 – méthodes agiles 64 Cours 2 – Cycle de vie de logiciels Principes
  • 67. Section 4 – méthodes agiles 65 Cours 2 – Cycle de vie de logiciels Principales méthodologies agiles
  • 68. eXtreme Programming Créée en 1995 Kent Beck and Ward Cunningham XP est un moyen léger, efficace, à bas risques, flexible, scientifique et amusant de développer des logiciels Destinée à des équipes de moyenne taille avec des spécifications incomplets et / ou vagues Le codage est le noyau de XP Section 4 – méthodes agiles 66 Cours 2 – Cycle de vie de logiciels Méthodologie XP
  • 69. Section 4 – méthodes agiles 67 Cours 2 – Cycle de vie de logiciels Méthodologie XP - Fondamentaux
  • 70. Section 4 – méthodes agiles 68 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Principales activités
  • 71. 1- LE JEU DE PLANNING : Le client et les développeurs décident quoi mettre dans la prochaine livraison en triant les spécifications par priorité L’estimation est la responsabilité du développeur, pas du chef de projet ni du client 2 – DE PETITES ET FRÉQUENTES LIVRAISONS : D’abord livrer un système minimaliste puis le faire évoluer à travers des versions à des délais très courts Section 4 – méthodes agiles 69 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
  • 72. 3- LES MÉTAPHORES Exprimer de manière naturelle et très simples des fonctions du système Le client et les développeurs doivent s’accorder sur les métaphores 4 – CONCEPTION SIMPLE Le système doit être conçu de la manière la plus simple possible 5 – TESTS Les développeurs rédigent les tests unitaires d’une manière continue, Le client rédige les tests d’acceptation des fonctionnalités, Section 4 – méthodes agiles 70 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
  • 73. 6 – REFACTORING Les développeurs améliorent continuellement le code tout en veillant à le garder fonctionnel 7 – PROGRAMMATION PAR PAIRES La totalité du code est écrite par deux programmeurs sur une seule machine. L’un est appelé conducteur (driver) et l’autre navigateur. Les rôles s’inversent régulièrement. 8 - PROPRIÉTÉ COLLECTIVE N’importe qui peut changer le code n’importe où dans le système à n’importe quel moment 9 - 40 HEURES LA SEMAINE Le travail ne doit pas dépasser 40 heures par semaine Section 4 – méthodes agiles 71 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
  • 74. 10 – intégration continue Construire le système à chaque fois qu’une tâche est terminée. 11 – Le client est sur site Le client est tout le temps présent avec l’équipe pour participer et répondre aux questions 12 – Les standards de codage À cause de la propriété collective, des standards (une charte de codage) doivent être établis et adhérés par l’équipe de développement Section 4 – méthodes agiles 72 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Les 12 pratiques
  • 75. Implication active du client Forte réactivité des développeurs Responsabilisation et solidarité de l’équipe Appel aux meilleurs pratiques de développement Souplesse extrême Section 4 – méthodes agiles 73 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Avantages
  • 76. Demande une certaine maturité des développeurs La programmation par paires n’est toujours pas applicable Difficulté de planifier et de budgétiser un projet Stress dû aux devoir de l’intégration continue et des livraisons fréquentes La faible documentation peut nuire en cas de départ des développeurs Section 4 – méthodes agiles 74 Cours 2 – Cycle de vie de logiciels Méthodologie XP – Inconvénients
  • 77. Inspiré par une approche développée en 1986 par H. Takeuchii et II.. Nonaka, le terme « Scrum » utilisé dans « Wiicked Problems, Rightteous Solutions » par DeGrace et Stahl en 1991 Utilisé comme méthodologie dans le livre : « Agile Software Developmentt with SCRUM” par K. Schwaber et M.. Beedlle en 2001 Section 4 – méthodes agiles 75 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum
  • 78. Section 4 – méthodes agiles 76 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Principes
  • 79. Section 4 – méthodes agiles 77 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Principes
  • 80. Section 4 – méthodes agiles 78 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Principes
  • 81. Méthode très simple et très efficace Adoptée par les géants du marché : Microsoft, Google, Nokia.. Orientée projet contrairement à XP qui est orientée développement Peut inclure d’autres activité venant d’autres méthodologies (surtout XP) Section 4 – méthodes agiles 79 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Avantages
  • 82. N’est pas 100% spécifique au GL Difficulté de budgétiser un projet Section 4 – méthodes agiles 80 Cours 2 – Cycle de vie de logiciels Méthodologie Scrum - Inconvénients
  • 83.
  • 84. Quels sont les points forts des méthodes agiles ?
  • 85. Quels en sont les points faibles ?
  • 86. Quelle est la différence entre Scrum et XP ?
  • 87.
  • 88. UP est un modèle de procédé très populaire UP est incrémental et itératif UP a plusieurs implémentation et / ou variation dont la plus célèbre est RUP (Rational Unified Process) Section 5 – méthodologie up 83 Cours 2 – Cycle de vie de logiciels UP
  • 89. Section 5 – méthodologie up 84 Cours 2 – Cycle de vie de logiciels UP – Implémentations
  • 90. Section 5 – méthodologie up 85 Cours 2 – Cycle de vie de logiciels UP – Principes
  • 91. PROCESSUS ITÉRATIF ET INCRÉMENTAL UP est composé de quatre phase : l’analyse de besoins (inception), l’élaboration, la construction et la transition Chaque phase peut être décomposée en plusieurs itérations Chaque itération produit un incrément du produit Section 5 – méthodologie up 86 Cours 2 – Cycle de vie de logiciels UP - Principes
  • 92. PROCESSUS BASÉ SUR LES CAS D’UTILISATION Les cas d’utilisation formalisent les spécifications fonctionnelle du produit Chaque itérations prend un ensemble de cas d’utilisation et les traite selon plusieurs workflows : modélisation métier, analyse de besoins, analyse et conception, implémentation, tests et déploiement Section 5 – méthodologie up 87 Cours 2 – Cycle de vie de logiciels UP - Principes
  • 93. PROCESSUS CENTRÉ SUR L’ARCHITECTURE UP supporte plusieurs architectures logicielles La phase d’élaboration fournit l’architecture de l’exécutable Cette architecture est une implémentation partielle qui sert de fondation aux développements futurs Section 5 – méthodologie up 88 Cours 2 – Cycle de vie de logiciels UP - Principes
  • 94. PROCESSUS QUI MET L’ACCENT SUR LES RISQUES Identification rapide des risques Traitement des risques dans les premières phases du projet Section 5 – méthodologie up 89 Cours 2 – Cycle de vie de logiciels UP - Principes
  • 95. UP est composé de quatre phases principales : analyse de besoins (inception), élaboration, construction et transition Section 5 – méthodologie up 90 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
  • 96. UP est un processus bidimensionnel La phase horizontale représente le temps et les étapes La phase verticale représente les activités Section 5 – méthodologie up 91 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
  • 97. Section 5 – méthodologie up 92 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
  • 98. PHASE D’ANALYSE DE BESOINS (INCEPTION) La plus petite phase et la plus courte Etablit une vision globale du projet Essaye d’identifier les principaux cas d’utilisations Propose une ou plusieurs architectures du système Identifie les risques Etablit un planning préliminaire Peut annuler le projet si l’étape prend trop de temps Section 5 – méthodologie up 93 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
  • 99. PHASE D’ÉLABORATION Capturer la majorité des cas d’utilisation Valider l’architecture du système Eliminer les facteurs de risque Peut décider de ne pas aller au-delà Livrable : prototype exécutable d’architecture Livrable : un planning détaillé et précis sur la phase de construction Section 5 – méthodologie up 94 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
  • 100. PHASE DE CONSTRUCTION La phase la plus longue du projet Le reste du système est développé durant cette phase Chaque itération produit un incrément vers le système final Section 5 – méthodologie up 95 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
  • 101. PHASE DE TRANSITION Le système est déployé chez les utilisateurs Les feedbacks récoltés serviront à améliorer le système Section 5 – méthodologie up 96 Cours 2 – Cycle de vie de logiciels UP – Cycle de vie
  • 102. Expression de besoins Recenser les besoins fonctionnels et non fonctionnels du système Le diagramme UML de cas d’utilisation est utilisé pour cette phase Section 5 – méthodologie up 97 Cours 2 – Cycle de vie de logiciels UP – Activités
  • 103. Analyse Détaille les besoins en spécifications détaillées Une ébauche de la conception Section 5 – méthodologie up 98 Cours 2 – Cycle de vie de logiciels UP – Activités
  • 104. Conception Décide comment sera construit le système durant l’implémentation Définition des sous-systèmes et composants Création d’abstractions de la solution Section 5 – méthodologie up 99 Cours 2 – Cycle de vie de logiciels UP – Activités
  • 105. Implémentation Traduire les résultats de la conception en un système opérationnel Livrables : code source, exécutables, …etc. Section 5 – méthodologie up 100 Cours 2 – Cycle de vie de logiciels UP – Activités
  • 106. Tests Vérification et validation des résultats de l’implémentation Section 5 – méthodologie up 101 Cours 2 – Cycle de vie de logiciels UP – Activités
  • 107. Méthodologie complète Identification rapide des risques Largement adoptée en entreprise Intégration avec UML Séparation concise des phases et des livrables Des formations / livres / tutoriaux disponibles Section 5 – méthodologie up 102 Cours 2 – Cycle de vie de logiciels UP – Avantages
  • 108.
  • 109. C’est une méthode bidimensionnelle, pourquoi ?
  • 110. C’est une méthode itérative et incrémentale, pourquoi ?
  • 111.
  • 112. CASE est un nom donné aux logiciels utilisés dans les différentes activités de GL (besoins, conception,…) Exemples : compilateurs, éditeurs, débogueurs, …etc. Le but des outils CASE est d’automatiser les tâches et / ou gérer le projet de développement Outils case 105 Cours 2 – Cycle de vie de logiciels Introduction
  • 113. Le développement est essentiellement basé sur l’intelligence humaine, là, les outils CASE ne peuvent pas trop intervenir Le gros d’un projet de développement c’est la communication entre les membre de l’équipe. Là aussi, les CASE n’ont pas une grande intervention. Outils case 106 Cours 2 – Cycle de vie de logiciels Limite des CASE
  • 114. Les outils CASE peuvent être classés : D’un point de vue fonctionnel : selon la fonction de l’outil. D’un point de vue activité : selon les activités dans lesquelles intervient l’outil Outils case 107 Cours 2 – Cycle de vie de logiciels Classification des CASE
  • 115. Outils case 108 Cours 2 – Cycle de vie de logiciels Classification fonctionnelle
  • 116. Outils case 109 Cours 2 – Cycle de vie de logiciels Classification fonctionnelle
  • 117. Cycles de vie de logiciels 110 Cours igl Démonstration : outil de génération de documents
  • 118. Cycles de vie de logiciels 111 Cours igl Démonstration : outil de gestion de tests unitaires
  • 119. Cycles de vie de logiciels 112 Cours igl Démonstration : outil de gestion de tests unitaires
  • 120.
  • 121.