Johnson and Foote's heuristics
From CSSEMediaWiki
(Difference between revisions)
RobertLechte (Talk | contribs) |
m |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | In their text, [[Johnson and Foote 1988]], Johnson & Foote describe a number of important heuristics. | |
− | [[ | + | ==Rules for Finding Standard Protocols== |
+ | These heuristics determine a set of rules that standardising class design and structure. | ||
+ | * '''Rule 1:''' [[Recursion introduction]] | ||
+ | * '''Rule 2:''' [[Eliminate case analysis]] | ||
+ | * '''Rule 3:''' [[Reduce the number of arguments]] | ||
+ | * '''Rule 4:''' [[Reduce the size of methods]] | ||
+ | == Rules for Finding Abstract Classes== | ||
+ | These heuristics define methods of determining and extracting abstract classes. | ||
+ | * '''Rule 5:''' [[Class hierarchies should be deep and narrow]] | ||
+ | * '''Rule 6:''' [[The top of the class hierarchy should be abstract]] | ||
+ | * '''Rule 7:''' [[Minimize accesses to variables]] | ||
+ | * '''Rule 8:''' [[Subclasses should be specializations]] | ||
+ | == Rules for Finding Frameworks== | ||
+ | The heuristics describe how to find frameworks in OOD. | ||
+ | * '''Rule 9:''' [[Split large classes]] | ||
+ | * '''Rule 10:''' [[Factor implementation differences into subcomponents]] | ||
+ | * '''Rule 11:''' [[Separate methods that do not communicate]] | ||
+ | * '''Rule 12:''' [[Send messages to components instead of to self]] | ||
+ | * '''Rule 13:''' [[Reduce implicit parameter passing]] | ||
− | + | == External Resources== | |
− | * | + | * [http://www.laputan.org/drc/drc.html#RulesForFindingStandardProtocols Designing Reusable Classes] - Johnson and Foote's paper ([http://www.cosc.canterbury.ac.nz/teaching/classes/cosc427/DesigningReusableClasses.htm local copy]) |
− | + | ||
− | + | [[Category: Johnson and Foote's heuristics]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 01:49, 18 August 2009
In their text, Johnson and Foote 1988, Johnson & Foote describe a number of important heuristics.
Contents |
Rules for Finding Standard Protocols
These heuristics determine a set of rules that standardising class design and structure.
- Rule 1: Recursion introduction
- Rule 2: Eliminate case analysis
- Rule 3: Reduce the number of arguments
- Rule 4: Reduce the size of methods
Rules for Finding Abstract Classes
These heuristics define methods of determining and extracting abstract classes.
- Rule 5: Class hierarchies should be deep and narrow
- Rule 6: The top of the class hierarchy should be abstract
- Rule 7: Minimize accesses to variables
- Rule 8: Subclasses should be specializations
Rules for Finding Frameworks
The heuristics describe how to find frameworks in OOD.
- Rule 9: Split large classes
- Rule 10: Factor implementation differences into subcomponents
- Rule 11: Separate methods that do not communicate
- Rule 12: Send messages to components instead of to self
- Rule 13: Reduce implicit parameter passing
External Resources
- Designing Reusable Classes - Johnson and Foote's paper (local copy)