Cours 2 Flashcards
À quoi servent les processus?
- Communication interne à l’équipe.
- Communication externe avec les parties prenantes.
- Évaluation et diagnostic des problèmes.
- Amélioration du processus existant.
- Structuration du travail à faire.
etc.
Quelles sont les qualités des exigences individuelles?
- Syntaxe et grammaire
- Structure d’écriture
- Utilisation du pluriel et de la négation
- Exigences composées
- Testabilité
- Indépendance du design
- Faisabilité
- Compréhensibilité
Pourquoi les fontières sont elles floues entre les domaines d’expertise en génie logiciel?
- Complexité: Le génie traditionnel se base sur des modèles simplifiés de réalités complexes. En logiciel, c’est le contraire.
- Conformité: Pas de loi fondamentale comme en Physique et le logiciel doit se conformer à des règles arbitraires parfois stupides.
- Invisibilité: Le logiciel n’a pas de réalité physique, ce qui rend difficile de voir les incompatibilités.
- Flexibilité: Un bon logiciel aura des mises-à-jours importantes qui peuvent toucher n’importe quelle partie de celui-ci.
Etc.
Avec quelles principales difficultés l’ingénieur logiciel doit-il composer?
- Besoin d’intégrer des compétences variées.
- Besoin de concevoir un produit final complexe.
- Nécéssité de communiquer une réalité invisible.
etc.
Solution = Faire une planification initiale destinée à minimiser les risques.
Quels sont les différents modèles de cycle de vie?
- Modèle Cascade en V, W ou X
- Modèle Incrémental
- Modèle Transformationnel
- Modèle Spirale
Quels sont les avantages d’un modèle cascade?
- Gestion facile
- Toutes les tâches se planifient (diagramme de Gantt, réseaux PERT)
- Points de contrôle précis permettant de décider si l’on va de l’avant.
Quand est-ce qu’un modèle cascade est approprié?
– Faible incertitude au niveau des besoins du
client (« client sait ce qu’il veut »),
– Faible incertitude technique,
– Réalisation répétitive,
– Peu d’aspects novateurs,
– Faible participation du client/utilisateurs,
– Pas d’urgence de voir le produit fini.
Si toutes les informations requises sont disponibles au début du projet.
Quel est le désavantage du modèle cascade?
Un changement mineur peut avoir des répercussions à travers tout le projet.
Donnez les caractéristiques du modèle incrémental/itératif.
- Itérations (cycles rapides) de production d’un produit foctionnel, chacune se concentrant sur une fraction des exigences.
- Les itérations sont indépendantes les unes des autres.
- Itérations typiques de 2 à 6 semaines.
- Besoin d’un projet fractionnable où une base d’exigences est connue au préalable.
- Approche utilisée par plusieurs processus Agiles, par exemple, SCRUM.
Donnez les avantages du modèle itératif/incrémental.
– Génère du code fonctionnel rapidement dès le début du projet.
– Plus de flexibilité : Moins coûteux de faire des changements.
– Gestion du risque plus facile : Une itération permet de passer à travers toutes les étapes de développement et d’identifier les problèmes.
– Chaque itération est un jalon (milestone) facile à gérer, comme une approche cascade.
Donnez les inconvénients du modèle itératif/incrémental.
– Les itérations sont rigides et ne permettent pas de retour en arrière à Sauf en créant de nouvelles exigences.
– Des problèmes d’architecture peuvent survenir parce que les requis ne sont pas tous connus au départ.
– Difficile de déterminer la fin du projet (scope creep).
Qu’est ce que le modèle transformationnel?
C’est un prototype évolutif:
- Prototype jetable (utilisé pour déterminer les exigences) ou non (utilisé comme produit final).
- Toutes les parties sont développées simultanément sans planification initiale : Peut être néfaste sur la modularisation.
- Itérations très rapides : Une journée à deux semaines.
Quels sont les avantages du modèle transformationnel?
- Cycles très rapides : On peut faire rapidement des corrections.
- Feedback plus etoffé : plus facile d’évaluer des prototypes que des documents papiers.
Quels sont les inconvénients du modèle transformationnel?
- Difficile à gérer Dépassement d’échéancier, de budgets, etc.
- Gold-plating: On peut détailler très longtemps une fonctionnalité qui finit aux poubelles.
- Réutilisation du prototype: Qualité du code souvent déficiente.
Quels sont les avantages du modèle spirale?
- Générateur de processus: Peut utiliser n’importe quel cycle de vie ( + mélanger).
- Analyse de risque très élaborée pour prioriser l’ordre des cycles.
- Prototypes fonctionnels disponible rapidement.
Quels sont les inconvénients du modèle spirale?
- Possibilité que le processus exécuté n’ait qu’une seule itération = cycle de vie cascade.
- Difficle à gérer dépassements d’échéanciers, de bidgets, etc.
- Processus très proche d’un projet particulier : difficile à réutiliser.
Quels sont les valeurs de l’Agile?
- Les individus et leurs interactions plus que les processus et les outils.
- Des logiciels opérationnels plus qu’une documentation exhaustive
- La collaboration avec les clients plus que la négociation contractuelle
- L’adaptation aux changements plus que le suivi d’un plan
Quels sont les principes de l’extreme programming?
- Test driven development (TDD)
- You ain’t gonna need it (YAGNI): On écrit juste assez de code pour faire passer les tests.
- Pair programming (PP): Tout le code est écrit avec deux développeurs sur un ordinateur.
- Refactoring: Le code écrit est ensuite révisé pour satisfaire aux critères de qualité.
- Le client doit être assis en permanence avec les développeurs.
- Itérations courtes (1 à 2 semaines)
- Exigences traitées par prioritées, changements possibles pendant itération
Quels sont les principes SCRUM?
• Backlog : Ensemble d’exigences, trié par scrum master (« value-driven »).
• Sprint : Itération de 2 à 4 semaines (portée fixe).
• Mêlée quotidienne (daily scrum) : Réunion debout où l’on répond aux trois questions suivantes :
– Qu’as-tu fait depuis hier ?
– Que penses-tu faire jusqu’à demain ?
– Y a-t-il des obstacles à ton travail ?
Quels sont les principes du Kanban?
Du japonais pour ‘enseigne’ ou ‘panneau d’affichage’.
La planification complète du travail est visible pour toute l’équipe
Le développeur prend une tâche du tableau et la remet une fois complétée.
Qu’est ce que le processus AUP?
Agile unified process: Adaptation du RUP/UPEDU pour la philosophie Agile.
Utilise essentiellement les mêmes activités que le RUP/UPEDU mais adapté pour l’agile, donc itératif (la gestion est séparée en plusieurs étapes) et incrémental (le produit est séparé en plusieurs fonctionnalités).
Quels sont les problèmes de l’Agile?
- Itérations trop courtes/mal planifiées
- Dépendance aux rétroactions
- Client absent
- Dépendances aux communications
- Dépendances externes plus risquées
- Manque d’une vue globale
Quels sont les problèmes du discipliné?
- Problème du write-only artefact : On écrit beaucoup de rapports qui ne sont finalement jamais lus.
- Problème du big upfront design: On crée une structure complexe pour un logiciel qu’on ne comprend pas parfaitement et on comprend réellement l’important qu’après avoir mis la main à la pâte.
- Problème de la communication indirecte: Communiquer à travers un rapport n’est jamais mieux que face à face.
- Problème du totalitarisme: Un besoin absolu de tout contrôler, même quand le risque est minime.
- Problème de sclérose : Impossibilité de déroger au processus, même quand la situation l’impose.
Quel fût l’objectif de la conférence de l’OTAN de 1968 sur la crise du logiciel?
Construire des bases théoriques et pratiques reconnues pour le développement logiciel comme pour les autres génies.
Qu’est-ce qu’un cycle de vie?
Ensemble de phases par lesquelles passe une entité de sa création à sa destruction.
Quelles sont les faiblesses du modèle cascade?
- Un changement mineur peut avoir des répercussions à travers tout le projet.
- La distance entre la vision initiale du client et le produit final implémenté peut être grande.