the half arrowheads indicate asynchronous messages sent to or from an object an asynchronous message typically means the first object calls method on the second objectwhich returns immediately after some processingthe second object calls method on the first object to give it value this is in contrast to normal method callswhich do the processing in the methodand return value immediately sequence diagramslike all uml diagramsare best used only when they are needed there is no point in drawing uml diagram for the sake of drawing diagram howeverwhen you need to communicate series of interactions between two objectsthe sequence diagram is very useful tool unfortunatelyour class diagram so far is still messy design we notice that actors on dvds and artists on cds are all types of peoplebut are being treated differently from the book authors the librarian also reminds us that most of their cds are audio bookswhich have authors instead of artists how can we deal with different kinds of people that contribute to titlean obvious implementation is to create person class with the person' name and other relevant detailsand then create subclasses of this for the artistsauthorsand actors howeveris inheritance really necessary herefor searching and cataloging purposeswe don' really care that acting and writing are two very different activities if we were doing an economic simulationit would make sense to give separate actor and author classesand different calculate_income and perform_job methodsbut for cataloging purposesit is probably enough to know how the person contributed to the item we recognize that all items have one or more contributor objectsso we move the author relationship from the book to its parent classlibraryitem catalog +search( +title +upc +subject +contributors contributor +name +locate(book +isbn +title +subject +dds number cd dvd magazine +genre +volume +issue