# Software Design * * * <i> Topics: * high-level design * top down vs. bottom up design * partitioning and abstraction * coupling and cohesion * dependence and MDDs * design reviews </i> * * * 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 <!-- ## Further reading * -->