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
Identifiez les méta-modèles selon l’Object Management Group (OMG) (4)
- M3 : Méta-méta modèle .. Besoins
- M2: Méta-modèle .. Document d’exigences
- M1 : Modèle .. Diagramme de classes
- M0 : Monde réel .. Code
Identifiez les éléments d’un processus (3)
- Activité : Élément de travail (évalue/rédige un doc)
- Artéfact : Élément d’information (document)
- Rôle : Compétences et responsabilités
Définissez ce qu’est une discipline
Ensemble de pratiques et activités reliées qui représentent un domaine (Requis, Analyse et conception, ..)
Identifiez les paires discipline/artéfact principal de l’UPEDU (6)
- Requis : Cas d’utilisation
- Analyse et conception : Architecture et modèle de conception
- Implémentation : Programmes
- Tests : Plan de tests et cas de test
- Gestion de projet : Diagramme de Gantt
- Gestion de configuration : Référentiel (SVN, Git)
Comparez un besoin et une exigence
Besoin : Flou et haut niveau
Exigence : Besoin documenté sur ce que le produit logiciel devrait faire (SRS)
Identifiez des activités de la discipline des requis dans l’UPEDU (5)
- Elicit Stakeholder Request
- Find Actors and Use Cases
- Structure the Use Case Model
- Detail a Use Case
- Review Requirements
Identifiez les approches traditionnelles de saisie d’exigences (3)
- Rencontre avec les parties prenantes
Étude de marché, réunions, interviews, sondages, questionnaires… - Introspection et remue-méninges
- Analyse de documents existants
Identifiez les approches cognitives de saisie d’exigences (3)
- Analyse de tâches, du processus d’affaire
Trouver les endroits nécessitant un logiciel - Technique d’acquisition de connaissances
Identifiez les trois approche de résolution d’un problème
- Approche en logique
- Approche en science
- Approche en ingénierie
Définissez ce qu’est un problème wicked
Problème qui n’est pas clairement défini dont la solution optimale n’est pas clairement défini
Identifiez les approches de résolution par heuristiques pour les problèmes wicked (5)
- Définition de sous-buts
- Approximations successives
- Essais-erreurs
- Diagramme
- Analogie
Identifiez les activités cognitives du concepteur (4)
- Acquisition : Obtention de l’information
- Crystalliser : Production des informations sur la solution
- Synchroniser : Communication de l’information (Diffusion)
- Valider : Évaluation de la qualité de l’information
Identifiez les difficultés associées à la génération de solutions (3)
- Fixation sur une idée
- Manque de créativité
- Se perdre dans la recherche d’information
Définissez l’approche rationnelle
Ne pas prendre de décisions avant d’avoir toutes les informations pertinentes (Irréaliste dans un projet logiciel)
Définissez l’approche naturaliste
Sauter sur la première solution qui semble fonctionner (Pas idéal problème complexe)
Définissez l’approche satisficing
Rechercher des informations jusqu’à avoir une gamme de solutions pertinentes et prendre l’optimal
Identifiez des activités de la discipline de l’analyse et de la conception dans l’UPEDU (5)
- Architectural Analysis
- Use-Case Analysis
- Use-Case Design
- Class Design
- Review the Architecture and Design
Identifiez les aspects importants de l’implémentation (4)
- Programmer
- Déboguer
- Tests unitaires
- Intégrer
Identifiez des activités de la discipline de l’implémentation dans l’UPEDU (7)
- Plan System Integration
- Plan Component Integration
- Implement Components
- Perform Unit Tests
- Fix a Defect
- Review Code
- Integrate Systems
Identifiez le contenu d’un guide de programmation (3)
- Niveau de documentation du code
- Restrictions de programmation
- Conventions de nommage
Identifiez des principes de programmation populaires (4)
- Don’t Repeat Yourself (DRY)
- Keep It Simple Stupid (KISS)
- You Ain’t Gonna Need It (YAGNI)
- SOLID
Identifiez les approches d’intégration (6)
- Bottom-up : Aspects matériels importants -> Création de drivers
- Top-down : Interfaces importantes -> Création de stubs
- Par silo : Par module indépendant
- En étoile : À partir d’un élément central critique
- Par bus : À travers un canal commun de communication
- Par microservices : Petits logiciels indépendants
Associez chaque type de test à la compétence nécessaire (13)
- Débogage / Implémenteur
- Tests unitaires / Implémenteur
- Tests d’intégration / Intégrateur
- Tests de système / Testeur
- Tests d’acceptation / Client
- Tests de charge / SysAdmin
- Tests de vulnérabilités / Expert en sécurité
- Tests de migration / SysAdmin
- Tests de régression / Testeur
- Tests de conversion / Expert en base de données
- Tests de mise en production (MEP) / SysAdmin
- Test Alpha / Utilisateurs choisis
- Test Beta / Utilisateurs
Identifiez des activités de la discipline de tests dans l’UPEDU (6)
- Plan Test
- Design Test
- Design Test Classes
- Implement Test Components
- Execute Tests
- Evaluate Tests
Identifiez le contenu d’un plan de tests (3)
- Planification des ressources
- Choix des stratégies pour chaque type de test
- Objectif des tests
Ce document évolue avec les itérations
Identifiez les facteurs de qualité importants pour un projet (3)
- ISO 25010 Qualité en utilisation (boite noire)
- ISO 25010 Qualité du produit (boite blanche)
- ISO 25012 Qualité des données
Identifiez les aspects importants de la gestion de projet (4)
- Planification des itérations
- Assignation des ressources
- Gestion des risques
- Suivi de l’avancement
Définissez ce qu’est un risque
Variable pouvant mettre en danger ou réduire le succès du projet
Conséquence d’un manque d’information
Identifiez les types de risque (2)
- Direct/Indirect
- Connu/Inconnu
Identifiez les attributs d’un risque (3)
- Probabilité d’occurence : Faible, moyen, ..
- Impact potentiel : Mineur, modéré, ..
- Niveau de risque : Proba * Impact
Identifiez les stratégies de gestion de risques (5)
- Accepter : Vivre avec
- Éviter : Réorganiser pour éliminer
- Mitiger : Réduire la proba ou l’impact
- Contourner : Planifier un plan B
- Transférer : Sous-contracter
Définissez le principe du Iron Triangle
En priorisant un pôle, on s’éloigne systématiquement des deux autres
Identifiez les pôles du Iron Triangle en génie logiciel (3)
- Portée plus grande
- Meilleure qualité
- Échéancier plus serré
Identifiez les étapes de l’approche des low-hanging fruits (3)
- Évaluer l’effort de chaque tâche
- Évaluer le bénéfice de chaque tâche
- Ordonnancer selon bénéfice/effort
Identifiez les étapes du planning poker (SCRUM poker) (4)
- Estimation de la tâche sans le montrer aux autres
- Révélation des estimations
- Justification des estimations extrêmes (plus haute et plus basse)
- Recommencer à 1. jusqu’à un consensus
Identifiez des activités de la discipline de gestion de projet dans l’UPEDU (6)
- Develop Measurement Plan
- Plan Phases and Iterations
- Review Project Planning
- Develop Iteration Plan
- Schedule and Assign Work
Définissez ce qu’est un processus
Ensemble d’activités partiellement ordonnées dont l’objectif est de présenter comment l’information est transformée
Définissez ce qu’est un projet
Ensemble de tâches ordonnées dont l’objectif est de planifier l’utilisation des ressources
Définissez ce qu’est une activité
Transformation de l’information
Définissez ce qu’est une tâche
Utilisation des ressources (Lien acteur/activité)
Définissez ce qu’est une marge de manoeuvre dans un projet
Zone tampon laissé entre la fin du projet et la remise du projet pour les imprévus
Identifiez les approches d’estimation de la marge nécessaire (3)
- Agile : Deux fois l’écart-type
- PERT : Diagramme avec chemin critique
- Simul. Monte Carlo : Évaluation de la proba de retard
Définissez ce qu’est le principe LEAN
Éliminer toutes les activités inutiles
Définissez ce qu’est le principe Kaizen
Amélioration continue
Définissez ce qu’est le principe Genchi Genbutsu
Management By Wandering Around (MBWA)
Trouver la cause racine du problème sur le terrain
Définissez ce qu’est le principe Just-in-time/Pull
Travail sur demande
Définissez ce qu’est le principe PDCA
Plan the projet
Do the project
Compare the results with the plan
Act by correcting problems
Identifiez les vérifications faites par l’analyse de processus (5)
- Éléments de trop
- Éléments manquants
- Complexité des éléments
- Cycle de vie
- Ordonnancement
Définissez ce qu’est une analyse qualitative
Interprétation d’observations, souvent basée sur un
jugement d’expert
Définissez ce qu’est la codification
Transformation des données qualitatives en données quantitatives (Prob. de perte de contexte)
Définissez ce qu’est l’approche GQM
Goal
Question(s)
Metric(s)
Identifier la hiérarchie des échelles de mesure (4)
- Échelle ratio
- Échelle intervalle
- Échelle ordinale
- Échelle nominale
Un niveau supérieur englobe toutes les propriétés des niveaux inférieurs
Définissez ce qu’est l’échelle nominale
Classification selon des catégories sans relations hiérarchiques
Définissez ce qu’est l’échelle ordinale
Classification selon des catégories avec relations hiérarchiques abstraites (pas une mesure précise)
Exemple : Chandail small, medium, …
Définissez ce qu’est l’échelle intervalle
Classification selon des mesures entières ou fractionnaires avec ABSENCE du zéro absolu non-arbitraire
Exemple : Température (Deg Celsius)
Définissez ce qu’est l’échelle ratio
Classification selon des mesures entières ou fractionnaires avec PRÉSENCE du zéro absolu non-arbitraire
Exemple : Longueur (m)
Identifiez les raisons de l’importance des mesures (5)
- Comprendre
- Évaluer
- Contrôler
- Prédire
- Améliorer