cs2110-sweng-1

cs2110-sweng-1 - CS 2110 Software Design Principles I Juan...

Info iconThis preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon
CS 2110 Software Design Principles I Juan Altmayer Pizzorno port25.com
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Overview Today : Top-Down, Bottom-Up Design Software Process (brieFy) Modularity Information Hiding, Encapsulation Principles of Least Astonishment and “DRY” Refactoring (if there’s time) Next week: Test-Driven Development
Background image of page 2
Top-Down Design Let’s build and electric bicycle! Refne the design at each step Decomposition / “Divide and Conquer” Body Fork Tire Propulsion E-Bike Handlebar Saddle Electric Human Cranks Gear Shifters Rim Spokes Battery Motor Wheels
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Bottom-Up Design Just the opposite: start with parts Composition Build-It-Yourself (e.g. IKEA furniture) Body Fork Tire Propulsion E-Bike Handlebar Saddle Electric Human Cranks Gear Shifters Rim Spokes Battery Motor Wheels
Background image of page 4
Top-Down vs. Bottom-Up Two ways to think about a problem It’s sometimes good to alternate Not the only way s to go about it With Top-Down it’s harder to test early because parts needed may not have been designed yet With Bottom-Up , you may end up needing things different from how you built them
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Software Process How do you go about developing software? Are the requirements Fxed and well understood ? Most software problems are not like that Not enough customer feedback Requirements Design Implementation Verifcation Maintenance “Waterfall”
Background image of page 6
Deliver parts in several small cycles “Don’t build for the future , for it is unknown Software development is more like gardening than architecture Select Feature(s) Design & Implement Release Start
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Modularity Module : component
Background image of page 8
Image of page 9
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 02/01/2010 for the course CS 2110 at Cornell.

Page1 / 23

cs2110-sweng-1 - CS 2110 Software Design Principles I Juan...

This preview shows document pages 1 - 9. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online