Intra Flashcards
Identifiez les attentes d’un bon développement logiciel (6)
- Bonne qualité
- Respect des dates limites
- Optimisation des dépenses
- Expérience agréable
- Logiciel disponible 100%
- Feedback des usagers
Identifiez les qualités d’un bon logiciel (8)
UTILISATION - Peu de bogues - Répond aux besoins - Facilité d'utilisation PRODUIT - Maintenabilité - Tolérence aux pannes - Sécurité DONNÉES - Traçabilité - Portabilité
Identifiez comment respecter les dates limites (6)
- Planification du projet Jalons intermédiaires - Estimations selon les expériences précédentes Collecte de données en cours de projet - Produit toujours fonctionnel Intégration continue - Mise en production fréquente Livraison continue - Connaitre les avancements de chacun Réunion de suivi - Gestion des imprévus Planification d'alternatives
Identifiez comment bien utiliser les ressources (5)
- Garantir un effort constant Paralléliser les activités - Activités de complexité égales Design modulaire du code - Limiter les heures supplémentaires Cycles de temps fixe et court - Répartir les responsabilités de chacun Définir les compétences de chacun - Prévoir les activités d'opération dès l'implémentation Infrastructure-as-code
Identifiez les utilités d’un processus (6)
COMMUNICATION - Interne : Au sein de l'entreprise pour distribuer l'information - Externe : Certifications et demandes des clients ÉVALUATION DES PRATIQUES EN PLACE - Analyse de la situation - Solutions selon analyse PLANIFICATION DU TRAVAIL - Haut niveau (Général) - Orienté produit (Spécifique)
Définissez ce qu’est un SRS
Software Requirements Specification
- Transforme besoins abstraits en fonctionnalités concrètes et mesurables
- Défini la portée du projet
- Fractionne le projet
- Aide à la rédaction du contrat ($)
Définissez ce qu’est une exigence fonctionnelle
Décrit une action possible dans le projet
Ex. : Le système doit, dans son menu principal, permettre de modifier le nom d’utilisateur
Définissez ce qu’est une exigence non-fonctionnelle
Décrit une caractéristique/qualité du logiciel
Ex. : Le serveur doit être capable de gérer au moins cinq jeux simultanément
Définissez ce qu’est la norme IEEE 830
Gabarit standard pour un SRS
Identifiez les qualités d’une bonne exigence individuelle (7)
- Attention au pluriel
- Évite les négations
- Évite les exigences composées
- Testable
- Indépendant du design
- Faisable
- Compréhensible
Identifiez les qualités d’un document complet (8)
- Complétude : Tous les besoins sont présents
- Correct : Aucune exigence superflue
- Cohérence : Pas de contradiction
- Traçabilité : Numéro unique pour chaque exigence
- Organisation : Facilité à trouver l’information dans le doc
- Consicion : Niveau de détail adéquat
- Ambiguité : Définition d’un glossaire et réutilisation des termes
- Redondance : Aucune redondance
Définissez un récit utilisateur (user story)
Exigence traditionnelle plus haut niveau populaire en Agile
Définissez la structure d’une exigence sous forme de récit utilisateur (user story)
En tant que UTILISATEUR, quand CONTEXTE, je veux faire FONCTIONNALITÉ afin
de OBJECTIF
Identifiez les objectifs fixés suite à la conférence de l’OTAN de 1968 (3)
- Mieux comprendre le processus de création logiciel
- Intégrer le feedback utilisateur dès le début
- Ajouter des tests automatisés
Identifiez pourquoi les frontières sont floues dans les différents domaines du génie logiciel (4)
- Complexité : Tous les logiciels sont uniques
- Conformité : Pas de loi fondamentale
- Invisibilité : Difficile de voir les incompatibilités (Mettre une porte au plafond)
- Flexibilité : Mises à jour difficile à évaluer ($) Comparaison avec un bâtiment
Définissez ce qu’est un cycle de vie
Ensemble des phases par lesquelles passe une entité de sa création à sa destruction
Identifiez les éléments d’un cycle de vie (2)
- Phase : Temps entre deux jalons
- Jalon (milestone) : Définis
Identifiez les cycles de vie traditionnels (4)
- Modèle cascade : V, W, X
- Modèle incrémental (itératif)
- Modèle transformationnel
- Modèle spirale
Définissez les modèles cascades V et W
V
Uniquement les activités de développement
W
Ajout du QA à V (Deux V superposés)
Identifiez lorsque le modèle cascade est approprié (6)
- Faible incertitude des besoins
- Faible incertitude technique
- Peu novateur
- Pas d’urgence
- Réalisation répétitive
- Faible participation de l’utilisateur
Identifiez les avantages du modèle cascade (1)
- Facilité de gestion
Identifiez les avantages du modèle incrémental (itératif) (4)
- Génère du code fonctionnel rapidement
- Moins coûteux pour les changements (flexible)
- Facilite la gestion du risque
- Chaque itération -> approche cascade facile à gérer
Identifiez les inconvénients du modèle incrémental (itératif) (3)
- Itérations rigides ne permettent pas de retour en arrière
- Risque de problème d’architecture (requis pas tous connus)
- Difficile de déterminer la durée du projet
Définissez le modèle transformationnel
Prototypage évolutif
loop (Modification du prototype -> Test du prototype -> Demande de changement)
Identifiez les avantages du modèle transformationnel (2)
- Cycles très rapides
- Feedback étoffé directement sur le produit fréquemment
Identifiez les inconvénients du modèle transformationnel (3)
- Difficile à gérer (Dépassement d’échéancier et budget)
- Avancement d’une fonctionnalité qui ira à la poubelle
- Qualité du code déficiente à cause du prototypage
Identifiez les avantages du modèle spirale (3)
- Peut utiliser n’importe quel cycle de vie
- Analyse de risques élaborée
- Prototype fonctionnel rapidement
Identifiez les inconvénients du modèle spirale (3)
- Possible que le processus ait qu’une itération -> cascade
- Difficile à gérer (Dépassement d’échéancier et budget)
- Processus près du projet (peu réutilisable d’un projet à l’autre)
Définissez quand prendre le modèle cascade
Projet peu risqué ou tout est connu
Définissez quand prendre le modèle incrémental (itératif)
Projet avec une base d’exigences fractionnables
Définissez quand prendre le modèle transformationnel
Projet avec beaucoup d’incertitudes
Définissez quand prendre le modèle spirale
Projet complex à haut risque
Identifiez les principes de l’Agile (6)
- Accueillir positivement le changement
- Livrer fréquemment
- Travaille collaboratif entre users/dev
- Favoriser les dialogues face à face
- Minimiser le travail inutile
- Autonomie
Identifiez les principes de l’XP (5)
- Test Driven Development (TDD)
- You Ain’t Gonna Need It (YAGNI)
- Pair Programming (PP)
- Refactoring
- Client présent en PERMANENCE
Identifiez les principes de SCRUM (3)
- Backlog : Ensemble d’exigences
- Sprint : Itération de 2 à 4 semaines
- Daily Scrum : Réunion répondant à trois question
Fait depuis hier
Faire pour demain
Obstacles?
Identifiez les problèmes de discipline (5)
- Write-only artefact : Rapports jamais lus
- Big up-front design : Structure complète sans tout comprendre
- Communication indirecte : les non-dits ne sont pas la
- Totalitarisme : Vouloir trop de contrôle
- Sclérose : Rigide aux dérogations
Identifiez les problèmes de l’Agile (5)
- Itérations trop courtes : Manque de temps
- Dépendance aux rétroactions : Arrive trop tard et opinion based
- Client absent
- Mauvaise planification des itérations
- Dépendance aux communications
- Manque d’une vue globale