Dr. Jody Paul
jody@acm.org
Software Engineering
Design Guidelines

The following table summarizes basic design criteria as presented by Meilir Page-Jones in The Practical Guide to Structured Systems Design.

CriterionGuideline
CohesionMake each module functional (or at least sequential or communicational)
CouplingKeep the coupling between modules loose
Data StructureMatch the program structure as much as possible to the data structure
Decision-SplittingKeep the recognition part of a decision close to its execution
EditingEdit in successive levels, with the simplest editing done at the lowest level
Error ReportingHave the same module that recognizes the error report the error
FactoringKeep it high
Fan-InMake it high
Fan-OutRestrict the number of subordinates of a module to fewer than seven
Initialization/Termination
Modules
Initialize as late as possible; wrap up as soon as possible
Restrictivity/GeneralityDon't make a module too restrictive or too general
State MemoryAvoid state memory wherever possible
System ShapeMake the system balanced (neither physically input-driven nor physically output-driven)




©1995-1998,2006 Dr. Jody Paul