likelythese iterations would all occur in an initial meeting with the librarian before this meetinghoweverwe can already sketch out most basic design for the objects we have concretely identifiedcatalog +search(author book +name +isbn +authors +title +subject +dds number armed with this basic diagram and pencil to interactively improve itwe meet up with the librarian they tell us that this is good startbut libraries don' serve only booksthey also have dvdsmagazinesand cdsnone of which have an isbn or dds number all of these types of items can be uniquely identified by upc number though we remind the librarian that they have to find the items on the shelfand these items probably aren' organized by upc the librarian explains that each type is organized in different way the cds are mostly audio booksand they only have couple of dozen in stockso they are organized by the author' last name dvds are divided into genre and further organized by title magazines are organized by title and then refined by the volume and issue number books areas we had guessedorganized by the dds number with no previous object-oriented design experiencewe might consider adding separate lists of dvdscdsmagazinesand books to our catalogand search each one in turn the trouble isexcept for certain extended attributesand identifying the physical location of the itemthese items all behave as much the same this is job for inheritancewe quickly update our uml diagramlibraryitem catalog +search( +title +upc +subject +locate(book author +name +isbn +authors +title +subject +dds number magazine +volume +issue dvd cd +actors +director +genre +artist