Title: An Internet Voting System Manager
1An Internet Voting System Manager
MSE Project - Phase 3
- Yonghua Li
- Kansas State University
- October 14, 2002
2Give my thanks to
- Dr. Maria Zamfir-Bleyberg
- Dr. William Hsu
- Dr. David Gustafson
3Presentation Overview
- Project Overview
- Project Requirement
- Object Model Design (revised)
- Sources Code Module Walk-Through
- Test Evaluation
- Project Evaluation
- Demo
4Project Overview
- Internet voting system poll site, kiosk and
remote - Design a system which manages the voting and
makes ballot cast through the internet - Also to improve the integrity and fairness of
voting - Easy and reliable to use
5Project Overview Data Flow Graph
IVSM
6Project Requirements
- Develop component server side IVS Manager
- Develop component database connection and query
manager - Develop component IVS server and connection of
client - Develop component mailSender
- Develop component client
7Project Requirements (contd)
- Follow all the procedures required by software
engineering - Develop API for the codes
- Create report for the testing
- Create User Manual for the project
- Evaluate the project
8Simple Database
Voters table
name id email pwd voted
Yonghua Li 1 yli3568_at_cis.ksu.edu no
Candidates table
name committee num votes
Carol Peak CITY OFFICES MANHATTAN 3 0
9Object Model Design IVS Manager
10Object Model Design Client
11Walkthrough IVSManager
- When starting the system, the first thing to do
is to set the administrator. The system will
block until user inputs the admin id and password - The system will use the administrator id as seeds
to generate the encryption keys public and
private key.
12Walkthrough IVSManager (contd)
- After the system has been launched, before the
server can start, the administrator should
configure the following - Make the keys and init the DB
- Import Voters
- Import Candidates
- Set the Election Start Time
- Set the End Time
- Start the Server
- Initiate the mail sender server
- Start the backup server.
13Walkthrough client
- The client can be run as an application or as an
applet in this project the client will be a
kiosk client. - The first interface the voter sees has two
buttons and one text screen. - If the voter press the Enter to Voter button, the
conformation interface will appear - The confirmation GUI has three text boxes and two
button
14Walkthrough client (contd)
- After filling the text box and pressing the vote
button, there will be a confirmed GUI to show the
result. If the server confirms the voter
identification, then voter can press button vote
to cast the ballot. - In the ballot GUI, the voter casts the ballot
according to the instruction - After casting the ballot, the voter press the
send button to send out the ballot. - If it goes well, the system will return back to
initial state.
15Test Overview
- Unit testing
- Purpose
- To test the all components major functions
- Methodology Functional Testing
- White box testing, path-based domain, boundary
testing technologies - black box testing, random and regression testing
Testing Item - DBConnectionPool, DBConnectionManager,
QueryWrapper, IVSManager, IVSServer, ConClient,
MailSender and IVSClient.
16Test Overview (contd)
- Integration Testing
- Purpose tests the program structure
- the program has been built with unit-tested
modules. - Methodology Functional Testing (black box) ---
regression and random testing - Testing Items
- Dbpool-dbmanager, dbwrapper-dbmanager,
ivsmanager-dbmanager-ivsserver,
ivsserver-conclient, ivsclient-ivsserver-conclient
17Testing Overview (contd)
- System Testing/Performance Testing
- Stress testing
- Boundary testing
- Error injection testing
- Stamp testing
- Testing the system log file and error handling
18Test GUI
19Test Overview
- Pass/Fail Criteria
- The percentage of test result will be sued to
decide to if the software passes or fails - pass gt90
- fail lt70
- 7090 ?
20Test Result unit and integration
Class Functionality Performane pass
DBPool Task for getting and freeing connection to max connections Works well yes
DBConnectionManager Task for getting and freeing connection Works well yes
DBWrapper Task for conn. requiring, different queries Works well Yes
IVSManager Task for Init DB, input voters, input candidates, set start and end time, set mailsender, statistic result, send result Works well yes
IVSServer task for connection management Works well yes
ConClient Task for message receiving, sending Works well yes
IVSClient task pwdRequest, enterVoter, sendRequest, SendConfirm, Voting, SendingBallot Works well yes
MailSender Task for singleMailSend, batchMailSend Works well yes
21Test Result Performance
Testing type functionality Performance pass
Boundary System Works well yes
Stress System Works well yes
Error injection system Catch all yes
Stamp system Works well yes
Error handling system Works well yes
22Error Handling Testing
Test items result
IVSManager can check if the db.properties is correctly file pass
IVSManager can check if the voter.dat file is correctly file Pass
IVSManager can check if the candidate.properties is correctly file pass
IVSManager can check if the election start time is correct Pass
IVSManager can check if the end time is correct Pass
IVSManager can check if the server port is ok pass
IVSManager can check if the mail sender server is right pass
IVSClient can check if the pwd request input boxes are filled pass
IVSClient can check if the confirm input boxes are filled pass
IVSClient can check if the ballot cast number is right pass
IVSClient can check if the new candidate is clicked and filled pass
23Fairness Testing
- 6 candidates, generating 10000 ballots, each
candidate appear in the first position for - Candidate 1 1662
- Candidate 2 1656
- Candidate 3 1673
- Candidate 4 1666
- Candidate 5 1671
- Candidate 6 1670
24Integrity Testing
Test Item Performance pass
case for voting twice Works well yes
case for log on multi place Works well yes
case for losing ballot Works well yes
25Project Evalutation
- Cost-Estimation Evaluation
- Product Evaluation
- Process Evaluation
- Tools and Technologies Evaluation
26Project Evaluation Cost Estimation
- Size of project
- Estimated 5160 LOC
- Actual 3912 LOC (19 classes, 1 interfaces)
- Evaluation The actual LOC doesnt include the
third party software - Cost effort
- Estimated 7.0 months
- Actual 7.0 months
- Evaluation match
- Schedule
- Phase I and Phase II was finished in time
- Phase III was postponed for four months
27Product Evaluation
- Product Evaluation
- meets all requirements
- successful through the test cases
- stable can run on windows, UNIX, Linux system
- performance result is same as expected
- Improve the fairness and integrity for ballot
cast - Problem exist
- Write-in candidates Bill Hsu and William Hsu
28Project Evaluation - Process
- Process Evaluation
- Whole software development life cycle
- Learned to design a project in all details
- Excellent experience to learn the Software
Engineering Process - Challenging project since no any background on
the politics knowledge
29Project Evaluation - tools
- Evaluation of Tools and Techniques used
- Rational Rose
- USE-2.0.0
- Java
- Java Mail
- Oracle DBMS
30Compare to System Used in Campus
- Generating the voting students data from the
enrolling data base this system will build its
own voters database to ensure that each voter
will cast the ballot only one time. - Each candidate will appear on the same ballot
position with almost same probability - Fairness This system doesnt not solve the
write-in candidates name problem too
31Demo
- Start the IVSManager Server
- Java cp classes111.zip. IVMSManager
- Set up the Administrator
- Build the key and init the DB
- Import the Voters, candidates data
- Import the election time and start the server
- Set the mailsender server address
- Start the IVSClient
- Java IVMSClient
- See http//www.cis.ksu.edu/yli3568/mse/mse.html
32Thank!