Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The best way to model the domain together with the domain expert

I have done a fair bit of analysis and have used a number of tools to capture requirements: user created storyboards, use cases, GUI drawings, GUI prototypes, User stories & scenarios that can be used as acceptance criteria etc.

While each of these have more or less merit, I think there is one important bit missing. These methods can accurately capture how the user interacts with your app., but it is up to programmer to create and develop a “model” that should be reflected in the code.

I have been reading Evan’s DDD lately and he proposes something different. You need to create the domain model together with the domain expert and share it with him. In order to communicate the ideas with the user, in the book he often uses ad-hoc UML inspired drawings.

I wonder if this is the best way to talk about the model with the domain expert. Are there any other tools, besides UML diagrams, that you could use to capture the domain knowledge and use it while you are discussing the domain with your domain expert?

like image 317
Dan Avatar asked May 24 '11 22:05

Dan


1 Answers

While the final abstraction into a working domain model (and ultimately a stable model) is your, the developer's, job, I do agree that even the set of tools above can be restricting, and limiting yourself or your communications to just UML can make the conversation seem esoteric to the domain expert.

For systems anatomy, try Block Diagram notation tools at http://www.fmc-modeling.org/.

For white/blackboarding and mind-mapping try FreeMind

For associative organization (and coolness) try TheBrain

For quicker/collaborative graphing (sort of new), try LucidChart

And of course, good ol' Dictionary and Thesaurus to always, always strive for the best terminology.

If these seem right-brained to you, remember that modeling is left-brained analysis done by one party on behalf of two. You're not going to get as much with a purely defined linear process as when that is coupled with trial-and-error, free-running style information mining.

like image 117
Dynrepsys Avatar answered Sep 23 '22 13:09

Dynrepsys