09-gooddesignflexiblesoftwa

09-gooddesignflexiblesoftwa - Good Design = Flexible...

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

View Full Document Right Arrow Icon
Good Design == Flexible Software Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 — Lecture 9 — 09/22/2009 1
Background image of page 1

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

View Full DocumentRight Arrow Icon
Lecture Goals • Good Design == Flexible Software • The problem of “It seemed like a good idea at the time” • Discuss the Chapter 5 Example: Rick’s Guitars, Revisited • Emphasize the OO concepts and techniques encountered in Chapter 5 2
Background image of page 2
Quiz • If you need to indicate that a search algorithm of some type will be used to traverse an association between two classes, what notation do you use and what is it called? • A sequence diagram shows interactions between what? • What are the dashed lines of a sequence diagram called? • What do the rectangles that appear above the dashed lines indicate? 3
Background image of page 3

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

View Full DocumentRight Arrow Icon
Quiz • If you need to indicate that a search algorithm of some type will be used to traverse an association between two classes, what notation do you use and what is it called? • A rectangle with a list of attributes attached to the class and association; qualiFcation • A sequence diagram shows interactions between what? • objects (not classes) • What are the dashed lines of a sequence diagram called? • lifelines • What do the rectangles that appear above the dashed lines indicate? • ±ow of control; It indicates the object is actively doing something 4
Background image of page 4
Chapter 5 Overview • Main Points • Change in software development is inevitable • In order to handle change, you need Fexible software • In particular, you need to design your system to be Fexible for the most common types of change that it will encounter • Designing Fexibility for infrequent change is counterproductive • Unfortunately, achieving Fexible designs “the ±rst time” is really hard • And, typically, only possible after acquiring experience with a domain • Without experience, small changes can turn into big problems! 5
Background image of page 5

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

View Full DocumentRight Arrow Icon
Rick is Back • The software application that we produced for Rick back in Chapter 1 has been working great… • BUT… Rick would like to start carrying mandolins alongside guitars • Lets look at the original design and talk about how to add support for Mandolins 6
Background image of page 6
Original Design (circa End of Chapter 1) addGuitar(String, double, GuitarSpec) getGuitar(Sring): Guitar search(GuitarSpec): Guitar [*] Inventory getSerialNumber(): String getPrice(): double setPrice(double) getSpec(): GuitarSpec serialNumber: String price: double Guitar getBuilder(): Builder getModel(): String getType(): Type getBackWood(): Wood getTopWood(): Wood getNumStrings(): int model: String numStrings: int GuitarSpec Builder Type Wood inventory * spec builder topWood backWood type 7
Background image of page 7

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

View Full DocumentRight Arrow Icon
How to add a Mandolin? getSerialNumber(): String
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 03/11/2010 for the course CSCI 5448 taught by Professor Anderson during the Fall '09 term at Colorado.

Page1 / 39

09-gooddesignflexiblesoftwa - Good Design = Flexible...

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