CIS 375 SOFTWARE ENGINEERING
UNIVERSITY OF MICHIGAN-DEARBORN
DR. BRUCE MAXIM, INSTRUCTOR
Date: 10/20/97
Week 7
NO NOTES; EXAM
Date: 10/22/97
Week 7
COUPLING:
FACTORS:
- Type of connection between modules.
- Complexity of the interface.
- Type of information flow.
- Binding time with the connection.
TYPES OF COUPLING:
- No direct coupling.
- Data coupled (data structures).
- Stamped coupling (parts of data structure).
- Central coupling (flags, etc.).
- External coupling (file format, database).
- Common coupling.
- Contact coupling.
DECOUPLE:
- Early in design.
- Convert implicit references.
- Standardize connections.
- Localize your variables.
- Use buffers to moderate I/O to modules.
COHESION:
- Coincidental cohesion.
- Logical cohesion.
- Temporal cohesion.
- Procedural cohesion.
- Communicational cohesion.
- Sequential cohesion.
- Functional cohesion.
TECHNIQUES TO COHESION AND COUPLING:
- Small modules.
- Control "fan out" (degree to which tree is wide).
- Focus on "fan in" (fan in = reuse).
- Scope of effect should be a subset of scope of control.
- Depth.
DESIGN HEURISTICS:
- Evaluate "first cut" and reduce coupling
and increase cohesion.
- Minimize "fan out" and focus on "fan
in".
- Scope of effect should be subset of scope of
control.
- Reduce complexity of interfaces and improve consistency.
- Define modules with predictable behavior, don't
be overly restrictive.
- Strive for single entry, single exit modules.
- Package software based on design constraints
and portability requirements (package = how the modules go together).
DATA DESIGN:
- Systematic analysis applied to functional behavior, can be
applied to data.
- Data structures and operations should be identified.
- Establish a data dictionary and use it to guide both data
and program design.
- Defer low level data structure decisions until late in the
design.
- Information hiding.
- Libraries of useful data structures and operators is developed.
- Environment must support ADT's.
ARCHITECTURAL DESIGN:
PROCEDURAL DESIGN:
- Structured programming theorem.
- Flow charts.