Вы находитесь на странице: 1из 9

Library Management

Student Record Management

Version <1.0>
Library Management Version: 1.0
Student Record Management Date: 08/03/2009

Revision History
Date Version Description Author
08/03/2009 1.0 Initial draft created Farooq Ahmed
Usman Aftab

Confidential SERC, 2009 Page 2


Library Management Version: 1.0
Student Record Management Date: 08/03/2009

Table of Contents
1. Introduction 4
1.1 Purpose 4
1.2 Scope 4

2. Overview 4

3. Functional Requirements 4
3.1 Book entry 4
3.2 Books’ list 5

4. Non-Functional Requirements 5
4.1 Technology 5
4.2 Design considerations 5

5. Actors 5

6. Use-Cases 5
6.1 View books’ list 5
6.1.1 Brief Description 5
6.1.2 Pre-condition(s) 6
6.1.3 Main Flow 6
6.1.4 Alternative Flows 6
6.1.5 Post-condition(s) 6
6.2 Enter book 6
6.2.1 Brief Description 6
6.2.2 Pre-condition(s) 6
6.2.3 Main Flow 6
6.2.4 Alternative Flows 6
6.2.5 Post-condition(s) 6

7. Traceability Matrix 6

8. GUIs 7
8.1 Books list 7
8.2 New Book 7

9. Appendix 7

Confidential SERC, 2009 Page 3


Library Management Version: 1.0
Student Record Management Date: 08/03/2009

Student Record Management

1.Introduction

1.1Purpose
The purpose of this document is to elicit and document requirements for a simple Library Management solution. The
whole development effort on the Library Management system is (and shall be) guided by this document.
In essence, this document serves as the contract between the client and the development team. All the requirements
stated in this document are binding on the development team and will be used as the acceptance criteria for the final
solution.
In other words, nothing less will be accepted by the client at the end of the development effort, unless agreed
otherwise as the two parties may decide mutually. Likewise, it is binding on the client of this project to not to
modify these agreed upon requirements in the middle of the development effort without the consent of the
development team.

1.2Scope
This document covers all the functional and non-functional requirements of the Library Management solution.
The functional requirements are elaborated with the help of Use-cases and GUIs to depict the display available to
the end-user and how will (s)he interact with the system. The implementation of these use-cases is, thus essential to
provide the necessary usability experience to the end-users. The GUIs in their current shape are, however, only to
suggest the information available to the end-users. They shall retain their information content but their design and
layout (also termed as look ‘n’ feel) may vary in the final solution through the mutual consensus of client and
development team.
This document also provides some design and technology considerations along with other required features, in the
form of non-functional requirements, which must be met for the final acceptance of the solution. However, please
note that this document only provides high level design considerations and does not impose any specific design for
the rest of details.

2.Overview
Library Management is a simple software solution to help maintain the books’ records for some library. It provides
basic provisions of entering and viewing books’ information.

3.Functional Requirements
This section captures the functionality the system must provide to its users:

3.1Book entry
The system shall provide provision to enter and store a book’s information. The following information shall be
maintained:
• Title: A maximum 100 characters alphabetic string representing the title of book
• Description: A maximum 500 characters alphanumeric capturing the description for the book
• Author(s): A maximum 500 characters alphanumeric string to capture the authors list for the book.
Multiple authors are stored through separation by comma
• ISBN: An alpha-numeric code for the book for identification purpose

Confidential SERC, 2009 Page 4


Library Management Version: 1.0
Student Record Management Date: 08/03/2009

3.2Books’ list
The system shall provide provision to display a list of all the books in the library. The following information shall be
shown against each book:
• Title: The title of the book
• Description: The description of the book
• Author(s): The list of authors separated by comma
• ISBN: The ISBN code for the book

4.Non-Functional Requirements
In addition to the functional requirements stated in section 3 (Functional Requirements), the following requirements
shall apply:

4.1Technology
The following technology requirements must apply:
1. User Interface must be designed and implemented in Java Servlets
2. Data storage must be done using JDBC and Postgres 8.3.5

4.2Design considerations
The overall design of the application must adhere to the following guidelines:
1. There must be a 3-layered design with separate layers for UI, Business and Data processing
2. The Data Access layer must be encapsulated in the Business Layer. The front-end (UI) shall interact only
and only with Business layer.
3. The Data Access layer shall be as generic as possible so that it may be possible to replace the data storage
using other technologies, in future.
4. In a nutshell, the design shall conform to the code given in Appendix for Business and Data layers.

5.Actors
Following are the actor(s) of the system:
1. Librarian

6.Use-Cases
This section specifies the use-cases for the system

6.1View books’ list

6.1.1Brief Description
This use-case captures steps to show a list of books in the library records

Confidential SERC, 2009 Page 5


Library Management Version: 1.0
Student Record Management Date: 08/03/2009

6.1.2Pre-condition(s)
None

6.1.3Main Flow
1. User launches the application
2. User is shown a list of books currently existing in the library records in accordance with the functional
requirement “Books’ list” (section ), along with an option to create a book entry

6.1.4Alternative Flows
None

6.1.5Post-condition(s)
None

6.2Enter book

6.2.1Brief Description
This use-case captures steps to create a new book in the library records

6.2.2Pre-condition(s)
User has launched the application and “Enter New Book” option is visible

6.2.3Main Flow
1. User selects the “Enter New Book” option
2. System asks the user to enter the required information, in accordance with the functional requirement
“Book entry” (section )
3. User fills in the required information and press “Create”.
4. System saves the information in the data store
5. User is given the message “The new book is entered”.
6. User clicks on the “View Books list” option and use-case 6.1 is triggered.

6.2.4Alternative Flows
6A.1 An error is generated into the system while saving
6A.2 User is shown the message “The book could not be stored”

6.2.5Post-condition(s)
A new entry shall be created for the book in the data store

7.Traceability Matrix

Use Case Actor Functional Non-Functional GUI


Requirements Requirements
6.1 N/A 3.2 N/A 8.1

Confidential SERC, 2009 Page 6


Library Management Version: 1.0
Student Record Management Date: 08/03/2009

6.2 N/A 3.1 N/A 8.2

8.GUIs

8.1Books list

8.2New Book

9.Appendix
This appendix details the design guidelines for the application by providing the code for Business Layer and the
interface(s) for the Data Layer.

Business Layer
public class Book {
private String title;
private String description;
private String authors;

Confidential SERC, 2009 Page 7


Library Management Version: 1.0
Student Record Management Date: 08/03/2009

private String isbn;

/*
* Setters and Getters here
*/

/*
* Method to query the data store and return a list of books
* This should be a static method that returns an ArrayList
* Each element in the ArrayList is an object of type Book with all the
* required attributes set
*/

public static ArrayList<Book> getBooks(){

IBookDAO bookDAO = new BookDAO();

/*
* Method retrieves the books’ information
* from the delegated Data Access Layer Object (in short DAO)
* /
ArrayList<Hashtable<String, Object>> booksHT = bookDAO.getBooks();

/*
* The resultant information returned as an array of Name-value
* pairs is set into respective Book object
*/
ArrayList<Book> books = new ArrayList<Book>();

for(int counter=0; counter < books.size(); counter++){

Hashtable<String, Object> booksHT = books.get(counter);

Book book = new Book();

book.setTitle(booksHT.get("title"));
book.setDescription(booksHT.get("description"));
book.setAuthors(booksHT.get("authors"));
book.setIsbn(booksHT.get("isbn"));

books.add(book);
}

/*
* and finally sent as an ArrayList of Book
*/
return books;
}

/*
* Method to create a book record in the database using the delegated DAO
*/

public boolean insert()


{

Confidential SERC, 2009 Page 8


Library Management Version: 1.0
Student Record Management Date: 08/03/2009

IBookDAO dao = new BookDAO();

return
dao.insertBook(getTitle(),getDescription(),getAuthors(),getIsbn())
;
}
}

Data Layer
/*
* The interface that the Book DAO must conform
*/

public interface IBookDAO {

/*
* The list of books must be returned as an array list
* Information for a particular book is defined as a name-value pair
* for which Hashtable is used
*/
ArrayList<Hashtable<String, Object>> getBooks();
boolean insertBook(String title,String description,String authors,String
isbn);
}

/*
* The implementation for Book DAO
*/

public class BookDAO implements IBookDAO {


/*
* The rest of the details go here
*/

Confidential SERC, 2009 Page 9

Вам также может понравиться