320 likes | 471 Views
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
E N D
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 Object Model Design (revised) Sources Code Module Walk-Through Test Evaluation Project Evaluation Demo
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
MailSender Query Processing ConClient Query Processing Database ConnectionManager Server Query Processing ConClient Server Client DBM Project Overview: Data Flow Graph IVSM
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
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
Simple Database Voters table Candidates table
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.
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.
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
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.
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.
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
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
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% ?
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
Project Evalutation • Cost-Estimation Evaluation • Product Evaluation • Process Evaluation • Tools and Technologies Evaluation
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
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
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
Project Evaluation - tools • Evaluation of Tools and Techniques used • Rational Rose • USE-2.0.0 • Java • Java Mail • Oracle DBMS
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
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