Design: Library Management System
Design the core classes and their relationships for managing books, members, librarians, and loans. Exclude UI and database implementation details.
Functional Requirements
FR1: Allow members to borrow and return books
FR2: Track which books are loaned and their due dates
FR3: Librarians can add, update, and remove books
FR4: Members can view their loan history and current loans
FR5: Support multiple members and librarians
Non-Functional Requirements
NFR1: Handle up to 10,000 members and 100,000 books
NFR2: Operations should be efficient for quick lookups
NFR3: Ensure data consistency for loans and returns
