Problem Analysis  «Prev  Next»
Lesson 4Problem domain classes
ObjectiveDefine what qualifies an item as a problem domain class.

Problem Domain Classes

Question: What qualifies an object to become a problem domain class?
Answer: You already have one criterion: The users must recognize the object. However, the object might be part of any number of other systems that the users work with. Once again, the scope of the project becomes a crucial criterion. If the scope is unclear, then it is time to sit down, discuss the boundaries, and refine the scope statement. Get used to this process. Each new piece of information will force new questions and reveal new insights.
That is the nature of the process: constant enhancement and refinement.
Domain modeling is the task of discovering classes that represent those things and concepts.

Criteria for Problem Analysis Classes

A resource is something used by the actors. A resource may be acquired, maintained, used, possibly made and sold, and disposed of. Using these simple criteria, the following items become good candidates for problem domain classes:
  1. Actors
  2. Supplies and materials
  3. Products
  4. Records of transactions such as acquisition, sales, maintenance, and disposal
Does the criteria work?
To go back to the flower shop example used in a previous module, what kinds of things would be good flower shop problem domain classes?

Actors order takers, flower arrangers, drivers, bookkeepers, sales people
Supplies and Materials flowers, paper, vases, wire, Styrofoam, greeting cards, and so on
Products flower arrangements, gift items
Records orders, shipments, sales receipts, customer invoices, supplier invoices

Key to ask here is, would the users recognize these objects? Would the flower shop use all these objects even if you never wrote any software?

Domain Classes - Quiz

Click the Quiz link below to take a short multiple-choice quiz on the problem analysis phase of the project life cycle.
Domain Classes - Quiz