JMU
Engineering Design Principles
Evaluating Software Engineering Designs


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu


Overview
Rationale
The Fundamental Principle of Software Engineering Design
Modular Designs: Things to Think About
Some Other Software Engineering Design Principles
Standardization
Simplicity
Elegance/Beauty
Engineering Design Practices
Information Hiding
Information Hiding (cont.)
Coupling
Coupling (cont.)
Some Kinds of Coupling
Cohesion
Cohesion (cont.)
Kinds of Cohesion
Examples
Examples (cont.)
Examples (cont.)
Examples (cont.)
Examples (cont.)
Examples (cont.)