R7 - modelint/shlaer-mellor-metamodel GitHub Wiki
R7 / Mc:Mc-1
Domain satisfies assumptions of zero, one or many Domain
Domain makes assumptions on zero, one or many Domain
In a simple system, there is only one all encompassing Domain. A more realistic project will be divided into multiple Domains with a primary application Domain defining the overall purpose of the entire software system. This top-level Domain will not serve any clients and will rely upon one or more Domains providing services.
A Domain providing a service may satisfy multiple client Domains. In fact, any well abstracted Domain should be configurable for multiple client Domains. The relationship under consideration here expresses the client-service role within a single project (domain chart/model). While a Domain may potentially be useful in many different projects, the question is, in a single project, may a Domain satisfy the assumptions of more than one client Domain? Here the answer is a definite โYesโ. For example, consider a logging domain that gathers data from multiple client Domains in the same project.
Formalization
Bridge.Client -> Domain.Name
Bridge.Service -> Domain.Name
Bridge.Client != Bridge.Service