Copyright Dedication how to use this book: Intro Who is this book for? We know what you're thinking. And we know what your brain is thinking. Metacognition: thinking about thinking Here's what WE did: Here's what YOU can do to bend your brain into submission Read Me The Technical Team Acknowledgements Chapter 1. well-designed apps rock: Great Software Begins Here Rock and roll is forever! Rick's shiny new application What's the FIRST thing you'd change? Great software is... more than just one thing Great software in 3 easy steps Focus on functionality first Test drive Looking for problems Analysis Apply basic OOprinciples Design once,design teice How easy is it to change your applications? Encapsualte what varies Delegation Great software at last(for now) OOA&D is about writing great software Bullet Poins Chapter 2. gathering requirements: Give Them What They Want You've got a new programming gig Test dvive Incorrect usage(sort of) What is a Requirement? Greating a requirments list Plan for things going wrong Alternate paths handle system problems One use case,three parts Check your requirements against yuor use cases Your system must work in the real world Getting to know the Happy Path OOA&D Toolbox Chapter 3. requirements change: I Love You, You're Perfect... Now Change Chapter 4. analysis: Taking Your Software into the Real World Chapter 5 (part 1). good design = flexible software: Nothing Ever Stays the Same Chapter 5 (part 2). good design = flexible software: Give Your Software a 30-minute Workout Chapter 6. solving really big problems "My Name is Art Vandelay...I am an Architect" Chapter 7. architecture Bringing Order to Chaos Chapter 8. design principles: Originality is Overrated Chapter 9. iterating and testing: The Software is Still for the Customer Chapter 10. the ooa&d lifecycle: Putting It All Together Appendix i. leftovers: The Top Ten Topics (we didn't cover) #1. IS-A and HAS-A #2. Use case formats #3. Anti patterns #4. CRC cards #5. Metrics #6. Sequence diagrams #7. State diagrams #8. Unit testing #9. Coding standards and readable code #10. Refactoring Appendix ii. welcome to objectville: Speaking the Language of OO