1: What is a domain model?
It is a visual representation of concepts in the field or objects in the real world. Domain models are also called conceptual models, domain object models, and analysis object models.
(UP domain model is a special feature of UP business objects. "It is used to explain the important 'objects' and products in the business field. That is to say, the domain model focuses on specific fields.
")
2: How to find a domain model
There are two methods. "Use category list" and "pass"
2.1: Use category list
We can create a domain model by creating a list of conceptual candidates. (Priority is recommended for the List)
The following example is taken from POS, Monopoly, or aviation reservation.
Concept category |
Example |
Business transactions Principle: The key is the starting point. |
Sale, Payment, Reservation |
Transaction rules Principle: transactions usually involve projects, so they are placed in the second place. |
SalesLineItem |
Products or services related to transactions or transactions Criteria: (products or services) are the objects of transactions, so they are placed in the third place. |
Item, Flight, Seat, Meal |
| Where are transaction records? |
Register, Ledger, FlightManifest |
The role of the person or organization associated with the transaction; the participant of the use case Criterion: We usually need to know the parties to the transaction |
Customer, Store, Player |
| Transaction location: Service Location |
Store, Plane |
| ... |
... |
2.2: Identify nouns and phrases to find concepts
Language analysis identifies nouns and noun phrases in text descriptions of a field and uses them as candidate conceptual classes or attributes. (Note the ambiguity in the language)
(The second frame in the UML representation method indicates the attribute of the domain object)
Domain Models are important domain concepts and vocabulary visualization. Some of these words come from use cases, while others come from the ideas of other documents or experts. In any case, use cases are one of the important sources for mining noun phrases.
3: What should I pay attention to when looking for a domain model?
3.1: How to differentiate attributes and Classes
Criterion: if we think that X is not a number or text in the real world, X may be a conceptual class rather than a property.
For example, should Store be a Sale attribute or a separate concept class? In the real world, Store is a concept class because it is not regarded as a number or text.
3.2: Join
Association is the relationship between classes (precisely the instances of these classes), indicating meaningful and noteworthy connections.
Representation: the name of the association between classes, which is capitalized with the first letter.
Name: "class name-verb phrase-class name", where the verb constitutes a readable and meaningful order.
3.3: the attributes in the domain model do not represent foreign keys. The relationships between domain classes can only be expressed by associations rather than foreign keys in the database.
Unified Software Development Process 2: case text writing