# Software Design
* * *
Topics:
* high-level design
* top down vs. bottom up design
* partitioning and abstraction
* coupling and cohesion
* dependence and MDDs
* design reviews
* * *
In this lecture we covered chapter 6, sections 1, 2, and 5, of
[*An Integrated Approach to Software Engineering*,][iase]
third edition, by Pankaj Jalote. The book can
be freely downloaded from the Cornell Library.
I refer you to it in place of writing my own notes. The
other sections of chapter 6 are worth reading.
[iase]: https://newcatalog.library.cornell.edu/catalog/8719723
## Terms and concepts
* abstraction
* bottom up
* cohesion
* computational thinking
* coupling
* dependence
* design document
* design review
* divide and conquer
* external behavior
* fan in
* fan out
* hierarchical design
* high-level design
* interfaces
* internal details
* layers of abstraction
* modularity
* module dependence diagram (MDD)
* narrow interface
* partitioning
* simplicity
* stepwise refinement
* system design
* top down