One dog, two dog, three dog, four...Your software has a contextIdentify the problemPlan a solutionUpdate your use caseA tale of two codersRandy: simple is best, right?Sam: object lover extraordinaireSam: updating the DogDoor classComparing barksRandy: I’ll just compare two stringsSam: I’ll delegate bark comparisonDelegation in Sam’s dog door: an in-depth lookThe power of loosely coupled applicationsBack to Sam, Randy, and the contest...Randy AND Sam: It works!Maria won the MacBook Pro!So what did Maria do differently?Pay attention to the nouns in your use caseIt’s all about the use caseThere is no Bark class here!One of these things is not like the other...Focus: owner’s dogFocus: owner’s dog’s barkRemember: pay attention to those nouns!From good analysis to good classes...Class diagrams dissectedClass diagrams aren’t everythingSo how does recognize() work now?