Actor: Librarian Brief Description: This actor is an employee of the library Actor: Member Brief Description: This actor is is a member of the Library who holds a membership cards Use Case Name: Borrow Book Brief Description: This use case is initiated by a Member to allow that member to borrow a book. A Librarian is then involved to carry out the transaction. Preconditions: The book must exist Basic Flow: {BEGIN Use Case} {BEGIN bring book to borrow} • Member -> Brings the book he/she would like to borrow • PERFORM Retrieve book information • Member -> Provides library card • Librarian -> Scans member's card {END bring book to borrow} {BEGIN authenticate librarian} • INCLUDE Authenticate Librarian {END authenticate librarian} {BEGIN scan book} • Librarian -> Scans the book's barcode RESUME {update member's record} {update book's status} {END scan book} {BEGIN update member's record} • Librarian -> Updates the Member's record with the newly borrowed book RESUME {END} {END update member's record} {BEGIN update book's status} • SYSTEM -> Changes the book's status in the database to 'Borrowed' {END update book's status} {END Use Case} Alternative Flows: Subflows: SUBFLOW Retrieve book information {BEGIN enter and retrieve book information} • Librarian -> enter's the book's name or barcode • SYSTEM -> retrieve the given book's information from database {END enter and retrieve book information} Postconditions: The number of borrowed books in the member's record is increased by one Extension Points: PRIVATE EXTENSION POINT FLOW Basic Flow AT {scan book} • Librarian -> Scans the book's barcode IF barcode cannot be scanned {BEGIN enter barcode manually} • Librarian -> Enters the book's barcode number manually {END enter barcode manually} CONTINUE {update member's record} {update book's status} PUBLIC EXTENSION POINT Balance overdue Special Requirements: System must be online Use Case Name: Authenticate Librarian Brief Description: This use case authenticates library staff to be able to perform administrative duties such as adding and removing books or enrolling members into the Library Preconditions: Basic Flow: {BEGIN Use Case} {BEGIN get librarian's username and password} • Librarian -> Enters username • Librarian -> Enters password • SYSTEM-> Validates login information {END get librarian's username and password} {END Use Case} Postconditions: Login log is updated whether authentication was approved or not Use Case Name: Balance Overdue Brief Description: This use case is an extension UC that gets performed if a member attempts to borrow a book while there is a balance overdue on his/her account. The UC acts as reminder to the Member to pay his overdue charges Preconditions: Extension Points: PUBLIC EXTENSION POINT BEHAVIOR EXTENDING {Borrow Book : Balance overdue} FLOW Basic Flow AT {bring book to borrow} • Librarian -> Scans member's card IF Member has an overdue balance {BEGIN collect money} • SYSTEM -> Notifies the Librarian that there is a balance overdue on that member's account • Librarian -> Notifies the member that there is a balance overdue {END collect money} CONTINUE {authenticate librarian} Special Requirements: System must be online