Niraj N Csesrs
Niraj N Csesrs
Niraj N Csesrs
E-Elections Software
“The Pericles Project”
1
TABLE OF CONTENTS
I. INTRODUCTION ..........................................................................3
1. Purpose of this Document .........................................................3
2. Scope of this Document ............................................................3
3. Overview ...................................................................................3
4. Scope of the Pericles Project.....................................................4
V. VALIDATION CRITERIA............................................................15
1. Performance Bounds .................................................................15
2. Testing .......................................................................................16
3. Prototyping................................................................................18
2
I. INTRODUCTION
This document is provided in order to ensure that the software that the development
team produces will be consistent with the needs of all customers. It is a description
and elaboration of the project requirements that the development team has
been provided with. Stating these requirements explicitly helps ensure that any
potential miscommunications are dealt with at an early stage, when the cost of
implementing changes is still low.
Customers are encouraged to distribute this document among their potential users
and management in order to provide us with feedback. This will help the development
team ensure that the end product fully meets all needs. This document will also be a
useful resource for those who will be upgrading or maintaining the software after it
has been completed.
The development team arrived at the information contained in the original version of
this document by examining the original project description in an individual
and group setting, by conducting research on the web and in libraries and by
discussing the system.
Many updates have already been made to this document in order to make it more
readable. Some changes have also been incorporated into the requirements
themselves, as a result of the response to the original requirements document. Further
updates to this document could occur if this project is explored further in the future.
This document makes use of several terms in very narrowly defined ways. The reader
is referred to the glossary at the end of this documents if he or she encounters a word
that seems confusing. The first occurrences of all words in the glossary are italicized
in the text, except in cases where the text itself defines them explicitly.
3. Overview
All aspects of the software will use a graphical user interface. The system will be
furnished with a full on-line help system, as well as installation software.
This Pericles software should only be regarded as a pilot project, meant to examine
the feasibility of voting technology and to explore its potential. It is not intended for
elections on a national scale, at least at this stage. However, the software will be
designed to be scalable to full-scale elections given greater time, manpower and
testing resources.
4
II. GENERAL DESCRIPTION
1. Product Functions
2. User Characteristics
2.1. Customers
5
The customers are the people or organizations who purchase the Pericles Elections
Software. They will be authorized to host elections on the Server. The Voting Client
will be available free of charge, and any purchasers of the server software will be
authorized to distribute it to their voters. Each customer will be responsible
for providing a System Administrator to overlook the installation and operation of the
Server. The customers will also be responsible for providing a host for the Server.
The Elections Officer is expected to be well versed in the elections protocol of the
organization whose election he or she is supervising and is expected to be
comfortable using GUI-based computer applications. It is assumed that the Election
Officer speaks and writes English, since the implementation team will not have the
time or the knowledge to write multiple versions of the Elections Editor software to
accommodate other languages. This could be done in a future release of the software.
2.4. Voters
Voters are those people who are authorized by the Elections Officer to vote in each
election using the Pericles Voting Client. They are expected to have access to a fully
networked computer and to be comfortable using GUI-based computer applications.
They must also have a secure access to a private e-mail address.
3. Operating Environment
6
3.1. Pericles Elections Server
The Elections Server will be written in Java, so the computer hosting it must be
capable of running Java bytecode. The Server will run under Linux. The computer
hosting the server must be accessible by other machines on a network. Testing will be
done using the computers in Reynolds 008 as a basis for the minimum hardware
requirements to run the Pericles Election Server. Professor Stacey stated in class that
she did not expect the software would run the US election, but that it would be
reasonable to assume that the class could go down to Reynolds 008 to vote. From
this statement we infer that the Pericles Election Server must be able to run on one of
the computers in the lab. It must be able to host an election where Voters can use the
Voter Client software on all of the other computers in Reynolds 008 to participate in
an election. There are approximately forty machines in the Reynolds lab. Thus, we
will insure that at least forty voters can simultaneously vote on any one election in
theReynolds lab.
As it stands, almost no elections are held electronically. This means that there is a
great cost associated with collecting and counting votes, since many people must be
hired to perform and check these tasks. Manual elections take a long time to set up,
and occurrences such as recounts can greatly delay the reporting of results. All of
these time delays can be at least partially eliminated by having computers run
elections.
There are also many problems relating to the accuracy of manual elections. The
7
intentional inaccuracies introduced by the corruption of election officials can be
eliminated by having the election handled by an entirely impartial computer. The
unintentional inaccuracies of manual elections, such as improperly printed or
filled out ballots, can also be eliminated by electronic elections which use clear and
consistent interfaces.
5. User Objectives
Any organization running an electronic election will want software that is easy to
install and run. Ballots must be easy to design and they must be flexible as to the
number and types of questions. The Election Server must run efficiently and
securely. It must be impossible for anyone to break into the system and corrupt the
results, prematurely know the results of the election, vote when they are not
authorized to do so or vote more than once. The results of the election must be clearly
presented upon the completion of the election.
Voters need the ballots to be clear and easy to fill out and answer. It is important that
it be impossible for anyone to associate a voter's name with his or her vote.
6. General Constraints
The development team must design, develop and test this software within the space
of three months. They also have important limitations placed on their time due to
many other projects that they must work on. They also suffer from severe lack of
funding. Due to these constraints, as well as the limited number of people working on
the project, it may be necessary to prioritize certain aspects of the project over others.
Functionality and security will be the first priorities.
8
III. SYSTEM REQUIREMENTS
1) Functionality
2) Reliability
3) Maintainability
4) Security and Privacy
5) Scalability
6) Interfaces
1. Functional Requirements
The requirements that are essential are marked with a dash, while the ones which are
less essential are marked with a bullet.
9
• What qualifies as a win must be customized from a limited number of options
(i.e. is there a quorum for the election and/or each question, is there a minimum
percentage of votes in favor needed for a choice in each question to win and
dothe results of certain questions depend on the results of other questions).
• There will be the option of having weighted votes to accommodate situations
suchas shareholders' elections.
• Specifies whether voters can refuse or spoil individual questions or their entire
ballots.
• Must only allow creations of elections when it is authorized by the System
Administrator.
• Will indicate to the Elections officer if there are not enough systems resources to
accommodate a new election.
• Allows voters to change their votes after having submitted them if this is
allowedin a particular election.
2. System Attributes
All data sent to the server will conform to a pre-defined format to enable the software
to detect any tampering of data in transit. If detected, the data will be discarded and
the voter prompted to resubmit his or her vote.
Voters must be sure that nobody else has access to their e-mail addresses, as anyone
reading their e-mail would have access to their voter identification information. The
Elections Server will limit the number of login attempts to prevent automated attacks
to gain or prevent access, however the voters must ensure that their password is
secure as the system would not be able to detect misrepresentation of the voter.
2.4. Scalability
Both the Pericles software and this document are meant to be easily scalable to
increase the scope and size of elections. All efforts will thus be made to use a
software design that does not have built in size limitations.
2.5. Reliability
All efforts will be made to write software that is entirely reliable. However, the
viability of electronic voting rests, in part, on the ability of systems
administrators and elections officials to incorporate redundancy into any deployed
voting system andto develop contingency plans for possible failures.
2.6. Interface
All aspects of the Pericles system will have a simple point and click interface using
menus, text fields, buttons and all of the other components of systems with graphical
user interfaces. This interface will be designed to be consistent. The interface will be
designed to help accommodate people with disabilities such as colour blindness. The
system will also be have a full on-line help system. Voting results will be posted on
web servers in HTML format.
12
IV. DESIGN CONSTRAINTS
1. Language Constraints
The software will only operate in English and will only allow ballots that use 7-bit
ASCII. This is because the first release of this project is only expected to be an
exploration of voting technology, so it is reasonable to assume that it will be used
primarily in North America. Both ASCII and English are used as standards in
international computing. Future versions of this software could be produced in other
language, but the current implementation team will not have the time or the linguistic
expertise to do so.
13
3. Computer Language Constraints
All configuration files must be in XML. The statistical reports must be generated in
HTML. The database used by the server must use MySQL. All software must be
written in Java.
4. Encryption Constraints
The development team is limited in the type of encryption that can be used for
building the system by what is either available in the Linux and the Windows
Operating System, what can be found in Java libraries or by what they can write
themselves. It is not in the budget to purchase third- party encryption software.
There is a danger that outside of a public polling place, a voter could be coerced into
voting for a particular candidate, or selling his or her vote. It will also be difficult to
control vote solicitation at the time of voting. The Pericles software will have no
provisions to prevent any of these problems.
6. Installation Constraints
The installation of the Election Server will already assume that MySQL has been
installed and that the computer running the Election Server will be able to connect to
the MySQL database. It is also required that there be network access to the computer
running the Election Server, and that there is a capable Network Administrator and
Database Administrator to carry through the installation.
The installation of the Voting Client will assume that the target computer will have
network communication already set up.
14
V. VALIDATION CRITERIA
The development team would like to ask the customer to review this requirements
document and verify it with all of the software stakeholders. This will ensure that all
conceptions of the product are consistent. Requests for additions or changes should
be submitted at this stage so that they can be incorporated into this document. It is
more costly to implement changes at later stages of development.
2. Performance Bounds
The following sections indicate the performance parameters that the development
team will test and ensure:
Hard Disk limitations will dictate how many elections an Election Server can hold at
a time. The software must indicate to the Elections Officer when hard disk space is too
low to register another election. The System Administrator should have knowledge of
the Network Traffic that is on the network. If the expected increase in network traffic
from a new election is going to cause a Network problem, then the network
traffic load will have to be increased or the Election Server will have to be hosted on a
different network.
The Elections Server will have limitations with respect to the number of Voting
Clients that it can serve concurrently. The Election Server is intended to be scalable in
design. However, for the initial project delivery, we will be imposing a limit of forty
concurrent voters. It is up to the discretion of the System Administrator to determine
if another election on an Election Server will be too limiting to the Voters. Factors
influencing this decision are election duration and the number of enumerated voters.
2. Testing
A test plan will be developed from the onset of design to ensure that testing is not an
afterthought. The development team will automate testing by writing software to test
all of the components of the system. Some testing will also be done manually. Tests
and their results will be documented. The following test classes will be considered
necessary:
2.5.2. Dates
Tests will be run to ensure that date limitations are adhered to by the system
and that Voting Clients are able to have their votes submitted and properly counted
nearelection date boundaries.
3. Prototyping
The development team will present the customers with working prototypes of limited
functionality at various stages of the production process. This will enable the client to
be fully aware of all progress and provide useful feedback.
18
VI. OPERATIONAL SCENARIOS
The development team will provide operational scenarios to highlight the major
functionality to be delivered in the software. These scenarios can be used to validate the
functionality of the system. It is expected that more scenarios will be added and that the
details of existing scenarios will be filled in as the projects scope is better realized.
Scenario 1.0: Elections Officer creates a new election and registers it.
An Elections Officer goes to the computer that has the Election editor component on it
and securely gains access to use it. He or she then enters the appropriate information
needed to create a new election.
After entering all the appropriate information, the Elections Officer can preview the
ballot. After previewing the ballot, the Election chooses to submit the election for
registration. The system will register the election, and report to the Election Officer that
either the election was registered successfully or that an error occurred with an
explanation of why the election could not be registered.
Scenario 1.1 – Elections Officer creates a new election but cancels before registering it.
The Elections Officer performs all of the actions from Scenario 1.0 up to the point after
previewing the ballot. The Elections Officer, after previewing the ballot, chooses to
cancel. The ballot and election information is not registered. It is discarded by the system.
Scenario 1.2 – Elections Officer creates a new election and makes changes to the election
before registering it.
The Elections Officer performs all of the actions from Scenario 1 up to the point after
previewing the ballot. The Elections Officer, after previewing the ballot, chooses to make
changes. He or she can change any of the information that was entered into the Election
editor up to this point. After making changes, the Election Officer can submit the
electionor cancel all the information entered.
19
change the election, the system will display a message informing the Election Officer
thatit is too late to change the election.
Scenario 4 – Elections Officer tries to change or delete a ballot after the deadline for last
election changes.
An Elections Officer attempts to change an election that is ongoing. He or she goes to the
computer with the Election editor component and securely gains access to it. The
Elections Officer requests to change an election. He or she is required to enter the
election code of the election. The election that he or she specifies is an ongoing election.
The system informs the Elections Officer that the election is already underway, and that
itcannot be changed or deleted.
Scenario 6 – Enumerated Voter participates in an election but cancels his or her vote.
Everything proceeds as in scenario 5 up until the ballot is submitted. The Voter reviews
and decides to cancel his or her vote when the Voting Client software asks the him or her
to review her vote before it is sent to the server.
20
VII. PRELIMINARY SCHEDULE
• The Software Requirements Specification Document will be completed and
submittedfor review by May 22, 2001.
• The next step will be to amend this document based on the feedback received.
• A design document will then be produced, which will also be submitted for review.
• Once the design document is completed, work will begin on implementing the
system.
• Testing will be performed throughout all stages the development phase to
ensurequality.
• Once the development phase begins, the software will be demonstrated every
Monday.
• A first release version of the software will be completed for distribution by
earlyAugust of 2001.
21
VIII. CONCLUSION
It is the development team's hope that this document will be the first part of a continuing
series of interchanges between themselves and customers. This will ensure that
customers' needs are met in a cheap and timely fashion. It will be important to involve
potential Elections Officers and Voters in this feedback process, as end-users such as
they often have many unique insights that might not occur to software developers or
people involved in management. This interchange will involve both information such as
this document and prototypes of the product. The end result will be a product that is
functional, reliable, secure and easy to learn and use.
22
IX. APPENDICES
1. Glossary
Authorized Voter: a voter who is on the enumeration list and who has been given
the means to use the Pericles Voting Client software.
Ballot: a means of registering a vote. In the case of the Pericles system, this is a set of
information and questions that can be transmitted from a Pericles Elections Server
toa Pericles Voting Client and back.
Client: a program that connects to a server. In the case of the Pericles system, the
Voting Client is a piece of software that Voters can use to connect to a Pericles
Election Server and receive ballots, send their votes and possibly change their votes
ifthis is permitted in an election.
Code Reviews: meetings where software developers review each other's code as a
quality control mechanism.
Database: any aggregation data. Files consisting of records (or tables), each of which
is constructed of fields (or columns) of a particular type, together with a collection of
operations.
Distributed Network: a network in which processing, storage and other functions are
handled by separate units rather than by a single main computer.
Elections Database: database system used for storing election questions, Elections
Officer information, voter information and votes.
Election Editor: Graphical User Interface (GUI) application that allows the Election
23
Officer register an election, change its settings and customize ballots.
Election Officer: an impartial individual authorized to run an election.
Elections Server: a server that manages an election and that the Pericles Voting
Client can connect to. It is responsible for jobs such as database management, user
identity checks and reporting of statistics.
HTML: an acronym for HyperText Markup Language. The document format used on
the World Wide Web. Web pages are built with HTML tags, or codes, embedded in
the text.
On-line Help System: a reference on how to use a piece of software that is integrated
into the software.
Operating System: the software responsible for controlling the allocation and
usage of hardware resources such as memory, central processing unit (CPU) time,
diskspace and peripheral devices.
Security Breach: the act or a result of breaking the security of a software system.
Server: a program that serves clients and controls access to all or part of a
computer's resources.
24
System Administrator: a person responsible for setting up and maintaining the
operational performance of a server and database.
Users: Persons who will use the Pericles system to run elections or vote. This
includes Election Officers, Systems Administrators and Voters.
Voting Client: client software that allows authorized voters to cast and possibly
change a ballot.
Weighted Vote: votes of unequal votes that are weighted based on criteria such as
stake in a company.
2. References
http://avirubin.com/evoting.security.html http://internetdollar.com/elections/
elections.html http://notablesoftware.com/evote.html http://www.cert.org/tech_tips/
denial_of_service.html http://www.netvoting.org/resources.htm http://
www.research.att.com/~lorrie/voting/hotlist.html
25