How do I prepare an SRS for a library management system?
- Expert answer
- Undergraduate
- Asked
The question
My software engineering assignment asks me to prepare a Software Requirements Specification for a library management system.
I am not sure how to write requirements that are specific and testable instead of vague.
Short answer
A library management SRS should describe users, scope, functional requirements, non-functional requirements, use cases, constraints, assumptions and acceptance criteria in clear, testable language.
Full expert answer
Software engineering tutor
MSc Software Engineering
An SRS is not a sales brochure. It is a structured description of what the system must do and how well it must do it. For a library management system, the key is to separate functional requirements from non-functional requirements and write them in testable language.
Scope of a simple library system
A typical undergraduate SRS might include:
- member registration
- book catalogue management
- book search
- issue and return
- due dates and fines
- reservations
- staff login
- reports
Avoid adding advanced features such as AI recommendations unless the brief asks for them.
Functional requirements
Functional requirements describe system behaviour.
Good examples:
- The system shall allow a librarian to add a new book with ISBN, title, author, category and copy count.
- The system shall allow a member to search books by title, author or ISBN.
- The system shall record the issue date and due date when a book is borrowed.
- The system shall prevent issuing a book copy that is already on loan.
- The system shall calculate overdue fines using the fine rate configured by the librarian.
Weak example:
"The system should be user-friendly and manage books."
That is too vague to test.
Non-functional requirements
| Requirement type | Example |
|---|---|
| Performance | Search results should appear within two seconds for up to 10,000 books. |
| Security | Only authenticated staff can add, edit or delete book records. |
| Usability | Common staff tasks should be completed in no more than three screens. |
| Reliability | The system should preserve loan records if the application restarts. |
| Auditability | The system should log issue, return and fine payment actions. |
Mini use case example
Use case: Issue book
- Actor: Librarian
- Precondition: Member exists and book copy is available
- Main flow:
1. Librarian searches member. 2. Librarian scans or enters book copy ID. 3. System checks availability. 4. System records issue date and due date. 5. System updates copy status to on loan.
- Postcondition: Loan record is created.
- Exception: If the copy is already on loan, the system displays an error.
Sample university-style questions and how to answer them
| Sample question | What a strong answer should do |
|---|---|
| Write functional requirements for a library management system. | Use "shall" statements and make each requirement testable. |
| Identify non-functional requirements for library software. | Cover performance, security, reliability, usability and auditability with measurable criteria. |
| Create a use case for issuing a book. | Include actor, preconditions, main flow, exceptions and postconditions. |
| Explain the difference between functional and non-functional requirements. | Functional says what the system does; non-functional says how well or under what constraints. |
| Review a vague requirement and improve it. | Replace vague terms like "fast" or "easy" with measurable criteria. |
Common mistakes
- Writing design details instead of requirements
- Making requirements impossible to test
- Mixing functional and non-functional requirements
- Forgetting actors such as librarian, member and admin
- Ignoring exception flows
- Adding features outside the assignment scope
What earns higher marks
Add acceptance criteria. For example, for "search by ISBN", the acceptance criterion might be: "Given an existing ISBN, when the librarian searches that ISBN, the system displays the matching book record and available copy count." This shows that the requirement can be validated.
Academic use note
This guide is for software engineering assignment support. Adapt the SRS format to your module template if one is provided.
Sources and further reading
This answer explains a method for you to apply to your own work. Copying it into a submission would count as plagiarism, and it is indexed by similarity checkers.
All questions