Domain-Driven Design
> >
DomainModelVsXPSystemMethaphor

Wed Jan 21, 2004 7:15 pm

Hi

As I read and think more about domain-driven design and XP I was
wondering what differences there are between the domain model of
domain-driven design and the SystemMetaphor in XP?

Is it a case of the domain model is an instance of the system
metaphor but the SystemMetaphor is not necessarily an instance of
the domain model?

Regards
ShaneMingins



I don't think the relationship is quite that precise. A metaphor is a guiding concept that helps generate a domain model. If multiple people understand the metaphor then the domain model should be quite consistent. If people have different concepts of the metaphor then the domain model may get corrupted. However, as the model evolves such discrepancies will be worked out of the model and a shared metaphor should develop.

There is no need to have a metaphor at all but when you do have one its a very powerful guide. DDD can help you discover appropriate metaphors as you work the model.

Regards,
KeithNicholas


Shane,

I discuss the XP SystemMetaphor in some detail on p. 447-449 of
Domain-Driven Design.

EricEvans


"Eric Evans" <eric@d...>
wrote:
> I discuss the XP SystemMetaphor in some detail on p. 447-449 of
> Domain-Driven Design.

Yes, and the highlight is:
... "payroll processing is like an assembly line" is likely a much
naive view than a model that is the product of many iterations ...

Technical knock out, they call it.

:-)
JohanNilsson


A metaphor is some familiar thing in the real world that is easy to
relate to.

Let's say you have a problem domain with a domain model and a
metaphor. If you were to create a domain model of the metaphor, and
compare it to the existing domain model they would probably not even
intersect. The metaphor describes some other, though similiar, domain.

In other words, the metaphor does not operate in the problem domain.

Moreover...

I have hard to see how an entire software system could be described
using one single SystemMetaphor. My experience is that only certain
aspects of a large system can have analogies in the real world. In my
view, there should be many metaphors describing different parts of
your software system. Those metaphors could be totally unrelated to
eachother.

Besides helping design, my experience is that metaphors are a great
means of instructing end-users. The "share pie" in the DDD book is a
good example.

JohanNilsson


The SystemMetaphor is probably the least-well-defined practice in
XP. Nobody but Ward and Kent seem to understand it, and even they
can't seem to explain it to people reliably.

My advice to people trying to learn XP is to ignore SystemMetaphor
completely, and read Eric's book instead.

JohnBrewer




DomainModelVsXPSystemMethaphor is mentioned on: ThreadView


VeryQuickWiki Version 2.6.3 - HTML Export