Figure 5 Add Item Collaboration Diagram

Reviews
Shared by: Maine Skweeze
Stats
views:
6
rating:
not rated
reviews:
0
posted:
2/11/2009
language:
English
pages:
0
: LibrarianTerminal : Librarian : TitleControl : ItemControl : libItemProxy : SubCommunicationSystem 1: requestTitleInfo(isbn ) 1.1: create( ) 1.2: requestTitleInfo(isbn) 1.2.1: [self.title=Null] titleNotExist(isbn) 1.2.1.1: titleNotExist( ) Refer to Find Title Use Case 1.2.2: [self.title!=Null] displayTitleInfo(title) 1.2.2.1: displayTitleInfo( ) 2: requestAddTitle(isbn) Refer to Add Title Use Case 2.1: titleAdded( ) 3: addItem(isbn) 3.1: create( ) 3.2: addItem(title) 3.2.1: item:=create(title) 3.2.1.1: item:=load(title) 3.2.2: displayItemId(item ) 3.2.2.1: displayItem Id(item.*) 4: exit() 4.1: destroy( ) 4.1.1: destroy() 4.2: destroy( ) Figure 5: Add Item Collaboration Diagram1 1 The objects in the collaboration diagrams refer to the object proxies. : LibrarianTerminal : TitleControl : libTitleProxy : SubCommunicationSystem : Librarian 1: requestAddTitle(isbn) 1.1: create( ) 1.2: requestAddTitle (isbn) 1.2.1: title:=create(isbn,bookName,author) 1.2.1.1: title:=load(isbn,bookName,author) 1.2.2: [self.title!=Null] titleExist(isbn) 1.2.2.1: titleExist(isbn) 1.2.2: [self.title=Null]titleAdded() 1.2.2.1: titleAdded( ) 2: exit() 2.1: destroy( ) Figure 6: Add Title Collaboration Diagram : LibrarianTerminal : Librarian : UserControl : libUserProxy : SubCommunicationSystem 1: requestAddUser(name, address) 1.1: create( ) 1.2: requestAddUser(name,address) 1.2.1: user:=create(name,address) 1.2.1.1: user:=load(name,address) 1.2.2: [self.user!=Null] userExist(name,address) 1.2.2.1: userExist(name,address) 1.2.2: [self.user=Null]userAdded( ) 1.2.2.1: userAdded() 2: exit( ) 2.1: destroy( ) Figure 7: Add User Collaboration Diagram : LibrarianTerminal : Librarian : UserControl : TitleControl : LoanControl : ReservationControl : libLoanCopyProxy : SubCommunicationSystem 1: requestUserInfo(userId ) 1.1: create( ) Refer to Search User Use Case 1.2: requestUserInfo(userId) 1.2.1: [self.user=Null] userNotExist(userId) 1.2.1.1: userNotExist(userId) 1.2.2: [self.user!=Null] displayUserInfo(user, reservation[], loan[] ) 1.2.2.1: *[i:= 1 .. user.reservation->size] displayUserInfo(userId, reservation[i].*) 1.2.2.2: *[i:= 1 .. user.loan->size] displayUserInfo(userId, loan[i].*) 1.2.2.3: displayUserInfo(user.*) Refer to Find Title Use Case 2: requestTitleInfo(isbn) 2.1: create( ) 2.2: requestTitleInfo(isbn) 2.2.1: [self.title=Null] titleNotExist(isbn) 2.2.1.1: titleNotExist( ) 2.2.1: displayTitleInfo(title,item[]) 2.2.1.1: *[i:= 1 .. title.item->size] displayTitleInfo(isbn,item[i].*) 3: [user.privilege=true and user.borrowPrivilege=true] requestAddLoan (userId,isbn,itemId) 3.1: create( ) 3.2: requestAddLoan (userId,isbn,itemId ) 3.2.1: [self.user.privileges=False]PrivilegeRevoked(user) 3.2.1.1: privilegeRevoked(userId,user.totalFine) 3.2.1: [self.referencecopy->exists(ref:ReferenceCopy|ref.itemId=item.itemId)] isReferenceCopy(item) 3.2.1.1: isReferenceCopy(item.itemId, item.title.bookName) 3.2.1: [self.user.loanCounter=library.user.loanLimit]countFull(user) 3.2.1.1: countFull(user.usrId, user.name ) 3.2.1: create( ) 3.2.2: requestCheckReservation( ) Refer to Check Reservation Use Case 3.2.3: requestDenied( ) 3.2.3.1: requestDenied( ) 3.2.3.1.1: requestDenied( ) 3.2.3: requestPermitted( ) 3.2.3.1: requestPermitted( ) 3.2.3.1.1: requestPermitted( ) 3.2.3: requestAddLoan(userId,itemId) 3.2.3.1: requestAddLoan(userId,itemId) Refer to Remove Reservation Use Case 3.3: create( ) 3.2.3.2: updateLoanCopyStatus() 3.4: requestRemoveReservation(title) 4: exit( ) 4.1: destroy( ) 4.2: destroy() 4.3: destroy( ) 4.3.1: destroy() 4.4: destroy( ) Figure 8: Borrow Loancopy Collaboration Diagram : LibrarianTerminal : LoanControl : ReservationControl : libTitleProxy : ReservationProxy : libLoanCopyProxy : SubCommunicationSystem 1: create( ) 2: requestCheckReservation(userId,isbn) 2.1: title:=create(isbn) 2.1.1: title:=load(isbn) 2.2:reservation[]:=getReservation() 2.2.1: reservation[]:=getReservation() 2.2.2: *[i:=1..self.reservation->size] reservation[]:=create(reservation[i]) 2.3: item[]:=getItem() 2.3.1: item[]:=getItem() 2.3.2: *[i:=1..self.loancopy->size] loancopy[]:=create(loancopy[i]) [self.title.loancopy->select(loancopyStatus=onshelf)->size > self.title.reservation->size or (self.title.loancopy->select(loancopyStatus=onshelf)->size <= self.title.reservation->size and self.user.reservation.title.reservation.reservationOrder<=self.title.loancopy->select(loancopyStatus=onshelf)->size)] 2.4: requestPermitted(title,user) 2.4.1: requestPermitted( ) [self.title.loancopy->select(loancopyStatus=onshelf)->size<=self.title.reservation->size and (Not self.user.reservation.title->exists(u:User|u.reservation.title.isbn=user.reservation.title.isbn) or self.user.reservation.title.reservation.reservationOrder > self.title.loancopy->select(loancopyStatus=onshelf)->size)] 2.4: requestDenied(title,user) 2.4.1 requestDenied( ) 3: destroy( ) 3.1: destroy( ) 3.1.2: destroy() Figure 9: Check Reservation Collaboration Diagram : LibrarianTerminal : Li brarian : UserControl : libUserProxy : SubCommunicationSystem 1: requestUserInfo(userId) 1.1: create() 1.2: requestUerInfo(userId) 1.2.1: [self.user=Nul l] userNotExists(userId) 1.2.1.1: userNotExi st(userId) 1.2.1: [sel f.user!=Null] displayUserInfo(user,reservation[], l oan[]) Refer to Search User Use Case 1.2.1.1: *[i :=1..user.reservation->si ze] displ ayUserInfo(userId,reservation[i].*) 1.2.1.2: *[i:=1..user.l oan->size] displayUserInfo(userId, loan[i].*) 1.2.1.3: displ ayUserInfo(user.*) 2: fineCollected(userId, totalFine) 2.1: fineCollected(userId, totalFine) 2.1.1: updateFineInfo(userId,totalFine) 2.1.1.1: updateFineInfo(userId,totalFine) 2.1.1.2: [self.user.totalFine=0 and self.user.privil eges=False] upatePrivileges() 2.1.2: [self.user.totalFine=0]privil esgeRetai ned(user) 2.1.2.1: privil egesRetai ned(user.userId) 3: exist() 3.1: destroy() Figure 10: Collect Fine Collaboration Diagram : Librarian 1: requestLoanInfo(itemId ) : LibrarianTerminal : LoanControl : libLoanCopyProxy : LoanProxy : libUserProxy : SubCommunicationSystem 1.1: create( ) 1.2: requestLoanInfo(itemId ) 1.2.1: loancopy:=create(itemId) 1.2.1.1: loancopy:=load(itemId) 1.2.2: [self.loancopy!=Null] loan:=getLoan() 1.2.2: [self.loancopy=Null] loancopyNotExist(itemId ) 1.2.2.1: loan:=getLoan() 1.2.2.1: loancopyNotExist(itemId) 1.2.2.2: loan:=create(itemId) 1.2.3: [self.loan!=Null and Date.now-loan.dueDate>3]calculateFine(loan) 1.2.3: [self.loan=Null] loanNotExist(loancopy) 1.2.3.1: loanNotExist(itemId ) 1.2.4: user:=getUser(loan) 1.2.4.1: user:=getUser(loan) 1.2.3.1: calculateFine(loan) 1.2.4.2: user:=create(loan) 1.2.5: [self.loan!=Null] displayLoanInfo(loancopy,loan,user ) 1.2.5.1: displayLoanInfo(itemId,loan.*,user.userId,user.privilege) 2: exit( ) 2.1: destroy( ) Figure 11: Find Loan Collaboration Diagram : UserTerminal : User : TitleControl : TitleProxy : ItemProxy : SubCommunicationSystem 1: requestTitleInfo(isbn) 1.1: create( ) 1.2: requestTitleInfo(isbn) 1.2.1: title:=create(isbn) 1.2.1.1: title:=load(isbn) 1.2.2: [self.title!=Null] item[]:=getItem() 1.2.2: [self.title=Null]titleNotExist(isbn) 1.2.2.1: item[]:=getItem() 1.2.2.1: titleNotExist(isbn) 1.2.2.2: *[i:=1..item->size] item[]:=create(item[i]) 1.2.3: [self.title!=Null] displayTitleInfo(title,item[]) 1.2.3.1: *[i:= 1 .. title.item ->size] displayTitleInfo(isbn,item [i].*) 2: exit( ) 2.1: destroy( ) Figure 12: Find Title Collaboration Diagram2 2 Title can also be searched by bookName or author. : UserTerminal : ReservationControl : TitleProxy : SubCommunicationSystem : User 1: requestTitleInfo (isbn) Refer to Find Title Use Case 1.1: titleNotExists(isbn) 1.1.1: *[i:=1..self.title.item->size] displayTitleInfo(isbn,item[i].*) 2: requestUserInfo(userId) 2.1: userNotExist(userId) Refer to Search User Use Case 2.1.1: *[i:=1..user.reservation->size] displayUserInfo(userId, reservation[i].*) 2.1.2: *[i:=1..luser.loan->size] displayUserInfo(userId, loan[i].*) 2.1.3: displayUserInfo(user.*) 3: [self.user.privilege=true and self.user.reservePrivilege=true]requestMakeReservation(isbn,userId) 3.1: create( ) 3.2: requestMakeReservation(title,user) 3.2.1: [self.user.privilege=false]privilegeRevoked(user) 3.2.1.1: privilegeRevoked(user.userId, user.totalFine) 3.2.1: [self.reservation->exists(r:Reservation|r.title.isbn=reservation.title.isbn)] reservationExist(reservation) 3.2.1.1: reservationExist(isbn,userId) 3.2.1: [self.user.numberofReservation=library.user.reserveLimit] countFull(user) 3.2.1.1: countFull(userId) [self.title!=Null and self.user!=Null and Not self.user.reservation->exists(u:User|u.reservation.title.isbn=title.isbn) and Not self.user.numberofReservation=library.user.reserveLimit] 3.2.1: requestMakeReservation(title,user) 3.2.1.1: requestMakeReservation(title,user) 4: exit( ) 4.1: destroy( ) 4.1.1: destroy() Figure 13: Make Reservation Collaboration Diagram : LibrarianTerminal : Librarian 1: requestM onitorSystem() 1.1: create( ) : MonitorContol : LibraryProxy : SubCommunicationSystem : libUserProxy : libTitleProxy 1.2: requestMonitorSystem( ) 1.2.1: library:=create() 1.2.1.1: library:=load() 1.2.2: user[]:=getUser( ) 1.2.2.1: user[]:=getUser() 1.2.2.2: *[i:=1..self.library.user->size] user[]:=create(user[i]) 1.2.3: title[]:=getTitle( ) 1.2.3.1: title[]:=getTitle() 1.2.3.2: *[i:=1..self.library.title->size] create(title[i]) 1.2.4: displaySystemInfo(user[],title[]) 1.2.4.1: *[i:=1..self.library.user->size]displaySystem Info(user[i].*) 1.2.4.2: *[i:=1..self.library.title->size] displaySystemInfo(title[i].*) 2: exit( ) 2.1: destroy( ) Figure 14: Monitor System Collaboration Diagram : LibrarianTerminal : Librarian 1: requestTitleInfo(isbn ) 1.1: create( ) 1.2: requestTitleInfo(isbn) : TitleControl : ItemControl : ItemProxy : SubCommunicationSystem 1.2.1: [self.title=Null] titleNotExist(isbn) 1.2.1.1: titleNotExist(isbn) 1.2.1: [self.title!=Null] displayTitleInfo(title,item[]) 1.2.1.1: *[i:= 1 .. title.item->size] displayTitleInfo(isbn,item [i].*) Refer to Find Title Use Case 2: removeItem(itemId) 2.1: create( ) 2.2: removeItem (item ) 2.2.1: [Not self.loancopy.loancopyStatus=onloan] destroy() 2.2.1.1: destroy() 2.2.1.1: loanORreservationExist(itemId) 2.2.1: [self.loancopy.loancopyStatus=onloan]loanORreservationExist(item ) 3: exit() 3.1: destroy( ) 3.2: destroy( ) Figure 15: Remove Item Collaboration Diagram : UserTerminal : UserControl : ReservationControl : ReservationProxy : TitleProxy : SubCommunicationSystem : User 1: requestUserInfo(userId ) 1.1: create( ) 1.2: requestUserInfo(userId ) Refer to Search User Use Case 1.2.1: [self.user=Null] userNotExist(userId) 1.2.1.1: userNotExist(userId) 1.2.1: [self.user!=Null] displayUserInfo(user, reservation[], loan[] ) 1.2.1.1: *[i:= 1 .. user.reservation->size] displayUserInfo(userId, reservation[i].*) 1.2.1.2: *[i:= 1 .. user.loan->size] displayUserInfo(userId, loan[i].*) 1.2.1.3: displayUserInfo(user.*) 2: [self.user.pirvilege=true] requestRemoveReservation (isbn,userId) 2.1: create( ) 2.2: requestRemoveReservation(reservation,user) 2.2.1: [self.user.privilege=false]prililegeRevoked(user) 2.2.1.1: privilegeRevoked(user.userId, user.totalFine) 2.2.1: [ self.reservation=Null] reservationNotExist() 2.2.1: [self.reservation!=Null] title:=getTitle(reservation) 2.2.1.1: reservationNotExist(isbn) 2.2.1.1: title:=getTitle(reservation) 2.2.1.2: title:=create(title) 2.2.2: [self.reservation!=Null] destroy(reservation) 2.2.2.1: destroy() 2.2.3: *[i:=1..self.reservation->select(reservation.title.isbn=isbn)->size] updateReservationOrder(isbn) 2.2.3.1: updateReservationOrder(isbn) 3: exit() 3.1: destroy( ) 3.2: destroy( ) 3.2.1: destroy() 3.2.2: destroy() Figure 16: Remove Reservation Collaboration Diagram : LibrarianTerminal : Librarian 1: requestTitleInfo(isbn) 1.1: create( ) 1.2: requestTitleInfo(isbn) 1.2.2: [self.title=Null] titleNotExist(isbn) 1.2.2.1: titleNotExist(isbn) 1.2.3: [self.title!=Null] displayTitleInfo(title,item[]) 1.2.3.1: *[i:=1..title.item->size] displayTitleInfo(title.*,item[i].*) : TitleControl : libTitleProxy : ItemControl : ItemProxy : SubCommunicationSystem Refer to Find Title Use Case 2: removeTitle(isbn) 2.1: removeTitle(title) 2.1.1: [self.loancopy->select(loancopyStatus=onloan)->size>0 or self.title.numberofTitleReservation>0] loanORreservationExist(title,loancopy) 2.1.1.1: loanORreservationExist(isbn) 2.1.1: [self.loancopy->select(loancopyStatus=onloan)->size=0 and self.title.titleReservationCounter=0] destroy(title) 2.1.1.1: destroy(title) 2.1.2: create() 2.1.3: *[i:=1..self.item->size] removeItem(item[i]) 2.1.3.1: destroy(item[i]) 2.1.3.1.1: destroy(item[i]) 3: exit( ) 3.1: destroy( ) 3.1.1: destroy() 3.2: destroy() 3.2.1: destroy() Figure 17: Remove Title Collaboration Diagram : LibrarianTerminal : Librarian : UserControl : ReservationControl : libUserProxy : ReservationProxy : SubCommunicationSystem 1: requestUserInfo(userId) 1.1: create( ) 1.2: requestUserInfo(userId) Refer to Search User Use Case 1.2.1: [self.user=Null] userNotExist(userId) 1.2.1.1: userNotExist(userId) 1.2.1: [self.user!=Null] displayUserInfo(user,reservation[],loan[]) 1.2.1.1: *[i:= 1..user.reservation->size] displayUserInfo(userId,reservation[i].*) 1.2.1.2: *[i:=1..user.loan->size] displayUserInfo(userId,loan[i].*) 1.2.1.3: displayUserInfo(user.*) 2: [self.user.privilege=true] removeUser(userId) 2.1: removeUser(user ) 2.1.1: [self.user.privilege=false]privilegeRevoked(user) 2.1.1.1: privilegeRevoked(user.userId,user.totalFine) 2.1.1: [self.user.numberofLoan>0]userHasLoan(user ) 2.1.1.1: userHasLoan(userId) 2.1.1: [self.user!=Null and self.user.privileges=true and self.user.loanCounter=0] create() 2.1.2: requestRemoveReservation(reservation[]) 2.1.2.1: *[i:=1..self.reservation->size] destroy(reservation[i]) 2.1.2.1.1: destroy(reservation[i]) 2.1.3: destroy() 2.1.3.1: destroy() 3: exit() 3.1: destroy( ) 3.1.1: destroy() 3.2: destroy() 3.2.1: destroy() Figure 18: Remove User Collaboration Diagram : LibrarianTerminal : Li brarian : LoanControl : ReservationControl : UserControl : l ibLoanCopyProxy : SubCommunicationSystem 1: requestLoanInfo(itemId) 1.1: l oancopyNotExi st(itemId) Refer to Find Loan Use Case 1.2: loanNotExi st(itemId) 1.3: displayLoanInfo(itemId,l oan.*,user.userId,user.privilege) 2: [self.user.totalFine>0] fi neColl ected(userId, user.totalFine) Refer to Coll ect Fi ne Use Case 2.1: create() 2.2: fineCol lected(user.userId, user.totalFine) 2.2.1: privilegesRetained (user) 2.2.1.1: pri vi legeRetained(userId) 3: [user.privil ege=true]renewLoan(isbn,itemId) 3.1: create( ) 3.2: renewLoan(i sbn,l oan,l oancopy) 3.2.1: [user.pri vi leges=false]privil egeRevoked(user) 3.2.1.1: pri vi legeRevoked(user.userId, user.totalFine) 3.2.1: [user.pri vi leges=false] create( ) 3.2.2: requestCheckReservation(i sbn,userId) 3.2.2.1: requestPermi tted( ) Refer to the Check Reservati on Use Case 3.2.2.1.1: requestPermi tted( ) 3.2.2.1: requestDenied( ) 3.2.2.1.1: requestDenied( ) 3.2.3: [Date.now>self.loan.dueDate] loanOverdue(loancopy ) 3.2.3.1: l oanOverdue(i temId,l oan.l oanStatus) 3.2.3: [ self.l oancopy.loan.renewT i me=library.user.loan.renewLi mit] renewFull (l oancopy) [self.loancopy->select(l oancopyStatus=onloan) includes (loancopy) and self.loan.renewT i mesize]reservation[]:=create(reservation[i]) 1.2.2: [self.user=Null] userNotExist(userId) 1.2.2.1: userNotExist(userId ) 1.2.3: [self.user!=Null] loan[]:=getLoan() 1.2.3.1: loan[]:=getLoan() 1.2.3.2: *[i:=1..self.loan->size] loan[]:=create(loan[i]) [self.loan->exists(l:Loan|l.user.userId=user.userId) and Date.now>loan.dueDate] *[1..self.user.loan->select(loan.loanStatus=overdue)->size] 1.2.4: fine:=calculateFine(loan) 1.2.4.1: fine:=calculateFine(loan) 1.2.4.1.1: calculateFine(loan) 1.2.5: *[i:=1..self.user.loan->size] updateFineInfo(userId,loan[i].fine) 1.2.5.1: *[i:=1..self.loan->size]updateFineInfo(userId,loan[i].fine) 1.2.5.2: [Date.now-loan.dueDate>3 and user.privileges=true] updatePrivileges() 1.2.5.3: updatePrivileges() 1.2.6: [self.user!=Null] displayUserInfo(user, reservation[], loan[] ) 1.2.6.1: *[i:= 1 .. user.reservation->size] displayUserInfo(userId, reservation[i].*) 1.2.6.2: *[i:= 1 .. user.loan->size] displayUserInfo(userId, loan[i].*) 1.2.6.3: displayUserInfo(user.*) 2: exit( ) 2.1: destroy( ) 2.1.1: destroy() 2.1.2: destroy() 2.1.3: destroy() 2.2: destroy() Figure 21: Search User Collaboration Diagram

Related docs
Sequence and Collaboration Diagram
Views: 380  |  Downloads: 16
Collaboration in Blackboard
Views: 2  |  Downloads: 0
item no _____
Views: 0  |  Downloads: 0
add on interest
Views: 30  |  Downloads: 0
What can I add here
Views: 0  |  Downloads: 0
collaboration-tools
Views: 2  |  Downloads: 1
ITEM-NO………
Views: 3  |  Downloads: 0
UML Tutorial Collaboration Diagrams
Views: 52  |  Downloads: 4
Other docs by Maine Skweeze
Whiet v Brown
Views: 155  |  Downloads: 0
dv210infok
Views: 134  |  Downloads: 0
Damages
Views: 216  |  Downloads: 5
dv105c
Views: 139  |  Downloads: 0
at138
Views: 139  |  Downloads: 0
Arms of Love
Views: 328  |  Downloads: 9
Mannillo v Gorski
Views: 633  |  Downloads: 5
Make Me a Servant
Views: 455  |  Downloads: 2
Remedies Table
Views: 352  |  Downloads: 32
There is a Place of Quiet Rest
Views: 182  |  Downloads: 1
Why Learn German
Views: 486  |  Downloads: 16
Herrin v Sutherland
Views: 305  |  Downloads: 2
We Will Glorify
Views: 240  |  Downloads: 2
Someday
Views: 508  |  Downloads: 4
Contracts Outline- Alford(1)
Views: 1660  |  Downloads: 67