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?
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?
Quelle est la définition du Génie Logiciel?
Quelle est la définition du Génie Logiciel?
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?
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?
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?
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?
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?
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?
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.
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?
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?
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?
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?
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?
Qu'est-ce qu'une méthodologie de développement en informatique?
Qu'est-ce qu'une méthodologie de développement en informatique?
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?
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?
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?
Comment les méthodes agiles diffèrent-elles des méthodologies classiques?
Comment les méthodes agiles diffèrent-elles des méthodologies classiques?
Quelles sont les caractéristiques des modèles séquentiels?
Quelles sont les caractéristiques des modèles séquentiels?
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?
Que sont les outils CASE et quel est leur rôle?
Que sont les outils CASE et quel est leur rôle?
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?
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é?
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?
Qu'est-ce qui caractérise un modèle itératif?
Qu'est-ce qui caractérise un modèle itératif?
Pourquoi la documentation est-elle moins importante dans les méthodes agiles?
Pourquoi la documentation est-elle moins importante dans les méthodes agiles?
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?
Quel est le principal objectif des outils CASE ?
Quel est le principal objectif des outils CASE ?
Quels sont les deux critères de classification des outils CASE ?
Quels sont les deux critères de classification des outils CASE ?
Citez un exemple d'outil de planification et son utilité.
Citez un exemple d'outil de planification et son utilité.
Quels types d'outils pourrait-on classer sous la catégorie 'Editeurs' ?
Quels types d'outils pourrait-on classer sous la catégorie 'Editeurs' ?
Quel outil de gestion de configuration est mentionné dans le texte ?
Quel outil de gestion de configuration est mentionné dans le texte ?
À quoi servent les outils de test mentionnés dans le document ?
À quoi servent les outils de test mentionnés dans le document ?
Qu'est-ce qui est inclus dans les 'Outils de documentation' ?
Qu'est-ce qui est inclus dans les 'Outils de documentation' ?
Quelle est la fonction des outils de support de procédé ?
Quelle est la fonction des outils de support de procédé ?
Citez un outil de traitement de langage et sa fonction.
Citez un outil de traitement de langage et sa fonction.
Pourquoi est-il important de classer les outils CASE ?
Pourquoi est-il important de classer les outils CASE ?
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 ?
Quelle est la différence entre un compilateur et un interprète ?
Quelle est la différence entre un compilateur et un interprète ?
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 ?
Cite un exemple d'outil de documentation et son utilisation.
Cite un exemple d'outil de documentation et son utilisation.
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?
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?
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?
Quels inconvénients peut-on rencontrer avec le modèle en V?
Quels inconvénients peut-on rencontrer avec le modèle en V?
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'?
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?
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?
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?
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?
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?
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?
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.
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?
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?
Quels sont les principaux inconvénients du modèle en cascade?
Quels sont les principaux inconvénients du modèle en cascade?
Quelles caractéristiques rendent le modèle en V 'facile à planifier'?
Quelles caractéristiques rendent le modèle en V 'facile à planifier'?
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?
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?
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?
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?
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?
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?
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?
Quelles étapes sont incluses dans le modèle en cascade?
Quelles étapes sont incluses dans le modèle en cascade?
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?
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?
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?
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?
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?
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?
Flashcards
Génie Logiciel
Génie Logiciel
Ensemble des méthodes, techniques et outils pour créer des logiciels, plus qu'uniquement la programmation.
Objectif du Génie Logiciel
Objectif du Génie Logiciel
Développer des logiciels satisfaisants, de qualité supérieure, respectant les délais et les coûts.
Problèmes sans méthodologie
Problèmes sans méthodologie
Logiciels qui ne répondent pas aux attentes, temps de réponse lent, respect insuffisant des délais et coûts élevés, maintenance complexe.
Software Engineering
Software Engineering
Signup and view all the flashcards
Satisfaire le client
Satisfaire le client
Signup and view all the flashcards
Qualité supérieure
Qualité supérieure
Signup and view all the flashcards
Délais raisonnables
Délais raisonnables
Signup and view all the flashcards
Coûts acceptables
Coûts acceptables
Signup and view all the flashcards
Analogie Génie Logiciel
Analogie Génie Logiciel
Signup and view all the flashcards
Piratage de logiciels
Piratage de logiciels
Signup and view all the flashcards
Métiers de GL
Métiers de GL
Signup and view all the flashcards
Outils CASE
Outils CASE
Signup and view all the flashcards
Développeur
Développeur
Signup and view all the flashcards
Analyste
Analyste
Signup and view all the flashcards
Architecte
Architecte
Signup and view all the flashcards
Testeur logiciel
Testeur logiciel
Signup and view all the flashcards
Chef de Projet
Chef de Projet
Signup and view all the flashcards
Expression de besoins
Expression de besoins
Signup and view all the flashcards
Méthodologie de développement
Méthodologie de développement
Signup and view all the flashcards
Cycle de vie d'un logiciel (SDLC)
Cycle de vie d'un logiciel (SDLC)
Signup and view all the flashcards
Motivations de l'utilisation de méthodologies
Motivations de l'utilisation de méthodologies
Signup and view all the flashcards
Méthodologies classiques
Méthodologies classiques
Signup and view all the flashcards
Méthodes agiles
Méthodes agiles
Signup and view all the flashcards
Modèle séquentiel
Modèle séquentiel
Signup and view all the flashcards
Modèle incrémental
Modèle incrémental
Signup and view all the flashcards
Modèle itératif
Modèle itératif
Signup and view all the flashcards
Quand utiliser une méthodologie X ?
Quand utiliser une méthodologie X ?
Signup and view all the flashcards
Avantages des méthodologies classiques
Avantages des méthodologies classiques
Signup and view all the flashcards
Avantages des méthodes agiles
Avantages des méthodes agiles
Signup and view all the flashcards
Exemples de méthodologies classiques
Exemples de méthodologies classiques
Signup and view all the flashcards
Exemples de méthodes agiles
Exemples de méthodes agiles
Signup and view all the flashcards
Choisir la méthodologie adaptée
Choisir la méthodologie adaptée
Signup and view all the flashcards
Classification fonctionnelle des CASE
Classification fonctionnelle des CASE
Signup and view all the flashcards
Exemples d'outils de planification
Exemples d'outils de planification
Signup and view all the flashcards
Exemples d'éditeurs
Exemples d'éditeurs
Signup and view all the flashcards
Gestion de configuration
Gestion de configuration
Signup and view all the flashcards
Outils de support de procédé
Outils de support de procédé
Signup and view all the flashcards
Outils de traitement de langage
Outils de traitement de langage
Signup and view all the flashcards
Outils de test
Outils de test
Signup and view all the flashcards
Outils de documentation
Outils de documentation
Signup and view all the flashcards
Classification par activité
Classification par activité
Signup and view all the flashcards
Exemple d'outil utilisé en conception
Exemple d'outil utilisé en conception
Signup and view all the flashcards
Exemple d'outil utilisé en programmation
Exemple d'outil utilisé en programmation
Signup and view all the flashcards
Exemple d'outil utilisé en test
Exemple d'outil utilisé en test
Signup and view all the flashcards
Rôles des professionnels du développement
Rôles des professionnels du développement
Signup and view all the flashcards
Modèle en Cascade
Modèle en Cascade
Signup and view all the flashcards
Modèle en Cascade - Phases
Modèle en Cascade - Phases
Signup and view all the flashcards
Avantages du Modèle en Cascade
Avantages du Modèle en Cascade
Signup and view all the flashcards
Inconvénients du Modèle en Cascade
Inconvénients du Modèle en Cascade
Signup and view all the flashcards
Quand utiliser le Modèle en Cascade ?
Quand utiliser le Modèle en Cascade ?
Signup and view all the flashcards
Modèle en V
Modèle en V
Signup and view all the flashcards
Avantages du modèle en V
Avantages du modèle en V
Signup and view all the flashcards
Inconvénients du modèle en V
Inconvénients du modèle en V
Signup and view all the flashcards
Quand utiliser le modèle en V ?
Quand utiliser le modèle en V ?
Signup and view all the flashcards
Caractéristiques du modèle en V
Caractéristiques du modèle en V
Signup and view all the flashcards
Le modèle en V - Vérification
Le modèle en V - Vérification
Signup and view all the flashcards
Le modèle en V - Validation
Le modèle en V - Validation
Signup and view all the flashcards
Le modèle en V - Tests
Le modèle en V - Tests
Signup and view all the flashcards
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.