Conceptual Class
- •
What it is
- •
a real-world idea, thing, or object in the problem domain being modeled — not a software class
- •
- •
Three strategies to find them
- •
reuse or adapt an existing model
- •
use a category checklist (business transactions, transaction line items, related products/services, where transactions are recorded, places, noteworthy events, physical objects, descriptions of things, catalogs, containers, other collaborating systems, financial records/instruments, schedules/manuals)
- •
identify noun phrases in a textual use case description as candidates (weakness: natural language is imprecise — different phrases may mean the same class or just an attribute)
- •
- •
Attribute vs. class test
- •
if you wouldn't think of something as a number or a bit of text in the real world, it's probably a conceptual class, not an attribute (e.g. a "Store" is an organization occupying space — a class, not a string)
- •
- •
Description classes
- •
a class recording descriptive information shared across many instances (e.g.
ProductDescriptionholding price/text/picture, shared by everyItemof that product) — avoids duplicating the same description data on every individual instance
- •
- •