Abbott Textual Analysis
I have found that the Abbott5 Textual Analysis technique is a very good way to show developers how to identify candidate classes from use cases, domain and problem descriptions, glossaries, legacy models, and even legacy code. Textual analysis shows that the developers are not trying to code a particular scenario or use case. This can often result in "classes" that are named after the use case or scenario. Instead, the developers are trying to develop or reuse classes or modules of code that underlie individual use cases. It is important that the textual analysis is performed on text created by the users of the system instead of relying on text created by developers. Abbott Textual Analysis can be performed using Table 8.2 to identify candidate system components.
Table 8.2 Identifying Candidate System Components Using Abbott Textual Analysis
Part of Speech |
Component |
Example |
Proper noun |
Object |
Richard Dué |
Common noun |
Class |
toy |
Doing Verb |
Method |
buy |
Being Verb |
Classification |
is an |
Having Verb |
Composition |
has an |
Stative Verb |
Invariance |
are owned |
Modal Verb |
Data Semantics |
must be |
|
Precondition |
|
|
PostCondition |
|
Adjective |
Attribute |
unsuitable |
Transitive Verb |
Method |
enter |
Intransitive Verb |
Exception Event |
depend |
The techniques presented in this chapter can be easily applied in nearly any object-oriented development methodology. In fact, the problem statement, context diagram, use case 1-hour brainstorm, use case template, Abbott Textual Analysis, and design by contract all can be used within non-object-oriented methodologies. The techniques in this chapter form the basis of a fast, effective, just-enough approach to object technology development projects.