Skip to main content

Identify conceptual classes; create domain model

Short answer

Strategies include a category checklist for concepts like transactions, roles, and physical items, noun phrase identification from use cases, and reusing existing models. Steps: list candidate classes, draw them in a diagram, add associations and attributes, then refine with generalization and review the model.

Describe the strategies to identify conceptual classes. Describe the steps to create a Domain Model used for representing conceptual classes.

A conceptual class is an idea, thing or object of the real problem domain (not a software class) that is important to the system, described by its symbol (name), intension (definition) and extension (set of examples).

Strategies to identify conceptual classes

  1. Use a conceptual class category list. Check categories such as: physical or tangible objects (Register, Airplane), specifications/descriptions (ProductDescription), places (Store), transactions (Sale, Payment, Reservation), transaction line items (SalesLineItem), roles of people (Cashier, Customer), containers (Store, Bin), things in a container (Item), computer/electromechanical systems (CreditCardAuthorizationSystem), abstract noun concepts (Hunger), organisations (SalesDepartment), events (Sale, Meeting), processes, rules and policies, catalogs, financial records, manuals and books.
  2. Noun phrase identification. Take the nouns and noun phrases from the use case text (fully dressed description) as candidate classes or attributes. Care is needed since language is ambiguous and some nouns are attributes or synonyms.
  3. Reuse or modify existing models of the domain from books and standards.

Guidelines: it is better to over-specify than miss concepts; do not exclude a class because it has no attributes; a doubtful concept may be modelled as an attribute only if it is plain data (text/number).

Steps to create a domain model

  1. List candidate conceptual classes using the strategies above for the current use cases.
  2. Draw them in a class diagram (rectangles with names only, no operations).
  3. Add associations needed to satisfy the information requirements (name, multiplicity, role).
  4. Add attributes that must be remembered (simple data types).
  5. Refine: add generalisation, remove synonyms and redundant ones, add aggregation if useful, specification classes (e.g. ProductDescription).
  6. Review the model against the use cases and with the domain experts; iterate.
 +-------+ 1   * +------+ 1  1..* +----------+ * 1 +---------+
 | Store |-------| Sale |---------| SalesLine|-----| Product |
 +-------+       +------+         +----------+     | Descr.  |
                    | 1                            +---------+
                    | 1
                 +---------+
                 | Payment |
                 +---------+

✓ Answer checked by Claude Sonnet 5.5

All Object Oriented Analysis and Design chapter 2 questions →