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