Chapitre 2 Flashcards
Génie
Consiste à développer des produits, en utilisant des principes et méthodes scientifiques bien définis.
Logiciel
Collection de code de programmation exécutable, des bibliothèques associées et de documentations.
Lorsque le logiciel est conçu pour une exigence spécifique, est appelé un ______
produit logiciel
Étapes de Modèle en cascade
Exigences
Analyse
Conception
Implémentation
Vérification
Déploiement
Maintenance
Modèle en cascade: Plus on avance dans les étapes, plus…
un changement coûte cher
Modèle en cascade: avantages
- Simple et facile à suivre
- Axé sur la documentation
- Permet une conception bien pensée
Modèle en cascade: desavantatges
- Purement linéaire
- Trop rigide
- Pas de feedback du client avant la livraison
- Vérification tardive
Modele en V:
Opération, Maintenance
Exigences <-> Validation
Concep Architecturale <-> Vérifi Système
Concep détaillée <-> Intégration, Tests, Vérif
Implémentation
modèle en V: avantages
- simple, idéal pour les petits projets
- offrir de meilleures chances de succès grâce aux plans de tests pour chacune des étapes et grâce à la planification régulière des mises à jour
Modele en V: desavantages
très rigide et n’est donc pas idéal pour les applications ou les logiciels qui nécessittent des changements imprévus
Le processus de développement logiciel est à la base ______
itératif
Chaque version a pour but de _______
se rapprocher du système cible
Modèle code-and-fix:
- Implémente première version
- Modifie jusqu’à client satisfait
- Maintenance -> retrait
Modèle code-and-fix: avantages
- Moyen le plus facile de développer un logiciel
- Pertinent pour un petit logiciel interne utilisé par peu de personnes
Modèle code-and-fix: desavantages
- le plus cher sur le long terme
- Pas de conception/spécification
Modèle par prototypage rapide:
- Analyse des exigences
- Conception rapide -> Implémentation -> Vérification et Validation -> Raffinement ->
- Production du système
Modèle par prototypage rapide: avantages
- Pertinent quand les exigences ne sont pas clairement définies
- Pertinent quand les exigences sont susceptibles de changer durant le développement
Modele en Spirale:
A chaque etape:
1. Déterminer les objectifs
2. Spécifier les contraintes
3. Produire des
alternatives
4. Identifier les risques
5. Résoudre les risque
6. Développer et vérifier
7. Planifier prochain cycle
Processus iteratif: avantages
- Réutilisation de prototypes
- Produit visible très tôt
- Souci de vérification et validation du client anticipé
- Intégration facilitée, moins de raffinement
Processus iteratif: desavantages
- Retravaille chaque itération
- Pas de plan de maintenance.
- Produit livré à la fin
raffinement par étapes (stepwise refinement)
Se concentrer sur les aspects les plus importants à ce moment, laissant les moins critiques pour plus tard. Chaque aspect sera géré dans l’ordre d’importance actuelle.
Développement incrémental
- raffinement par étapes (stepwise refinement)
- Chaque incrément abouti à une livraison
- Plus facile d’évaluer le progrès
processus incrémental: avantages
- Développer par ordre de priorité
- Livraisons de composants rapides
- Facilement mesurer le progrès
processus incrémental: desavantages
- Pas de processus visible et clair à suivre (activités non existantes ou processus trop complexe).
- Tâche d’intégration prend plus d’importance
- Pas de plan de maintenance
Itération et incrémentation (I&I)
Chaque incrément est le résultat de plusieurs itérations
Avantages du I&I
- Tous les flux d’activités (workflow) sont impliqués dans chaque incrément
- Plusieurs opportunités de tester, recevoir du feedback et s’ajuster
- Robustesse de l’architecture peut être déterminée tôt dans le développement
- Livrables spécifiques pour chaque incrément et chaque workflow
- On peut atténuer et résoudre les risques plus tôt
Le processus agile est dirigé par…
la description des spécifications du client (scénarios)
Le processus agile reconnait que…
les plans ne sont pas toujours respectés
Le processus agile favorise la communication entre _______
développeurs
Le processus agile développe le logiciel itérativement avec plus d’emphase sur…
les activités de construction
Le processus agile livre plusieurs ______ du logiciel
incréments
Programmation extrême (XP)
- Projet divisé en itérations
- Chaque jour: réunion debout, formation des paires, rédiger les tests, programmer
- Chaque semaine, le client fait des tests à partir des scénarios et on ajuste les prochaines itérations en conséquent
Dans développement dirigé par les tests, chaque grain de fonctionnalité doit d’abord commencer par un test qui sert de _______ et _________ pour le code.
spécification, validation
Modèle Scrum:
- Carnet du produit
- Carnet de sprint
- Sprint: incrément (30j)
- Mêlée quotidienne
Carnet du produit:
liste priorisée de tout ce que le système doit inclure
Carnet de sprint:
toutes les tâches pour le sprint courant. Peut être modifié si changement arrive
Sprint:
incrément (30j) livre une fonctionnalité exécutable, test et documentation en continu
Mêlée quotidienne:
courte réunion debout de planification de tout le monde. Pas une session de conception
Équipe Scrum:
- Propriétaire du produit
- Scrum master
- Équipe de développement
Scrum master
- Leader au service de l’équipe
- s’assure du respect du processus de dev
- Coach l’équipe de dev (personne très expérimentée)
- Facilitateur