Cours 4.1 Flashcards

1
Q

Quel est l’objectif de l’espace de définition du problème?

A

Comprendre le problème et son domaine d’application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quel est l’objectif de l’espace de définition de la solution?

A

Comprendre comment réaliser la solution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quels sont les aspects importants de l’implémentation?

A
  • Programmer
  • Déboguer
  • Tester unitaire
  • Intégrer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qu’est ce que le plan d’intégration?

A

C’est l’ordre d’intégration des sous-systèmes en builds et comment ces builds sont intégrés dans un système fonctionnel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelles est le contenu du guide de programmation?

A
  • Niveau de documentation du code : Qu’est-ce qui doit être commenté et comment?
  • Restrictions de programmation : Y’a-t-il certains mécanismes du langage qu’on n’utilise pas?
  • Conventions de nommage : Comment rédiger les noms de variables, de fonctions, de classe, etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quels sont les fondements de l’approche de création du guide de programmation?

A
  • Généralement sous la responsabilité de l’organisation
  • Créé itérativement selon les besoins des équipes
  • Adapté au besoins de l’organisation, du projet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quels sont les principes fondamentaux de programmation?

A
  • DRY: Don’t repeat yourself.
  • KISS: Keep it simple, stupid!
  • YAGNI : You ain’t gonna need it. Éviter de planifier des structures trop complexes.
  • SOLID
  • Guide de microsoft
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que testent les tests unitaires?

A
  • Paramètres corrects et incorrects
  • Retour de fonction corrects et incorrects
  • Erreurs et exceptions possibles
  • Préconditions et postconditions
  • Invariants de classe
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Que se passe-t-il après un commit?

A
  • Lancement des tests unitaires
  • Intégration automatique
  • Lancement des tests de système sur le build
  • Autres tests (performance, sécurité, métriques de qualité du code, etc).
  • Transfert du code source à l’environnement suivant.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quelles sont les autres approches d’implémentation?

A
  • Pair programming (PP)
  • Double commit
  • Test driven development (TDD)
  • Refactoring
  • Intégration continue et tests automatisés
  • Revue de code formelle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce que l’approche rationnelle?

A

C’est ne pas prendre de décision avant d’avoir toutes les information pertinentes. C’est une approche irréaliste en logiciel étant donné qu’il y a une infinité de détails pour chaque problème.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce que l’approche naturaliste?

A

C’est sauter sur la première solution qui semble marcher. Elle n’est pas idéale pour des problèmes complexes où un échec pourrait être critique. Ex.: Eilmer de Malmesbury.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce que le point milieu?

A

Rechercher des informations jusqu’à trouver une gramme de solutions parmi laquelle s’en trouve une SUFFISAMMENT SATISFAISANTE (Satisficing).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qu’est-ce qui n’est pas testé par les tests unitaires?

A
  • Est-ce que ça interragit correctement avec une autre fonction? -> INTÉGRATION
  • Est-ce que ça fonctionne? -> VÉRIFICATION
  • Est-ce que ça correspond aux besoins du client -> VALIDATION
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quelles sont les différentes approches d’intégration selon l’architecture et quand sont-ils utilisés?

A
  • Bottom-up : Quand les aspects matériels sont importants, en créant seulement des drivers.
  • Top-down : Quand les interfaces sont importantes, en créant seulement des stubs.
  • Par silo : Par paquetage, par module relativement indépendant
  • En étoile : À partir d’un élément central critique (ex.: plugiciel, plugin)
  • Par bus : À travers un canal commun de communication, un portail commun, etc.
  • Par microservices : Des petits logiciels qui fonctionnent indépendamment les uns des autres.
  • Etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

[RAPPEL] Quelles sont les autres approches de sasies d’exigences?

A
  • Entrevues, questionnaires et sondages
  • Introspection et brainstorming
  • Analyse et brainstorming
  • Analyse de documents existants
  • Analyse de tâche
  • Observations participatives et shadowing
  • Raffinement de prototypes
  • Participation du client au développement
  • Recherche par un community manager
17
Q

Quelles sont les activités de l’UPEDU? (Pas les activités de test, seulement les activités de l’UPEDU)

A
PLAN INTEGRATION
- Plan system integration
IMPLEMENT COMPONENTS
- Plan component integration
- Implement components
- Perform unit tests
- Fix a defect
- Review code
INTEGRATE SYSTEM
- Integrate system