67Data Lens Part 1
Domain modeling glossary
Abstraction
Abstraction is the process of analyzing a do-
main to synthesize the important concepts
and their relationships. The end result is a
model. The MegaBuzz model (sizes, roasts,
add-ins) was abstracted for us by the busi-
ness owners.
Data model
Data model refers to the encoding of the
information of a model in data values and
structures. We’ve developed a data model
of coffee at MegaBuzz. We have not yet en-
coded other aspects of the model, such as
operations.
Domain
The domain is the real-world context of the
job we need our softare to do. In the exam-
ples we’ve seen so far, the domain is the
business of MegaBuzz, the coffee shop.
Domain expert
A domain expert is a person who under-
stands the model who can serve as a re-
source for the encoding process. The baris-
ta is a domain expert in the preparation of
coffees. An accountant is a domain expert
in accounting. Hopefully, we programmers
become domain experts through the pro-
cess of domain modeling.
Domain model
Domain model is a loose term sometimes
refering to the model, but just as often to
the encoding. One might refer to every-
thing we’ve done so far as domain modeling.
We’ve been using a bunch of terms without dening them
well. It’s now time to give them good denitions with ex-
amples from our MegaBuzz project.
Encoding
The encoding is a physical representation
of the model used for communication with
people and computers. The encoding can
be diagrams, natural language, formal log-
ic, or a programming language. We have
built an encoding in a programming lan-
guage, but we also had English-language
descriptions and diagrams.
Evaluation
We evaluate an encoding by judging it in
various ways. One way is with t. We eval-
uate an encoding to learn how to improve
it. We evaluated encodings for add-in col-
lections using t.
Fit
Fit measures how closely we encode a mod-
el’s domain concept or relationhip.
Look anew
We look anew to improve a model by under-
standing problems with its concepts and
relationships. We haven’t seen an exam-
ple yet, but imagine if our coffee encoding
taught us that we should change how the
business runs.
Model
A model is a set of related domain concepts.
As concepts, they exist in the mind. One
model we’ve seen is the concepts of 3 siz-
es, 3 roasts, and add-in collections. Some
models we haven’t talked about are money
and marketing promotions.