Podcast
Questions and Answers
Quels sont les principaux objectifs du Génie Logiciel?
Quels sont les principaux objectifs du Génie Logiciel?
Développer des logiciels satisfaisant le client et le fournisseur, de qualité supérieure, dans des délais raisonnables et avec des coûts acceptables.
Quelles sont les conséquences du manque de méthodologie dans le développement logiciel?
Quelles sont les conséquences du manque de méthodologie dans le développement logiciel?
Des logiciels qui ne répondent pas aux attentes des clients, des temps de réponse trop lents, et des coûts de maintenance élevés.
Quel préjudice le piratage de logiciels peut-il causer?
Quel préjudice le piratage de logiciels peut-il causer?
Il cause un énorme préjudice pour les fournisseurs de logiciels.
Pourquoi est-il important de respecter les délais et les coûts dans le développement logiciel?
Pourquoi est-il important de respecter les délais et les coûts dans le développement logiciel?
Signup and view all the answers
Quelles analogies peuvent être faites entre le Génie Logiciel et d'autres types de génie?
Quelles analogies peuvent être faites entre le Génie Logiciel et d'autres types de génie?
Signup and view all the answers
Quelle est la définition du Génie Logiciel?
Quelle est la définition du Génie Logiciel?
Signup and view all the answers
Comment la maintenance des logiciels est-elle impactée par l'absence de méthodologie?
Comment la maintenance des logiciels est-elle impactée par l'absence de méthodologie?
Signup and view all the answers
Quels doivent être les résultats d'un bon processus de Génie Logiciel?
Quels doivent être les résultats d'un bon processus de Génie Logiciel?
Signup and view all the answers
Quels défis peuvent survenir si les exigences des clients ne sont pas satisfaites?
Quels défis peuvent survenir si les exigences des clients ne sont pas satisfaites?
Signup and view all the answers
Comment le développement logiciel peut-il être amélioré par le recours à des méthodologies?
Comment le développement logiciel peut-il être amélioré par le recours à des méthodologies?
Signup and view all the answers
Quels sont les principaux rôles impliqués dans le processus de développement logiciel?
Quels sont les principaux rôles impliqués dans le processus de développement logiciel?
Signup and view all the answers
Que signifie l'acronyme CASE et son utilité dans les activités de génie logiciel?
Que signifie l'acronyme CASE et son utilité dans les activités de génie logiciel?
Signup and view all the answers
Citez trois exemples d'outils CASE utilisés dans les projets de génie logiciel.
Citez trois exemples d'outils CASE utilisés dans les projets de génie logiciel.
Signup and view all the answers
Quel est le rôle d'un Chef de Projet dans un projet de développement logiciel?
Quel est le rôle d'un Chef de Projet dans un projet de développement logiciel?
Signup and view all the answers
Pourquoi est-il important d'analyser les besoins dans le processus de développement logiciel?
Pourquoi est-il important d'analyser les besoins dans le processus de développement logiciel?
Signup and view all the answers
Quel est l'impact d'un débogueur dans le processus d'implémentation?
Quel est l'impact d'un débogueur dans le processus d'implémentation?
Signup and view all the answers
Comment le rôle d'un Analyste diffère-t-il de celui d'un Développeur?
Comment le rôle d'un Analyste diffère-t-il de celui d'un Développeur?
Signup and view all the answers
Quelles activités sont majoritairement réalisées lors de la phase de conception?
Quelles activités sont majoritairement réalisées lors de la phase de conception?
Signup and view all the answers
Qu'est-ce qu'une méthodologie de développement en informatique?
Qu'est-ce qu'une méthodologie de développement en informatique?
Signup and view all the answers
Quels sont les deux types principaux de méthodologies de développement mentionnés?
Quels sont les deux types principaux de méthodologies de développement mentionnés?
Signup and view all the answers
Pourquoi les méthodologies de développement sont-elles considérées comme complexes?
Pourquoi les méthodologies de développement sont-elles considérées comme complexes?
Signup and view all the answers
Quel est le but principal d'utiliser une méthodologie de développement?
Quel est le but principal d'utiliser une méthodologie de développement?
Signup and view all the answers
Comment les méthodes agiles diffèrent-elles des méthodologies classiques?
Comment les méthodes agiles diffèrent-elles des méthodologies classiques?
Signup and view all the answers
Quelles sont les caractéristiques des modèles séquentiels?
Quelles sont les caractéristiques des modèles séquentiels?
Signup and view all the answers
Quelle est l'une des motivations principales derrière l'utilisation des méthodologies de développement?
Quelle est l'une des motivations principales derrière l'utilisation des méthodologies de développement?
Signup and view all the answers
Que sont les outils CASE et quel est leur rôle?
Que sont les outils CASE et quel est leur rôle?
Signup and view all the answers
Dans quel type de projet est-il plus approprié d'utiliser les méthodes agiles?
Dans quel type de projet est-il plus approprié d'utiliser les méthodes agiles?
Signup and view all the answers
Quel modèle de développement implique un processus peu flexible et très structuré?
Quel modèle de développement implique un processus peu flexible et très structuré?
Signup and view all the answers
Comment la réduction de la complexité est-elle une motivation dans le choix d'une méthodologie?
Comment la réduction de la complexité est-elle une motivation dans le choix d'une méthodologie?
Signup and view all the answers
Qu'est-ce qui caractérise un modèle itératif?
Qu'est-ce qui caractérise un modèle itératif?
Signup and view all the answers
Pourquoi la documentation est-elle moins importante dans les méthodes agiles?
Pourquoi la documentation est-elle moins importante dans les méthodes agiles?
Signup and view all the answers
Quel est l'impact de l'affectation correcte des tâches dans une méthodologie de développement?
Quel est l'impact de l'affectation correcte des tâches dans une méthodologie de développement?
Signup and view all the answers
Quel est le principal objectif des outils CASE ?
Quel est le principal objectif des outils CASE ?
Signup and view all the answers
Quels sont les deux critères de classification des outils CASE ?
Quels sont les deux critères de classification des outils CASE ?
Signup and view all the answers
Citez un exemple d'outil de planification et son utilité.
Citez un exemple d'outil de planification et son utilité.
Signup and view all the answers
Quels types d'outils pourrait-on classer sous la catégorie 'Editeurs' ?
Quels types d'outils pourrait-on classer sous la catégorie 'Editeurs' ?
Signup and view all the answers
Quel outil de gestion de configuration est mentionné dans le texte ?
Quel outil de gestion de configuration est mentionné dans le texte ?
Signup and view all the answers
À quoi servent les outils de test mentionnés dans le document ?
À quoi servent les outils de test mentionnés dans le document ?
Signup and view all the answers
Qu'est-ce qui est inclus dans les 'Outils de documentation' ?
Qu'est-ce qui est inclus dans les 'Outils de documentation' ?
Signup and view all the answers
Quelle est la fonction des outils de support de procédé ?
Quelle est la fonction des outils de support de procédé ?
Signup and view all the answers
Citez un outil de traitement de langage et sa fonction.
Citez un outil de traitement de langage et sa fonction.
Signup and view all the answers
Pourquoi est-il important de classer les outils CASE ?
Pourquoi est-il important de classer les outils CASE ?
Signup and view all the answers
Quel est un métier qui pourrait utiliser les outils de gestion de configuration ?
Quel est un métier qui pourrait utiliser les outils de gestion de configuration ?
Signup and view all the answers
Quelle est la différence entre un compilateur et un interprète ?
Quelle est la différence entre un compilateur et un interprète ?
Signup and view all the answers
Quel rôle les outils de test jouent-ils dans le développement ?
Quel rôle les outils de test jouent-ils dans le développement ?
Signup and view all the answers
Cite un exemple d'outil de documentation et son utilisation.
Cite un exemple d'outil de documentation et son utilisation.
Signup and view all the answers
Quels sont les moments appropriés pour utiliser le modèle en V dans le développement logiciel?
Quels sont les moments appropriés pour utiliser le modèle en V dans le développement logiciel?
Signup and view all the answers
En quoi le modèle en V diffère-t-il du modèle en cascade?
En quoi le modèle en V diffère-t-il du modèle en cascade?
Signup and view all the answers
Quels avantages principaux sont associés à l'utilisation du modèle en V?
Quels avantages principaux sont associés à l'utilisation du modèle en V?
Signup and view all the answers
Quels inconvénients peut-on rencontrer avec le modèle en V?
Quels inconvénients peut-on rencontrer avec le modèle en V?
Signup and view all the answers
Pourquoi le modèle en V est-il considéré comme 'facile à utiliser'?
Pourquoi le modèle en V est-il considéré comme 'facile à utiliser'?
Signup and view all the answers
Comment le modèle en V aide-t-il à améliorer la qualité du logiciel?
Comment le modèle en V aide-t-il à améliorer la qualité du logiciel?
Signup and view all the answers
Quelle est l'une des raisons pour lesquelles les spécifications doivent être stables lors de l'utilisation du modèle en V?
Quelle est l'une des raisons pour lesquelles les spécifications doivent être stables lors de l'utilisation du modèle en V?
Signup and view all the answers
Quel rôle les tests jouent-ils dans le modèle en V?
Quel rôle les tests jouent-ils dans le modèle en V?
Signup and view all the answers
D'où provient la complexité d'intégrer des modifications dans le modèle en V?
D'où provient la complexité d'intégrer des modifications dans le modèle en V?
Signup and view all the answers
Qu'est-ce que le modèle en cascade et pourquoi est-il considéré comme un modèle académique?
Qu'est-ce que le modèle en cascade et pourquoi est-il considéré comme un modèle académique?
Signup and view all the answers
En quoi l'accent sur les tests dans le modèle en V est-ce bénéfique pour la gestion de projets?
En quoi l'accent sur les tests dans le modèle en V est-ce bénéfique pour la gestion de projets?
Signup and view all the answers
Mentionnez un domaine où le modèle en V n'est pas idéal.
Mentionnez un domaine où le modèle en V n'est pas idéal.
Signup and view all the answers
Quels sont les avantages du modèle en cascade en matière de gestion de projet?
Quels sont les avantages du modèle en cascade en matière de gestion de projet?
Signup and view all the answers
Quel est le résultat d'une mauvaise gestion des spécifications dans le modèle en V?
Quel est le résultat d'une mauvaise gestion des spécifications dans le modèle en V?
Signup and view all the answers
Quels sont les principaux inconvénients du modèle en cascade?
Quels sont les principaux inconvénients du modèle en cascade?
Signup and view all the answers
Quelles caractéristiques rendent le modèle en V 'facile à planifier'?
Quelles caractéristiques rendent le modèle en V 'facile à planifier'?
Signup and view all the answers
Pourquoi le modèle en cascade peut-il être considéré comme sensible aux nouveaux besoins?
Pourquoi le modèle en cascade peut-il être considéré comme sensible aux nouveaux besoins?
Signup and view all the answers
Quelle est l'importance de la validation dans le modèle en V?
Quelle est l'importance de la validation dans le modèle en V?
Signup and view all the answers
Quel est l'impact de la faible implication du client dans le modèle en cascade?
Quel est l'impact de la faible implication du client dans le modèle en cascade?
Signup and view all the answers
Comment le modèle en V aborde-t-il la documentation des tests?
Comment le modèle en V aborde-t-il la documentation des tests?
Signup and view all the answers
Dans quel type de projet le modèle en cascade fonctionne-t-il mieux?
Dans quel type de projet le modèle en cascade fonctionne-t-il mieux?
Signup and view all the answers
Pourquoi le modèle en cascade est-il considéré comme facile à comprendre?
Pourquoi le modèle en cascade est-il considéré comme facile à comprendre?
Signup and view all the answers
Comment le modèle en cascade traite-t-il la qualité par rapport aux coûts et délais?
Comment le modèle en cascade traite-t-il la qualité par rapport aux coûts et délais?
Signup and view all the answers
Quelles étapes sont incluses dans le modèle en cascade?
Quelles étapes sont incluses dans le modèle en cascade?
Signup and view all the answers
Quelle est la principale raison pour laquelle le modèle en cascade peut devenir problématique?
Quelle est la principale raison pour laquelle le modèle en cascade peut devenir problématique?
Signup and view all the answers
En quoi le modèle en cascade peut-il influencer la dynamique de l'équipe?
En quoi le modèle en cascade peut-il influencer la dynamique de l'équipe?
Signup and view all the answers
Pourquoi la gestion du temps est-elle un facteur critique dans le modèle en cascade?
Pourquoi la gestion du temps est-elle un facteur critique dans le modèle en cascade?
Signup and view all the answers
Quel type de projets bénéficierait le moins du modèle en cascade?
Quel type de projets bénéficierait le moins du modèle en cascade?
Signup and view all the answers
Comment le modèle en cascade traite-t-il l'évaluation des risques?
Comment le modèle en cascade traite-t-il l'évaluation des risques?
Signup and view all the answers
Quel est le rôle des livrables dans le modèle en cascade?
Quel est le rôle des livrables dans le modèle en cascade?
Signup and view all the answers
Study Notes
Cours 1 - Méthodologies de Développement
- Le cours porte sur les méthodologies de développement de logiciels et se divise en modules.
- Le module introduit au génie logiciel.
Objectifs du Cours
- Découvrir les principales activités du développement de logiciels.
- Connaître les différentes méthodologies et leurs philosophies.
- Connaître les méthodologies classiques et les méthodes agiles.
- Choisir une méthodologie appropriée en se basant sur les données concernant le projet de développement.
- Prise de contact avec la méthodologie UP.
- Découvrir les outils de support (CASE).
Plan du Cours
- Introduction
- Activités
- Outils et Métiers
- Méthodologies
- Méthodologies Classiques
- Méthodes Agiles
- UP
Introduction
- Définition d'un logiciel : Un ensemble de traitements effectués automatiquement par un appareil informatique. Un logiciel est un « transformateur » d'information.
- Composantes d'un logiciel : Produits connexes, binaires (exécutables), documentation.
- Développement d'un logiciel : La transformation d'une idée ou d'un besoin en un logiciel fonctionnel. Le client (utilisateur) produit l'idée et le fournisseur la développe.
- Un bon logiciel (du point de vue du client) : respecte les critères de qualité, est peu coûteux, livré dans les délais et fait ce qu'on lui demande.
- Un bon logiciel (du point de vue du fournisseur) : minimise le coût, minimise les délais et maximise les profits.
- Faits sur le développement : le développement est plus que la programmation, le développement de logiciels n'est pas une opération facile. Le développement implique plusieurs équipes de compétences différentes avec la Communication , Des outils, Un projet de développement , Une méthodologie.
- Critères de réussite : Délai, Portée, Bon Logiciel, Coût, Qualité.
- Echecs des projets de développement : Taux de réussite des projets basé sur les données de Standish Group.
- Difficultés et points de vue.
- Difficultés de développement : Gérer le projet et les personnes, Différence de langage, Le logiciel est intangible (non palpable), Le piratage de logiciels.
Conséquences du Manque de Méthodologie
- Des logiciels qui ne satisfont pas les attentes des clients.
- Des temps de réponse trop lents.
- Non respect des délais et des coûts.
- Maintenance trop chère car trop difficile.
Analogies
- Génie Civil
- Génie Mécanique
Le Génie Logiciel
- L'objectif du GL est de permettre le développement de logiciels satisfaisant le client et le fournisseur, de qualité supérieure, dans des délais raisonnables et avec des coûts acceptables.
Définition
- Le génie logiciel (en anglais software engineering) désigne l'ensemble des méthodologies, des techniques et outils concourant à la production d'un logiciel, au-delà de la seule activité de programmation.
Composantes
- Méthodologies
- Outils
- Techniques
Composantes - Suite
- Méthodologie: Déroul�ée par des acteurs, supportée par des outils, composé de plusieurs activités, selon certaines techniques, et en utilisant certains outils.
- Les outils: Utilisés par des acteurs, pour certaines activités, selon des techniques
- Les techniques: Utilisées par des acteurs, pour exécuter des activités selon une certaine manière.
Activités de Développement
- Étapes de développement : Développement, Support.
- Principales activités : Analyse de besoins, Conception, Codage, Tests, Maintenance
Analyse de besoins
- Collecter les attentes du client.
- Comprendre le client et l'environnement.
- Formaliser.
- Contractualiser.
- Difficultés de l'analyse de besoins : le client parle un autre langage, incompréhensions, oublis, complexités; difficultés d'estimation, changement des besoins en cours de projet.
Conception
- Choix des solutions techniques permettant de répondre aux attentes.
- Aide à l'établissement d'un planning de la solution.
- Élaboration de l'architecture de la solution
- Maquettes, prototypes
- Connaissances techniques mises en œuvre
- Difficultés de conception : Dépendance forte envers le résultat de l'analyse des besoins, plusieurs solutions possibles et choix de la meilleure solution, nécessite une compétence technique accrue, évolution rapide de la technologie.
Codage
- Transformation des solutions proposées lors de la conception en un code opérationnel.
- Basé sur les langages de programmation.
- L'équipe la plus grande.
- Utilisation d'un référentiel unique du code source (emplacement, modèles,...).
- Difficultés de codage: Gestion de projets pour équipes nombreuses, uniformisation des méthodes de travail, intégration du code source, mobilité des développeurs, uniformisation de la compréhension du projet, différence de niveau technique entre développeurs.
Tests
- Détermination de la qualité du logiciel.
- Conformité du logiciel par rapport aux spécifications.
- Plusieurs types de tests : Tests unitaires, tests fonctionnels.
- Tests en boîte blanche (avec accès au code source), tests en boîte noire.
- Difficultés de test : Nécessite concentration, souvent lassant, Optimisation : trouver le maximum de défaillances en un moins de temps, Difficilement automatisable.
Activités de Développement
Outils et Métiers
- Principaux métiers de développement : Développeur, Chef de projet, Analyste, Architecte, Testeur.
- Métiers et Activités
- Outils CASE : Définition, Exemples (compilateurs, éditeurs, débogueurs, ...etc.), But (automatiser les tâches et/ou gérer le projet de développement), Classification des CASE (fonctionnel, activité).
Méthodologies de Développement
- Définition d'une méthodologie : Un ensemble d'activités qui conduisent à la production d'un logiciel.
- Motivations : Maîtriser les gros projets, Découper le projet et affecter correctement les tâches, Anticiper et gérer les risques, Réduire la complexité.
- Générations de méthodologies : Méthodologies classiques (modèles stricts, étapes claires et documentation fournie, conviennent à des projets gouvernementaux ou grands). Méthodes agiles (modèles incrémentaux et itératifs, petites livraisons fréquentes, conviennent aux projets de petite et moyenne taille).
- Typologie : Modèle séquentiel, Modèle incrémental, Modèle itératif.
- Quand utiliser une méthodologie X ? Nature du projet, Taille du projet, Nature du client, Exigences du contrat, Compétences de l'équipe
Méthodologies Classiques
- Modèle en cascade : L'un des premiers modèles proposés, inspiré par le modèle de Royce, basé sur le principe de livrables, modèle linéaire, académique.
- Modèle en Cascade – Suite : Spécifications, Conception, Implémentation, Tests, Déploiement, Maintenance.
- Avantages : Facile à utiliser, Un procédé structuré pour une équipe inexpérimentée, Idéal pour la gestion et le suivi de projets, Fonctionne bien quand la qualité est plus importante que les coûts et les délais.
- Inconvénients : Les besoins des clients sont souvent instables, Sensibilité aux nouveaux besoins, Une phase ne peut démarrer que si la 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.
- Modèle en V : Variante du modèle en cascade qui met l'accent sur la verification et la validation, Le test du produit se fait parallèlement avec les autres activités. Avantages : Met l'accent sur les tests et la validation, chaque livrable doit être testable, facile à utiliser, Facile à planifier. 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.
- Prototypage : 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, Adaptation des prototypages selon les feedbacks, Normalisation du code.
- 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.
- Inconvénients : 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.
- Quand utiliser le prototypage : Pour de très petits projets impliquant peu de personnes, Quand les besoins sont instables et/ou nécessitent des clarifications, Quand des livraisons rapides sont exigées, Très déconseillé en situations professionnelles.
- Modèle Incrémental : Chaque incrément est une construction partielle du logiciel, trie les spécifications par priorité et regroupe les composants dans des groupes de spécifications. Chaque incrément implémente un ou plusieurs groupes jusqu'à ce que le produit soit complet. Avantage : Développement de fonctionnalités à risque en premier, Utiliser l'approche << diviser pour régner>>, Le client intervient à la fin de chaque incrément, Le client entre en relation avec le produit très tôt. Inconvénients : Exige une bonne planification et une bonne conception, Exige une vision sur le produit fini, Le coût total du système peut être cher.
- Quand utiliser le modèle incrémental : Quand la plupart des spécifications sont connues à l'avance 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.
- Modèle en spirale : Modèle itératif qui a des incréments sous forme de cycle, et détermine les objectifs du cycle suivant à la fin de chaque cycle. Chaque cycle est composé des mêmes activités que le modèle en cascade. Inclut l'analyse de risque et le prototypage. Avantage : 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é. 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 non-développement, Les objectifs ne sont pas faciles à formuler.
- Quand utiliser le modèle en spirale : Quand le prototypage est exigé, Quand le risque du projet est considérable, Pour les nouveaux produits, Quand les spécifications ne sont pas stables, Quand le projet implique de la recherche et de l'investigation.
Méthodes Agiles
- Historique : Au milieu des années 90, un groupe d'experts en gestion de projets de développement désiraient proposer de nouvelles méthodologies plus légères, sans trop de documents, s'adressant à des équipes réduites, pour des projets de petite ou moyenne taille, qui soient capables de s'adapter rapidement aux changements des spécifications tout en garantissant des livraisons fréquentes (ces méthodologies sont qualifiées de « méthodes agiles »).
- Principes Agiles : Individus et interactions au lieu de processus et outils, Logiciel fonctionnel au lieu de documentation massive, Collaboration du client au lieu de négociation de contrats, Réagir aux changements au lieu de suivre un plan.
- Principe 1 : Les collaborateurs sont essentiels au succès. Un collaborateur n'est pas un programmeur mais une personne qui travaille bien en équipe. Démarrer petit et investir peu au démarrage. Construire l'équipe est plus important que construire l'environnement.
- Principe 2 : Le code sans documentation est un désastre. Trop de documents est pire que pas de documents. Souvent les documents sont des « mensonges » formels. Le code ne ment jamais sur lui-même. Produire toujours des documents aussi courts que possible.
- Principe 3 : 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.
- Principe 4 : 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 plus facilement 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. Planifier très court (2 semaines à un mois), Plannings détaillés pour la semaine à venir, plus vagues au-delà.
- Principales méthodes agiles : Adaptive Software Development (ASD), Feature Driven Development (FDD), Crystal Clear, Dynamic Software Development Method (DSDM), Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban.
Méthodologie XP
- Développée par Kent Beck et Ward Cunningham en 1995.
- Méthode légère, efficace, à bas risques, flexible, scientifique et amusante pour développer des logiciels.
- Destinée à des équipes de moyenne taille avec des spécifications incomplètes ou vagues.
- Le codage est le noyau de XP.
- Fondamentaux : Implication massive du client, Test unitaire continu (TDD), Programmation par paires, Itérations courtes et livraisons fréquentes.
Méthodologie Scrum
- Inspiré par une approche en 1986 par H. Takeuchii et H. Nonaka, terme Scrum (dans "Wicked Problems, Righteous Solutions" par DeGrace et Stahl, 1991).
- Utilisé comme méthodologie dans le livre << Agile Software Development with Scrum"" par K. Schwaber et M. Beedlle en 2001.
- Principes : Simple, Empirique (itérations courtes, feedback continu), Techniques simples, Equipes (auto-organisation, multi-compétences), Optimisation (détection rapide des anomalies, organisation simple, ouverture et visibilité).
- Déroulement : Scrum, Schéma global (Backlog du produit, Backlog du sprint, Mélée quotidienne, Sprint, Produit). Principe et Concepts : Processus (Sprint), Backlog (Product Backlog, Sprint backlog, équipe, Scrum Master, Product Owner, Team), réunions (Scrum quotidien, planning, revue, rétrospective), Suivi (Rapports, vélocité).
- Avantages : Méthode simple et efficace, Adoptée par les géants du marché, Orientée projet, Peut inclure d'autres activités venant d'autres méthodologies.
- Inconvénients : N'est pas 100% spécifique au GL, Difficulté de budgétiser un projet.
Processus Unifié (UP)
- Méthodologie très populaire, Incrémentale et itératif, dont la plus célèbre est RUP (Rational Unified Process).
- Implémentations : RUP (rational unified process), Agile Unified Process (AUP), Basic Unified Process (BUP), Enterprise Unified Process (EUP), Essential Unified Process (EssUP), Open Unified Process (OpenUP), Oracle Unified Method (OUM).
- Principes : Processus itératif et incrémental, basé sur les cas d'utilisation, centré sur l'architecture, accent sur les risques, utilisation de modèles UML.
- Phases : Inception, Elaboration, Construction, Transition.
- Activités : Expression de besoins, Analyse, Conception, Implémentation, Tests
Avantages et Inconvénients de UP
- Avantages : Méthodologie complète, Identification rapide des risques, Largement adoptée, Intégration avec UML, Séparation concise des phases et des livrables, Des formations/livres/tutoriaux disponibles.
- Inconvénients : Complexes, Plusieurs implémentations d'où confusion ou éloignement du concept d'origine.
Bibliographie
- Les livres et les cours citées comme sources d'informations et références.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.