@startuml scale 3.0 Object ":Cashier" as C Object ":Register" as R Object ":Sale" as S Object ":SalesLineItem" as SLI <> Object "sl:SalesLineItem" as slSLI Object ":ProductCatalog" as PC Object ":ProductSpecification" as PS <> C -r- R : > enterItem(itemID, qty) R -d- PC : > 1: spec := getSpecification(itemID) PC -d- PS : > 1.1: spec := find(itemID) R -r- S : > 2: makeLineItem(spec, qty) S -d- slSLI : > 2.1: create(spec, qty) S -d- SLI : > 2.2 add(sl) @enduml