Conception piloté par le domaine (XMS2IE300) : Contrôle Continu Écrit (CCE)

1. Principes de base

Pourquoi le langage ubiquitaire est-il important? Comment est-il développé?

Solution

Le langage ubiquitaire ou universel est un des principes de base de la conception pilotée par le domaine. Il garantit une communication claire et cohérente au sein de l’équipe de développement et du domaine d’activité. C’est un modèle partagé des concepts du domaine qui définit la manière dont on en parle et dont on s’y réfère dans le code, ainsi que dans les discussions.

Avantages du langage ubiquitaire
  • Clarté et précision** : L’utilisation d’une terminologie cohérente réduit l’ambiguïté dans le modèle du domaine, le code et les discussions de l’équipe.

  • Alignement sur l’entreprise : En utilisant le même langage que les experts du domaine, les développeurs s’assurent que le logiciel qu’ils construisent reflète fidèlement les exigences et les objectifs de l’entreprise.

Développement du langage ubiquitaire
Effort collaboratif

L’équipe de développement et les experts du domaine, tels que les analystes commerciaux et les parties prenantes, collaborent pour formuler le langage ubiquitaire. Cela permet de garantir une représentation précise des concepts de l’entreprise.

Raffinement au fil du temps

Le langage ubiquitaire, tout comme le modèle de domaine, évolue. Au fur et à mesure que l’équipe acquiert une meilleure connaissance du domaine, le langage est affiné pour mieux représenter les concepts du domaine.

Discussions axées sur le modèle

Lors des discussions sur le domaine, l’accent est mis sur l’utilisation des termes de manière dialogique. Cela signifie que chaque terme a une signification cohérente et est bien compris par tous les participants.

Prototypage itératif

La construction et l’amélioration d’un logiciel fonctionnel mettent souvent en évidence des divergences entre le langage et la vision du domaine. Ce processus itératif permet d’harmoniser la connaissance du domaine et le langage ubiquitaire.

Comment identifier les agrégats dans un modèle du domaine? Qu’est-ce que la racine de l’agrégat?

1.1. Quel est le rôle des Entités et en quoi diffèrent-elles des Objets-Valeur?

1.2. Expliquez ce que sont les contextes délimités? Pourquoi ils sont importants?

1.3. Expliquez ce que sont les événements du domaine et donnez un exemple d’utilisation.

2. Modélisation

Lisez attentivement le texte suivant et basez-vous sur ses informations pour répondre aux questions de cet exercice.

%Dans cet exercice, vous allez concevoir, en suivant l’approche DDD, un système de gestion d’une librairie. Une librairie vend des livres. Plus précisément, des exemplaires de livres. Un livre est caractérisé par un titre, un ou plusieurs auteurs, un numéro ISBN, un ou plusieurs éditeurs, une date de publication, un ou plusieurs genres et plusieurs mots-clés. Un livre peut être disponible, indisponible et commandé.

Le libraire est le seul à pouvoir commander et vendre des exemplaires de livre. Un client peut acheter et commander un exemplaire sur place ou sur Internet. Les commandes sont enregistrées dans un fichier

Les clients qui commandent par Internet ont un identifiant unique, composé de dix chiffres, dont deux de validation. Ils ont un nom, des prénoms et plusieurs adresses, dont une actuelle. Voici quelques informations supplémentaires sur la librairie:

L’achat en ligne se passe de la manière suivante:
  • Le client choisit un ou plusieurs exemplaires de livre qu’il souhaite acheter;

  • Le client peut passer une commande, mais seulement si elle contient au moins un exemplaire.

  • Le client peut choisir de se faire livrer sa commande ou de venir la chercher à la librairie.

  • La librairie n’accepte que des paiements en ligne par carte de crédit.

Actions à la librairie
  • Le libraire s’occupe d’expédier les commandes en ligne

  • Le libraire commande les exemplaires manquants de livres chez les éditeurs

  • Les caissiers s’occupent des ventes sur place

  • Les caissiers s’occupent des commandes à retirer sur place et peuvent accepter les paiements à la librairie.

Notifications aux clients en ligne
  • La commande a été reçue par la libraire

  • La librairie prépare la commande

  • La commande est prête à être retirée

  • La commande est en voie d’acheminement

  • La commande a été livrée/retirée

2.1. Dessinez un diagramme UML représentant les états d’une commande en ligne:}

2.2. Dessinez un diagramme UML représentant les événements du domaine:}

2.3. Dessinez un modèle du domaine pour la librairie, en identifiant les entités, les objet-valeurs, les agrégats et les racines d’agrégats: