Top Banner
An Internet Voting System Manager Yonghua Li Kansas State University October 14, 2002 MSE Project - Phase 3
32

An Internet Voting System Manager

Jan 04, 2016

Download

Documents

justin-richard

An Internet Voting System Manager. MSE Project - Phase 3. Yonghua Li Kansas State University October 14, 2002. Give my thanks to:. Dr. Maria Zamfir-Bleyberg Dr. William Hsu Dr. David Gustafson. Presentation Overview. Project Overview Project Requirement - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Internet Voting System Manager

An Internet Voting System Manager

Yonghua Li

Kansas State University

October 14, 2002

MSE Project - Phase 3

Page 2: An Internet Voting System Manager

Give my thanks to:

Dr. Maria Zamfir-Bleyberg

Dr. William Hsu

Dr. David Gustafson

Page 3: An Internet Voting System Manager

Presentation Overview

Project Overview Project RequirementObject Model Design (revised)Sources Code Module Walk-ThroughTest EvaluationProject EvaluationDemo

Page 4: An Internet Voting System Manager

Project 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

Page 5: An Internet Voting System Manager

Project Overview: Data Flow Graph

IVSM

Query Processing

DatabaseConnection

Manager

Query Processing

Server

Client

ConClient

ConClient

Server

DBM

MailSender

Query Processing

Page 6: An Internet Voting System Manager

Project 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

Page 7: An Internet Voting System Manager

Project Requirements (cont’d)

• 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

Page 8: An Internet Voting System Manager

Simple Database

name id email pwd voted

Yonghua Li 1 [email protected] **** no

name committee num votes

Carol Peak CITY OFFICES MANHATTAN

3 0

Voters table

Candidates table

Page 9: An Internet Voting System Manager

Object Model Design: IVS Manager

IVSM

admin : Administrator[]server : Serverquery : QueryWrappersDate : DateeDate : Date

verifyID(id : Sring, passwd : String) : booleansetVoters(voterDataAddr : String) : voidgetVoters() : StringsetCandidates(canddAddr : String) : voidgetCandidates() : StringsetStartDate(date : Date) : DatesetEndDate(date : Date) : DateisVotingOver() : boolean

ConnectionPool

checkedOut : intfreeConnections : VectormaxConn : intname : Stringpassword : StringURL : Stringuser : String

freeConnections()getConnection()getConnection()release()newConnection()

Candidate

voted : booleanname : String

getName()setName()voted()isVoted()

ConnServer

timeOfLastActivity : longstatus : Integerkey : String

run()

ConnManager

conn : ConnectionPoolquery : QueryWrapperinstance : ConnManagerclients : intdrivers : Vectorpools : Hashtablelog : PrintWriter

freeConnection()getConnection()getConnection()getInstance()release()

QueryWrapper

connManager : ConnManager

init()insertVoters()insertCandidates()confirmVoter()votingResult()sendingResult()pwdRequest()getBallot()addVotes()

Ballot

votingGuide : Stringtitle : Stringissuer : Stringsubject : Stringdate : DatevoteID : Stringcommittee : String[]candidate : string[][]num : int[]newCand : String[][]

setCommittee()setCandidate()voteCandidate()voteNewCandidate()

Ticker

run()

TriggerServer

warning_if_inactive : inttime_to_close_a_warnreaper_time : intmaxinactivetimeparticipants : Hashtableticker : Ticker

run()getBallot()tick()

MailSender

host : Stringid : Stringaccound : Stringfrom : String

singleMailSent()batchMailSent()

Administrator

id : Stringpassword : String

setPassword(passwd : String) : voidgetID() : StringgetPassword() : StringverifyID(id : String) : booleanverifyPassword(passwd : String) : boolean

Page 10: An Internet Voting System Manager

Object Model Design: Client

VClient

introFrame : IntroFramelogonFrame : LogonScreenvotingFrame : VotingScreenstatusFrame : ProgressScreencomm : ConnClient

Ballot

setCommittee : voidsetCandidatevoteCandidatevoteNewCandidate

setCommittee()setCandidate()voteCandidate()voteNewCandidate()

ConnClient

run()

TimeroutThread

threadStatus : boolean

stopThread()run()

Candidate

voted : Booleanname : String

setName()getName()Voted()isVoted()

Page 11: An Internet Voting System Manager

Walkthrough: 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.

Page 12: An Internet Voting System Manager

Walkthrough: IVSManager (cont’d)

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.

Page 13: An Internet Voting System Manager

Walkthrough: 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

Page 14: An Internet Voting System Manager

Walkthrough: client (cont’d)

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.

Page 15: An Internet Voting System Manager

Test 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.

Page 16: An Internet Voting System Manager

Test Overview (cont’d)

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

Page 17: An Internet Voting System Manager

Testing Overview (cont’d)

System Testing/Performance Testing– Stress testing – Boundary testing– Error injection testing– Stamp testing– Testing the system log file and error handling

Page 18: An Internet Voting System Manager

Test GUI

Page 19: An Internet Voting System Manager

Test Overview

Pass/Fail Criteria

The percentage of test result will be sued to decide to if the software passes or fails

pass >90%

fail <70%

70%~90% ?

Page 20: An Internet Voting System Manager

Test Result: unit and integration

Class Functionality Performane passDBPool Task for getting and freeing connection to max

connectionsWorks 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

Page 21: An Internet Voting System Manager

Test 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

Page 22: An Internet Voting System Manager

Error 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

Page 23: An Internet Voting System Manager

Fairness 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

Page 24: An Internet Voting System Manager

Integrity 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

Page 25: An Internet Voting System Manager

Project Evalutation

Cost-Estimation Evaluation Product Evaluation Process Evaluation Tools and Technologies Evaluation

Page 26: An Internet Voting System Manager

Project Evaluation – Cost Estimation

Size of project– Estimated: 5160 LOC– Actual: 3912 LOC (19 classes, 1 interfaces)– Evaluation: The actual LOC doesn’t 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

Page 27: An Internet Voting System Manager

Product 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

Page 28: An Internet Voting System Manager

Project 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

Page 29: An Internet Voting System Manager

Project Evaluation - tools

Evaluation of Tools and Techniques used– Rational Rose– USE-2.0.0– Java– Java Mail– Oracle DBMS

Page 30: An Internet Voting System Manager

Compare 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 doesn’t not solve the write-in candidates name problem too

Page 31: An Internet Voting System Manager

Demo

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

Page 32: An Internet Voting System Manager

Thank!