Browser
BookBorrower
Borrow copy
of book
Return copy
of book
Extend loan
Update
catalog
Borrow
journal
Librarian
Return
JournalBorrower journal
Return
BookBorrower JournalBorrower journal
Return copy
of book
[returner]
wait in queue
[returning]
[borrowing]
record
borrowing
prepare for
next member
1
is a copy of
1..*
borrows/returns Copy
LibraryMember
1
0..*
0..*
borrows/returns
1
1 0..*
1
is a copy of
1..*
borrows/returns Copy
LibraryMember
1
0..*
1 0..*
aMember : BookBorrower
borrow(theCopy)
1: okToBorrow okToBorrow
2: borrow
2.1: borrowed
returned()
not borrowable borrowable
Design
Implementation
Testing
Maintenance