Design Guidelines



index
Disabled back button Next Section
printable version




Section 0: Module Objectives or Competencies
Course Objective or Competency Module Objectives or Competency
The student will be able to employ appropriate systems design tools such as structure charts, process specifications, and dialog flow designers to design a system and its user interface. The student will be able to list and explain various structured design heuristics.
The student will be able to list and explain important design guidelines such as cohesion and coupling.


Section 1: Design Guidelines

Coupling


Cohesion


Module size


Interface redundancy


Fan-in


Fan-out


Modules with restrictions


Scope of effect


Span of control



Section 2: Structured Design Heuristics

What is a heuristic?


Create small, unique tasks that perform only one function.


Create Independent modules.


Isolate the physical detail in lower-level modules.


Build in flexibility.


Strive for simplicity.


Parts that are related to one another should be grouped together, and unrelated parts should be distanced.



Section 3: Refactoring

While refactoring is generally encountered most often in Agile development, it is closely related to the design guidelines.

Code Refactoring is the process of clarifying and simplifying the design of existing code, without changing its behavior (link).

The following are claimed benefits of refactoring (link):

It is important to remember that refactoring does not not change the external behavior of the modules.

A heuristic, when used as a noun, is a specific rule-of-thumb or argument derived from experience (link). And a rule-of-thumb is an informal principle that is intended to provide general guidance rather than precise direction (link).