Exploitez l'approche du Domain-Driven Design pour construire votre modèle Flashcards

1
Q

Qu’est qu’un modèle de domaine ?

A

Un modèle de domaine est une représentation conceptuelle des éléments clés qui doivent être compris par tous, pour créer la solution souhaitée par le client.

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

Commment décomposer un “use case”?

A

Par exemple, prenons le cas d’utilisation « rechercher un livre ». Vous allez décomposer le scénario en commençant par l’utilisateur, puis en réfléchissant à la façon dont l’application réagit étape par étape :

  • L’utilisateur demande à rechercher un livre.
  • L’application affiche la page de recherche.
  • L’utilisateur saisit le nom de l’auteur.
  • L’application vérifie que le nom de l’auteur existe.
  • L’utilisateur saisit le titre du livre.
  • L’utilisateur demande l’exécution de la recherche.
  • L’application lance la recherche.
  • L’application affiche les résultats.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qui a inventé les “uses cases” (cas d’utilisations). Donnez un exemple de cas d’utilisations.

A

Ivar Jacobsen

Dans le “modèle école” différents cas d’utilisation peuvent être identifiés:

  • Noter les examens.
  • Enregistrer les absences.
  • Collecter les frais de cantine.
  • Payer l’enseignant.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Pourquoi est-il utile d’identifier les déclencheurs ?

A

Ils indiquent la raison business pour laquelle il faut commencer à exécuter une fonctionnalité

Voici un exemple concernant une application destinée à un restaurant. Elle doit permettre aux serveurs de suivre les commandes et les paiements. Voici la transcription de la discussion avant la conception du programme :

  • Développeur : « Quel est l’objectif prioritaire que nous voulons atteindre ? »
  • Serveur : « Que les repas servis soient payés. »
  • Développeur : « Et pourquoi est-ce important ? »
  • Serveur : « Eh bien, c’est ce qui permet au restaurant de rester en activité. »
  • Développeur : « OK, alors comment cela est-il censé fonctionner ? »
  • Serveur : « Le client paie son repas en espèces ou par carte. »
  • Développeur : « Qu’est-ce qui s’est passé avant cela ? »
  • Serveur : « Le client a eu son repas. »
  • Développeur : « Comment avez-vous su ce qu’il fallait préparer ? »
  • Serveur : « J’ai pris sa commande. »
  • Développeur : « Comment savait-il ce qui était à la carte ? »
  • Serveur : « Je lui ai donné un menu. »
  • Développeur : « Comment avez-vous su qu’il avait besoin d’un menu ? »
  • Serveur : « Il était assis à une table vide. »
  • Développeur : « Comment savez-vous quelles tables sont vides ? »
  • Serveur : « Je regarde le plan des tables et vois celles où il n’y a personne. »
  • Développeur : « Comment les gens sont-ils ajoutés aux tables ? »
  • Serveur : « On les transfère depuis la liste des personnes enregistrées. »
  • Développeur : « Comment sont-ils arrivés sur cette liste ? »
  • Serveur : « Ils sont entrés et ont dit qu’ils avaient faim. »

L’événement déclencheur est donc l’entrée d’un client dans le restaurant. La première interaction avec l’application du restaurant est leur ajout sur la liste des personnes enregistrées.

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

Qu’est-ce qu’un domaine ?

A

Un domaine d’activité

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

Quelle est le déroulement d’une session d’event Storming ?

A
  • Inviter les parties prenantes et les développeurs
  • Laisser place aux idées
  • Identifier les événements du domaine
  • Connecter les événements du domaine
  • Déterminer les éléments déclencheurs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est ce qu’un acteur ?

A

Un acteur est quelqu’un ou quelque chose qui utilise le système que vous construisez.

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

Comment créer un diagramme de cas d’utilisation ?

A
  1. Identifiez les acteurs
  2. Identifiez les cas d’utilisation
  3. Reliez le tout avec les relations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qu’est ce qu’une dépendance dans un diagramme de cas d’utilisation et comment la créer ?

A

Une dépendance est un cas d’utilisation qui dépend d’un autre cas d’utilisation pour pouvoir être réalisée. Pour créer une dépendance il suffit de rélier les deux cas d’utilisation avec une fleche discontinuée. La direction de la flèche indique qui est dépendante de qui.

Ici “Récupérer les amendes des usagers” est dépendante d”Envoyer un email”.

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

Comment peut-on représenter les modèles de domaine ?

A
  • Avec un diagramme de classes
  • Avec un diagramme de cas d’utilisation
  • Avec une série de pages wiki
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quelles sont les étapes de création d’un diagramme de cas d’utilisation?

A
  1. Identifier les acteurs
  2. Définir les cas d’utilisation
  3. Ajouter des relations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quelle est la première étape de création d’un diagramme de classes ?

A

Générer des descriptions de cas d’utilisation en se basant sur le diagramme de cas d’utilisation.

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

En vous basant sur le diagramme ci-dessous, quelle(s) classe(s) pouvez-vous identifier en tant qu’entité (ou entités) ?

A

Voiture, Chauffeur, Client, Course, Lieu

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

En se basant sur le diagramme ci-dessous, quelle(s) classe(s) pouvez-vous identifier comme valeur(s) (value object) ?

A

Paiement

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

En se basant sur le diagramme ci-dessous, quelle(s) classe(s) pouvez-vous identifier comme étant des agrégat(s) ?

A

Course

Les classes qui “agrègent” un même cas d’utilisation sont des agrégats. Ils regroupent une entité et un objet valeur, pour finaliser un cas d’utilisation. Ici, la course agit effectivement comme un agrégat, car elle lie l’ensemble du cas d’utilisation de la réservation d’une voiture ; elle lie les classes de Client, de Voiture, de Paiement et de Localisation toutes ensemble. Il s’agit donc bien de la réponse 4. 🚀

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

Lesquelles de ces affirmations sont exactes ?

A
  • Un diagramme de cas d’utilisation représente les utilisateurs du système et ce que ces utilisateurs veulent que le système fasse
  • Un diagramme de classe représente les classes qui peuvent être implémentées dans un système, et les relations entre elles
  • Un diagramme de cas d’utilisation est généré plus tôt dans le processus et peut informer sur la façon dont le diagramme de classe sera conçu
17
Q

Quels sont les acteurs dans le diagramme ci-dessous ?

A

Client, Usager (personne travaillant au standard téléphonique), Mécanicien.

18
Q

En se basant sur le diagramme ci-dessous, lesquelles de ces affirmations sont exactes ?

  • Paiement, Réservation, Voiture
  • Chauffeur, Client
  • Paiement
  • Paiement, Réservation, Voiture, Chauffeur, Client
A

Deux acteurs partagent le même cas d’utilisation

19
Q
A