Johnson and Foote's heuristics

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
See [[http://www.laputan.org/drc/drc.html#RulesForFindingStandardProtocols Designing Reusable Classes]]
+
In their text, [[Johnson and Foote 1988]], Johnson & Foote describe a number of important heuristics.
  
[[Johnson and Foote 1988]]
+
==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]]
  
** [[Recursion introduction]]
+
== External Resources==
** [[Eliminate case analysis]]
+
* [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])
** [[Reduce the number of arguments]]
+
 
** [[Reduce the size of methods]]
+
[[Category: Johnson and Foote's heuristics]]
** [[Class hierarchies should be deep and narrow]]
+
** [[The top of the class hierarchy should be abstract]]
+
** [[Minimize accesses to variables]]
+
** [[Subclasses should be specializations]]
+
** [[Split large classes]]
+
** [[Factor implementation differences into subcomponents]]
+
** [[Separate methods that do not communicate]]
+
** [[Send messages to components instead of to self]]
+
** [[Reduce implicit parameter passing]]
+

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.

Rules for Finding Abstract Classes

These heuristics define methods of determining and extracting abstract classes.

Rules for Finding Frameworks

The heuristics describe how to find frameworks in OOD.

External Resources

Personal tools