|
|
|
|
Subair Erunnaladummal subair_e@yahoo.com
LIBRARY INFORMATION SYSTEM
Sample
Project Report
This sample report does not contain DFD
and ERD insert them in appropriate places. The system is developed in Linux
platform using Glade interface designer and C as front end and Postegre SQL as
Backend. Before using this report make sure that all technical aspects are correct.
LIBRARY INFORMATION SYSTEM
The main objective of this project is to develop a software system to automate operations that are carried out at a Engineering College Library . And to ease the library management activities such as Ordering, Accessioning, Member management, Issue /Return /Renewal/Reservation of books. Another objective of this project is to have an effective, efficient and easy system to manage queries and build reports.
The major problems regarding library are
Overhead to prepare book orders from the requirement of various departments.
Overhead of accessioning book.
Time consuming to issue books.
Time consuming to renew books.
Time consuming to return books.
There is no efficient method to handle the enquiries from students and teachers; it is more time consuming to know the status of book. The librarian has to search in so many registers for that. It is also difficult to find out a member who delays the returning of books.
The requirements are identified from the study of the existing system, interview with the officials, on site observation etc. The primary need is a simple system with improved performance having the below mentioned capabilities.
š Timely, efficient and accurate preparation of orders from the requisition comes from the departments.
š Fast issuing and returning of books to students and other library members
š Fast information about the availability of a particular book.
š Timely and efficient preparation of various reports.
š A system, which can be used for members directly, even without the help of a librarian.
š A system, which provides reservation facility to members.
š A system, which reduce the additional man-hour required on demand.
The
purpose of preliminary investigation is to evaluate system requirements. It
objective includes clarification and understanding of system requirements,
determine the size of project, assess cost and benefit, and determine the
technical and operational feasibility.
I adopted on-site observation, reviewing organization documents and interviewing as fact-finding techniques during preliminary investigation.
The written documents and reports of previous years of education at the library are very helpful in preliminary investigation. It gives an idea about who are the persons or outside parties directly associated with the library. Enquiry documents are associated with students or peoples outside. It gives a brief overview of the activities of the office and important steps involved in. documents give idea about what inputs are required for various activities. For example, verification report readily gives a clear idea about the input needed. Reports like monthly report, monthly bill, account statement etc give some idea about the volume of transaction.
The next step I had done in system analysis is on-site observation. Through this I got a better understanding of the system and various persons involved in the system. The librarians carry out all the activities at the library. The Chief Librarian gives directions and final approval of processes or documents. It gave me the steps and procedures of various activities carried out. For example, in order preparation various departments submit requisition in predefined formats to the library. From the library the actual requirement of book is analysed prepare orders and send it to principal for final approval. Then he invites quotation from various suppliers and issues order to best quotation. Even though the final authority is principal all the works are done in library.
I
finally conducted interviews with the persons related to the present system. It
helped me to get the user’s view about the system and suggestions about the
proposed system. I got idea about the responsibilities of various assistant
librarians.
After
conducting the system analysis, I got a got understanding of requests and idea
about the size of the project.
A feasibility study and business study must be carried out to decide whether the project is suited to the use of a rapid development approach and to define the high level functionality required. By feasibility we mean a test of system proposal according to its workability, impact on the organisation, ability to meet user needs, and effective use of resources. Only a feasible system will be useful to the organisation, so it is significant to evaluate the feasibility of the system.
Technical
feasibility is concerned with specifying equipment and software that will
successfully satisfy the user requirements. The equipments required for the
proposed system are PC having configuration Pentium I or above with 64MB RAM
and 4GB HDD, plus a dot matrix printer and a UPS of min 20mins backup. Software
needed are Linux as the operating system and Postgre SQL as database management
system.
The
specifications given above can easily satisfy the requirements of the system.
It is able to give lengthy and complex reports in a given time. The response
time will be quick under almost any conditions. It will have the ability to
process large reports like monthly reports in a very high speed in which data
from many relations involve. Postgre SQL supports high-speed transaction on
high volume of data. From the above given facts we can conclude that the system
is technically feasible.
It is most commonly known as cost/benefit
analysis and its objective is to determine the benefits and savings that are
expected from the proposed system and compare them with costs. If benefits
outweigh costs, a decision is taken to design and implement the system.
There
is already availability of hardware equipments needed for the system at the
office, so there is no additional cost is needed for hardware. As Linux and
Postgre SQL are free software, there is no additional investment is needed
towards the software.
In
the proposed system, we can have cost-avoidance benefits. For example, the
computerised system will reduce the overheads and time period required in the
manual system. This is helpful as there is no need to hire or appoint
additional clerical staff in the future.
The
proposed system will cause improved service level benefits, as the performance
of the computerised system is much higher than the existing manual one. For
example, the time required for book issuing, returning, placing orders from
requests are minimised. We can reduce this into minutes in the computer-based
system.
We
can feel improved information benefits in the proposed system, because it will
lead to better information for decision-making. It will be helpful to the
Librarian to prepare reports like pending returns or delayed returns and send
same to principal for further action.
From the above-mentioned benefits, we can know that the proposed system is economically feasible.
The proposed system is operationally feasible because it will meet the operating requirements of the organisation. I feel extreme support from the Chief Librarian and other official staff of the library and all welcome an efficient and useful computer based system. They are so corporative and involved in the planning and development of the project.
The
proposed system will not brought any changes to the system and organisation
structure because the proposed system will not cause any harm to the existing
staff members.
The
staff members of the Library are well trained to operate a computer. So there
is no need of training to the existing staff or no need of hiring trained
staff.
The
above given details about various feasibility supports the fact that the
proposed system will be a feasible one.
Throughout the life cycle of the project, I adopted structured system analysis and design.
Structured analysis is a set of techniques and graphical tools that allow the analyst to develop a new kind of system specification that are easily understandable to the user. I used the following structured tools in the analysis phase of the project.
1) Data Flow Diagram (DFD)
2) Data Dictionary
3) Decision Tree
Structured design is a data flow based methodology. The approach begins with a system specification that identifies input and output of the system. General features such as reports and inputs are identified first and are studied individually in detail. Structured design is an attempt to minimise the complexity and make a problem manageable by subdividing into small modules.
The system is developed to run under
Linux platform. It also uses various tools, compiler and libraries, which are
available with Linux for the development and implementation of this project. A
brief description about the platform and tools used are given below.
Platform
Linux
Linux is a fast developing, free,
multi-user, multitasking and multi processing operating system, which was
originally developed by Linus Torvalds, a Finnish scientist. Since it is
a free software anyone can work on it, make changes and enhance it. Apart from
the kernel, the creator of Linux has attached a bundle of system software and
application software with it, through GNU software effort, which is
directed by Free Software Foundation (FSF). There is a wide range of
software that can be used with Linux, all of which includes features that can
compete with or even surpass those of any other operating system in the world.
Some of the features, which justify the selection of Linux as a platform for my
project, are given below.
1. Open source
2. Free
3. Availability of wide range of compilers
& utilities
4. Database server support
5. GUI support and Designers, Tools and
libraries to build GUI
6. Support for a variety of hardware
7. Worldwide user group support
8. Highly reliable and secure
Compiler
gcc
gcc is a C compiler used to compile C
source code for Linux platform. Since all the source code of my project is
written in C, I used gcc compiler create executables.
Tools
GNU
make
GNU make is a tool used to compile and
link programs written in various languages under Linux platform. This tool uses
a file named ‘Makefile’, in which we can give the specification, for
compilation and linking, such as the compiler, source files, target file,
libraries to be included, flags used while compilation etc.
Glade
Glade is a user interface builder for
Linux, which allows developers to design layouts of windows, dialogs, menus and
toolbars in a point-and-click fashion, in same vein as a package. Glade allow
user interface to be created by designers without a technical background, by
separating the interface from the back end code.
Glade is the most advanced RAD (Rapid
Application Development) tool for GNOME/GTK and is similar to Windows-based
tool such as Power Builder and the Visual C++ Resource Editor. Once we have put
together a design, Glade can generate a skeleton source tree, complete with
code to create that design, packaging each window and dialog within a creation
function. With Glade we have instant access to all common GNOME/GTK widgets,
along with their properties that we can adjust in real time, and hence see
effects instantaneously.
Libraries
This project uses mainly two libraries
one to build the GUI front-end for the user to interact with the system and the
other to access the database. The front-end library used here is GIMP
Toolkit (GTK), which provides a set of controls or components to build a
very good GUI. The second library, ‘libpq’, is used to interact with the
PostgreSQL server, which is the database server for this project, in order to
store and fetch data.
GIMP
Toolkit (GTK)
GTK (GIMP Toolkit) is a library
for creating graphical user interfaces. It is licensed using the LGPL
license, so we can develop open software, free software, or even commercial
non-free software using GTK without having to spend anything for licenses or
royalties.
It’s called the GIMP toolkit because it
was originally written for developing the GNU Image Manipulation Program
(GIMP), but GTK has now been used in a large number of software projects,
including the GNU Network Object Model Environment (GNOME) project. GTK
is built on top of GDK (GIMP Drawing Kit), which is basically a wrapper around
the low-level functions for accessing the underlying windowing functions (Xlib
in the case of the X windows system).
There is also a third component called
GLib, which is a lower-level library that provides many useful definitions and
functions available for use when creating GDK and GTK applications. These
include definitions for basic types and their limits, standard macros, type
conversions, byte order, memory allocation, warnings and assertions, message
logging, timers, string utilities, hook functions, a lexical scanner, dynamic
loading of modules, and automatic string completion. A number of data
structures (and their related operations) are also defined, including memory
chunks, doubly-linked lists, singly-linked lists, hash tables, strings (which
can grow dynamically), string chunks (groups of strings), arrays (which can
grow in size as elements are added), balanced binary trees, N-ary trees, quarks
(a two-way association of a string and a unique integer identifier), keyed data
lists (lists of data elements accessible by a string or integer id), relations
and tuples (tables of data which can be indexed on any number of fields), and
caches.
GTK is written completely in C, it is
implemented using the idea of classes and callback functions (pointers to
functions) and it can be used with C. There are GTK bindings for many other
languages including C++, Guile, Perl, Python, TOM, Ada95, Objective C, Free
Pascal, and Eiffel.
GTK is an event driven toolkit, which
means it will sleep in ‘gtk_main’ until an event occurs and control is passed
to the appropriate function (slot). This passing of control is done using the
idea of “signals”. When an event occurs the appropriate signal will be
“emitted” by the widget. This is how GTK does most of its useful work.
libpq
libpq is the C application programmer’s
interface to PostgreSQL. libpq is a set of library routines that allow client
programs to pass queries to the PostgreSQL backend server and to receive the
results of these queries. libpq is also the underlying engine for several other
PostgreSQL application interfaces, including libpq++ (C++), libpgtcl (Tcl),
Perl, and ecpg.
libpq uses PGconn object to connect to
the database. PGresult to retrieve data from tables. There are functions to
connect, execute query and check the status of query being executed etc.
Database
Server
PostgreSQL
PostgreSQL is an
object-relational database management system (ORDBMS) based on POSTGRES,
Version 4.2, developed at the University of California at Berkeley Computer
Science Department. The Defense Advanced Research Projects Agency (DARPA), the
Army Research Office (ARO), the National Science Foundation (NSF), and ESL, INC
sponsored the POSTGRES project, led by Professor Michael Stonebraker.
PostgreSQL is an open-source descendant
of this original Berkeley code. It provides SQL92/SQL99 language support and
other modern features.
POSTGRES pioneered many of the
object-relational concepts now becoming available in some commercial databases.
Traditional relational database management systems (RDBMS) support a data model
consisting of a collection of named relations, containing attributes of a
specific type. In current commercial systems, possible types include floating
point numbers, integers, character strings, money, and dates. It is commonly
recognized that this model is inadequate for future data-processing
applications. The relational model successfully replaced previous models in
part because of its “Spartan simplicity”. However, this simplicity makes the
implementation of certain applications very difficult. PostgreSQL offers
substantial additional power by incorporating the following additional concepts
in such a way that users can easily extend the system:
ü
Inheritance
ü
Data types
ü
Functions
ü
Other features provide additional power and flexibility:
ü
Constraints
ü
Triggers
ü
Rules
ü
Transactional integrity
|
|
Minimum |
Preferred |
|
Processor |
Pentium I |
Pentium II |
|
RAM |
32MB |
64MB |
|
HDD |
2GB |
4GB |
|
Printer |
132 Column |
132 Column |
|
UPS |
20Min Back-up |
1Hour Back-up |
The
primary objective of the system design is to deliver the requirements specified
in the feasibility report. The main design objective I give significance are
Practicality
This system will be user-friendly so user
with average skills can easily operate
Efficiency
This
system will produce output in time with accuracy.
Cost
The system is to design with a minimum cost to satisfy the requirements.
Flexibility
The system will be a modifiable one depending on future needs.
Security
The system should be reliable, secure one.
Mainly following parts have been included in the system design process:
(i) Output design: the starting point of the design process id the proper knowledge of system requirements, which will normally be converted in terms of, output.
(ii) Input design: once the output requirements have been finalized, the next step is to find out what data to be made available to the system to produce the desired outputs. The basic documents in which these data are available need to be identified.
(iii) Database design: once the data is captured in the system, these have to be preserved for long period. These data is will generally stored in files in a logical manner
(iv) Procedure design: this step involves specifications of how processing will be performed.
(v) Control design: it indicates necessary procedures which will ensure correctness of processing, accuracy of data, timely output etc.
The
goal of designing makes data entry easy and error free. The input screens of
this system clearly give the length of data fields. It follows the same field
sequence of the source documents/forms of the organization. The system follows
the same data formats as the user follows. Example: ‘dd/mm/yyyy’ for date
values.
Every input screen is designed for this system requires only limited amount of input data. So it avoids delays and improves the data entry speed as well as the overall speed of the system. Necessary input validation checks are provided at every data entry screens, so it reduces the possibility of erroneous input. The input screens are made as simple as possible by avoiding extra steps to make it comfortable to the users.
This
system uses the menu convention to display the options the user can choose
from. All input screen are provided with help to retrieve previous records of
key fields. For example in space provided for Author, the user could select the
Author’s details from a displayed list. Department code, course code etc are
listed in combo boxes so the user can just select it form it. This type of
helps in data entry increases the speed and accuracy of input. User will get
error message when they carry out unacceptable actions.
Some input screens are listed in appendix.
The
output design should be in an attractive and useful form because success and
acceptance of a system to some extent depends on good presentation. There are
three main reasons why outputs from computer are required. They are:
ü For communicating to the persons concerned
ü For re-input to the computer for being connected with other data and further processing
ü For permanent storage.
In this system there are reports,
displays on screen, and printed forms comes as outputs. Output devices used in
this system are monitor and printer. The main design considerations that I have
made in designing this system are:
ü No data are excluded in the output
ü The format of the output is similar to the presently existing one.
ü The sequence of reports printed is in a useful way, which is similar to that of the present system.
ü The outputs generated are having good quality in appearance, contents, and accuracy.
ü
The
output screens are provided with necessary screen heading and labels for
various fields. Buttons are provided for actions like displaying, printing etc.
The menu of this system is designed in a hierarchical manner. Activities of similar nature are grouped under one menu. Menus are designed in form that the user can work with more than one form at a time.
Form is a tool with message; it is the physical carrier of data .it provides information for making decisions and improving operations. In this system students attendance sheet is form of action characteristics. It requests the students to mark their attendance. The size of this form is convenient for easy handling and easy to identify and filling up.
Data Flow Diagrams
A data flow diagram (DFD) is a graphical
technique that depicts information flow and the transformations that are
applied as data moves from input to output. The DFD is also known as a data
flow graph or a bubble chart.
The
data flow diagram may be used to represent a system or software at any level of
abstraction. In fact, DFDs may be partitioned into levels that represent
increasing information flow and functional detail. Therefore, the DFD provides
a mechanism for functional modeling as well as information flow modeling.
Data flow diagram insert here
Source code for this product has been
written in C language. Code for
different system operations are divided into separate C header files and included
as and when required to ensure maximum modularity and re-usability.
Source code to build the GUI
interfaces is stored in a file named ‘interface.c’ and it includes separate
functions for each window or dialog box used in this package. Each function are
called when the window has to be created and shown.
Since this project is an event driven
one, all the required events have to be handled. Here GTK library provides a
signal and slot mechanism for handling events. All of the event functions or
slots are defined in a file named ‘callbacks.c’.
Names of all C source and header files are given below:
1.
tbldesign.sql
2.
main.c
3.
callbacks.c
4.
callbacks.h
5.
interface.c
6.
interface.h
7.
support.h
8.
support.c
9.
accession.h
10.
order.h
11.
member.h
12.
issuing..h
13.
returning.h
14.
dues.h
15.
screens.h
16.
accessionregister.h
17.
payment.h
18.
maintenance.h
19.
utilities.h
20.
datasearch.h
21.
interact.h
22.
reservation.h
The overall performance of the system, to a greater extent depends on the coding procedures followed by the programmer. So the efficiency of the code is so important in system development. A lot of factors like programming language selection, memory allocation, memory management, programming style, use of variables, re-usability of code, etc determines the efficiency of the programme code. The coding procedures followed in the programmes of this system are as follows
The software is a robust one as it is completely coded in ‘C’ language. The use of pointers causes increase in execution speed. All memory allocation and de-allocation are done explicitly using C functions. It guarantees that no memory space is wasted.
I followed modular programming by dividing the whole system into sub modules. Only database connection and some window widget pointers are used as global. Variables related to remaining widgets, result-set and intermediate results are declared at module level.
I used the best algorithms from the available algorithms, by checking for minimal and efficient steps, and minimal use of memory, for each module. Some functions are made re-usable which helped to gain a lot of coding effort and time for programming. In this software, functions like diplay_booklist (GtkWidget * Clist_bookname), reserve_book(gchar * string), format_date () etc are reusable.
Memory management of programs are handled through dynamic memory allocation. So no memory is used until usage comes. It increases the efficiency of the program.
All the
modules and functions in this project are optimised to get the intended result
with less lines of code.
Validation check is needed at every phase of the system development. Improper validation of requests will result in the development of useless system. The first validation check carried out in the design phase of the system.
Data validation checks are very important for the proper functioning of the system. Errors can happen while user input data and usually result in malfunctioning or even termination of the software. So it is very important to prevent erroneous or invalid data.
Errors are generally comes while user try to enter data that the system is not expecting. In order to prevent user from entering invalid data, necessary validation checks are to be provided. Following are some of the validation checks in this system.
v Verification of Data Type: - Input checks are provided to make sure that only right type of data is entered in an input field.
v Verification of Length of Data: - There is a restriction in length of data that the user can enter depending on the database field
v Checking between a range of values: - Checking is provided to check the validity of input data. For example ‘book price’ must be a non-negative value greater than zero.
v Validation check is also given to check violation of database constraints like primary key violation etc.
v Visual display of codes with its description, like department code is provided for helping the user in easy data entry. This will help in reducing invalid entry of codes.
A crucial phase in the system life cycle is the successful implementation of the new system design. Implementation includes all those activities that take place to convert from the old system to the new one.
The implementation tasks can be summarized as follows:
Training Personnel
Conversion
Post implementation review
Even well
designed system can succeed or fail because of the way they are operated and
used. Therefore I adopted good training procedure in my system. Operators of the system are librarians. They
are familiar with computer but not with Linux platform. I gave essential Linux
training such as the basic usage of X window system, using of word processors
and printers and some basic shell commands. When they are confident in Linux
platform I introduced the system. A printed copy of user manual is distributed
to them prior to the system training.
Conversion is
the process of changing from the old system to the new one. There are different
methods for conversion- parallel systems, direct conversion, and pilot system
and phase in method.
The most secure method of conversion is to run both systems in parallel. Under this approach users continue to operate the old system in the usual manner but they also start to use the new system. This method is the safest one because it ensures that in case of any problems in using the new system, the organization can still fall back to the old system without loss of time and money.
Direct
conversion method converts from the old to new system abruptly. The old system
is used until a planned conversion day, when it is replaced by the new system.
The main disadvantages of this approach are no other system to fall back on if
difficulties arise on new system.
In pilot method working version of the system is implemented in one part of the organization, such as a single work area or department. Based on the feedback, changes are made and the system is installed in the remaining departments of the organisation.
Phase in method is used when it is not possible to install a new system through out an organisation all at once.
In
this system I adopted parallel conversion, because it is the safest method.
Library is an inevitable part of the institution. Denial of library services
for one or two days can cause the complete rejection of the new system.
The
conversion is done through the following steps
The
library already has many books and members. Before running the new system it
has to be entered into the new system. I appointed two data entry operators and
they completed their work with a week.
After
data entry the system started running paralleled with manual one for the period
of two week. I took feed back from all the operators; they demanded for some
minor modifications. After making the requested changes the system started
working standalone.
Post
implementation review measures the system performance against predefined
requirements. It determines how well the system continues to meet performance
specifications. It also provides information to determine whether major
re-design or modification required.
The system maintenance is actually the implementation
of the post-implementation review plan. The maintenance can be classified as
corrective, adaption or perfective. Corrective maintenance means repairing,,
processing or performance failures or making alteration because of previously ill-defined problem. Adaption
maintenance means changing the program functions. Enhancing the performance or
modifying the program according to the user’s additional or changing needs are
included in perfective maintenance.
Maintenance
covers a wide range of activities including correcting coding and design
errors, updating documentation and test data and upgrading user support.
Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding. Testing requires that the developer discard fixed notions of the “correctness” of software just developed and overcome a conflict of interest that occurs when errors are uncovered. Testing is a process of executing a program with intend of finding an error. A good test case is one that has a high probability of finding an as-yet undiscovered error.
If testing is conducted successfully it will uncover errors in the software. As a secondary benefit, testing demonstrates that software functions appear to be working according to specification and that performance requirements appear to have been met. Testing cannot show the absence of defects, it can only show that software errors are present or not.
Initially, tests focused on each module individually, assuring that it functions properly as a unit. Next modules were assembled or integrated to form the complete software package. After the software has been integrated a set of high-order tests were conducted.
Following
are the tests conducted in order to assure the quality of this software.
Unit testing focuses on verification programmes that make up the system. This helps in detecting the errors in coding and logic that are contained with in the module alone.
In unit testing I tested the interfaces of
each module first to ensure information properly flows into and out of the
program unit under test. The local data structure is examined to ensure that
the data stored temporarily maintains its integrity during all steps of the
algorithm. Boundary conditions are tested to ensure that the module operates
properly at boundaries established to limit or restrict processing. All
independent paths through the control structure are exercised to ensure that
all statements in module have been executed at least once. And finally, all
error-handling paths are tested.
The outcome of unit testing are- it ensured the proper performance of the interface, the quality of data validation rules in each module is assured, confirmed each module is working according to the proper process logic.
Integration testing is a systematic technique for constructing the program structure while conducting tests to uncover errors associated with interfacing. The objective was to take unit tested modules and build a program structure that has been dictated by design. Each time a new module is added as part of integration testing, the software changes. New dataflow paths are established, new I/O may occur, and new control logic is invoked.
After the modules were tested and integrated, both valid and invalid test transactions were conducted to text the total software system. Some minor errors, while connecting to database, updating some tables, were found and are corrected. This test ensured the reliability of the system.
Validation testing provides final assurance that software meets all functional, behavioural, and performance requirements. Validation succeeds when software functions in a manner that can be reasonably expected by the customer.
System testing s designed to uncover weaknesses that were not found in earlier tests. This includes forced system failure and validation of total system, as its user in the operational environment will implement it.
Under this testing I took low volume of transactions based on live data. This volume is then increased until the maximum level of each transaction type is reached.
The following tests are conducted under system testing. An important point where the system is tested is its response when invalid data is entered. Another important test is forced system failure.
Recovery testing is a system test that forces the software to fail in a variety of ways and verifies that recovery is properly performed. If recovery is automatic, re-initialisation, check pointing mechanisms, data recovery and restart are each evaluated for correctness.
This test ensured that no data are lost by abnormal termination of the system.
Security testing attempts to verify that protection mechanisms built into a system will in fact protect it from improper penetration. During security testing, I played the role of the individual who desires to penetrate the system. The results verified the protection of this system from unauthorised access.
Black box testing is done to find out, incorrect or missing functions, interface errors, errors in external environment, performance error, initialisation and termination error. The above testing is successfully carried out for this application according to the user requirement specification.
User acceptance of the system is the key factors for the success of any system. The system under consideration is tested for user acceptance by constantly keeping in touch with the prospective system users at the time of developing and making changes wherever required. This is done with regard to the following points.
Input screen design
Output screen design
Online message to guide user
Menu driven system
The users of the system are involved in every stage of the design. It is very useful that I had got good suggestions from the user on some complex data entry screens and output screen at the design time.
The above conducted tests verified the reliability, correctness, robustness, user-friendliness, and performance of the system.
System
security refers to the technical innovations and procedures applied to the
hardware and operating systems to protect against intentional or accidental
damage from a defined threat. Powerful system security can be costly, but
appropriate security is justified compared to disaster that could result from
no protective measures. There are three major motives behind system security.
1. The near –
total dependence of organizations on computer base information makes it
imperative that a system be protected on a regular basis
2. Data are a
major asset and should be protected. In a data base environment where computer
files are centralized, security becomes critical.
3. Demonstrating
effective security measures reinforces management support for designing and
implementing candidate systems.
There are three categories of control in
data security: Physical security (protection from fire, flood etc), database
integrity, and control measures (passwords, encryptions). Potential threat to
system security includes errors and omissions, dissatisfied and dishonest
employees, fire and natural disasters. Errors and omissions cause the most
damage.
The major steps towards security measures in this system are: -
v Linux is an operating system provides proper authentication with username and password. This provides the maximum security from unauthorized access.
v User is provided with a user name and a password as identification. This is the security provided in the application level
v This system is having facilities for backup and recovery. So it gives maximum protection to data if data is backed up on a regular basis.
A risk analysis helps in assessing the probability and cost of possible disasters, pinpoint unacceptable exposures, and adopts preventive measures as part of a security plan. The goal is to identify the threat that results in the greatest monetary losses and provide protection to the appropriate degree.
As the staffs is very familiar with computer system and UPS provides proper power supply, the probability for system crash is minimal. The only threat to the system is from hardware failure or some natural calamities and its possibility is minimal.
In preparing cost estimates for a system, we need to consider several cost elements. Among them are hardware, personnel, facility, operating and supply costs.
Hardware cost relate to the actual purchase or lease of the computer and peripherals. In our case there no much cost is needed towards the hardware or peripherals.
Personnel
costs include EDP staff salaries and benefits as well as pay for those involved
in developing the system. Costs incurred during the development of the system
are on-time costs and are labelled as development costs. Once the system is
installed, the costs of operating and maintaining the system become recurring
costs.
Time taken from analysis stage to implementation of this software is about 450 man-hours. The development cost per man-hour will come around 100 rupees. So estimated cost for development is around 45,000 rupees. Six months maintenance is provided for the system, so a recurring cost of at least 5000 will also added with the cost. Thus the total cost estimated for the development and maintenance of the system will be around 50,000 rupees.
The general principles used in designing of output forms are:
v The design must be such that it can read from left to right and top to bottom
v The most important item, such as key field, should be easily available.
v All pages must have page numbers and heading
v All columns must be labelled with meaningful labels.
v To many details should be avoided.
v Control footing abstracts information about groups of detail lines must be effectively used
v Page and report footing must be properly defied.
All reports
generated by this system contain proper heading to identify the report. Names
are given for each field in the report. If there is more than one page then this
will repeat for the remaining pages too. The logical sequence of each field is
one suggested by the users. Page number and date of report appears on top of
each page. Summary of the report is given on the end of report.
Major types of report which are generated by the system are given below:
1. Accession number wise book report
2. Department wise book report
3. Author wise book report
4. Publisher wise book report
5. Course wise Issued Book report
6. Date wise Issued Books Reports.
7. Order Report
8. Book requisition form report.
9. Invoice Report.
10. Daily Collection Report
11. Monthly collection report
Some sample reports are shown on the appendix.
Pert
Gant
The developed system is capable of doing
the present requirements of the library. This system can be extended in the
future, on demand, to support extra nodes by making some minor modifications.
The essential book details can be obtained
using a barcode reader. Hence there is no need of entering the book details. It
can be also extended to process smart identity card to members and they can
renew their books without the help of librarian.
It is useful if a web interface is build
for this system. This will help the students for searching the library from
their home itself.
Books:-
Websites:-
http://www.pgadmin.freeserve.co.uk
http://www.gnome.org
http://www.glade.pn.org
http://www.wrox.com
http://www.expert-exchage.com
Subair Erunnaladummal subair_e@yahoo.com
bravenet.com