Méthode/Approche de conception logicielle guidée par le métier
Pourquoi l’utiliser :
Evolution du code métier facilitée
Intégration démarche agile (iteration)
Méthode pour formaliser et implémenter le métier
Ubiquitous Language: Langage utilisé pour parler du métier, faisant abstraction des termes spécifiques aux rôles des interlocuteurs (Développeur/Expert fonctionnel).
Context : Contexte au sens Business de l’application (def contexte: Ensemble des circonstances dans lesquelles se produit un événement, se situe une action)
Domain : Un ensemble de connaissance ou un activité particulière dans un contexte. Une brique métier peut très bien être considérer comme un domaine. Ex: Amazon: SAV, facturation, Boutique.
Model : C’est l’ensemble des éléments qui vont composer nos domaines, ou qui vont permettre d’adresser nos problématiques liées aux domaines. (Pattern DDD: Specifications, Repository, Entity, Aggregate, etc...)
Bounded context: Délimitation des contextes
Context Map: Décrit les interactions entre les models de chaque contextes. Aide à la définition des Bounded Context.
Ces deux patterns permettent d’avoir une vision plus claire des models implémentés et de leurs usage. Cela permet aussi d’organiser ses équipes en fonction des contextes.
Le coût de cette méthode peut devenir relativement élevé (isolation et encapsulation des models implementés).
Le coût d'entrée sur le projet est plus important.