Examen Final Flashcards

Aprendre tous les patrons, leurs objectifs et leur implementation

1
Q

Quelle est l’intention du patron Commande?

A

Encapsuler une requête dans le but de supporter plus facilement différents types de requêtes, de définir des queues de requêtes et de permettre les undo.

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

Quels sont les avantages d’un patron commande?

A
  • On peut faire des commandes composites
  • Ca découple l’objet qui envoie la requête de celui qui la traite.
  • Les commandes sont encapsulées dans des objets qui peuvent être manipulés (flexibilité et uniformité)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelle sont les implantations associées au patron Commande?

A
  • Support undo/redo

- Conservation d’état pour le undo

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

Quel est l’intention du patron State?

A

Changer le comportement de l’objet en fonction de son état.

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

Quels sont les avantages du patron State?

A
  • Transition d’états explicites

- Élimine les grands énoncés conditionels

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

Quelles sont les implantations associées au patron State?

A
  • Qui définit les transitions

- Comment gérer la création/destruction d’états

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

Quel est le but de l’implantation?

A
  • Réduire le couplage

- Augmenter la robustesse

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

Qu’est-ce que le couplage faible?

A

Le patron Faible couplage suggère qu’une classe ne devrait pas être lié à un trop grand nombre d’autres classes du système. En réduisant le couplage entre les classes, on favorise la réutilisation.

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

Quelle est le pire défaut d’un prototype?

A

Les gens ont tendance à le garder.

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

Quels sont 3 avantages d’une architecture multi-niveaux?

A

1.La séparation de la logique d’application dans des composantes séparées qui peuvent être réutilisé dans d’autres systèmes.

2.La possibilité de répartir les niveaux sur différents nœuds de calcul, et dans différents
processus.

3.L’assignation de développeurs à la construction de chaque niveau: parallélisation des efforts

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

Quels sont les 5 étapes de l’analyse?

A

1) Analyse des requis
2) Définition et spécification des requis
3) Construction du premier modèle
4) Élaboration d’un prototype
5) Validation de prototype

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

Que contient un cas d’utilisation étendu?

A
  • Nom du cas
  • Système
  • Niveau (objectif usager ou sous-fonction)
  • Acteur Primaires
  • Parties prenantes et intérêts
  • Préconditions
  • Postconditions(conséquences)
  • Scénario Principal
  • Scénarios alt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quels sont les 3 niveaux de détails des cas d’utilisation ainsi que leur caractéristique principale?

A

Haut Niveau : peu détaillé, scénario principal seulement
Informel : Brève description des scénarios alternatifs
Étendu: Description complète du scénario principal et alternatifs

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

Quelles sont les 2 méthodes d’identification de cas d’utilisation?

A

Basée sur les acteurs

Basée sur les évènements

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

Quelle est l’intention du patron stratégie?

A

Encapsuler un algorithme dans une classe de sorte qu’il soit interchangeable.

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

Quels sont deux avantages du patron stratégie?

A
  • Support de familles d’algorithmes

- Élimination d’énoncés conditionnels

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

Quelles sont les implantations associées au patron strategy

A

1: Modèle tirer: Éviter info inutile, +couplage
2: Modèle pousser: Découplage, +info inutile

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

Quelle est l’intention du patron Chain of Responsibility

A

Éviter de coupler l’émetteur et le récepteur d’une requête en donnant à plusieurs objets la possibilité de la traiter.

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

Quels sont 2 avantages du patron Chain of Responsibility?

A
  • Réduit le couplage (émetteur ne connait pas le récepteur, il connait l’entrée de la chaine)
  • Augmente la flexibilité (On peut modifier la chaine)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Quelles sont les implantations liées au patron façade?

A

-Classe façade abstraite? (différentes façades pour différentes versions du sous-système)

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

Quelle est l’intention du patron façade?

A

Fournir une interface qui unit plusieurs interfaces d’un sous-système. Cet interface de haut niveau rend l’utilisation plus facile.

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

Quels sont deux avantages du patron façade?

A
  • Vue simplifiée du sous-système

- Découplage client/sous-système

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

Quelles sont les implantations liées au patron façade?

A

-Classe façacde abstraite? (différentes façades pour différentes versions du sous-système)

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

Quelle est l’intention du patron observer?

A

Définir une relation (1..*) entre des objets de manière à notifier les dépendants d’un sujet lorsque ce dernier change d’état. Les dépendants doivent être mis-à-jour suit à cette notification.

25
Q

Quels sont 2 avantages du patron observer?

A
  • Modularité: Le sujet et les observateurs peuvent varier indépendamment
  • Extensibilité: On peut ajouter autant d’observateurs qu’on veut
26
Q

Quelles sont les implantations liées au patron observer?

A
  • Correspondance Sujet-Observer

- Protocole “tirer” vs “pousser”

27
Q

Quels sont trois avantages du patron mediator?

A
  • Encapsuler les communications (couplage faible)
  • Simplification des communications
  • Éviter de forcer des responsabilités du mediator aux collègues
28
Q

Quelle est l’intention du patron mediator?

A

Définir un objet qui encapsule les interaction entre les objets d’un ensemble.

29
Q

Quel est l’objectif des cas d’utilisation?

A

Capturer le comportement désiré du système. Ils agissent comme un requis comportemental du système.

30
Q

Quel est l’objectif d’un diagramme de contexte?

A

Voir rapidement les principales fonctions du système. Le diagramme de contexte définit les principaux acteurs, les cas d’utilisations primaires et les limites du systèmes.

31
Q

Quelles sont les 3 relations possibles entre différents cas d’utilisation?

A

utilisation(include) : modélise une sous-fonction destinée à être réutilisée;
extension(extend) : ajoute une étape sans modifier le cas original;
généralisation: cas concret est généralisé par le cas plus abstrait.

32
Q

Comment déterminons-nous l’ordre des cas d’utilisation à implémenter lors de la phase d’implémentation?

A

Il faut classer les classer en ordre d’importance (cas par cas) pour s’assurer d’implanter les C.U. essentiels en premier.

33
Q

Quelle est l’intention du patron Proxy?

A

Fournir un remplaçant ou une doublure d’un objet afin de contrôler l’accès à ce dernier.

34
Q

Quand applique-t-on le patron Proxy?

A

Lorsque l’on sent le besoin d’une référence plus agile et versatile qu’un simple pointeur.

35
Q

Quelle particularité attribuable aux interfaces est importante dans le cas du Proxy?

A

L’interface du Proxy doit être la même que l’interface de l’objet d’origine.

36
Q

Quels sont les trois éléments d’un patron Proxy?

A
  • Abstract Subject
  • Proxy
  • Subject
37
Q

Sachant qu’un concept est une référence à un élément du monde réel, quelles sont les 4 règles d’identification des concepts?

A
  1. Faire une liste des concepts réels
  2. Faire un diagramme conceptuel
  3. Ajouter associations pour certaines relations
  4. Ajouter attributs.

Bingo, les attributs sont maintenant correctement identifiés.

38
Q

Le modèle conceptuel réside sur la description d’éléments réels. Sachant ceci, quel est un gros plus-value de l’identification des concepts pour le développeur?

A

Travailler sur un modèle d’éléments réels aide à clarifier la terminologie et le vocabulaire de l’univers du système à implémenter. Très utile pour un néophyte de ce domaine.

39
Q

Comment représente-t’on la visibilité des attributs sur un schéma UML?

A

public : (+)
protected : (#)
private : (-)
Également un attribut de classe (donc partagé tel quel par toutes les instances) est sous-ligné

40
Q

Qu’est-ce que la cohésion élevée?

A

Une cohésion élevée (cohérence) suggère qu’une classe devrait être impliquée dans un petit nombre de responsabilités qui sont toutes liées entre elles.

41
Q

Quelle est l’intention du patron composite?

A

Traiter les objets individuels et multiples composés récursivement de manière uniforme.

42
Q

Quels sont les avantages du patron composite?

A
  • Uniformité: Traiter les composants de manière uniforme peu importe leur complexité.
  • Extensibilité: Les nouvelles sous-classes composites fonctionnent partout où les anciennes foncitonnent.
43
Q

Quelles sont les implantations liées au patron composite?

A
  • L’interface est-elle uniforme entre leaves et composites?

- Les composants connaissent-ils leurs parents?

44
Q

Quelle est l’intention du patron visitor?

A

Représenter une opération qui doit être appliquée sur plusieurs éléments d’une structure d’objets. Il est ainsi possible de définir l’opération pour chaque sous-classe.

45
Q

Quels sont deux avantages du patron visitor?

A
  • Flexibilité: Les visitors et la structure d’objets sont indépendants
  • Tout le code associé à une foncitonalité se retrouve à un seul endroit bien identifié.
46
Q

Quelles sont les implantations liées au patron visitor?

A
  • Double dispatch

- Interface générale aux éléments de la structure d’objets

47
Q

Quelle est l’intention du patron template method?

A

Définir le squelette d’un algorithme dans une opération et laisser les sous-classes s’occuper de l’implémentation

48
Q

Quels sont les avantages du patron template method?

A
  • Inversion de contrôle (principe Hollywood)
  • Favorise la réutilisation de code
  • Permet d’imposer des règles de surcharge
49
Q

Quelles sont les implantations liées au patron template method?

A
  • Méthode template virtuelle?

- Convention de noms

50
Q

Quels sont les exigences d’une architecture distribuée?

A
  • une plus grande tolérance aux délais et aux pannes
  • Tenir compte de notions de sécurité
  • Integrer différentes technologie pas necessairement pensé pour être ensemble
51
Q

Quels sont les avantages d’une architecture distribuée?

A
  • Accès à plus de ressources
  • Partage de données et ressources entre plusieurs usagers
  • Possibilité d’accroitre les ressources avec peu d’impacts aux usagers
  • Possibilité de paralléliser
52
Q

Quels sont les 3 variantes du modèle-vue-controleurÉ

A

–Model-View-Presenter (MVP)
–Model-View-Viewmodel (MVVM)
–Presentation-Abstraction-Control (PAC)

53
Q

Quels sont les 4 propriétés d’un service?

A
  • Autonome et sans état
  • Expose un contrat
  • Frontières entre le sservices sont explicites
  • Ils comuniquent par message (pas des objets)
54
Q

8 principes de bases d’un SOA

A
  • Contrat standardisé
  • Faible couplage
  • Abstraction
  • Réutilisation
  • Autonomie
  • Sans état
  • Capacité de découverte
  • Composabilité
55
Q

Quels sont les 6 contraintes archilecturales de REST?

A
  1. Architecture client -serveur
  2. Serveur sans état
  3. Capacité de mise en cache
  4. Architecture en couches
  5. Capacité de fournir du code à la demande
  6. Interface uniforme
56
Q

Quels sont les patrons d’analyse GRASP?

A
  • Expert: donner la responsabilité à l’objet le mieux en mesure d’y satisfaire,
  • Créateur: donner la responsabilité de créer un objet à un autre objet directement impliqué dans une relation avec l’objet créé,
  • Couplage faible: assigner les responsabilités de façon à ce que le couplage reste faible,
  • Cohésion élevée: assigner les responsabilités de façon à ce que la cohésion reste élevée,
  • Contrôleur: assigner la responsabilité de gérer les messages d’évènements du système à une classe spécialisée du modèle,
  • Polymorphisme: utiliser des interfaces pour traiter des alternatives qui dépendent du type des objets,
  • Indirection: assigner des responsabilités à un objet intermédiaire pour éviter que des classes soient couplées,
  • Pure Fabrication:assigner un ensemble de responsabilité à une classe créée artificiellement,
  • Variation protégée:identifier des points d’instabilité ou de variation et développer des interfaces stables autour de ces points.
57
Q

Quels sont les 3 types de composants UML pour un diagramme de composants.

A
  • Composant de déploiement ( nécessaires et suffisants pour construire un système exécutable)
  • Composant de réalisation ( résultant du travail de développement)
  • Composante d’exécution ( créées lors de l’exécution d’un système.
58
Q

Quels sont les 8 objectifs à respecter avec les exceptions?

A
  1. On doit essayer de laisser l’objet dans l’état initial (où il était avant l’appel de la fonction)
  2. Si c’est impossible, il faut essayer de laisser l’objet dans un état correct (utilisable).
  3. Si c’est impossible, il faut le laisser dans un état défini (on peut au moins le détruire ou réinitialiser).
  4. Il faut également éviter les fuites de ressources.
  5. Il ne faut pas attraper d’exceptions inutilement.
  6. Il ne faut pas cacher de l’information contenue dans une exception à d’autres parties du programme.
  7. Il ne faut pas compter sur la capacité à traiter les exceptions des destructeurs.
  8. Il ne faut pas devenir trop paranoïaque !