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