Lecture Notes for CS
325
Functional System
Design, 14 February 2001
- design is a two part
process
- construct the solution structure - architecture
- specify the details of the solution structure - data
structures, control decisions, module behavior
-
architectural description - structure charts
- a
boxes-and-arrows diagram for system architecture
- each box is a
behavioral abstraction
- hierarchal relation -
super-ordinate, subordinate
- arrows represent calls-on or
delegates or uses relations among boxes
- control and data flow
indicated by labeled arrows
- non-specific control flows -
iteration and decision
- system specification
-
filling in the details for architectural design
- communicates
the design to all interested parties
- components
-
problem specification
- major data structures
- module
behaviors
- design decisions
- modularity
- partitioning architecture into components
- simplify
component behavior
- simplify inter-module communication - the
basic trade-off
- construct independent modules
-
abstraction guides partitioning
- partitioning strategies - top
down or bottom up
- top down
- start at the top
and partition into lower-level concepts
- stepwise refinement
- good for exploring unfamiliar problems and solutions
-
works with under specified problems
- bottom up
- start at the bottom with simple, well-defined concepts
-
build up to the problem solution
- good for building known
systems by exploiting past solutions
- problem must be defined
and stable
- design method
- how to
come up with the solution model described by boxes and arrows
-
structure design methodology - tied to data-flow diagrams
-
transformational point of view - inputs going to outputs
-
factoring - relying on subordinates to get the job done
- step 1
- draw the dfd
- step 2 - identify the most abstract
transformation; make it the root
- step 3 - identify the root's
subordinates (factor) establish the data flow and gross control flow
- step 4 - recurs on the subordinates
- design rules
of thumb - guidance for developing the solution module
-
coupling and cohesion - low coupling, high cohesion
- module size
- smaller is generally better
- fan-in and fan-out - high fan-in
may be good, high fan-out may be bad
This
page last modified on 19 February 2001.