Documentation On Bloodbank
Documentation On Bloodbank
***********Course Name*************
Done By
**************
******College Name******
External
ACKNOWLEDGEMENT
At every outset I express my gratitude to almighty lord for showering his grace and blessings
upon me to complete this project.
Although our name appears on the cover of this book, many people had contributed in some
form or the other form to this project Development. We could not done this project without the
assistance or support of each of the following we thank you all.
I wish to place on my record my deep sense of gratitude to my project guide, Mr. ******, *****
Software Solutions, for his constant motivation and valuable help through the project work.
Express my gratitude to Mr. ******, Director of ******* Institute of Management &
Computer Sciences for his valuable suggestions and advices throughout the ***** course. I also
extend my thanks to other Faculties for their Cooperation during my Course.
Finally I would like to thank my friends for their cooperation to complete this project.
*******Your
Name*********
ABSTRACT
Online blood bank management system” is a web application that allows to access the whole
information about blood bank management software, readily scalable and adaptable to meet the
complex need of blood bank who is the key facilitator for the health care sector; it also supports
all the functionalities of blood bank. It is used for maintaining information about the campus.
The project includes three main modules admin, donor, and acceptors. The admin module
focuses on both the admin and acceptors. Each member in a donor and acceptor is given a user id
and password, which identifies them uniquely. The member is given a login form to enter the
login details. Each member in the staff can change the password; inquire on a particular blood
group and information on ‘Why to donate blood’. In this you can store the information about
acceptors. The whole project makes work easier for every person using the software in their
required category.
Preface
Table of Contents
1. INTRODUCTION
2.1 INTRODUCTION
2.2 ANALYSIS MODEL
2.3 STUDY OF THE SYSTEM
2.4 SYSTEM REQUIREMENT SPECIFICATIONS
2.5 PROPOSED SYSTEM
2.6 INPUT AND OUTPUT
2.7 PROCESS MODULES USED WITH JUSTIFICATION
3. FEASIBILITY REPORT
5.2 Python
5.3 MySql Server
6. SYSTEM DESIGN
6.1 INTRODUCTION
6.2 NORMALIZATION
7. OUTPUT SCREENS
8.1 INTRODUCTION
8.2 STRATEGIC APPROACH OF SOFTWARE TESTING
8.3 UNIT TESTING
8.4 TEST CASES
9. SYSTEM SECURITY
9.1 INTRODUCTION
9.2 SECURITY IN SOFTWARE
10. CONCLUSION
12. BIBLOGRAPHY
1.1 INTRODUCTION TO PROJECT
Looking for an online centralized web-portal where blood banks and hospitals can look
for donors in their nearby area who will be available in quick time . And also keep record of
donor’s health report to evaluate quickly.
Problem Definition
The existing system is a manual system. In this system if a Blood seeker wants blood, he has to
go the hospitals, blood banks or clinics available in his location or nearby. In the same way if
donor wants to give blood he has to search for blood donation centers manually. It is very risky
process and it will take lot of time. Here Organizations (Hospitals/Blood Banks/Clinics)
maintains all the donors/seekers details in the form of books. The manual system gives us very
less security for saving data; some data may be lost due to mismanagement. In this system report
generation is very tough means it will take lot of time. It’s a limited system and fewer users
friendly. Searching of particular information is very critical it takes lot of time. The users cannot
able to restrict the information.
Software Solutions is an IT solution provider for a dynamic environment where business and
technology strategies converge. Their approach focuses on new ways of business combining IT
innovation and adoption while also leveraging an organization’s current IT assets. Their work
with large global corporations and new products or services and to implement prudent business
and technology strategies in today’s environment.
A strategy where we architect, integrate and manage technology services and solutions - we
call it AIM for success.
A robust offshore development methodology and reduced demand on customer resources.
A focus on the use of reusable frameworks to provide cost and times benefits.
They combine the best people, processes and technology to achieve excellent results -
consistency. We offer customers the advantages of:
SPEED:
They understand the importance of timing, of getting there before the competition. A rich
portfolio of reusable, modular frameworks helps jump-start projects. Tried and tested
methodology ensures that we follow a predictable, low - risk path to achieve results. Our track
record is testimony to complex projects delivered within and evens before schedule.
EXPERTISE:
Our teams combine cutting edge technology skills with rich domain expertise. What’s
equally important - they share a strong customer orientation that means they actually start by
listening to the customer. They’re focused on coming up with solutions that serve customer
requirements today and anticipate future needs.
They offer customers the advantage of being able to Architect, integrate and manage
technology services. This means that they can rely on one, fully accountable source instead of
trying to integrate disparate multi vendor solutions.
SERVICES:
Xxx is providing its services to companies which are in the field of production, quality
control etc with their rich expertise and experience and information technology they are in best
position to provide software solutions to distinct business requirements.
1.3 PURPOSE OF THE PROJECT
The project is fully integrated with Customer Relationship Management (CRM) solution and
developed in a manner that is easily manageable, time saving and relieving one form semi
automated.
Using this application the Customers can buy the products using internet by sitting at home.
Usually the customer if they want to buy a product they should visit the shopping malls, and they
wish to purchase the product they does the payment and gets the product to the home. To
overcome this manual visit to the shopping malls we can use this application , virtually and make
the payment of purchase.
In this system an Administrator is going to add a New product. The Administrator will receive
the request from the Customer as Purchase of a product. The Administrator will receive the
payment from Customer for the delivery of the product through Credit Card and reserves the
product for the Customer. Using the Courier delivery system the Administrator dispatches the
product to the Customer.
The Customer at another end will register to the site, login into the system and go through the
virtual shoppingmall. He/she will select a product based on its quality and quantity of product.
If the Customer would like to purchase the product, he/she will place an order of the product.
The product will delivery status can be captured by this system. If the product courier found in a
bad position, the Customer can also raise a complaint to the Administrator for the action.
The existing system is a manual system. In this system if a Blood seeker wants blood, he
has to go the hospitals, blood banks or clinics available in his location or nearby. In the same way
if donor wants to give blood he has to search for blood donation centers manually. It is very risky
process and it will take lot of time. Here Organizations (Hospitals/Blood Banks/Clinics)
maintains all the donors/seekers details in the form of books. The manual system gives us very
less security for saving data; some data may be lost due to mismanagement. In this system report
generation is very tough means it will take lot of time. It’s a limited system and fewer users
friendly. Searching of particular information is very critical it takes lot of time. The users cannot
able to restrict the information.
In this system Donor can search the blood donation centers through online. By
using this system Donor can make a request to an Organization to give the blood. Seeker can
easily search the blood available centers. The Donor’s and seeker’s information can be stored in
centralized database which can be maintained by the system. Seeker can make a request for
required blood group to an organization. Authentication is provided for this application only
registered Users can access. Report generation is provided. The system makes the overall project
management much easier and flexible.
The development of this new system contains the following activities, which try to automate
the entire process keeping in the view of database integration approach.
The system will make the interaction between the Admin, Organization, Donors and
Seekers very quickly which saves lots of time.
The system makes the overall project management much easier and flexible.
In this system Donor can search the blood donation centers through online.
By using this system Donor can make a request to an Organization to give the blood.
The Donor’s and seeker’s information can be stored in centralized database which can be
maintained by the system.
This can give the good security for user information because data is not in client machine.
Authentication is provided for this application only registered Users can access.
There is no risk of data management at any level while the project development is under
process.
2.1 INTRODUCTION
Looking for an online centralized web-portal where blood banks and hospitals can look
for donors in their nearby area who will be available in quick time . And also keep record of
donor’s health report to evaluate quickly.
SDLC METHDOLOGIES
This document play a vital role in the development of life cycle (SDLC) as it describes
the complete requirement of the system. It means for use by developers and will be the basic
during testing phase. Any changes made to the requirements in the future will have to go
through formal change approval process.
SPIRAL MODEL was defined by Barry Boehm in his 1988 article, “A spiral Model of
Software Development and Enhancement. This model was not the first model to discuss
iterative development, but it was the first model to explain why the iteration models.
As originally envisioned, the iterations were typically 6 months to 2 years long. Each
phase starts with a design goal and ends with a client reviewing the progress thus far.
Analysis and engineering efforts are applied at each phase of the project, with an eye toward
the end goal of the project.
The new system requirements are defined in as much details as possible. This usually
involves interviewing a number of users representing all the external or internal users
and other aspects of the existing system.
A first prototype of the new system is constructed from the preliminary design. This
is usually a scaled-down system, and represents an approximation of the
characteristics of the final product.
1. Evaluating the first prototype in terms of its strengths, weakness, and risks.
At the customer option, the entire project can be aborted if the risk is deemed too
great. Risk factors might involved development cost overruns, operating-cost
miscalculation, or any other factor that could, in the customer’s judgment, result in a
less-than-satisfactory final product.
The existing prototype is evaluated in the same manner as was the previous prototype,
and if necessary, another prototype is developed from it according to the fourfold
procedure outlined above.
The preceding steps are iterated until the customer is satisfied that the refined
prototype represents the final product desired.
The final system is thoroughly evaluated and tested. Routine maintenance is carried
on a continuing basis to prevent large scale failures and to minimize down time.
In the flexibility of the uses the interface has been developed a graphics concept in mind,
associated through a browser interface. The GUI’S at the top level have been categorized as
1. Administrative user interface
The operational or generic user interface helps the users upon the system in transactions
through the existing data and required services. The operational user interface also helps the
ordinary users in managing their own information helps the ordinary users in managing their own
information in a customized manner as per the assisted flexibilities
NUMBER OF MODULES
The system after careful analysis has been identified to be presented with the following modules:
1 Administrator
2 Customers
3 General Users
4 Web Registration
5 Search
6 Authentication
Administrator
Administrator is treated as a super user in this system. He can have all the privileges to
do anything in this system.
1 He is the person who can Add the product Categories and courier services.
2 He can Manage the product details.
3 He has a facility to communicate with other Customers using email.
4 He can take care of Backup of Customers, Order details and maintain history.
5 He is able to generate the reports of Customers and Orders.
Customers
5 They have a facility to register to the site with their Personal data.
6 Being a Customer (after registration) should able to Order products
General Public
9. General Public (i.e. Guest visitors) are able to access the site Home page, Registration
Page, etc. common pages of the site.
10. This user can able to see the product details in different Categories.
Web Registration
The system has a process of registration. Every User need to submit his complete details
in the form of registration. Whenever a User registration completed automatically he/she can get
a user id and password. By using that user id and password he/she can log into the system.
Search:
This system provides search facility to the users. Users can search for the productes based on
their interests.
Reports
1 Customers Report
2 Orders Report
3 Blood Report
Authentication:
Authentication is nothing but providing security to the system. Here every must
enter into the system throw login page. The login page will restrict the UN authorized users. A
user must provide his credential like user Id and password for log into the system. For that the
system maintains data for all users. Whenever a user enters his user id and password, it checks
in the database for user existence. If the user is exists he can be treated as a valid user. Otherwise
the request will throw back.
Hardware Requirements:
Software Requirements:
In this system Donor can search the blood donation centers through online.
By using this system Donor can make a request to an Organization to give the blood. Seeker can
easily search the blood available centers. The Donor’s and seeker’s information can be stored in
centralized database which can be maintained by the system. Seeker can make a request for
required blood group to an organization. Authentication is provided for this application only
registered Users can access. Report generation is provided. The system makes the overall project
management much easier and flexible.
The development of this new system contains the following activities, which try to automate
the entire process keeping in the view of database integration approach.
The system will make the interaction between the Admin, Organization, Donors and
Seekers very quickly which saves lots of time.
The system makes the overall project management much easier and flexible.
In this system Donor can search the blood donation centers through online.
By using this system Donor can make a request to an Organization to give the blood.
The Donor’s and seeker’s information can be stored in centralized database which can be
maintained by the system.
This can give the good security for user information because data is not in client machine.
Authentication is provided for this application only registered Users can access.
There is no risk of data management at any level while the project development is under
process.
As far as the project is developed the functionality is simple, the objective of the proposal
is to strengthen the functioning of Audit Status Monitoring and make them effective and better.
The entire scope has been classified into five streams knows as Coordinator Level, management
Level, Auditor Level, User Level and State Web Coordinator Level. The proposed software will
cover the information needs with respect to each request of the user group viz. accepting the
request, providing vulnerability document report and the current status of the audit.
The major inputs and outputs and major functions of the system are follows:
Inputs:
5 New user gives his completed personnel, address and phone details for registration.
The following commands specify access control identifiers and they are typically used to
authorize and authenticate the user (command codes are shown in parentheses)
The user identification is that which is required by the server for access to its file system.
This command will normally be the first command transmitted by the user after the control
connections are made (some servers may require this).
PASSWORD (PASS)
This command must be immediately preceded by the user name command, and, for some
sites, completes the user's identification for access control. Since password information is quite
sensitive, it is desirable in general to "mask" it or suppress type out.
Feasibility Report
Preliminary investigation examine project feasibility, the likelihood the system will be useful
to the organization. The main objective of the feasibility study is to test the Technical,
Operational and Economical feasibility for adding new modules and debugging old running
system. All system is feasible if they are unlimited resources and infinite time. There are aspects
in the feasibility study portion of the preliminary investigation:
Technical Feasibility
Operational Feasibility
Economical Feasibility
The technical issue usually raised during the feasibility stage of the investigation includes
the following:
Proposed projects are beneficial only if they can be turned out into information system.
That will meet the organization’s operating requirements. Operational feasibility aspects of the
project are to be taken as an important part of the project implementation. Some of the important
issues raised are to test the operational feasibility of a project includes the following: -
The well-planned design would ensure the optimal utilization of the computer resources and
would help in the improvement of performance status.
The system is economically feasible. It does not require any addition hardware or
software. Since the interface for this system is developed using the existing resources and
technologies available at NIC, There is nominal expenditure and economical feasibility for
certain.
SOFTWARE REQUIREMENT SPECIFICATION
The software, Site Explorer is designed for management of web sites from a remote
location.
INTRODUCTION
Purpose: The main purpose for preparing this document is to give a general insight into the
analysis and requirements of the existing system or situation and for determining the operating
characteristics of the system.
Scope: This Document plays a vital role in the development life cycle (SDLC) and it describes
the complete requirement of the system. It is meant for use by the developers and will be the
basic during testing phase. Any changes made to the requirements in the future will have to go
through formal change approval process.
Developing the system, which meets the SRS and solving all the requirements of the system?
Demonstrating the system and installing the system at client's location after the acceptance
testing is successful.
Submitting the required user manual describing the system interfaces to work on it and also
the documents of the system.
Conducting any user training that might be needed for using the system.
Maintaining the system for a period of one year after installation.
OUTPUT DESIGN
Outputs from computer systems are required primarily to communicate the results of
processing to users. They are also used to provides a permanent copy of the results for later
consultation. The various types of outputs in general are:
For Example
Output Media:
In the next stage it is to be decided that which medium is the most appropriate for the
output. The main considerations when deciding about the output media are:
The outputs were needed to be generated as a hot copy and as well as queries to be viewed on the
screen. Keeping in view these outputs, the format for the output is taken from the outputs, which
are currently being obtained after manual processing. The standard printer is to be used as output
media for hard copies.
INPUT DESIGN
Input design is a part of overall system design. The main objective during the input
design is as given below:
Data recording
Data transcription
Data conversion
Data verification
Data control
Data transmission
Data validation
Data correction
INPUT TYPES:
It is necessary to determine the various types of inputs. Inputs can be categorized as follows:
At this stage choice has to be made about the input media. To conclude about the input
media consideration has to be given to;
Type of input
Flexibility of format
Speed
Accuracy
Verification methods
Rejection rates
Ease of correction
Storage and handling requirements
Security
Easy to use
Portability
Keeping in view the above description of the input types and input media, it can be said
that most of the inputs are of the form of internal and interactive. As
Input data is to be the directly keyed in by the user, the keyboard can be considered to be the
most suitable input device.
ERROR AVOIDANCE
At this stage care is to be taken to ensure that input data remains accurate form the stage
at which it is recorded up to the stage in which the data is accepted by the system. This can be
achieved only by means of careful control each time the data is handled.
ERROR DETECTION
Even though every effort is make to avoid the occurrence of errors, still a small
proportion of errors is always likely to occur, these types of errors can be discovered by using
validations to check the input data.
DATA VALIDATION
Procedures are designed to detect errors in data at a lower level of detail. Data
validations have been included in the system in almost every area where there is a possibility for
the user to commit errors. The system will not accept invalid data. Whenever an invalid data is
keyed in, the system immediately prompts the user and the user has to again key in the data and
the system will accept the data only if the data is correct. Validations have been included where
necessary.
The system is designed to be a user friendly one. In other words the system has been
designed to communicate effectively with the user. The system has been designed with popup
menus.
USER INTERFACE DESIGN
It is essential to consult the system users and discuss their needs while designing the user
interface:
1. User initiated interface the user is in charge, controlling the progress of the user/computer
dialogue. In the computer-initiated interface, the computer selects the next stage in the
interaction.
2. Computer initiated interfaces
In the computer initiated interfaces the computer guides the progress of the user/computer
dialogue. Information is displayed and the user response of the computer takes action or displays
further information.
USER_INITIATED INTERGFACES
1. Command driven interfaces: In this type of interface the user inputs commands or queries
which are interpreted by the computer.
2. Forms oriented interface: The user calls up an image of the form to his/her screen and fills in
the form. The forms oriented interface is chosen because it is the best choice.
COMPUTER-INITIATED INTERFACES
1. The menu system for the user is presented with a list of alternatives and the user chooses one;
of alternatives.
2. Questions – answer type dialog system where the computer asks question and takes action
based on the basis of the users reply.
Right from the start the system is going to be menu driven, the opening menu displays the
available options. Choosing one option gives another popup menu with more options. In this
way every option leads the users to data entry form where the user can key in the data.
ERROR MESSAGE DESIGN:
The design of error messages is an important part of the user interface design. As user is
bound to commit some errors or other while designing a system the system should be designed to
be helpful by providing the user with information regarding the error he/she has committed.
This application must be able to produce output at different modules for different inputs.
Requirement specification plays an important part in the analysis of a system. Only when
the requirement specifications are properly given, it is possible to design a system, which will fit
into required environment. It rests largely in the part of the users of the existing system to give
the requirement specifications because they are the people who finally use the system. This is
because the requirements have to be known during the initial stages so that the system can be
designed according to those requirements. It is very difficult to change the system once it has
been designed and on the other hand designing a system, which does not cater to the
requirements of the user, is of no use.
The requirement specification for any system can be broadly stated as given below:
Django is a free and open-source web framework, written in Python, which follows the
model-view-template (MVT) architectural pattern. It is maintained by the Django Software
Foundation (DSF), an independent organization established as a non-profit.
Django's primary goal is to ease the creation of complex, database-driven websites. Django
emphasizes reusability and "pluggability" of components, less code, low coupling, rapid
development, and the principle of don't repeat yourself. Python is used throughout, even for
settings files and data models. Django also provides an optional administrative create, read,
update and delete interface that is generated dynamically through introspection and configured
via admin models. comming to the features of django it is a lightweight and standalone web
server for development and testing,a form serialization and validation system that can translate
between HTML forms and values suitable for storage in the database ,a template system that
utilizes the concept of inheritance borrowed from object-oriented
programming,a caching framework that can use any of several cache methods .support
for middleware classes that can intervene at various stages of request processing and carry out
custom functions, an internal dispatcher system that allows components of an application to
communicate events to each other via pre-defined signals,an internationalization system,
including translations of Django's own components into a variety of languages.
Django can be run in conjunction with Apache, Nginx using WSGI, Gunicorn,
or Cherokee using flup (a Python module). Django also includes the ability to launch
a FastCGI server, enabling use behind any web server which supports FastCGI, such
as Lighttpd or Hiawatha. It is also possible to use other WSGI-compliant web servers. Django
officially supports four database backends: PostgreSQL, MySQL, SQLite, and Oracle. Microsoft
SQL Server can be used with django-mssql onMicrosoft operating systems, while similarly
external backends exist for IBM Db2, SQL Anywhere and Firebird. There is a fork named
django-nonrel, which supports NoSQL databases, such as MongoDB and Google App Engine's
Datastore.[32]
Django may also be run in conjunction with Jython on any Java EE application server such
as GlassFish or JBoss. In this case django-jython must be installed in order to
provide JDBC drivers for database connectivity, which also can provide functionality to compile
Django in to a .war suitable for deployment. Google App Engine includes support for Django
version 1.x.x as one of the bundled frameworks.
A free, rich API. With a simple command, Django automatically generates a Python API based
on your models, no additional coding necessary.
Automatic database table creation. The migrate command is an elegant and distinctive feature
of Django that looks at all your models and automatically creates tables in your database for any
that don’t exist already.
A dynamic admin interface generator. The idea here is that, rather than requiring you to build
out an entire website before you can start populating it with information, Django makes it quick
and easy to set up the admin site, which allows contributors to start populating the database
while the developers figure out how to display that content.
A syndication feed framework. Django also allows you to quickly and easily create RSS and
Atom feeds by creating a simple Python class. These feeds can be simple (eg, a typical news feed
of latest posts) or more specialized (eg, all posts in a given category or that feature a certain
keyword).
A powerful cache framework for dynamic websites. This system lets you cut down on
expensive calculations by caching dynamic pages. There are a few levels of granularity here: You
can cache individual pages or just the most expensive views to produce.
A powerful built-in template system. Django’s templates are based on the inheritance system
(similar to object-oriented programming). These templates allow Django to generate HTML
dynamically while also eliminating redundancies.
Easy database migrations. Managing database workflow with Django’s migrations is simple
and streamlined. Version control is managed through migration names, and Django has lots of
options for merging versions or letting developers make modifications.
Security features. Django has tools to protect against XSS attacks, CSRF attacks, SQL
injections, clickjacking, and more. It also allows you to easily enable SSL/HTTPS and host
header validation.
Other helpful add-ons. Bundled add-ons include sitemaps, comments, user authentication, RSS
feeds, and more. By including many of these standard features out-of-the-box, web developers
can focus on the genuinely hard parts rather than recreating standard functionality from scratch.
Architecture
Model:-
In Django, a model is a class which is used to contain essential fields and methods. Each model
class maps to a single table in the database.
Django Model is a subclass of django.db.models.Model and each field of the model class
represents a database field (column).
Django provides us a database-abstraction API which allows us to create, retrieve, update and
delete a record from the mapped table.Model is defined in Models.py file. This file can contain
multiple models.
View:-
A view is a place where we put our business logic of the application. The view is a python
function which is used to perform some business logic and return a response to the user. This
response can be the HTML contents of a Web page, or a redirect, or a 404 error.
All the view function are created inside the views.py file of the Django app.
Template:-
Django provides a convenient way to generate dynamic HTML pages by using its template
system.
A template consists of static parts of the desired HTML output as well as some special syntax
describing how dynamic content will be inserted.
In HTML file, we can't write python code because the code is only interpreted by python
interpreter not the browser. We know that HTML is a static markup language, while Python is a
dynamic programming language.
Django template engine is used to separate the design from the python code and allows us to
build dynamic web pages
5.2 PYTHON
Python interpreters are available for many operating systems. CPython, the reference
implementation of Python, is open source software and has a community-based development
model, as do nearly all of Python's other implementations. Python and CPython are managed by
the non-profit Python Software Foundation. Python was conceived in the late 1980s, and its
implementation began in December 1989 by Guido van Rossum at Centrum Wiskunde &
Informatica (CWI) in the Netherlands as a successor to the ABC language (itself inspired
by SETL) capable of exception handling and interfacing with the Amoeba operating system. Van
Rossum remains Python's principal author. His continuing central role in Python's development
is reflected in the title given to him by the Python community: Benevolent Dictator For
Life (BDFL) – a post from which he gave himself permanent vacation on July 12, 2018.
...In December 1989, I was looking for a "hobby" programming project that would keep me
occupied during the week around Christmas. My office ... would be closed, but I had a home
computer, and not much else on my hands. I decided to write an interpreter for the new scripting
language I had been thinking about lately: a descendant of ABC that would appeal
to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent
mood (and a big fan of Monty Python's Flying Circus).
Python 2.0 was released on 16 October 2000 and had many major new features, including
a cycle-detecting garbage collectorand support for Unicode. With this release, the development
process became more transparent and community-backed.
Python 3.0 (initially called Python 3000 or py3k) was released on 3 December 2008 after a long
testing period. It is a major revision of the language that is not completely backward-
compatible with previous versions.[36] However, many of its major features have
been backported to the Python 2.6.x[37] and 2.7.x version series, and releases of Python 3 include
the 2to3 utility, which automates the translation of Python 2 code to Python 3.[38]
Python 2.7's end-of-life date was initially set at 2015, then postponed to 2020 out of concern that
a large body of existing code could not easily be forward-ported to Python 3. In January 2017,
Google announced work on a Python 2.7 to Go transcompiler to improve performance under
concurrent workloads.
SYSTEM DESIGN
6.1. INTRODUCTION
Software design sits at the technical kernel of the software engineering process and is
applied regardless of the development paradigm and area of application. Design is the first step
in the development phase for any engineered product or system. The designer’s goal is to
produce a model or representation of an entity that will later be built. Beginning, once system
requirement have been specified and analyzed, system design is the first of the three technical
activities -design, code and test that is required to build and verify software.
The importance can be stated with a single word “Quality”. Design is the place where
quality is fostered in software development. Design provides us with representations of software
that can assess for quality. Design is the only way that we can accurately translate a customer’s
view into a finished software product or system. Software design serves as a foundation for all
the software engineering steps that follow. Without a strong design we risk building an unstable
system – one that will be difficult to test, one whose quality cannot be assessed until the last
stage.
6.2 NORMALIZATION
Insertion anomaly: Inability to add data to the database due to absence of other data.
Update anomaly: Data inconsistency resulting from data redundancy and partial update
Normal Forms: These are the rules for structuring relations that eliminate anomalies.
A relation is said to be in second Normal form is it is in first normal form and it should
satisfy any one of the following rules.
Transitive Dependency: If two non key attributes depend on each other as well as on the
primary key then they are said to be transitively dependent.
The above normalization principles were applied to decompose the data in multiple tables
thereby making the data to be maintained in a consistent state.
The entity Relationship Diagram (ERD) depicts the relationship between the data objects.
The ERD is the notation that is used to conduct the date modeling activity the attributes of
each data object noted is the ERD can be described resign a data object descriptions.
The set of primary components that are identified by the ERD are
Data object
Relationships
Attributes
Various types of indicators.
The primary purpose of the ERD is to represent data objects and their relationships.
A data flow diagram is graphical tool used to describe and analyze movement of
data through a system. These are the central tool and the basis from which the other components
are developed. The transformation of data from input to output, through processed, may be
described logically and independently of physical components associated with the system. These
are known as the logical data flow diagrams. The physical data flow diagrams show the actual
implements and movement of data between people, departments and workstations. A full
description of a system actually consists of a set of data flow diagrams. Using two familiar
notations Yourdon, Gane and Sarson notation develops the data flow diagrams. Each component
in a DFD is labeled with a descriptive name. Process is further identified with a number that will
be used for identification purpose. The development of DFD’S is done in several levels. Each
process in lower level diagrams can be broken down into a more detailed DFD in the next level.
The lop-level diagram is often called context diagram. It consists a single process bit, which
plays vital role in studying the current system. The process in the context level diagram is
exploded into other process at the first level DFD.
The idea behind the explosion of a process into more process is that understanding at one
level of detail is exploded into greater detail at the next level. This is done until further
explosion is necessary and an adequate amount of detail is described for analyst to understand
the process.
Larry Constantine first developed the DFD as a way of expressing system requirements
in a graphical from, this lead to the modular design.
A DFD is also known as a “bubble Chart” has the purpose of clarifying system
requirements and identifying major transformations that will become programs in system design.
So it is the starting point of the design to the lowest level of detail. A DFD consists of a series of
bubbles joined by data flows in the system.
DFD SYMBOLS:
Data flow
Data Store
CONSTRUCTING A DFD:
1. Process should be named and numbered for an easy reference. Each name should be
representative of the process.
2. The direction of flow is from top to bottom and from left to right. Data traditionally flow
from source to the destination although they may flow back to the source. One way to
indicate this is to draw long flow line back to a source. An alternative way is to repeat the
source symbol as a destination. Since it is used more than once in the DFD it is marked with
a short diagonal.
3. When a process is exploded into lower level details, they are numbered.
4. The names of data stores and destinations are written in capital letters. Process and dataflow
names have the first letter of each work capitalized.
A DFD typically shows the minimum contents of data store. Each data store should
contain all the data elements that flow in and out.
Questionnaires should contain all the data elements that flow in and out. Missing
interfaces redundancies and like is then accounted for often through interviews.
1. The DFD shows flow of data, not of control loops and decision are controlled considerations
do not appear on a DFD.
2. The DFD does not indicate the time factor involved in any process whether the dataflow take
place daily, weekly, monthly or yearly.
3. The sequence of events is not brought out on the DFD.
CURRENT LOGICAL:
The physical aspects at the system are removed as much as possible so that the current
system is reduced to its essence to the data and the processors that transforms them regardless of
actual physical form.
NEW LOGICAL:
This is exactly like a current logical model if the user were completely happy with the
user were completely happy with the functionality of the current system but had problems with
how it was implemented typically through the new logical model will differ from current logical
model while having additional functions, absolute function removal and inefficient flows
recognized.
NEW PHYSICAL:
The new physical represents only the physical implementation of the new system.
PROCESS
1) No process can have only outputs.
2) No process can have only inputs. If an object has only inputs than it must be a sink.
3) A process has a verb phrase label.
DATA STORE
1) Data cannot move directly from one data store to another data store, a process must move
data.
2) Data cannot move directly from an outside source to a data store, a process, which receives,
must move data from the source and place the data into data store
3) A data store has a noun phrase label.
SOURCE OR SINK
1) Data cannot move direly from a source to sink it must be moved by a process
2) A source and /or sink has a noun phrase land
DATA FLOW
1) A Data Flow has only one direction of flow between symbols. It may flow in both directions
between a process and a data store to show a read before an update. The later is usually
indicated however by two separate arrows since these happen at different type.
2) A join in DFD means that exactly the same data comes from any of two or more different
processes data store or sink to a common location.
3) A data flow cannot go directly back to the same process it leads. There must be at least one
other process that handles the data flow produce some other data flow returns the original
data into the beginning process.
4) A Data flow to a data store means update (delete or change).
5) A data Flow from a data store means retrieve or use.
A data flow has a noun phrase label more than one data flow noun phrase can appear on a single
arrow as long as all of the flows on the same arrow move together as one package.
6.5 DATA DICTIONARY
After carefully understanding the requirements of the client the entire data storage
requirements are divided into tables. The below tables are normalized to avoid any anomalies
during the course of data entry.
Tables Design:
DFD Diagrams
DFD Diagrams
1st Level
2nd Level
Organization
1st Level
Donor
1st Level
Donor
2nd Level
Seeker
5.4.2 Usecase Diagram
Over All System Use Case Diagram:
Registration
Login
Acceptancy
Organization
Donation Requests
Donor
Blood Requests
Reports Seeker
Log Out
2 : ValidateUser()
3 : ExecuteNonQuery()
4 : ExecuteStoredProcedure()
5 : Return QueryResult()
6: ResponseForValidateUser()
1 : View Registered
Donors
2 : Accept Donors ()
3 : ExecuteNonQuery ()
4 : ExecuteStoredProcedure()
5 : Response()
6 : Show Result
1: Enter Details
3 : ExecuteNonQuery()
4 : ExecuteStoredProcedure()
5 : Response()
6 : Show Result()
1 : Enter Details
3 : ExecuteNonQuery()
4 : ExecuteStoredProcedure()
5 : Response()
6 : Show Result()
1 : Enter Details
2 : Insert Data()
3 : ExecuteNonQuery()
4 : ExecuteStoredProcedure()
5 : Response()
6 : Show Result()
Collaboration Diagrams
Login
4 : ExecuteStoredProcedure()
DAL:SqlDbConnector DB
3 : ExecuteNonQuery()
2 : Insert Data()
5 : Response()
frmLogin
1 : Enter UserId,Pwd()
User
DB DAL:SqlDbConnector
3 : ExecuteNonQuery()
BAL:clsBlood
Details
2 : Accept Donor()
FrmAccept Donors
5 : Response()
Admin
Organization Collaboration to Add Donation Details
4 : ExecuteStoredProcedure()
DAL:SqlDbConnector DB
3 : ExecuteNonQuery ()
BAL:clsBlood
Details
1: Enter details
Organizati
on
Donor Collaboration to Blood Donation Request
4 : ExecuteStoredProcedure()
DAL:SqlDbConnector DB
3 : ExecuteNonQuery()
5 : Response()
BAL:clsBlood
Details
FrmDonation
Requests
1 : Enter Details
Donor
Seeker Collaboration to Blood Request
4 : ExecuteStoredProcedure()
DAL:SqlDbConnector DB
3 : ExecuteNonQuery()
BAL:clsBlood
Details
2 : Insert Details ()
5 : Response()
frmRequest For
Blood
1 : Enter Details
Seeker
Activity Diagrams:
Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and coding. In fact, testing is the one step in the software
engineering process that could be viewed as destructive rather than constructive.
A strategy for software testing integrates software test case design methods into a well-
planned series of steps that result in the successful construction of software. Testing is the set of
activities that can be planned in advance and conducted systematically. The underlying
motivation of program testing is to affirm software quality with methods that can economically
and effectively apply to both strategic to both large and small-scale systems.
The software engineering process can be viewed as a spiral. Initially system engineering
defines the role of software and leads to software requirement analysis where the information
domain, functions, behavior, performance, constraints and validation criteria for software are
established. Moving inward along the spiral, we come to design and finally to coding. To
develop computer software we spiral in along streamlines that decrease the level of abstraction
on each turn.
A strategy for software testing may also be viewed in the context of the spiral. Unit
testing begins at the vertex of the spiral and concentrates on each unit of the software as
implemented in source code. Testing progress by moving outward along the spiral to integration
testing, where the focus is on the design and the construction of the software architecture.
Talking another turn on outward on the spiral we encounter validation testing where
requirements established as part of software requirements analysis are validated against the
software that has been constructed. Finally we arrive at system testing, where the software and
other system elements are tested as a whole.
UNIT TESTING
MODULE TESTING
Component Testing
SUB-SYSTEM TESING
Unit testing focuses verification effort on the smallest unit of software design, the module. The
unit testing we have is white box oriented and some modules the steps are conducted in parallel.
Established technique of flow graph with Cyclomatic complexity was used to derive test cases
for all the functions. The main steps in deriving test cases were:
Use the design of the code and draw correspondent flow graph.
V(G)=E-N+2 or
V(G)=P+1 or
V(G)=Number Of Regions
3. CONDITIONAL TESTING
In this part of the testing each of the conditions were tested to both true and false aspects. And all
the resulting paths were tested. So that each path that may be generate on particular condition is
traced to uncover any possible errors.
This type of testing selects the path of the program according to the location of definition and use
of variables. This kind of testing was used only when some local variable were declared. The
definition-use chain method was used in this type of testing. These were particularly useful in
nested statements.
5. LOOP TESTING
In this type of testing all the loops are tested to all the limits possible. The following exercise
was adopted for all loops:
All the loops were tested at their limits, just above them and just below them.
For nested loops test the inner most loop first and then work outwards.
For concatenated loops the values of dependent loops were set with the help of connected
loop.
Unstructured loops were resolved into nested loops or concatenated loops and tested as
above.
Each unit has been separately tested by the development team itself and all the input have
been validated.
SYSTEM SECURITY
9.1 INTRODUCTION
The protection of computer based resources that includes hardware, software, data,
procedures and people against unauthorized use or natural
Disaster is known as System Security.
Security
Integrity
Privacy
Confidentiality
SYSTEM SECURITY refers to the technical innovations and procedures applied to the
hardware and operation systems to protect against deliberate or accidental damage from a
defined threat.
DATA SECURITY is the protection of data from loss, disclosure, modification and destruction.
SYSTEM INTEGRITY refers to the power functioning of hardware and programs, appropriate
physical security and safety against external threats such as eavesdropping and wiretapping.
PRIVACY defines the rights of the user or organizations to determine what information they are
willing to share with or accept from others and how the organization can be protected against
unwelcome, unfair or excessive dissemination of information about it.
System security refers to various validations on data in form of checks and controls to avoid the
system from failing. It is always important to ensure that only valid data is entered and only valid
operations are performed on the system. The system employees two types of checks and controls:
Various Access Control Mechanisms have been built so that one user may not agitate upon
another. Access permissions to various types of users are controlled according to the
organizational structure. Only permitted users can log on to the system and can have access
according to their category. User- name, passwords and permissions are controlled o the
server side.
Using server side validation, constraints on several restricted operations are imposed.
CONCLUSION
It has been a great pleasure for me to work on this exciting and challenging project. This
project proved good for me as it provided practical knowledge of not only programming in
Python and Django web based application and no some extent Windows Application and
dbsqlite, It also provides knowledge about the latest technology used in developing web enabled
application and client server technology that will be great demand in future. This will provide
better opportunities and guidance in future in developing projects independently.
BENEFITS:
The project is identified by the merits of the system offered to the user. The merits of this
project are as follows: -
It’s a web-enabled project.
This project offers user to enter the data through simple and interactive forms. This is very
helpful for the client to enter the desired information through so much simplicity.
The user is mainly more concerned about the validity of the data, whatever he is entering.
There are checks on every stages of any new creation, data entry or updation so that the user
cannot enter the invalid data, which can create problems at later date.
Sometimes the user finds in the later stages of using project that he needs to update some of
the information that he entered earlier. There are options for him by which he can update the
records. Moreover there is restriction for his that he cannot change the primary data field.
This keeps the validity of the data to longer extent.
User is provided the option of monitoring the records he entered earlier. He can see the
desired records with the variety of options provided by him.
From every part of the project the user is provided with the links through framing so that he
can go from one option of the project to other as per the requirement. This is bound to be
simple and very friendly as per the user is concerned. That is, we can sat that the project is
user friendly which is one of the primary concerns of any good project.
Data storage and retrieval will become faster and easier to maintain because data is stored in
a systematic manner and in a single database.
Decision making process would be greatly enhanced because of faster processing of
information since data collection from information available on computer takes much less
time then manual system.
Allocating of sample results becomes much faster because at a time the user can see the
records of last years.
Easier and faster data transfer through latest technology associated with the computer and
communication.
Through these features it will increase the efficiency, accuracy and transparency,
LIMITATIONS:
The size of the database increases day-by-day, increasing the load on the database back up
and data maintenance activity.
Training for simple computer operations is necessary for the users working on the system.
FUTURE IMPROVEMENT
Sometimes the user finds in the later stages of using project that he needs to update some of
the information that he entered earlier. There are options for him by which he can update the
records. Moreover there is restriction for his that he cannot change the primary data field.
This keeps the validity of the data to longer extent.
User is provided the option of monitoring the records he entered earlier. He can see the
desired records with the variety of options provided by him.
From every part of the project the user is provided with the links through framing so that he
can go from one option of the project to other as per the requirement. This is bound to be
simple and very friendly as per the user is concerned. That is, we can sat that the project is
user friendly which is one of the primary concerns of any good project.
BIBLIOGRAPHY
DBSQLITE: Django uses SQLite by default; it is easy for Django users as such it won’t
require any other type of installation.
FOR DJANGO
https://www.djangoproject.com/start/