online polling sytem project report
TRANSCRIPT
e-polling
1
e-polling
Introduction :-Problem Statement:-
We live in a democracy and voting is one of our fundamental duties as responsible citizens of the
country, but nowhere around the country a 100% people come to vote during the elections in their
territory. There have been many reasons for that some of them are:
•In the rural areas the influential people keep their men at the polling booths to threaten the common
man to vote for them.
• There are many portions of the country like the North East where there is locally sponsored
terrorism, at such places the security conditions are also not very bright, so naturally people feel
afraid to come out of their houses and go to vote.
• Net savvy new generation want hassle free voting system. Also the people in metros want a system
through which they can vote for their territory without traveling.
Keeping in mind these situations and to improve the state of democracy in the country
Online Polling System can be thought as a solution, in conjunction with the ongoing current manual
voting system.
E-Polling will help all the peoples who cannot vote due to many reason but they want to
vote, to become a part of the government. It will allow people to vote from any part of the country
and provide his valuable support to the nation
1.2: Objective
Website enables the users to interact with the candidates and access other facilities provided in the
website easily with the help of a luring graphical windowing environment.
User can enter biographical information, personal details, interests.
“E-Polling” provides a facility for online registration of the citizens, after completing the
registration process they are eligible for that any voting taking place in there area.
Any person who is eligible for voting i.e. as per election commission criteria can easily register
using this system.
Unique username and password will be provided by this system.
2
e-polling
To avoid the cheating this system provides security for the unique id to citizens .
After completing the voting procedure result are automatically calculated by this system.
“E-Polling” provide a database for various announcements of candidates and election
commission also.
Site and database maintained by the system administrator.
System has a user friendly environment so it is easy to use by any person.
1.3: Scope
Condemning the feasibility of complex technology such as remote online voting cannot be done
through research of purely theoretical models. Real world deployment of remote online voting
shows how the weaknesses dominate, making remote online voting a risky proposition. This project
will examine two uses of remote online voting – two schemes that fail if we consider security a
paramount requirement.
1.4 Platform Specification
1.4.1 Hardware
Requirement Professional
Processor 600MHz. Recommended: 1 GHz processor
RAM 192 MB Recommended: 256
MB
Operating System Windows 2000 Service Pack 4, Windows XP Service Pack 2,
Windows Server 2003 Service Pack 1, or Windows Vista3,4
For a 64-bit computer, the requirements are as follows:
Windows Server 2003 Service Pack 1 x64 editions
Windows XP Professional x64 Edition
3
e-polling
1.4.2 Software
We are using our main platform as NetBeans6.5, which is an integrated development environment
(IDE), which combines several development tools into a single cohesive package. The assortment
usually includes a source code editor, compiler, debugger and other utilities. These tools work
together throughout the development process. To run our application we need a NetBeans
Framework, Wampserver, and Jdk 1.6.
1.4.3 Implementation Language
1. Java
2. HTML
3. SQL
4. JavaScript
4
e-polling
5
e-polling
2. System Analysis
2.1 Identification of Need-
2.1.1 It will provide all people a way to became a part of the government.
2.1.2 To make people vote without making any efforts.
2.1.3 To give results quickly
2.2 Preliminary Investigation
6
e-polling
Less participation of women in election
7
e-polling
8
e-polling
3. Feasibility Study This section studies the technical, schedule, operational, financial, organizational and social feasibilities,
as well as human factors, risk management, and the limitation of the feasibility study itself.
This feasibility study will determine whether the project could be done within the limitations of the
available project time, human, financial and technical resources. The feasibility study represents the
projects preliminary design factors.
3.1 Technical Feasibility
Technical feasibility centers around the existing computer system (hardware and software) whether it can
support the addition of proposed system, if not to what extend it can support the organization's capacity
to acquire required additional components.
Technical feasibility centers on the existing computer system (H/W, S/W etc.) and to what
extent it can support the proposed addition. For e.g., if the current computer is operating at 80 %
capacity an arbitrary ceiling then running another application could over load the system or require
additional H/W. This involves financial consideration to accommodate technical enhancements. If
the budget is serious constraint, then the project is judge not feasible.
During technical feasibility analysis, the analyst evaluates the technical merit of the system
concept, while at the same time it collects the information about the performance, reliability,
maintainability and productivity of the system.
We have analyzed that what kind of environment, process and methods are required to
accomplish the system. We are using java as front end and wampserver as backend.
3.2 Economical Feasibility
Economic analysis is most frequently used method for evaluating the effectiveness of a candidate
system. More commonly known as cost/benefit analysis, the procedure is to determine the benefits
and savings that are expected from a candidate system and compare them with costs. It benefit
outweigh costs, and then decision is made to design and implement the system. Otherwise, further
justification or alterations in the proposed system will have to be made if it is to have a chance of
being approved. This is an ongoing effort that improves in accuracy at each phase of the system life
cycle.
9
e-polling
Financial or Economical feasibility decides whether the proposed system will be cost effective. Economic
feasibility considers the following
I. The cost to conduct a full system investigation.
II. The cost of hardware and software for the class of application.
III. The benefits in the form of reduced cost or fewer costly errors.
IV. The cost if nothing changes (i.e. The proposed system is not developed).
3.3 Operational Feasibility
Operational feasibility determines how much effort will go in selling the proposed information system, and in
educating and training the employees on the new system, along with the new ways of conducting the
business.
10
e-polling
11
e-polling
4. Literature Survey
4.1 Benefit
E-polling will help all people who cannot vote due to many reason.
Allow people to vote from any part of the country.
It will provide all people a way to become a part of the government.
It will help to give quick result.
It will help to conduct fair election.
4.2. Proposed Solution
Save paper and reduced role of manpower.
Voting procedure will be fast and result will be declared within few hours after the
completion of election.
e-Polling provides a safe way for voting.
Online voters will not have any fear of terrorism.
No booth capturing will take place.
4.4 Technology Needed
This includes the tools that we have used in constructing the projectand the form of
technology that we have used in the project, and we have the following technology used
in implementation of project:-
Java
Netbeans 6.0(IDE used)
Adobe Dreamweaver (CS4)
Wampserver
4.4.1 Java (front end )
12
e-polling
Java is a programming language originally develepod by Sun
Microsystems and released in 1995 as a core componenet of Sun’s. Java platform. The language
derives muchof its syntax from C and C++ but has a simpler object model and fewer low-level
facilities. Java applications are typically compiled to bytecode which can run on any Java virtual
machine(JVM) regardless of computer architecture.
One characteristic, platform independence, means that programs written in the Java language
must run similarly on any supported hardware/operating-system platform. One should be able to
write a program once, compile it once, and run it anywhere. The first technique is to simply compile
directly into native code like a more traditional compiler.
The Java Runtime Environment (JRE), is the software require to run any application .
Deployed on the Java platform. End users commonly use a JRE in software packages and Web
browser plugins. Sun also distributes a superset of the JRE called the Java 2 SDK(more commonly
known as JDK), which includes development tools such as the Java compiler,Javadoc,Jar and
debugger. One of the unique advantages of the concept of a runtime engine is that errors
(exceptions) should not ‘crash’ the system.
A Java Virtual Machine (JVM) is a set of computer software programs and data structures which
implements a specific virtual machine model. This model accepts a form of computer intermediate
language, commonly referred to as Java bytecode, which conceptually represents the instruction set
of a stack oriented, capability arechitecture.This code is most often generated by Java language
compilers, although the JVM canalso be targeted by compilers of other languages. JVMs using the
“Java” trademark may be developed by other compilers as long as hey adhere to the JVM
Specification published by Sun (and related contractual obligations). The JVM is a Crucial
componenet of the Java platform. Because JVMs are available for mny hardware and software
platforms.
We have preferred Java because:
Get started quickly: Although Java is a powerful object-oriented language, it's easy
to learn, especially for programmers already familiar with C or C++.
Write less code: Comparisons of program metrics suggest that a program written in
Java can be four times smaller than the same program in C++.
Write better code: The Java language encourages good coding practices and its
garbage collection helps you avoid memory leaks.
Develop programs faster: Your development time may be as much as twice as fast
versus writing the same program in C++. 13
e-polling
Avoid platform dependencies with 100% Pure Java: You can keep your program
portable by avoiding the use of libraries written in other languages.
Write once, run anywhere: Because 100% Pure Java programs are compiled into
machine-independent byte codes, they run consistently on any Java platform.
Java has the following features:
Simple
Portable
Object-oriented
Robust
Architecture-neutral
Interpreted
High performance
4.4.2 Netbeans 6.0(IDE used)
One of the most talked about and innovative features since Net-Beans 5.0 is Project Matisse or the
Form Editor. Many would agree that Matisse is the best user interface designer across different IDE
categories and technologies. A good number of developers will start or have started using Netbeans
because of it. With software, there is never-ending room for improvement and growth. In
NetBeans6.0, familiar and new developers will find many new Matisse features to help improve
Swing application development, as you’ll see in this article. Beans Binding and Before Netbeans 6,
the Free Design layout manager supported a single preferred gap for component placement. In6.0,
three preferred gaps are supported. A preferred gap is the preferred spacing between components,
and is available on all sides of a component for quick and elegant placement. For developers who
may like more control over spacing between components, having three choices comes in handy. The
Swing Application Previous releases of Netbeans required a few extra steps to internationalize and
localize a UI. Now the process is streamlined. In previous versions, you had to setup each individual
UI element to pull values from the correct resource bundle. Then to actually localize the bundle you
needed to create separate bundle files or localized entries manually, enter the text for the correct
local, and format the file accordingly (using a different encoding, for example).In Netbeans 6.0, you
can now ask Matisse to automatically internationalize the application during UI design. This means
that for each resource that would normally be internationalized by hand Matisse automatically adds
the value supplied in the designer to a resource bundle. This is done for all UI elements .The visual
localization feature works in harmony with automatic international. You can right click the top form 14
e-polling
node in the tree of the Inspector window, locate the Design Locale combo box Properties window,
and then select a locale or add a new one.
4.4.3 Adobe Dreamweaver (CS4):-
Adobe Dreamweaver is a development application originally created by Macromedia, and is now
developed by Adobe Systems, which acquired Macromedia in 2005. Dreamweaver is available for
both Mac and Windows operating systems. Recent versions have incorporated support for web
technologies such as CSS, JavaScript, and various server-side scripting languages
and frameworks including ASP, ColdFusion, and PHP.
Dreamweaver's WYSIWYG mode can hide the HTML code details of pages from
the user, making it possible for non-coders to create web pages and sites. One criticism of this
approach is that it has the potential to produce HTML pages whose file size and amount of HTML
code is larger than an optimally hand-coded page would be, which can cause web browsers to
perform poorly.
Dreamweaver allows users to preview websites in locally-installed web browsers. It
also has site management tools such as FTP/SFTP and Web DAV file transfer and synchronization
features, the ability to find and replace lines of text or code by search terms and regular expressions
across the entire site, and a template feature that allows single-source update of shared code and
layout across entire sites without server-side includes or scripting. The behavior panel also enables
use of basic JavaScript without any coding knowledge. Dreamweaver can use third-party
"Extensions" to extend core functionality of the application, which any web developer can write
(largely in HTML and JavaScript).
4.4.4 Wampserver-
WampServer is a Windows web development environment. It allows you to create web applications
with Apache, PHP and the MySQL database. It also comes with PHPMyAdmin and SQLiteManager
to easily manage your databases. WampServer installs automatically (installer), and its usage is very
intuitive. You will be able to tune your server without even touching the setting files. WampServer
is the only packaged solution that will allow you to reproduce your production server. Once
WampServer is installed, you have the possibility to add as many Apache, MySQL and PHP releases
as you want. WampServer also has a trayicon to manage your server and its settings.
15
e-polling
=-
16
e-polling
5.1External Interface Requirement
According to our project’s aim, identifying interfaces with subsystems is the subject of the
external interface requirements. External interface requirements should be described definitely.
External interface requirements are defining the system interaction between other organizations.
5.1.1 User interfaces
User Interfaces is important because it is the face of the system. User interfaces should be user
friendly, understandable, useful, functional and purposely. There are two type users and interfaces.
One of them is internet user’s interface and other one is the administrative interface. In our project,
interface has hierarchical navigational systems with lots of hyperlinks. Interfaces of internet users
and administrator are including some specific parts. For example, sign up, log in, help, search,
download, upload and so on.
5.1.2 Hardware interfaces
To run our application we need not any hardware peripherals. An extra hardware we require
is a webcam, by which we will allow user to take their picture and be inserted in the software.
5.1.3 Software interfaces
We are using our main platform as NetBeans6.5, which is an integrated development environment
(IDE), which combines several development tools into a single cohesive package. The assortment
usually includes a source code editor, compiler, debugger and other utilities. These tools work
together throughout the development process. To run our application we need a NetBeans
Framework,Wampserver,Jdk 1.6 .
5.2 Other Nonfunctional Requirements
5.2.1 Performance requirements
5.2 .2Safety requirements
It is very important to secure the personal details of the voters to be kept confidential for this
precaution are required like candidate should not reveal their password in public, not to operate their
accounts on unauthentic systems, voter should take care the they don’t get trapped in fishing trap.
17
e-polling
5.2.3 Security requirements
Security is receiving attacks and threats which are affecting the usability of the system. Protection is
very important as system has internet connection. If security is not appropriate, system can not resist
on external attacks. There are some damages which are caused by these external attacks. One of
them is denial of service; other one is corruption of programs or data and the last one is disclosure of
confidential information. We must block these external attacks.
5.2.4 Software quality attributes
Correctness — software should do what it is suppose to do (according to the design specs)
Robustness- System should be able to detect the fake people.
User-friendliness- software should be able to used by every category of people.
Adaptability- software should be updated as per the requirement.
Security- Personal details of voters should be kept confidential.
18
e-polling
19
e-polling
6. Software Engineering Approach
6.1 Software Engineering Paradigm Applied
6.1.1 Description:
Model Used:-
Spiral model: The spiral model is similar to the incremental model, with more emphases placed on
risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in
this model). The baseline spiral, starting in the planning phase, requirements is gathered and risk is
assessed. Each subsequent spiral builds on the baseline spiral.
Requirements are gathered during the planning phase. In the risk analysis phase, a process is undertaken
to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase.
Software is produced in the engineering phase, along with testing at the end of the phase. The evaluation
phase allows the customer to evaluate the output of the project to date before the
project continues to the next spiral.
20
e-polling
6.1.2 Advantages & Disadvantages Advantages:
High amount of risk analysis.
Good for large and mission-critical projects.
Software is produced early in the software life cycle.
Disadvantages:
Can be a costly model to use.
Risk analysis requires highly specific expertise
Project's success is highly dependent on the risk analysis phase.
Doesn't work well for smaller projects
6.1.3 Why Used For Project
The spiral model is a software development process combining elements of both design and
prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. The
first step in this project was the analysis. Requirement gathering at the system level with a small
amount of top-level design and analysis was done. The basic aspects related with large computations
i.e. time and money was the major areas of concern.
The requirement gathering process was intensified and focused. To add the required features
information was gathered and whole website was analyzed. Behavior and the expected performance
of the system were reviewed with the customer. All the requirement specifications were available at
the analysis phase. After analysis software design was developed. Data structure, software
architecture, interface representation and procedural details were worked upon. The design process
translated the requirements in to a representation of software that can be accessed for quality before
coding begins. A clear separation between the planning and designing of the project and the actual
implementation is achieved through this model. This helps in reducing the complexity of the project
development
21
e-polling
6.2 REQUIREMENT ANALYSIS
6.2.1 Requirements Elicitation
Since there was no "customer" in the traditional project sense, we decided to work with the small set
of core functional directives listed above and to formally establish a project requirements baseline
(again, to shorten the requirements analysis process for the subsequent portals) only after . This had
the advantage that we didn't need to conduct a formal requirements acceptance test until the second
portal was deployed. The first step in eliciting requirements was to identify key product
stakeholders. These stakeholders consisted of personnel from the marketing, sales, user interface,
content generation, software development, quality assurance, and systems engineering teams, all of
whom were polled for input. The marketing group represented the viewpoint of an end user in the
community and so became the de facto "customer."
The core high-level requirements were organized quite simply, into three sections:
functional requirements — actions the system must be able to perform
nonfunctional presentation requirements— how the information is to be displayed to the user
requirements— other system requirements, such as usability, reliability, performance, and
supportability
There were a number of reasons for choosing this approach. For one thing, it aligned with how our
technical resources and organization were structured. The graphical design team (charged with
meeting the presentation requirements) was composed of Web designers who used a different set of
tools than the site developers building Active Server Pages. Grouping the functional requirements
together, separate from the network, security, and other engineering disciplines, matched the
structure of our engineering organization.
6.2.2 Requirements Analysis
Requirements Analysis is the process of understanding the customer needs and expectations from a
proposed system or application and is a well-defined stage in the Software Development Life Cycle
mode. Requirements are a description of how a system should behave or a description of system
properties or attributes. It can alternatively be a statement of ‘what’ an application is expected to do.
Given the multiple levels of interaction between users, business processes and devices in global
corporations today, there are simultaneous and complex requirements from a single application,
22
e-polling
from various levels within an organization and outside it as well. The Software Requirements
Analysis Process covers the complex task of eliciting and documenting the requirements of all these
users, modeling and analyzing these requirements and documenting them as a basis for system
design. A dedicated and specialized Requirements Analyst is best equipped to handle the job. The
Requirements Analysis function may also fall under the scope of Project Manager, Program
Manager or Business Analyst, depending on the organizational hierarchy. Software Requirements
Analysis and Documentation Processes are critical to software project success. Requirements
engineering is an emerging field which deals with the systematic handling of requirements.
Steps in the Requirements Analysis Process-
I. Fix system boundaries This initial step helps in identifying how the new application
integrates with the business processes, how it fits into the larger picture and what its scope
and limitations will be.
II. Identify the customer In more recent times there has been a focus on identifying who the
‘users’ or ‘customers’ of an application are. Referred to broadly as the ‘stake holders’, these
indicate the group or groups of people who will be directly or indirectly impacted by the new
application. By defining in concrete terms that the intended user is, the Requirements Analyst
knows in advance where he has to look for answers. The Requirements Elicitation Process
should focus on the wish-list of this defined group to arrive at a valid requirements list.
III. Requirements Analysis Process: Once all strake holder requirements have been gathered, a
structured analysis of these can be done after modeling the requirements. Some of the
software requirements analysis techniques used are requirements animation, automated
reasoning, knowledge-based critiquing, consistency checking, analogical and case-based
reasoning.
6.2.3 Requirements Negotiation
Negotiating requirements is one of the first steps in any software system life cycle, but its results
have probably the most significant impaction the system’s value. However, the processes of
requirements negotiation are not well understood. We have had the opportunity to capture and
analyze requirements negotiation behavior for groups of projects developing library multimedia
archive systems.
23
e-polling
6.2.4 Requirements Specification
Requirements, once elicited, modeled and analyzed should be documented in clear, unambiguous
terms. A written requirements document is critical so that its circulation is possible among all
stakeholders including the client, user-groups, the development and testing teams. Current
requirements engineering practices reveal that a well-designed, clearly documented Requirements
Specification is vital and serves as a:
Base for validating the stated requirements and resolving stakeholder conflicts, if any.
Contract between the client and development team.
Basis for systems design for the development team.
Bench-mark for project managers for planning project development lifecycle and goals.
Source for formulating test plans for QA and testing teams.
Resource for requirements management and requirements tracing.
Basis for evolving requirements over the project life span.
Software requirements specification involves scoping the requirements so that it meets the
customer’s vision. It is the result of collaboration between the end-user who is often not a technical
expert, and a Technical/Systems Analyst, who is likely to approach the situation in technical terms.
The software requirements specification is a document that lists out stakeholders’ needs and
communicates these to the technical community that will design and build the system. The challenge
of a well-written requirements specification is to clearly communicate to both these groups and all
the sub-groups within.
To overcome this, Requirements Specifications may be documented separately as:
User Requirements - written in clear, precise language with plain text and use cases, for the
benefit of the customer and end-user.
System Requirements - expressed as a programming or mathematical model, addressing the
Application Development Team and QA and Testing Team.
Requirements Specification serves as a starting point for software, hardware and database design. It
describes the function (Functional and Non-Functional specifications) of the system, performance of
the system and the operational and user-interface constraints that will govern system development.
24
e-polling
6.3 Planning Managerial Issues
6.3.1 Planning scope
Scoping is related but requires additional information. Do multiple transactions need to occur while
a user is interacting with the system. We can see that this is a lot to think about, especially when we
multiply this effort by the number of users in our project. We might be able to think of the user as
separate authorizer, and then divide some of the scoping work among different team members to
make the process more efficient. The development leader or architect should be stay focused on any
cross application dependencies or areas where resources can be combined.
6.3.2 Team Organization
6.3.2.1 Team Structure
Our team consists of 4 full-time people for two different minor part of our project- web/database
developer, web designer/technologist, web developer. one people among us work as web/database
developer, two people among us work as web designer/technologist, and one person works as a web
developer. There is no one on the team responsible for overall content management (the content is
supposed to come "ready to post" from virtually anyone of the team who has something they want or
need to say on the website).
6.3.3 Risk Analysis
Our team analyzed the project and we have to face risks .And we manage the risks with our Code &
Data Management skills.
6.4 Design
6.4.1 Design Concept and Technique
Following are the main points related to the design concept:-
1. Abstraction
2. Architecture
3. Patterns
4. Modularity
25
e-polling
5. Information hiding
6. Functional Independence
7. Refinement
8. Refactoring
26
e-polling
27
e-polling
28
e-polling
29
e-polling
30
e-polling
31
e-polling
32
e-polling
33
e-polling
6.5 Implementation Phase
6.5.1 Characteristics of Language, Platform and Tools Used
Characteristics of Java, JavaScript & HTML
Five important characteristics make practical nature possible:
· Familiarity
· Simplicity
· Efficiency
· Security
· Flexibility
Familiarity
Programmers from many backgrounds will find themselves already accustomed to the Java
language. Many of the language's constructs are borrowed from C and C++, and in many cases Java
code is almost indistinguishable from that found in the typical C# or C++ program. This minimizes
the learning curve considerably.
Simplicity
A JavaScript can consist of 10,000 lines or one line: whatever you need to get the job done. There is
no need to include libraries, special compilation directives, or anything of the sort. The script engine
simply begins executing the code after the first escape sequence (). If the code is syntactically
correct, it will be executed exactly as it is displayed.
It is also a navigator embedded scripting which works differently on different browerson the net.
Efficiency
Efficiency is an extremely important consideration for working in a multiuser environment such as
34
e-polling
the langauge introduced resource allocation mechanisms and more pronounced support for object-
oriented programming, in addition to session management features..
Security
Java provides developers and administrators with a flexible and efficient set of security safeguards.
Java furnishes a number of security mechanisms that administrators can manipulate, providing for
the maximum amount of freedom and security when Java is properly configured. Java can be run in
what is known as safe mode, which can limit users' attempts to exploit the Java implementation in
many important ways. Limits can also be placed on maximum execution time and memory usage,
which if not controlled can have adverse affects on server performance.
This Project is Platform Independence. It needs only client and a server.
Characteristics of Dreamweaver:-
Looking back, the death of DHTML was an expected casualty of the browser wars and incompatible
DOMs between Netscape and Internet Explorer. However, Dynamic HTML has had resurgence
under the umbrella of a new buzzword and movement.
CSS, by contrast, has flourished for the last 10 years, and Dreamweaver has concentrated heavily on
standards-based design over the last few releases. And although Dreamweaver has established itself
as the market leader among visual editors, there's also been a significant focus on strengthening the
code-centric tools that today's web designers and developers require.
Characteristics of WampServer:-
Easy to Install and Deploy - Users can set up WampServer in minutes enabling organizations to
deliver new applications faster than with proprietary databases.
Easy to Administer WampServer is a low administration database that eliminates the need for
highly trained, skilled, and costly database administrators to maintain the database.
High Performance - In February 2002, eWeek published the results of their Database Benchmark
Test, showing WampServer has the best overall performance and scalability (matching Oracle). To
view the results of eWeek Database Benchmark test .
35
e-polling
Reliability and High Availability - WampServer has a well-earned and established reputation for
reliability among its 5 million user community. In addition to reliability, WampServer Cluster
provides 99.999% availability.
.
6.6 Testing
Software testing is the process used to measure the quality of developed computer software. Usually,
quality is constrained to such topics as correctness, completeness, security, but can also include more
technical requirements such as capability, reliability, efficiency, portability, maintainability,
compatibility, and usability. Testing is a process of technical investigation, performed on behalf of
stakeholders, that is intended to reveal quality-related information about the product with respect to
the context in which it is intended to operate. This includes, but is not limited to, the process of
executing a program or application with the intent of finding errors. Quality is not an absolute; it is
value to some person. With that in mind, testing can never completely establish the correctness of
arbitrary computer software; testing furnishes a criticism or comparison that compares the state and
behavior of the product against a specification. An important point is that software testing should be
distinguished from the separate discipline of Software Quality Assurance (SQA), which
encompasses all business process areas, not just testing.
6.6.1Testing Objectives
There are number of rules that can serve well as testing objectives.
1.) Testing is a process of executing a program with the intent of finding an error.
2.) A good test case is one that has a high probability of finding an as yet undiscovered error.
3.) A successful test is one that uncovers an as yet undiscovered error.
These objectives implies that a successful test is one in which no errors are found. Our objective is to
design tests that systematically uncover different classes of errors and do so with minimum amount
of time and effort.
If testing is conducted successfully it will uncover errors in software. The secondary benefit, testing
demonstrates that software functions are working according to specification and requirement appears
to have been met.
36
e-polling
White Box Testing
White Box Testing, sometimes called Glass Box Testing or Structured Testing is a test case design
method that uses the control structure of the procedural design to derive test cases. The tester can
analyze the code and use knowledge about the structure of a component to derive test data.
"Knowing the internal working of a product, test can be conducted to ensure that internal operation
performs according to specification and all internal components have been adequately exercised", is
called White Box Testing.
White Box Testing of software is predicted on close examination of procedure detail. Logical paths
of the white software are tested by providing test cases that exercise specific sets of condition or
loops.
Using White Box Testing methods, the software engineer can derive test cases that:-
1.) All independent paths within a module have been exercised at least once.
2.) Exercise all logical decisions and their true and false sides.
3.) Execute all loops at their boundaries and within their operational bounds.
4.) Exercise internal data structure to ensure their validity.
The advantage of White Box Testing is that an analysis of the code can be used to find how many
test cases are needed to guarantee a given level of test coverage.
Black Box Testing:-
Sometimes called Behavioral Testing or Particular Testing. Black Box Testing focuses on the
functional requirements of the software. That is, Black Box Testing enables the software engineer to
derive sets of input condition that will fully exercise all functional requirements for a program.
Black Box Testing is not an alternative to White Box techniques. Rather, it is a complementary
approach that is likely to uncover a different class of errors than White Box methods.
Black Box Testing attempts to find errors in the following categories:-
1.) Incorrect or missing function.
2.) Interface errors.
3.) Errors in data structures or external data base access.
37
e-polling
4.) Performance errors.
5.) Initialization and termination errors.
Unlike White Box Testing which is performed easily in the testing process Black Box Testing tends
to be applied during data stages of testing. Because Black Box Testing purposely disregards control
structure, attention is focused on the information domain. Tests are designed to answer the following
question:-
* How is functional validity tested?
* What classes of input will make good test cases?
* Is the system particularly sensitive to certain input values?
* How are the boundaries of data class isolated?
* What data rates and data volume can the system tolerate?
* What effect will specific combinations of data have on system operations?
By applying Black Box techniques we derive a set of test cases that satisfy the following criteria:
1.) Test cases that reduce, by a count that is greater than one, the number of additional test cases that
must be designed to achieve reasonable testing.
2.) Test cases that tell us something about the presence or absence of classes of errors, rather than
errors associated only with the specific test at hand.
38
e-polling
39
e-polling
7. Conclusion
7.1 Limitation of Project
Administrator is created in the system already.
All roles are created in the system already.
Roles and tasks are predefined and are made known to the administrator.
All users are using Javascript enabled browsers
End user should have a basic knowledge of English and computer usage
We have not included the concept of campaigning in our project.
Authenticating only on the basis of personal details.
A personal photo identification is not implemented.
7.2 Difficulties Encountered
The difficulties encountered during the development of the entire system include the following:
1. Difficulty in defining the complete scope of the system.
2. Having to deal with changing system requirements.
3. The response of the public led’s to delay in development.
4. Assessing the potential risk involved
5. Confined knowledge of the election criteria.
6. Maintenance of large database
7.3 Future Enhancements & Suggestions
40
e-polling
Due to time constraints, we restrict ourselves only to a minor part of the major idea that was
thought. The system developed, though can perform most of the operations mentioned in this report,
there are still some areas where coding has to be completed. We have taken every possible effort, to
bring out the best results for all the modules mentioned, but since we are doing the project after the
introductory course in java we find it hard and time consuming in analyzing each and every module.
While doing the project we learned some advanced topics which we don’t know previously
regarding JavaScript.
41
e-polling
42
e-polling
Bibliography & References
8.1 Reference Books
Software Engineering Principles by Roger S. Pressman
Software
Engineering by Rajiv Mal
PL/SQL by Ivan
Bayross
Database System
concepts by Korth
System Analysis & Designing by James A. senn
Software Engineering Concepts by Fairley
8.2 Other Documentations & Resources
http://www.google.in/
http://www.mponline.org/
http://www.indianrailways.org/
http://www.nrdcindia.com/
http://ebooks-space.com/
http://programmerworld.net/
http://www.w3school.com
http://www.stackoverflow.com
43