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.