January 24
The Conceptual Model: Designing Analysis Classes
A conceptual model is a description of the "real world" problem domain, not of a software design.
Concept: idea, thing, or object
A concept has:
- Intension: its definition.
- Representation: its name, symbol, or picture.
- Extension: its set of instances.
Complexity of a problem handled by decomposition (AKA divide-and-conquer).
- Structured analysis: functional decomposition.
- Object-oriented analysis: conceptual decomposition.
Analogy: conceptual modeling as mapmaking.
- Use existing names: describe the problem as the user understands it.
- Exclude unimportant features: if it comes up in a use case, include it.
- Don't include what isn't there: KISS, and avoid mission creep.
Useful rules of thumb in identifying concepts:
- Use concept categories and noun phrases to highlight potential concepts.
- If potential concept X is simply a numeric value or a text string, it is more likely an attribute of a concept rather than a concept itself.
- If X has internal structure, it probably is a concept.
- Example: Age and Family Name are probably attributes, but Person, which includes first name, last name, age, and other attributes, has an internal structure and so is a concept.
Note, though, that "concept" is defined recursively. A concept's intension may include other concepts.
If in doubt during analysis, include it. It's easier and cheaper to cut a concept during design than to add one.
CRC cards are a good way to begin organizing your conceptual model.
- Use cases tell you what the user wants.
- CRC cards help you get a handle on the conceptual model.
- Class diagrams formalize your understanding of the conceptual model.
Back to class schedule