Library Management System Project Report
Library Management System Project Report
Library is place where all kind of books are available. Intranet Library
Management system is a web based application. This system contains list of all the
books and can be accessed by remote users concurrently from any where in the
campus. But for that users must be registered user. This system is three tier
architecture.
Users can search for books and renewal books online. They can
recommend for new books by just sending messages to the librarian from any
where in the college. They can view the issue and return dates of any book and due
they have to pay. This system generates reports that can be used in analyzing the
library performance. Thus the management can take appropriate steps to improve
the facilities.
INDEX
S. N CONTENTS
1. INTRODUCTION
2. ANALYSIS
2.1 SYSTEM ANALYSIS
2.2 SYSTEM SPECIFICATIONS
3. DESIGN APPROACH
3.1 INTRODUCTION TO DESIGN
3.2 UML DIAGRAMS
3.3 DATA FLOW DIAGRAMS
3.4 E-R DIAGRAMS
4. PROJECT MODULES
5. IMPLEMENTATION
4.1 CONCEPTS AND TECHNIQUES
4.2 TESTING
4.2.1 TEST CASES
6. OUTPUT SCREENS
7. CONCLUSION
8. FUTURE ENHANCEMENTS
9. BIBILIOGRAPHY
INTRODUCTION:
As the modern organizations are automated and computers are working as per
the instructions, it becomes essential for the coordination of human beings, commodity
and computers in a modern organization. This information helps the distributors to
purchase or sale the products very efficiently.
The administrators and all the others can communicate with the system through
this project, thus facilitating effective implementation and monitoring of various
activities of the distributor of a supermarket.
SYSTEM ANALYSIS:
1. Existing System
2. Proposed System
The goal of the system is to bring down the work load with the increased
efficiency and to speed up the activities. With this it is very easy to process course fee
that is collected time to time from students who are registered and studying at
franchisees.
System Specifications
Hardware Requirements:-
Pentium-IV(Processor).
256 MB Ram
512 KB Cache Memory
Hard disk 10 GB
Microsoft Compatible 101 or more Key Board
Software Requirements: -
Operating System : Windows 95/98/XP with MS-office
Programming language: .NET2.0, VISUAL STUDIO2005
Web-Technology : ASP.NET
Back-End : SQL SERVER 2005
Web Server : IIS.
INTRODUCTION:
The DFD takes an input-process-output view of a system i.e. data objects flow
into the software, are transformed by processing elements, and resultant data objects flow
out of the software.
A context-level DFD for the system the primary external entities produce
information for use by the system and consume information generated by the system. The
labeled arrow represents data objects or object hierarchy.
RULES FOR DFD:
The Entity-Relationship (ER) model was originally proposed by Peter in 1976 [Chen76] as a
way to unify the network and relational database views. Simply stated the ER model is a
conceptual data model that views the real world as entities and relationships. A basic component
of the model is the Entity-Relationship diagram which is used to visually represents data objects.
Since Chen wrote his paper the model has been extended and today it is commonly used for
database design For the database designer, the utility of the ER model is:
it maps well to the relational model. The constructs used in the ER model can easily be
transformed into relational tables.
it is simple and easy to understand with a minimum of training. Therefore, the model can
be used by the database designer to communicate the design to the end user.
In addition, the model can be used as a design plan by the database developer to
implement a data model in a specific database management software.
The basic types of connectivity for relations are: one-to-one, one-to-many, and many-to-
many. A one-to-one (1:1) relationship is when at most one instance of a entity A is associated
with one instance of entity B. For example, "employees in the company are each assigned their
own office. For each employee there exists a unique office and for each office there exists a
unique employee.
A one-to-many (1:N) relationships is when for one instance of entity A, there are zero,
one, or many instances of entity B, but for one instance of entity B, there is only one
instance of entity A. An example of a 1:N relationships is a department has many
employees each employee is assigned to one department.
A many-to-many (M:N) relationship, sometimes called non-specific, is when for one instance of
entity A, there are zero, one, or many instances of entity B and for one instance of entity B there
are zero, one, or many instances of entity A. The connectivity of a relationship describes the
mapping of associated
ER Notation
All notational styles represent entities as rectangular boxes and relationships as lines
connecting boxes. Each style uses a special set of symbols to represent the cardinality of a
connection. The notation used in this document is from Martin. The symbols used for the basic
ER constructs are:
entities are represented by labeled rectangles. The label is the name of the entity. Entity
names should be singular nouns.
relationships are represented by a solid line connecting two entities. The name of the
relationship is written above the line. Relationship names should be verbs
attributes, when included, are listed inside the entity rectangle. Attributes which are
identifiers are underlined. Attribute names should be singular nouns.
cardinality of many is represented by a line ending in a crow's foot. If the crow's foot is
omitted, the cardinality is one.
existence is represented by placing a circle or a perpendicular bar on the line. Mandatory
existence is shown by the bar (looks like a 1) next to the entity for an instance is required.
Optional existence is shown by placing a circle next to the entity that is optional
PROJECT MODULES
MODULES USED:-
The proposed system categories and follows these modules to implement
Login component
1. Administrator(Head office manager)
2. Librarian
3. User
Administrator Component
1. Administrator
Student Component
1. Books Details
2. Issue Details
MODULES DESCRIPSTION:-
User: Using login id and password user can the use Library online
where users can search for books and renewal books online. They can recommend
for new books by just sending messages to the librarian from any where in the
college. They can view the issue and return dates of any book and due they have to
pay.
Registration: In the Registration module, user has to register himself by
supplying his personal information which gets store in data base which are using as
backend. By registering himself user will get his login id and Password so that he
can access Library online. Separate Register form should be designed for separate
user
(Student, Faculty, Librarian) and separate login has to provided for each user. For
example if the users are students then student id should be SH001.
FEASIBILITY STUDY:
Feasibility
study is conducted once the problem is clearly understood. Feasibility study is a high
level capsule version of the entire system analysis and design process. The objective is to
determine quickly at a minimum expense how to solve a problem. The purpose of
feasibility is not to solve the problem but to determine if the problem is worth solving.
The system has been tested for feasibility in the following points.
1. Technical Feasibility
2. Economical Feasibility
3. Operational Feasibility.
1. Technical Feasibility
The project entitles "Courier Service System” is technically feasibility
because of the below mentioned feature. The project was developed in Java which
Graphical User Interface.
It provides the high level of reliability, availability and compatibility. All
these make Java an appropriate language for this project. Thus the existing
software Java is a powerful language.
2. Economical Feasibility
3. Operational Feasibility
Implementation is the stage where the theoretical design is turned into a working
system. The most crucial stage in achieving a new successful system and in giving
confidence on the new system for the users that it will work efficiently and effectively.
The system can be implemented only after thorough testing is done and if it is found to
work according to the specification.
It involves careful planning, investigation of the current system and its constraints on
implementation, design of methods to achieve the change over and an evaluation of
change over methods a part from planning. Two major tasks of preparing the
implementation are education and training of the users and testing of the system.
The more complex the system being implemented, the more involved will be the
systems analysis and design effort required just for implementation.
TESTING:
1. The first includes unit testing, where in each module is tested to provide its
correctness, validity and also determine any missing operations and to verify whether the
objectives have been met. Errors are noted down and corrected immediately. Unit testing
is the important and major part of the project. So errors are rectified easily in particular
module and program clarity is increased. In this project entire system is divided into
several modules and is developed individually. So unit testing is conducted to individual
modules.
2. The second step includes Integration testing. It need not be the case, the
software whose modules when run individually and showing perfect results, will also
show perfect results when run as a whole. The individual modules are clipped under this
major module and tested again and verified the results. This is due to poor interfacing,
which may results in data being lost across an interface. A module can have inadvertent,
adverse effect on any other or on the global data structures, causing serious problems.
3. The final step involves validation and testing which determines which the
software functions as the user expected. Here also some modifications were. In the
completion of the project it is satisfied fully by the end user.
AS the number of computer based systems, grieve libraries of computer software began
to expand. In house developed projects produced tones of thousand soft program source
statements. Software products purchased from the outside added hundreds of thousands
of new statements. A dark cloud appeared on the horizon. All of these programs, all of
those source statements-had to be corrected when false were detected, modified as user
requirements changed, or adapted to new hardware that was purchased. These activities
were collectively called software Maintenance.
The maintenance phase focuses on change that is associated with error correction,
adaptations required as the software's environment evolves, and changes due to
enhancements brought about by changing customer requirements. Four types of changes
are encountered during the maintenance phase.
Correction
Adaptation
Enhancement
Prevention
Correction:
Even with the best quality assurance activities is lightly that the customer
will uncover defects in the software. Corrective maintenance changes the software
to correct defects.
Only about 20 percent of all maintenance work are spent "fixing mistakes". The
remaining 80 percent are spent adapting existing systems to changes in their
external environment, making enhancements requested by users, and
reengineering an application for use.
ADAPTATION:
Over time, the original environment (E>G., CPU, operating system, business
rules, external product characteristics) for which the software was developed is likely to
change. Adaptive maintenance results in modification to the software to accommodate
change to its external environment.
ENHANCEMENT:
As software is used, the customer/user will recognize additional functions that will
provide benefit. Perceptive maintenance extends the software beyond its original function
requirements.
PREVENTION:
Initially the language was called as “oak” but it was renamed as “Java” in
1995. The primary motivation of this language was the need for a platform-
independent (i.e., architecture neutral) language that could be used to create
software to be embedded in various consumer electronic devices.
Java is a programmer’s language.
Java is cohesive and consistent.
Except for those constraints imposed by the Internet environment,
Java gives the programmer, full control.
Finally, Java is to Internet programming where C was to system
programming.
Java has had a profound effect on the Internet. This is because; Java expands
the Universe of objects that can move about freely in Cyberspace. In a network,
two categories of objects are transmitted between the Server and the Personal
computer. They are: Passive information and Dynamic active programs. The
Dynamic, Self-executing programs cause serious problems in the areas of
Security and probability. But, Java addresses those concerns and by doing so,
has opened the door to an exciting new form of program called the Applet.
Every time you that you download a “normal” program, you are risking a
viral infection. Prior to Java, most users did not download executable
programs frequently, and those who did scan them for viruses prior to
execution. Most users still worried about the possibility of infecting their
systems with a virus. In addition, another type of malicious program exists
that must be guarded against. This type of program can gather private
information, such as credit card numbers, bank account balances, and
passwords. Java answers both these concerns by providing a “firewall”
between a network application and your computer.
When you use a Java-compatible Web browser, you can safely download Java
applets without fear of virus infection or malicious intent.
Features of java
3) Object-Oriented:- We Know that is purely OOP Language that is all the Code
of the java Language is Written into the classes and Objects So For This feature
java is Most Popular Language because it also Supports Code Reusability,
Maintainability etc.
4) Robust and Secure:- The Code of java is Robust andMeans ot first checks the
reliability of the code before Execution When We trying to Convert the Higher
data type into the Lower Then it Checks the Demotion of the Code the It Will
Warns a User to Not to do this So it is called as Robust.
Secure : When We convert the Code from One Machine to Another the First
Check the Code either it is Effected by the Virus or not or it Checks the Safety of
the Code if code contains the Virus then it will never Executed that code on to the
Machine.
8) Dynamic and Extensible Code:- Java has Dynamic and Extensible Code
Means With the Help of OOPS java Provides Inheritance and With the Help of
Inheritance we Reuse the Code that is Pre-defined and Also uses all the built in
Functions of java and Classes
9) Distributed:- Java is a distributed language which means that the program can
be design to run on computer networks. Java provides an extensive library of
classes for communicating ,using TCP/IP protocols such as HTTP and FTP. This
makes creating network connections much easier than in C/C++. You can read
and write objects on the remote sites via URL with the same ease that
programmers are used to when read and write data from and to a file. This helps
the programmers at remote locations to work together on the same project.
10) Secure: Java was designed with security in mind. As Java is intended to be
used in networked/distributor environments so it implements several security
mechanisms to protect you against malicious code that might try to invade your
file system.
For example: The absence of pointers in Java makes it impossible for
applications to gain access to memory locations without proper authorization as
memory allocation and referencing model is completely opaque to the
programmer and controlled entirely by the underlying run-time platform .
11) Architectural Neutral: One of the key feature of Java that makes it different
from other programming languages is architectural neutral (or platform
independent). This means that the programs written on one platform can run on
any other platform without having to rewrite or recompile them. In other words, it
follows 'Write-once-run-anywhere' approach.Java programs are compiled into
byte-code format which does not depend on any machine architecture but can be
easily translated into a specific machine by a Java Virtual Machine (JVM) for that
machine. This is a significant advantage when developing applets or applications
that are downloaded from the Internet and are needed to run on different
systems.
13) Interpreted : Unlike most of the programming languages which are either
complied or interpreted, Java is both complied and interpreted The Java compiler
translates a java source file to bytecodes and the Java interpreter executes the
translated byte codes directly on the system that implements the Java Virtual
Machine. These two steps of compilation and interpretation allow extensive code
checking and improved security .
14) High performance: Java programs are complied to portable intermediate form
know as bytecodes, rather than to native machine level instructions and JVM
executes Java bytecode on. Any machine on which it is installed. This
architecture means that Java programs are faster than program or scripts written
in purely interpreted languages but slower than C and C++ programs that
compiled to native machine languages.Although in the early releases of Java, the
interpretation of by bytecode resulted in slow performance but the advance
version of JVM uses the adaptive and Just in time (JIT) compilation technique
that improves performance by converting Java bytecodes to native machine
instructions on the fly.
Beyond the language, there is the Java virtual machine. The Java virtual
machine is an important element of the Java technology. The virtual machine
can be embedded within a web browser or an operating system. Once a piece
of Java code is loaded onto a machine, it is verified. As part of the loading
process, a class loader is invoked and does byte code verification makes sure
that the code that’s has been generated by the compiler will not corrupt the
machine that it’s loaded on. Byte code verification takes place at the end of
the compilation process to make sure that is all accurate and correct. So byte
code verification is integral to the compiling and executing of Java code.
Overall Description
Java .Class
Picture showing the development process of JAVA Program
Java programming uses to produce byte codes and executes them. The first box
indicates that the Java source code is located in a. Java file that is processed
with a Java compiler called javac. The Java compiler produces a file called a.
class file, which contains the byte code. The .Class file is then loaded across the
network or loaded locally on your machine into the execution environment is the
Java virtual machine, which interprets and executes the byte code.
Java Architecture
Compilation of code
When you compile the code, the Java compiler creates machine code (called
byte code) for a hypothetical machine called Java Virtual Machine (JVM). The
JVM is supposed to execute the byte code. The JVM is created for overcoming
the issue of portability. The code is written and compiled for one machine and
interpreted on all machines. This machine is called Java Virtual Machine.
Compiling and interpreting Java Source Code
Java
PC Compiler Interpreter
Java (PC)
Source
Code Byte code
………..
……….. Macintosh Java
Compiler (Platform Interpreter
Independe (Macintosh)
……….. nt)
………… SPARC
Java
Interpreter
Compiler (Spare)
During run-time the Java interpreter tricks the byte code file into thinking that it is
running on a Java Virtual Machine. In reality this could be a Intel Pentium
Windows 95 or SunSARC station running Solaris or Apple Macintosh running
system and all could receive code from any computer through Internet and run
the Applets.
Simple
Java was designed to be easy for the Professional programmer to learn and to
use effectively. If you are an experienced C++ programmer, learning Java will be
even easier. Because Java inherits the C/C++ syntax and many of the object
oriented features of C++. Most of the confusing concepts from C++ are either left
out of Java or implemented in a cleaner, more approachable manner. In Java
there are a small number of clearly defined ways to accomplish a given task.
Object-Oriented
Java was not designed to be source-code compatible with any other language.
This allowed the Java team the freedom to design with a blank slate. One
outcome of this was a clean usable, pragmatic approach to objects. The object
model in Java is simple and easy to extend, while simple types, such as integers,
are kept as high-performance non-objects.
Robust
What Is JDBC?
JDBC is a Java API for executing SQL statements. (As a point of interest,
JDBC is a trademarked name and is not an acronym; nevertheless, JDBC is
often thought of as standing for Java Database Connectivity. It consists of a
set of classes and interfaces written in the Java programming language.
JDBC provides a standard API for tool/database developers and makes it
possible to write database applications using a pure Java API.
Using JDBC, it is easy to send SQL statements to virtually any relational
database. One can write a single program using the JDBC API, and the
program will be able to send SQL statements to the appropriate database.
The combinations of Java and JDBC lets a programmer write it once and run
it anywhere.
What Does JDBC Do?
1. ODBC is not appropriate for direct use from Java because it uses a C
interface. Calls from Java to native C code have a number of
drawbacks in the security, implementation, robustness, and automatic
portability of applications.
2. A literal translation of the ODBC C API into a Java API would not be
desirable. For example, Java has no pointers, and ODBC makes
copious use of them, including the notoriously error-prone generic
pointer "void *". You can think of JDBC as ODBC translated into an
object-oriented interface that is natural for Java programmers.
3. ODBC is hard to learn. It mixes simple and advanced features
together, and it has complex options even for simple queries. JDBC, on
the other hand, was designed to keep simple things simple while
allowing more advanced capabilities where required.
4. A Java API like JDBC is needed in order to enable a "pure Java"
solution. When ODBC is used, the ODBC driver manager and drivers
must be manually installed on every client machine. When the JDBC
driver is written completely in Java, however, JDBC code is
automatically installable, portable, and secure on all Java platforms
from network computers to mainframes.
Two-tier and Three-tier Models
The JDBC API supports both two-tier and three-tier models for database
access.
In the two-tier model, a Java applet or application talks directly to the database.
This requires a JDBC driver that can communicate with the particular database
management system being accessed. A user's SQL statements are delivered to
the database, and the results of those statements are sent back to the user. The
database may be located on another machine to which the user is connected via
a network. This is referred to as a client/server configuration, with the user's
machine as the client, and the machine housing the database as the server. The
network can be an Intranet, which, for example, connects employees within a
corporation, or it can be the Internet.
JAVA
Application Client machine
JDBC
DBMS-proprietary protocol
DBMS
Database server
Java applet or
Html browser
Client machine (GUI)
Database server
DBMS
Until now the middle tier has typically been written in languages such as C or
C++, which offer fast performance. However, with the introduction of
optimizing compilers that translate Java byte code into efficient machine-
specific code, it is becoming practical to implement the middle tier in Java.
This is a big plus, making it possible to take advantage of Java's robustness,
multithreading, and security features. JDBC is important to allow database
access from a Java middle tier.
JDBC Driver Types
The JDBC drivers that we are aware of at this time fit into one of four
categories:
JDBC-ODBC Bridge
If possible, use a Pure Java JDBC driver instead of the Bridge and an ODBC
driver. This completely eliminates the client configuration required by ODBC.
It also eliminates the potential that the Java VM could be corrupted by an
error in the native code brought in by the Bridge (that is, the Bridge native
library, the ODBC driver manager library, the ODBC driver library, and the
database client library).
System Testing is an important phase. Testing represents an interesting anomaly for the
software. Thus a series of testing are performed for the proposed system before the
system is ready for user acceptance testing.
A good test case is one that has a high probability of finding an as undiscovered
error. A successful test is one that uncovers an as undiscovered error.
Testing Objectives:
Testing Principles:
The primary objective for test case design is to derive a set of tests that has the
highest livelihood for uncovering defects in software. To accomplish this objective two
different categories of test case design techniques are used. They are
White-box testing:
White box testing focus on the program control structure. Test cases are derived
to ensure that all statements in the program have been executed at least once during
testing and that all logical conditions have been executed.
Block-box testing:
Black box testing is designed to validate functional requirements without regard to the
internal workings of a program. Black box testing mainly focuses on the information
domain of the software, deriving test cases by partitioning input and output in a manner
that provides through test coverage. Incorrect and missing functions, interface errors,
errors in data structures, error in functional logic are the errors falling in this category.
Testing strategies:
A strategy for software testing must accommodate low-level tests that are
necessary to verify that all small source code segment has been correctly implemented as
well as high-level tests that validate major system functions against customer
requirements.
Testing fundamentals:
Testing is a process of executing program with the intent of finding error. A good
test case is one that has high probability of finding an undiscovered error. If testing is
conducted successfully it uncovers the errors in the software. Testing cannot show the
absence of defects, it can only show that software defects present.
Information flow for testing flows the pattern. Two class of input provided to test
the process. The software configuration includes a software requirements specification, a
design specification and source code.
Test configuration includes test plan and test cases and test tools. Tests are
conducted and all the results are evaluated. That is test results are compared with
expected results. When erroneous data are uncovered, an error is implied and debugging
commences.
Unit testing:
Unit testing is essential for the verification of the code produced during the
coding phase and hence the goal is to test the internal logic of the modules. Using the
detailed design description as a guide, important paths are tested to uncover errors with in
the boundary of the modules. These tests were carried out during the programming stage
itself. All units of ViennaSQL were successfully tested.
Integration testing :
Integration testing focuses on unit tested modules and build the program structure
that is dictated by the design phase.
System testing:
System testing tests the integration of each module in the system. It also tests to
find discrepancies between the system and it’s original objective, current specification
and system documentation. The primary concern is the compatibility of individual
modules. Entire system is working properly or not will be tested here, and specified path
ODBC connection will correct or not, and giving output or not are tested here these
verifications and validations are done by giving input values to the system and by
comparing with expected output. Top-down testing implementing here.
Acceptance Testing:
This testing is done to verify the readiness of the system for the implementation.
Acceptance testing begins when the system is complete. Its purpose is to provide the end
user with the confidence that the system is ready for use. It involves planning and
execution of functional tests, performance tests and stress tests in order to demonstrate
that the implemented system satisfies its requirements.
Test coverage Analyzer – records the control paths followed for each test case.
Timing Analyzer – also called a profiler, reports the time spent in various regions of the
code are areas to concentrate on to improve system performance.
Coding standards – static analyzers and standard checkers are used to inspect code for
deviations from standards and guidelines.
Test Cases:
Test cases are derived to ensure that all statements in the program have been
executed at least once during testing and that all logical conditions have been executed.
Using White-Box testing methods, the software engineer can drive test cases that
Guarantee that logical decisions on their true and false sides.
Exercise all logical decisions on their true and false sides.
Execute all loops at their boundaries and with in their operational bounds.
Exercise internal data structure to assure their validity.
The test case specification for system testing has to be submitted for review before
system testing commences.
CONCLUSION:
The package was designed in such a way that future modifications can be
done easily. The following conclusions can be deduced from the
development of the project.
This application avoids the manual work and the problems concern with it.
It is an easy way to obtain the information regarding the various products information
that are present in the Library of a particular college.
Well I and my team members have worked hard in order to
present an improved website better than the existing one’s regarding the information
about the various activities. Still ,we found out that the project can be done in a better
way. Primarily, when we request information about a particular product it just shows the
company, product id, product name and no. of quantities available. So, after getting the
information we can get access to the product company website just by a click on the
product name .
The next enhancement that we can add the searching option.
We can directly search to the particular product company from this site .These are the
two enhancements that we could think of at present.
BIBLIOGRAPHY
The following books were referred during the analysis and execution phase of the
project
C# COOK BOOK
O reilly Publications
WEBSITES:
www.google.com
www.microsoft.com