Untitled Quiz
76 Questions
2 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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?

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?

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?

<p>Le non-respect des délais et des coûts peut entraîner des projets échoués et une insatisfaction des clients.</p> Signup and view all the answers

Quelles analogies peuvent être faites entre le Génie Logiciel et d'autres types de génie?

<p>Des analogies peuvent être établies avec le Génie Civil et le Génie Mécanique.</p> Signup and view all the answers

Quelle est la définition du Génie Logiciel?

<p>C'est l'ensemble des méthodes, techniques et outils pour produire un logiciel, au-delà de la seule programmation.</p> Signup and view all the answers

Comment la maintenance des logiciels est-elle impactée par l'absence de méthodologie?

<p>Elle devient trop chère et difficile, entraînant des difficultés dans la gestion des logiciels.</p> Signup and view all the answers

Quels doivent être les résultats d'un bon processus de Génie Logiciel?

<p>Des logiciels de qualité, conformes aux attentes, livrés dans les temps et respectant le budget.</p> Signup and view all the answers

Quels défis peuvent survenir si les exigences des clients ne sont pas satisfaites?

<p>Des clients insatisfaits, des pertes économiques pour le fournisseur, et des retours négatifs sur le produit.</p> Signup and view all the answers

Comment le développement logiciel peut-il être amélioré par le recours à des méthodologies?

<p>Il peut être amélioré en structurant le processus, réduisant les erreurs et optimisant les coûts.</p> Signup and view all the answers

Quels sont les principaux rôles impliqués dans le processus de développement logiciel?

<p>Développeur, Analyste, Architecte, Testeur et Chef de Projet.</p> Signup and view all the answers

Que signifie l'acronyme CASE et son utilité dans les activités de génie logiciel?

<p>CASE signifie 'Computer-Aided Software Engineering' et il est utilisé pour optimiser les différentes activités du développement logiciel.</p> Signup and view all the answers

Citez trois exemples d'outils CASE utilisés dans les projets de génie logiciel.

<p>Compilateurs, éditeurs et débogueurs.</p> Signup and view all the answers

Quel est le rôle d'un Chef de Projet dans un projet de développement logiciel?

<p>Le Chef de Projet coordonne l'équipe, gère le planning et s'assure que les objectifs sont atteints.</p> Signup and view all the answers

Pourquoi est-il important d'analyser les besoins dans le processus de développement logiciel?

<p>L'analyse des besoins permet de comprendre les exigences des utilisateurs et de définir les fonctionnalités du logiciel.</p> Signup and view all the answers

Quel est l'impact d'un débogueur dans le processus d'implémentation?

<p>Un débogueur aide à identifier et à corriger les erreurs dans le code durant l'implémentation.</p> Signup and view all the answers

Comment le rôle d'un Analyste diffère-t-il de celui d'un Développeur?

<p>L'Analyste se concentre sur la collecte et l'analyse des exigences, tandis que le Développeur se concentre sur l'écriture du code.</p> Signup and view all the answers

Quelles activités sont majoritairement réalisées lors de la phase de conception?

<p>La modélisation des systèmes, la définition de l'architecture et l'établissement des spécifications techniques.</p> Signup and view all the answers

Qu'est-ce qu'une méthodologie de développement en informatique?

<p>C'est un ensemble d'activités participant à la production d'un logiciel.</p> Signup and view all the answers

Quels sont les deux types principaux de méthodologies de développement mentionnés?

<p>Les méthodologies classiques et les méthodes agiles.</p> Signup and view all the answers

Pourquoi les méthodologies de développement sont-elles considérées comme complexes?

<p>Elles dépendent fortement des acteurs qui dirigent les activités.</p> Signup and view all the answers

Quel est le but principal d'utiliser une méthodologie de développement?

<p>Découper des projets importants et affecter correctement les tâches.</p> Signup and view all the answers

Comment les méthodes agiles diffèrent-elles des méthodologies classiques?

<p>Elles se concentrent sur des livraisons petites et fréquentes et moins sur la documentation.</p> Signup and view all the answers

Quelles sont les caractéristiques des modèles séquentiels?

<p>Ils ont des étapes clairement définies et une documentation très fournie.</p> Signup and view all the answers

Quelle est l'une des motivations principales derrière l'utilisation des méthodologies de développement?

<p>Anticiper et gérer les risques.</p> Signup and view all the answers

Que sont les outils CASE et quel est leur rôle?

<p>Ce sont des outils de support qui aident dans le processus de développement logiciel.</p> Signup and view all the answers

Dans quel type de projet est-il plus approprié d'utiliser les méthodes agiles?

<p>Dans des projets de petite et moyenne taille.</p> Signup and view all the answers

Quel modèle de développement implique un processus peu flexible et très structuré?

<p>Le modèle séquentiel.</p> Signup and view all the answers

Comment la réduction de la complexité est-elle une motivation dans le choix d'une méthodologie?

<p>Elle facilite la gestion et la compréhension des projets.</p> Signup and view all the answers

Qu'est-ce qui caractérise un modèle itératif?

<p>Il repose sur des cycles de développement répétitifs pour affiner le produit.</p> Signup and view all the answers

Pourquoi la documentation est-elle moins importante dans les méthodes agiles?

<p>Parce qu'elles privilégient l'interaction directe et le développement rapide.</p> Signup and view all the answers

Quel est l'impact de l'affectation correcte des tâches dans une méthodologie de développement?

<p>Cela améliore l'efficacité et la productivité de l'équipe de développement.</p> Signup and view all the answers

Quel est le principal objectif des outils CASE ?

<p>Automatiser les tâches et gérer le projet de développement.</p> Signup and view all the answers

Quels sont les deux critères de classification des outils CASE ?

<p>D'un point de vue fonctionnel et d'un point de vue activité.</p> Signup and view all the answers

Citez un exemple d'outil de planification et son utilité.

<p>Microsoft Project, utilisé pour la gestion des délais et des ressources dans un projet.</p> Signup and view all the answers

Quels types d'outils pourrait-on classer sous la catégorie 'Editeurs' ?

<p>Les éditeurs de texte comme vi et GIMP pour l'édition d'image.</p> Signup and view all the answers

Quel outil de gestion de configuration est mentionné dans le texte ?

<p>GitHub.</p> Signup and view all the answers

À quoi servent les outils de test mentionnés dans le document ?

<p>Ils sont utilisés pour réaliser des tests unitaires et assurer la qualité du code.</p> Signup and view all the answers

Qu'est-ce qui est inclus dans les 'Outils de documentation' ?

<p>Documents de projet et documents de code.</p> Signup and view all the answers

Quelle est la fonction des outils de support de procédé ?

<p>Ils aident à générer du code et offrent des outils d'assistance.</p> Signup and view all the answers

Citez un outil de traitement de langage et sa fonction.

<p>Un compilateur, qui traduit le code source en code machine.</p> Signup and view all the answers

Pourquoi est-il important de classer les outils CASE ?

<p>Cela permet de mieux comprendre leurs fonctions et leur efficacité dans divers aspects du développement.</p> Signup and view all the answers

Quel est un métier qui pourrait utiliser les outils de gestion de configuration ?

<p>Développeur.</p> Signup and view all the answers

Quelle est la différence entre un compilateur et un interprète ?

<p>Un compilateur traduit l'intégralité d'un programme, tandis qu'un interprète exécute le code ligne par ligne.</p> Signup and view all the answers

Quel rôle les outils de test jouent-ils dans le développement ?

<p>Ils garantissent la fiabilité et la performance du logiciel en détectant les défauts.</p> Signup and view all the answers

Cite un exemple d'outil de documentation et son utilisation.

<p>Doxygen, utilisé pour générer de la documentation à partir du code source.</p> Signup and view all the answers

Quels sont les moments appropriés pour utiliser le modèle en V dans le développement logiciel?

<p>Lors de la création d'une nouvelle version d'un produit existant et lors du portage d’un produit sur une autre plateforme.</p> Signup and view all the answers

En quoi le modèle en V diffère-t-il du modèle en cascade?

<p>Le modèle en V met l’accent sur la vérification et la validation, avec des tests réalisés en parallèle des autres activités.</p> Signup and view all the answers

Quels avantages principaux sont associés à l'utilisation du modèle en V?

<p>Il accroît la qualité du logiciel en se concentrant sur les tests et la validation, et facilite la planification dans la gestion de projets.</p> Signup and view all the answers

Quels inconvénients peut-on rencontrer avec le modèle en V?

<p>Il ne gère pas explicitement les changements des spécifications et ne prend pas en compte les activités d’analyse de risque.</p> Signup and view all the answers

Pourquoi le modèle en V est-il considéré comme 'facile à utiliser'?

<p>Parce qu'il offre une structure claire avec des phases distinctes dédiées aux tests et à la validation.</p> Signup and view all the answers

Comment le modèle en V aide-t-il à améliorer la qualité du logiciel?

<p>En intégrant des tests réguliers et en validant chaque livrable tout au long du développement.</p> 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?

<p>Car toute modification des spécifications peut compliquer la validation et nécessiter des retours en arrière dans le processus.</p> Signup and view all the answers

Quel rôle les tests jouent-ils dans le modèle en V?

<p>Les tests sont parallèles aux autres activités et jouent un rôle central dans la vérification et la validation du produit.</p> Signup and view all the answers

D'où provient la complexité d'intégrer des modifications dans le modèle en V?

<p>La complexité vient du fait que le modèle ne prévoit pas de processus pour gérer les changements en cours de développement.</p> 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?

<p>Le modèle en cascade est un processus linéaire où chaque phase doit être terminée avant de passer à la suivante. Il est considéré comme académique en raison de sa structure claire et de sa facilité d'utilisation pour les étudiants.</p> 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?

<p>Il permet d'identifier et de résoudre les problèmes dès leur apparition, réduisant ainsi le risque de défauts importants à la livraison.</p> Signup and view all the answers

Mentionnez un domaine où le modèle en V n'est pas idéal.

<p>Il n'est pas idéal pour des projets où les exigences évoluent rapidement.</p> Signup and view all the answers

Quels sont les avantages du modèle en cascade en matière de gestion de projet?

<p>Il offre une structure organisée, est facile à comprendre pour une équipe inexpérimentée et est idéal lorsque la qualité est plus importante que les délais et les coûts.</p> Signup and view all the answers

Quel est le résultat d'une mauvaise gestion des spécifications dans le modèle en V?

<p>Une mauvaise gestion peut conduire à des produits qui ne répondent pas aux attentes des utilisateurs.</p> Signup and view all the answers

Quels sont les principaux inconvénients du modèle en cascade?

<p>Les besoins des clients sont souvent instables et le produit n'est visible qu'à la fin du processus. De plus, une phase ne peut commencer tant que celle précédente n'est pas terminée.</p> Signup and view all the answers

Quelles caractéristiques rendent le modèle en V 'facile à planifier'?

<p>Sa structure en phases distinctes et ses livrables testables permettent une planification claire.</p> Signup and view all the answers

Pourquoi le modèle en cascade peut-il être considéré comme sensible aux nouveaux besoins?

<p>Il impose que chaque phase soit complétée avant de commencer la suivante, rendant difficile l'adaptation aux changements de besoins en cours de projet.</p> Signup and view all the answers

Quelle est l'importance de la validation dans le modèle en V?

<p>La validation assure que le produit final répond aux spécifications initiales et satisfait les besoins des utilisateurs.</p> Signup and view all the answers

Quel est l'impact de la faible implication du client dans le modèle en cascade?

<p>La faible implication du client peut mener à des divergences entre les attentes et les résultats finaux, car le produit n'est visible qu'à la fin.</p> Signup and view all the answers

Comment le modèle en V aborde-t-il la documentation des tests?

<p>Chaque livrable documenté doit être testé pour assurer qu'il respecte les critères de qualité.</p> Signup and view all the answers

Dans quel type de projet le modèle en cascade fonctionne-t-il mieux?

<p>Il fonctionne mieux dans les projets où les exigences sont bien définies et peu susceptibles de changer.</p> Signup and view all the answers

Pourquoi le modèle en cascade est-il considéré comme facile à comprendre?

<p>Sa structure étape par étape permet aux membres de l'équipe de comprendre clairement les objectifs de chaque phase.</p> 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?

<p>Il privilégie la qualité, même si cela signifie que les coûts et délais peuvent être moins nombreux.</p> Signup and view all the answers

Quelles étapes sont incluses dans le modèle en cascade?

<p>Les étapes incluent la spécification, la conception, l'implémentation, les tests, le déploiement et la maintenance.</p> Signup and view all the answers

Quelle est la principale raison pour laquelle le modèle en cascade peut devenir problématique?

<p>La rigidité du modèle peut rendre difficile l'intégration de nouvelles exigences une fois que le projet est en cours.</p> Signup and view all the answers

En quoi le modèle en cascade peut-il influencer la dynamique de l'équipe?

<p>Il peut renforcer la discipline au sein de l'équipe en suivant strictement les phases définies.</p> Signup and view all the answers

Pourquoi la gestion du temps est-elle un facteur critique dans le modèle en cascade?

<p>Chaque phase dépend de l'achèvement de la précédente, donc un retard dans une phase impacte l'ensemble des délais du projet.</p> Signup and view all the answers

Quel type de projets bénéficierait le moins du modèle en cascade?

<p>Les projets nécessitant une flexibilité ou des ajustements fréquents des exigences bénéficieront le moins de ce modèle.</p> Signup and view all the answers

Comment le modèle en cascade traite-t-il l'évaluation des risques?

<p>Les risques sont souvent décalés vers la fin du projet, ce qui peut poser problème à mesure que le délai de livraison approche.</p> Signup and view all the answers

Quel est le rôle des livrables dans le modèle en cascade?

<p>Chaque phase produit des livrables spécifiques qui sont essentiels pour avancer à la phase suivante.</p> 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.

Quiz Team

Related Documents

More Like This

Untitled Quiz
37 questions

Untitled Quiz

WellReceivedSquirrel7948 avatar
WellReceivedSquirrel7948
Untitled Quiz
19 questions

Untitled Quiz

TalentedFantasy1640 avatar
TalentedFantasy1640
Untitled Quiz
55 questions

Untitled Quiz

StatuesquePrimrose avatar
StatuesquePrimrose
Untitled Quiz
18 questions

Untitled Quiz

RighteousIguana avatar
RighteousIguana
Use Quizgecko on...
Browser
Browser