Library Management System: A Project Report ON
Library Management System: A Project Report ON
PROJECT REPORT
ON
CERTIFICATE
This is to certify that Umesh Upadhyay completed the project titled
“LIBRARY MANAGEMENT SYSTEM” under my guidance and
supervision.
Project Guide:
ACKNOWLEDGEMENT
The opportunity to undertake this project was a very fulfilling
experience.
UMESH UPADHYAY
MCA V SEM.
PREFACE
This software is meant for increasing usability, such that it is preferable for the
every class people but also for low class people. This software is quite user
friendly and self explanatory and requires no previous knowledge except an idea
of LIBRARY MANAGEMENT SYSTEM on site. The algorithm used for this
purpose is trusted over years and sufficiently secure and efficient.
We have implemented this through front end JAVA and back end MICOSOFT
ACCESS.
Some of the features of this software are its handiness and quick response.
INDEX
1. Title page
1.1 Pictures
2. Requirement analysis and physical study
2.1Contents of synopsis
2.2 Synopsis
3. Software requirement specification
3.1 Contents of SRS
3.2 Data flow diagrams
4. DESIGNING
4.1 Contents of designing
4.2 E-R diagrams
4.3 Structured diagrams
5. FORMS
5.1 Snap shorts of forms
5.2 Tables
5.3 Reports
6. CODING
6.1 Front in coding
6.2 back in coding
7. TESTING
7.1 Introduction
7.2 Types of testing
8. Implementation
9. Maintenance
10. Limitations
This project also reflects on the response time which means the time
lag between the time the request was made and the time output was received, is
very less.
Data security can also be ensured with the help of locks and
passwords which is not possible in manual system. so, with the help of this
system we can avoid the important information from falling into the hands of
unauthorized users.
Thus the administrator is the master authority to all the data
manipulation and hence this system is user friendly too.
ANALYSIS OF PROJECT
FEASIBILITY STUDY:
First of all, before designing the system we try to find out that whether we can
develop the required software or not. The feasibility study involves analysis of
the problem and collection of data which would be the input to the system, the
processing required to be carried out on this data, the output required to be
produced by the system, as well as the study of various constraints on the
behavior of the system.
In this context we can say that the software feasibility has four solid
dimensions:-
TECHNOLOGY:-
Is the development of software product technically
feasible? Is it within the state of art? Can defects be reduced to a level
matching the applications need?
FINANCE:-
Is it financially feasible? Can development be
completed at a cost the software organization, its clients or the market can
afford?
TIME:-
Will the project be completed in time to beat the
market competition?
RESOURCES:-
Does the organization have the resources needed for
the project to be implemented successfully?
Hardware and Software requirement
Installation Requirements:-
5. Maintenance ……..
PROBLEM DEFINITION AND ITS SPECIFICATION:-
This project also reflects on the response time which means the time
lag between the time the request was made and the time output was received, is
very less.
CORRECTNESS-
A good design should correctly implement all the functionalities of the system.
UNDERSTANDABILITY-
EFFICIENCY-
It should be efficient
MAINTAINABILITY-
It should be easily amenable to change.
The goal of the design phase is to transform the requirements specified in the
SRS
LIBRARY READERS
READER SATISFACTION
1 LEVEL DFD
LIBRARY READERS
READERS SATISFACTION
REDAERS
READER SATISFACTION
LIBRARY
ISSUE ENQUIRY
CANCELLATION
1- Information Report –
Checks whether a user or a non user. If user, data is retrieved else data is added to
database.
2- Checking Report –
Checks the books details.
3- Conformation Report –
Organize book and it also verifies the book. If book is available then give the
conformation report to the reader.
4- Expectance Report –
• It does although it is not a complete project but I tried to solve some of the
Problems in the project.
The software can be made online so that anybody could access the
software and check the availability of books.
REQUIRMENT ANALYSIS
AND
SPECIFICATIONS
REQUIREMENT ANALYSIS
Requirement Analysis involves obtaining a clear and thorough understanding of
the product to be developed, with a view to removing all ambiguities and
inconsistencies from the initial customer perception of the problem.
Without a clear understanding of the problem, it is almost impossible to develop
a satisfactory solution. Therefore many basic questions pertaining to the project
such as the following should be understood clearly by the analyst:
During requirement analysis, the analysts usually carry out the following two main
activities:
• Requirements gathering:
This involves interviewing the end-users and customers to collect all
possible information regarding the system. However in the absence of a
working system, much more imagination and creativity on the part of the
system analyst is required.
After the analyst has collected all the required information regarding the system
to be developed, and has removed all inconsistencies and anomalies from the
specification, he starts to systematically organize the requirements into a SRS
document.
C0NTENTS
OF
SRS
1. INTRODUCTION
1.1. OBJECTIVE
This document aims at defining the overall software requirements for
‘COMPUTERIZING THE FIRM’. Efforts have been made to define the
requirements exhaustively and accurately. The final product will be having only
features and functionalities mentioned in this document and assumptions for any
additional functionality and feature should not be made by any of the parties
involved in developing/testing/implementing/using this product. In this case it is
required to have some additional features, a formal change will need to be raised
and subsequently a new release of this document and/or product will be
produced...
Definitions, Acronyms, and Abbreviations
Overview
The rest of this SRS document describes the various system requirements,
interfaces, features and functionalities in detail.
1.2. SCOPE
The software product ‘ COMPUTERIZATION OF A FIRM’ will be an MIS and
Reporting application that will be used for keeping information regarding
employee, their salary and also the information regarding raw goods , their
testing etc. This application will manage the information about the testing of raw
material, supply of finish goods in better way. This software will manage a huge
data in a better and less time consumed way. This application help the user to
access the information in a better way by having some valid user id and other
security mechanisms.
This application will also generate printable reports regarding lists the different
employee’s of a company regarding any aspect .This system also generated
printable salary sheet for the individual employee at his request.
This application will greatly simplify and speed up the result preparation and
The primary users of the new system would be the management and the staff of
the Jindal vegetable product ltd. This system will store with new employee detail,
row material test records, and processing and report generation and keep the
record of marketing and supply of final product.
1.4. INTERFACES
• A login screen for entering the username, password, and identify proof
(Administrator, Data Entry) will be provided. Access to different screens
will be based upon the role of the user.
• There will be a screen for capturing and displaying information regarding
lab analysis.
• There will be a screen for capturing and displaying information regarding
the salary of an employee.
• There will be a screen for capturing and displaying information regarding
the payment slip of an employee.
• There will be a screen for capturing and displaying regarding the market
supply of final goods.
(e).CONSTRAINTS
(ii) Time:-
The initial version of the system must be operational in two months
The system must be developed in accordance with the fast development
methodology
FUNCTIONAL REQUIREMENTS
(i).FUNCTONAL PARTITIONS
There are two type of user for this software first is the administrator that has the
authority to make changes in the database .second is the guest user that only
access the information about the company, it also helps and support the user by
providing various check during the data entry.
BY KEYBOARD.
MSGBOX MESSAGE BOX
The terminals at client site will have to support the hardware and software
specification in the above sections.
The numbers of options taken up by a member each time does not change.
The subject types do not change.
BEHAVIOUR DESCRIPTION
(iii).Production Module: -
This module is use to maintain raw material details, production & expenditure
details as well as supply details of finished goods.
Working:-
Input is given to validation process and according to this input process will
decide whether it will fed to employee module to store in database as employee
information or just fed it into testing module as input for further processing. In
testing module records are maintain for tested goods and after all processing
finished goods details are maintain in supply module.
VALIDATION CRETERIA
A USER ACCOUNT
1. The system requests that the Administrator enters the user information.
This includes:
• User Name
• User Id-should be unique for each user account.
• Password
• Role
2. Once the user selects the user account it is not allowed to enter in main form.
1. The system requests that the Administrator enters the User ID.
2. The Administrator enters the User ID. The system retrieves and displays the
user account information.
3. The Administrator makes the desired changes to the user account information.
This includes any of the information specified in the Add a User Account sub-
flow.
4. Once the administrator updates the necessary information, the system updates
the user account record with the updated information.
DESIGN
DOCUMENT
SO FTWARE D E
Software design deals w i
described in the SR S doc
program ming language. F
conventional program m ina
during the designed phas
• Different modules
• Control relationshi
SOFTWARE DESIGN APPROACHES:-
The aim of the structured design is to transform the results of the structured
analysis into a structure chart. A structure chart represents the software
architecture, i.e.; the various modules making up the system, the module
dependency and the parameters that are passed among the different
modules. Hence the structure chart representation can be easily
implemented using some programming language. Since the main focus in a
structure chart representation is on module structure of software and the
interaction among the different modules, the procedural aspects are not
represented.
DETAILED DESIGN:-
Objects have their own internal data which defines their state. Similar objects
constitute a class. In other words, each object is a member of some class.
Classes may inherit features from a super class. Conceptually, objects
communicate by message passing.
DESIGNING
Enunciating the characterization of a good software design which remains
accurate for a large variety of problems is not easy. The definition of “a good
software design” can vary depending on the application for which it is being
designed. Characteristics that every good software designs are listed below:
1. CORRECTNESS-
A good design should correctly implement all the
functionalities of the system.
2. UNDERSTANDABILITY-
A good design should be easily understandable.
3. EFFICIENCY-
It should be efficient
4. MAINTAINABILITY-
It should be easily amenable to change.
The goal of the design phase is to transform the requirements specified in the SRS
Document into a structure that is suitable for implementation in some programming
language. I technical terms, during the design phase the “software architecture” is
derived from the SRS document.
CASE STUDIO
There are quite lot features of case studio which make it more useful for
developing any database software.
These are:-
1. Visual creation of Entity Relationship Diagrams (ERD's)
2. Reverse Engineering - enables you to load a structure of supported database
into the CASE studio 2
3. Graphic editing of the Data Flow Diagrams (DFD's)
4. Version manager allows you to compare your models.
5. Generation scripts for SQL databases, including triggers.
6. Gallery for saving and storing most frequently used parts of models
7. Generation of very detailed RTF and HTML reports.
8. Definition of user defined variables and templates used to generate scripts.
9. To Do List feature- available for: Model, Entity, Relationship, Dictionary,
Triggers and Users.
10. COM interface with type-library casestud.tlb.
11. Users, User Groups and User Permission support.
12. Referential integrity (Declarative or via Triggers)
13. Data dictionaries.
14. Support of JScript and VBScript.
Starting with a set of high level functions that a system performs, a DFD model
hierarchically represents various sub functions. In fact any hierarchical model is
simple to understand. Human mind is such that it can easily understand any
hierarchical model of a system-because in a hierarchical model, starting with a
very simple and abstract model of a system, different details of the system can be
slowly introduced through different hierarchies.
ENTITY-RELATIONSHIP MODEL:-
The entity-relationship (E-R) data model was developed to facilitate
database design by allowing specification of an enterprise schema that represent
the overall logical structure of a database. The E-R data model is one of the
several semantic data model; the semantic aspect of the model lies in its
representation of the meanings and interactions of real-world enterprises onto a
conceptual from the E-R model. The E-R model employs three basic notations:
entity sets, relationship sets, and attributes.
The notions of an entity set and a relationship set are not precise, and it is
possible to define a set of entities and the relationships among them in a number
of different ways.
NOTATION OF E-R DIAGRAM:-
• Lines, which link attributes to entity sets and entity sets to relationships
ER Diagram of library
stud_nam
stud_id Ag
e
e
Prev record
Issue Book
no.
Dat_iss
ue
Library past_ fine
Dat_ret
Ag
stu_id stu_name
e
Book_name
Return Book_n
Return o
Dat_issu
e
No fine
accept
FORMS
LOGIN FORM
TABLES
CODING:-
The input to the coding phase is a design document .During the coding phase,
different modules identified in the design document are coded according to the
respected module specification. Recall that at the end of the design phase, we not
only have the module structure (e.g. structure chart) of the system but also the
module speciation where the data structures and algorithms for each module are
specified. Therefore, we can say that the objective of the coding phase is to
transform the design of the system, as given by its module specification, into a
high level language code and to unit test this code. Organization engineers have
to follow these standards rigorously due to the following reason:
• Coding standards give the uniform appearance to the codes written by
different engineers.
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.sql.*;
import java.util.*;
JButton
ADD,AddNewBook,DELETE,DelOldBook,ADDNEWUSER,AddThisUse
r,DELEXISTUSER,DelThisUser,CHANGEPW;
JButton
MARKEOI,CHANGEMYPW,QUERY,RUNQUERY,REPORT,ISSUE_B
OOK,ADD_BORROWER,AddThisBorrower;
JButton
CLOSE_BORROWER,CloseThisBorrower,VIEW_REC,MODIFY_REC,s
howItButton;
JTextField
section,bookname,author,price,availcode,currentborrower,serno,boname,bo
address;
JTextField
bophoneno,borrowerNewMagazine,borrowerPhoneNo,borrowerLastMagaz
ine;
JPasswordField loginpass,oldpw,newpw,newpwc;
JTextField
username,password,Designation,loginpassback,usrname,fboserial,loginna
me;
JTextField
borrowerSerialno,borrowerName,borrowerAddress,borrowerLastBook,borr
owerStatus;
JTextField borrowerNewBook;
String url="jdbc:odbc:BANK";
String driver="sun.jdbc.odbc.JdbcOdbcDriver";
String
sql,sq,sqUsr,sbookd,sdUsr,squpdate,dialogmessage,serialno,squpdate_boo
k,squpdate_mag;
boolean DelFlag,AddFlag,DelUsrFlag,AddUsrFlag;
String loginnameback;
//GregorianCalendar gCal;
JTextField givencondition;
JTextArea resultArea;
int
SerialNoSel=0,BookNameSel=0,AuthorSel=0,PriceSel=0,CurrentBorrowe
rSel=0;
String sr;
String msgesel2;
int n;
JFrame frame;
public MyLibrarian()
//setupMenuBar();
login();
void login()
fr2.setVisible(true);
fr2.setSize(600,300);
fr2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p2=new JPanel();
p2.setLayout(gridbag);
p2.setBorder(BorderFactory.createTitledBorder(BorderFactory.creat
eEtchedBorder(),"Login Panel"));
jLabel1.setFont(dataFont);
c.ipady = 1; //Height of
Component
c.anchor = GridBagConstraints.WEST;
gridbag.setConstraints(jLabel1, c);
p2.add(jLabel1);
// loginname.setEchoChar('*');
c.ipady = 1;
c.ipadx = 1;
//c.weighty = 0.0;
c.anchor = GridBagConstraints.WEST;
c.gridwidth = 2;
c.gridx = 1;
c.gridy = 0;
gridbag.setConstraints(loginname, c);
p2.add(loginname);
jLabel2 = new JLabel("Enter Password : ");
jLabel2.setFont(dataFont);
c.ipady = 1;
c.ipadx = 1;
//c.weighty = 0.0;
//c.anchor = GridBagConstraints.WEST;
//c.gridwidth = 1;
c.gridx = 0;
c.gridy = 1;
gridbag.setConstraints(jLabel2, c);
p2.add(jLabel2);
loginpassback = loginpass;
loginpass.setEchoChar('*');
c.ipady = 1;
c.ipadx = 1;
//c.weighty = 0.0;
//c.anchor = GridBagConstraints.WEST;
//c.gridwidth = 2;
c.gridx = 1;
c.gridy = 1;
gridbag.setConstraints(loginpass, c);
p2.add(loginpass);
c.ipady = 1;
c.ipadx = 1;
c.weighty = 0.0;
c.anchor = GridBagConstraints.CENTER;
c.gridwidth = 0;
c.gridx =0;
c.gridy =4;
gridbag.setConstraints(LOGIN, c);
p2.add(LOGIN);
QueryBuilder();
handleQuery();
else if(s=="REPORTS")
BookReports();
{
addnewborrower();
BORROWER_ADD();
Class.forName(driver);
Connection connection=DriverManager.getConnection(url);
if(hasResults)
ResultSet result =
statement.getResultSet();
if(result!=null)
displayResults(result);
connection.close();
catch(Exception ex)
int foundrec = 0;
int numColumns=rmeta.getColumnCount();
while(r.next())
{
String param3 =
r.getString(3).trim();
if (param3.equals("Accounts"))
foundrec = 1;
showAccountloginsuccess();
else if(param3.equals("Main"))
showMainloginsuccess();
if(foundrec==0)
dialogtype =
JOptionPane.WARNING_MESSAGE;
//show message
JOptionPane.showMessageDialog((Component) null,
dialogmessage, dialogw, dialogtype);
loginname.setText("");
loginpass.setText("");
}
void showAccountloginsuccess()
//fr2.setVisible(false);
dialogtype =
JOptionPane.INFORMATION_MESSAGE;
//show message
JOptionPane.showMessageDialog((Component) null,
dialogmessage, dialogs, dialogtype);
loginname.setText("");
loginpass.setText("");
showAccountprograms();
void showMainloginsuccess()
{
dialogmessage = "Login Succssful !!!";
dialogtype =
JOptionPane.INFORMATION_MESSAGE;
//show message
JOptionPane.showMessageDialog((Component) null,
dialogmessage, dialogs, dialogtype);
loginname.setText("");
loginpass.setText("");
showMainprograms();
void showMainprograms()
fr6.setVisible(true);
fr6.setSize(600,300);
p6=new JPanel();
p6.setLayout(gridbag);
Calendar cal = Calendar.getInstance(TimeZone.getDefault());
String DATE_FORMAT="dd-MM-yyyy";
sdf.setTimeZone(TimeZone.getDefault());
//System.out.println("Now : "+sdf.format(cal.getTime()));
String t1 = sdf.format(cal.getTime());
p6.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtche
dBorder(),"Main "+loginnameback+" Logged in"));
l2=new JLabel(t1);
c.ipady=2;
c.ipadx=2;
c.anchor=GridBagConstraints.WEST;
c.gridx=3;
c.gridy=0;
gridbag.setConstraints(l2,c);
p6.add(l2,c);
c.ipady = 2;
TE.addActionListener(new ButtonHandler());
c.ipady = 2;
c.ipadx = 2;
c.weighty = 0.0;
c.anchor = GridBagConstraints.WEST;
c.gridwidth = 1;
c.gridx = 0;
c.gridy = 2;
gridbag.setConstraints(ADDNEWUSER, c);
p6.add(ADDNEWUSER);
ADDNEWUSER.addActionListener(new
ButtonHandler());
c.ipady = 2;
c.ipadx = 2;
c.weighty = 0.0;
c.anchor = GridBagConstraints.WEST;
c.gridwidth = 1;
c.gridx = 0;
c.gridy = 3;
gridbag.setConstraints(DELEXISTUSER, c);
p6.add(DELEXISTUSER);
DELEXISTUSER.addActionListener(new
ButtonHandler());
c.ipadx=2;
c.anchor=GridBagConstraints.WEST;
c.gridx=2;
c.gridy=5;
gridbag.setConstraints(l10,c);
p14.add(l10,c);
c.ipady=2;
c.ipadx=2;
MODIFY_REC.addActionListener(new
ButtonHandler());
fr14.getContentPane().add(p14);
JFrame.setDefaultLookAndFeelDecorated(true);
}
void UpdateBorrowerRecord()
try
Class.forName(driver);
Connection
connection=DriverManager.getConnection(url);
temp2 =
temp2.trim();
String temp5 =
borrowerStatus.getText();
temp5 = temp5.trim();
int foundclosedrec = 0;
System.out.println(temp5);
if (temp5.equals("C"))
foundclosedrec = 1;
dialogmessage =
"Cannot Update.Closed Record";
dialogtype =
JOptionPane.INFORMATION_MESSAGE;
//show message
JOptionPane.showMessageDialog((Component) null,
dialogmessage, dialogf,dialogtype);
return;
//System.out.println(temp);
//System.out.println(temp1);
//System.out.println(temp2);
if (foundclosedrec==0)
squpdate_book = "UPDATE
borrower_record SET bolastbook='"+temp1+"' WHERE boserial =
'"+temp+"'";
squpdate_mag = "UPDATE
borrower_record SET bolastmagazine='"+temp2+"' WHERE boserial =
'"+temp+"'";
Class.forName(driver);
Connection
connection=DriverManager.getConnection(url);
Statement statement =
connection.createStatement();
statement.executeUpdate(squpdate_book);
statement.executeUpdate(squpdate_mag);
connection.close();
dialogmessage = "Borrower
Record Updated";
dialogtype =
JOptionPane.INFORMATION_MESSAGE;
//show message
JOptionPane.showMessageDialog((Component) null,
dialogmessage, dialogs,dialogtype);
borrowerNewBook.setText("");
borrowerNewMagazine.setText("");
sdf.setTimeZone(TimeZone.getDefault());
//System.out.println("Now : "+sdf.format(cal.getTime()));
String t1 = sdf.format(cal.getTime());
}
TESTING
Overview
Software testing is the process used to help identify the correctness,
completeness, security and quality of developed computer software.
With that in mind testing can never completely establish the correctness of
arbitrary computer software in computability theory , a filed of computer
science ,an elegant mathematical proof concludes that it is impossible to solve the
halting problem, the question of weather an arbitrary computer program will
enter an infinite loop or halt and produce output. In other words , testing is
criticism or comparison that is comparing the actual value with expected one.
There are a wide variety of types of software tests that may be used for building
energy simulation software, each with a different objective or scope. The goal of
software testing is to cost effectively identify and communicate as many potential
problems with the s\w as possible and iterate with the development team until the
identified bugs are eliminated. Please note that creating a bug free s\w is not a n
obtainable goal, since there are too many possible inputs and too many possible
paths through the program. From the development teams prospective a successful
test is one that reveals problem, all other tests are unnecessary. From the users
perspective, a successful test is one that shows that the s\w results match some
type of standard with an adequate level of accuracy.
There are many approaches to software testing, but effective testing of complex
products is essentially a process of investigation, not merely a matter of creating
and following route procedure. One definition of testing is” the process of
questioning a product in order to evaluate it.” Although most of the intellectual
processes of testing are identical to that of review or inspecting, the word testing
is connoted to mean the dynamic analysis of the product – putting the product
through its paces. The quality of the application can, and normally does, vary
widely from system to system but some of the common quality attributes include
reliability, stability, portability, maintainability and usability.
LEVELS OF TESTING
1. UNIT TESTING:
The first level of testing is called unit testing. In this different modules are tested
against the specifications produced during design of the modules. Unit testing is
essentially for verification of the code produced during the code phase, and hence
the goal is to test the internal logic of the modules. The programmer of the
module typically does it. Others consider a module for integration and use only
after it has been unit tested satisfactorily. Due to its close association with
coding, the coding phase is frequently called “coding and unit testing”. As the
focus of this unit testing level is on testing code, structural testing is the best
suited for this level. In fact, as structural testing is not very suitable for large
programs, it is used mostly at the unit testing level.
2. INTEGRATION TESTING:
The next level of testing is often called as integration testing. In this, many
unit modules are combined into subsystems, which are then tested. The goal
here is to test whether modules can be integrated properly. Hence, the
emphasis is on testing interfaces between modules. The testing activity can be
considered testing the design. The integration plan specifies the steps and
order in which modules are combined to realize the full system. After each
integration step, the partially integrated system is tested. An important factor
that guides the integration is the module dependency graph.
3. SYSTEM TESTING:
System tests are designed to validate a fully developed system to assure that it
meets its requirements. There are essentially three main kinds of system
testing:
• ALPHA TESTING: alpha refers to the system testing carried out by the test
team within the developing organization.
• BETA TESTING: beta testing the system testing performed by a select
group of friendly customers.
• ACCEPTANCE TESTING: acceptance testing is the system testing
performed by the costumer to determine whether to accept or reject the
delivery of the system
TYPE OF TESTING
This testing is also known as functional testing. The basis for deciding test cases
in functional testing is requirement or specifications of the system or modules.
For the entire system test cases are designed from the requirements specification
document from the system. For modules created during design, test cases for the
functional testing are decided from module specification produced during the
design.
In this we divide the domain of all the inputs into set of equivalence classes.
That is what we want to identify classes of test cases such that the success of one
test case in a class implies the success of others. It is often useful to consider
equivalence classes in the output. For an output equivalence class, the goal is to
generate test cases such that the output of that test case lies in the output
equivalence class.
2. CAUSE-EFFECT GRAPHING:
It depends on the data structure and the function of the module. There are no
rules to determine special cases, and the tester has to use his intuition and
experience to identify such test cases. Consequently, determining special cases is
also called as “error guessing”.
Each white box testing strategy is based on some heuristic. One testing is said
strong than other if I detect some more errors than first one does. When two
strategies detect errors different from other with respect to some errors, they are
called complementary.
2. BRANCH COVERAGE: in this, test cases are designed to make each branch
condition assume true or false value in turn. It is also known as “edge testing”.
Maintenance of a typical software product requires much more effort then the
effort necessary to develop the product itself. Many studies carried out in the past
confirm this and indicates that the relative effort of development of a typical
software product to its maintenance effort is roughly in the 40:60 ratio.
Maintenance involves performing any one or more of the following three kinds of
activities;
Other References:
1) Website- www.google.com