Huwebes, Pebrero 23, 2012

final lib

Library Management System requirements


Let us define the requirements for our Library Management System (LMS):


Requirements
• This software will allow members to register
• Only registered members will be allowed to lend an item from the system
• User can add items (Books, CD etc) to the system
• System will allow searching for items in the system based on Author name, book name, user name etc


Non requirements
• System will not enforce any security. Anybody who have access to the computer will be able to access this software and perform any operations. There will be no login/password required to access this software.
• System will not generate any alerts if a member is not returning any items
• System will not maintain any inventory.
• System doesn't keep track of damaged items. Users have to manually replace the damaged items 
with new ones.
• System will not handle data security and backup. Users have depend on some external or manual backup mechanism to take data backup whenever required.




Design phase


After completing the requirement study and documentation, it is time to design the software based on the requirements. It is easy to start coding without any design and you may end up developing a product which your customers like. But it may not be easy to maintain. Customers may keep changing their mind. Only after seeing the product, they may say 'we want this to behave in a different way'. And it is very hard to say 'NO' to a customer.


First step is identifying all the features you are going to implement in the software. The 
requirements document is a good guide in identifying the features. According to the requirements specification, we need to develop the following features in the system:
• Registration
• Item Management
• Lending
• Search for Books
• Search for Members


Registration


This feature allows to add/edit/delete members in the system. We should be able to store 
at least the basic information like Name, Address, Email etc of the member. You can add more attributes like phone number, homepage, date of registration etc.


Database structure:


Table Name : Users
Table Schema
Id : Number


Name : String (50)


Address : String (100)


Email : String (50)


DateOfRegistration : DateTime


We have defined 4 fields in the table above. You can add more fields.






Item Management


Before we let a user to lend a book from the library, we need to keep the list of items available in the library. We will develop a feature to add/edit/delete items in the library.


An item (Book, CD etc) in the library can have the following properties:


1. Name
2. Author
3. Total number of books (we may have more than one copy of the same book)


Let us define database schema for this:


Id : Number (Autonumber)
Name : String
Count : Number


You may add more fields like Publisher Name, Book Category etc.


Lending


This feature includes the following:
• Allow a member to take a book from library
• Return a book to the library


We need the following fields:
• Id : Autonumber
• BookId : Number - This is the ID of the book
• UserId : Number - Id of the member who lend the book
• DateOfLend : DateTime
• DateOfReturn : DateTime- this field will filled only at the time of return


This is an important feature and bit more complex than other features we have discussed above. When a user take the book, we will store the Id of the book and Id of the member in the above table. Note that we are not storing the name of the book and name of user. We are just storing the Ids.


It is important to save the exact Book Id and member Id when lending the book. It is a good idea to make those two fields readonly so that user don't need to type them (they might make mistakes if they type the id number). You can provide a feature to search for the books and member. User can search and find the book and member. Once they find in the search screen, user can just select it from the list. When they select a book or member from the search results, you can programmatically populate the Book Id and Member Id fields.






The search buttons for Book Id and member Id should open another window where user can search for Books and Members and select one.When selected in the search window, the selected Id should be populated in this form.


Search for Books


User should be able to search for books by Book Name, author name etc. The results can be displayed using a datagrid. user must be able to select a record from the search results.




This form will be called from other screens like Lending screen etc. User can search by Book name of author name. The search results will be displayed in the datagrid below. From the datagrid, user can select a record and press the 'select' button. When a record is 'selected', this form should be closed and the selected Books Id should be populated in the appropriate field in the calling form (like lending form).

Walang komento:

Mag-post ng isang Komento