Course Content
Software design
Design process
Design principles
Design concepts
- Abstraction, refinement, modularity
Software architecture
- Control hierarchY
- Structural partitioning
- Data structure
- Software procedure
- Information hiding
Effective modular design
- Functional dependence, cohesion, coupling
Design heuristics for effective modularity
Design model
Design documentation
Design exercise (small application design workshop)
object-oriented design concepts
- Encapsulation
- Design principles
- Inheritance
- Polymorphism