contents  
previous
6. Identifying objects
The first step should be to describe the system and its requirements carefully
using a natural language (like English). Abbott's heuristics can then be applied
to convert parts of speech to model components. However, natural languages
are very imprecise and prone to ambiguities and contradictions. Abbott's heuristics
suggest that nouns should be associated with objects or classes, but this is not always
a good idea. In many cases, a noun should be treated as an attribute. Often, a noun
occurring in a natural language description has no useful role to play in the analysis
model. It is easy to come up with exception to all of Abbott's heuristics, so despite
their utility, Abbott's heuristics should not be treated as hard and fast rules.
They are not called "Abbott's rule's".
Bruegge-Dutoit suggest using Abbott's heuristics in conjunction with their own
heuristics to identify suitable entity, boundary and control objects. We'll
discuss them in class. For convenience, I will list some of this here
(paraphrased a bit).
- Heuristics for identifying entity objects:
- terms needed to clarify use cases;
- recurring nouns in use cases;
- real-world entities;
- real-world activities;
- data sources and sinks.
- Heuristics for identifying boundary objects:
- forms and windows needed for some user interaction;
- system messages to a user;
- objects representing the interface between our
system and an external system (my addition).
- Heuristics for identifying control objects:
- assign at least one such per use case;
- one control object per actor per use case.
next