Document 18
Document 18
Introduction
Design a Library Management System to manage books, library members, and librarians.
The system should allow users to perform operations such as issuing, returning, and
reserving books. It should also handle the addition of new books, managing member
details, and maintaining records of issued and returned books.
Functional Requirements
1. For Members:
a. View available books.
b. Borrow and return books.
c. Reserve books.
d. Pay fines for overdue books.
2. For Librarians:
a. Add, update, and remove books.
b. Issue and return books.
c. Manage member records.
d. Handle fine collection.
3. System Functions:
a. Track issued books.
b. Check book availability.
c. Calculate fines based on due dates.
• Keep track of the library’s inventory, including books, journals, and other resources.
• Manage member records, including issuing and returning of books.
• Automate fine calculation for overdue books.
• Enable easy search and reservation of books.
• Improve library efficiency and reduce manual errors.
4. Non-Functional Requirements:
• Scalability: The system should handle large volumes of data as the library grows.
• Security: Member and book records should be protected from unauthorized
access.
• Performance: The system should respond quickly to user requests, such as book
searches.
• Usability: The user interface should be intuitive and user-friendly.
Class Diagram:
Object-Oriented Analysis
Based on the problem domain, the following main classes are identified:
1. Class: Library
a. Attributes: name, address, books (list of Book objects), members (list of
Member objects).
b. Methods: addBook(), removeBook(), issueBook(), returnBook().
2. Class: Book
a. Attributes: bookID, title, author, ISBN, isAvailable.
b. Methods: reserve(), markAsBorrowed(), markAsReturned().
3. Class: Member
a. Attributes: memberID, name, contactDetails, borrowedBooks.
b. Methods: borrowBook(), returnBook(), payFine().
4. Class: Librarian (inherits from Member)
a. Attributes: employeeID.
b. Methods: addBook(), issueBook(), collectFine().
5. Class: Transaction
a. Attributes: transactionID, bookID, memberID, issueDate, returnDate.
b. Methods: calculateFine().
2. Sequence Diagram:
Example:
1. Encapsulation: Each class has private attributes with public getter and setter
methods.
2. Inheritance: Librarian inherits from Member to reuse common attributes and
methods.
3. Polymorphism: Overloaded methods can handle different user interactions (e.g.,
issuing or reserving books).
Conclusion: