7. Develop an object model using UML for a Library management system.
UML Class Diagram - Library Management System
1. Class: Library
Attributes:
o name: String
o address: String
Methods:
o addBook(book: Book)
o removeBook(bookId: int)
o registerMember(member: Member)
2. Class: Book
Attributes:
o bookId: int
o title: String
o author: String
o publisher: String
o isAvailable: boolean
Methods:
o checkAvailability(): boolean
o reserveBook(member: Member)
o issueBook(member: Member)
o returnBook()
3. Class: Member
Attributes:
o memberId: int
o name: String
o address: String
o phoneNumber: String
Methods:
o borrowBook(book: Book)
o returnBook(book: Book)
o reserveBook(book: Book)
4. Class: Librarian
Attributes:
o employeeId: int
o name: String
Methods:
o issueBook(book: Book, member: Member)
o receiveBook(book: Book, member: Member)
o manageInventory()
5. Class: Transaction
Attributes:
o transactionId: int
o issueDate: Date
o returnDate: Date
o fineAmount: double
Methods:
o calculateFine(): double
Relationships
Library has many Books and Members.
Member can borrow or reserve multiple Books.
Librarian performs operations on Books and Members.
Transaction records each issue/return operation.
Book is associated with Transaction.
1. Library Class
Attributes:
o name: String — Name of the library.
o address: String — Address of the library.
Methods:
o addBook(book: Book) — Adds a new book to the library.
o removeBook(bookId: int) — Removes a book by its ID.
o registerMember(member: Member) — Registers a new
member.
Relationships:
o 1-to-many relationship with Book (a library can have many
books).
o 1-to-many relationship with Member (a library can have many
members).
2. Book Class
Attributes:
o bookId: int — Unique identifier for the book.
o title: String — Title of the book.
o author: String — Author of the book.
Methods:
o checkAvailability(): boolean — Checks if the book is available.
o reserveBook(member: Member) — Allows a member to
reserve the book.
o issueBook(member: Member) — Issues the book to a member.
o returnBook() — Handles the return of the book.
Relationships:
o Associated with Transaction, Librarian, and Member.
3. Member Class
Attributes:
o memberId: int — Unique ID for each member.
o name: String — Member’s name.
o address: String — Member’s address.
o phoneNumber: String — Contact number.
Relationships:
o Associated with Transaction (one member can have multiple
transactions).
o Can interact with books (borrow, return, etc.).
4. Librarian Class
Attributes:
o employeeId: int — Unique ID for the librarian.
o name: String — Name of the librarian.
Methods:
o issueBook(book: Book, member: Member) — Issues a book to
a member.
o manageInventory() — Handles the library inventory system.
Relationships:
o Many-to-many relationship with Book and Transaction.
5. Transaction Class
Attributes:
o transactionId: int — Unique ID of the transaction.
o issueDate: Date — Date of issue.
o returnDate: Date — Date of return.
o fineAmount: double — Fine if any.
Methods:
o calculateFine(): double — Computes fine based on delay.
Relationships:
o Connected to Book and Member (a transaction links a book
and a member).
Associations:
1.. and ..* multiplicities indicate one-to-many or many-to-many
relationships.
Arrows show direction of dependency or ownership.
8. Analyse the system specifications of a chosen system (e.g., ATM system)
and identify potential bugs or issues. Prepare a detailed bug report.
ATM System - Bug Report
System Analyzed: ATM System
Functionality Includes:
- User Authentication (Card + PIN)
- Balance Inquiry
- Cash Withdrawal
- Deposit
- Fund Transfer
- Mini Statement
Bug Report
Bug ID Bug Title Descriptio Severit Steps to Expected Actual Statu
n y Reproduc Result Result s
e
ATM00 Incorrect Multiple High 1. Insert Delay Card is Open
1 PIN wrong PIN card lockout locked
Lockout entries 2. Enter for 30 immediatel
Delay lock wrong min after y with no
account PIN 3 3 failed delay or
instantly times tries message
quickly
ATM00 Balance Deposited Critical 1. Login Balance Balance Open
2 Not amount 2. should remains
Updated doesn't Deposit increase unchanged
After Cash reflect in ₹5000 by
Deposit balance 3. Check ₹5000
balance
ATM00 Cash Withdraw Critical 1. ₹1000 Amount Open
3 Dispensed al Withdraw should dispensed,
Without succeeds ₹1000 be but balance
Deduction but 2. Check deducted remains
amount balance from same
not balance
debited
ATM00 Fund Allows High 1. Enter System Transfer Open
4 Transfer to transfer to invalid should proceeds
Invalid non- account validate without
Account existent number recipient validation
account 2. account
Confirm
transfer
ATM00 Session User Mediu 1. Login Session Session Open
5 Timeout logged out m 2. View should expired in
Too Short while statement last at 60 seconds
reviewing for 2 min least 3-5
statement 3. mins idle
Attempt
new
transactio
n
ATM00 No Receipt Low 1. Receipt No receipt Open
6 Receipt not printed Withdraw should printed
After after cash money print
Transactio withdrawa 2. Choose with
n l "Print details
Receipt"
ATM00 UI Statement Low 1. View Proper Text is Open
7 Overlap in text mini alignmen jumbled
Mini overlaps statement t and and
Statement on small on spacing overlaps
screens compact
machine
ATM00 Language UI Mediu 1. Select Entire UI Only some Open
8 Change remains in m Hindi at should fields
Not English login be in change
Reflecting despite screen Hindi language
choosing
Hindi
Root Cause Analysis (for selected bugs)
- ATM002/ATM003: Likely caused by failure in real-time sync with the core banking
system.
- ATM004: Lack of validation checks before committing transaction.
- ATM008: Incomplete localization implementation.
Suggestions for Improvement
- Add robust account validation before transactions.
- Improve error handling and session management.
- Implement language packs completely for full localization.
- Periodic audits of transaction logs for consistency.