{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

cs2110-sweng-1-6up

cs2110-sweng-1-6up - Overview Today Design Concepts...

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

View Full Document Right Arrow Icon
CS 2110 Software Design Principles I Juan Altmayer Pizzorno port25.com Overview Today : Design Concepts & Principles Top-Down, Bottom-Up Design Software Process (briefly) Modularity Information Hiding, Encapsulation Principles of Least Astonishment and “DRY” Refactoring (if there’s time) Next week: Test-Driven Development Top-Down Design Let’s build and electric bicycle! Refine 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 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 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 Software Process How do you go about developing software? Are the requirements fixed and well understood ? Most software problems are not like that Not enough customer feedback Requirements Design Implementation Verification Maintenance “Waterfall”
Background image of page 1

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

View Full Document Right Arrow Icon
Incremental & Iterative 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 &
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}