Dog Door version is selling very well but has a bad idea about the product. • Door can not distinguish between neighbors dogs with dogs of Todd and Gina.
on writing software in a vacuum, and haven’t really thought much about the context that our software is running in. • But our software has to work in the real world, not just in a perfect world. => Analysis: figuring out potential problems, and then solving those problems—before you release your app out into the real world.
doing something very similar in his Bark and DogDoor classes. • The BarkRecognizer gets a Bark to evaluate. • BarkRecognizer gets the owner’s dog’s bark from DogDoor • BarkRecognizer delegates bark comparison to Bark • Bark decides if it’s equal to the bark from Doug’s hardware
look at Step 3 in the use case, and see exactly which classes are being used • Step 3 in Randy’s use case looks a lot like Step 3 in our use case... but in his step, the focus is on the noun “bark”, and not “the owner’s dog.”
system does, in language that’s easily understood. With a good use case complete, textual analysis is a quick and easy way to figure out the classes in your system.