Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 Project Overview: Data Flow Graph MailSender Query Processing Query Processing ConClient Database Connection Manager Server Query Processing ConClient Server Client DBM 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 name id email pwd voted Yonghua Li 1 [email protected] **** no Candidates table name committee num votes Carol Peak CITY OFFICES MANHATTAN 3 0 Object Model Design: IVS Manager Object Model Design: Client 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, ivsserverconclient, 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 GUI 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% ? Test Result: unit and integration Class Performane pass Task for getting and freeing connection to max connections Works well yes 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 Task for singleMailSend, batchMailSend Works well yes DBPool DBConnectionMan ager MailSender Functionality 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 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 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 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 Project Evalutation Cost-Estimation Evaluation Product Evaluation Process Evaluation Tools and Technologies Evaluation Project Evaluation – Cost Estimation Size of project – – – Cost effort – – – Estimated: 5160 LOC Actual: 3912 LOC (19 classes, 1 interfaces) Evaluation: The actual LOC doesn’t include the third party software 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 – – – – – – Start the IVSClient – 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 Java IVMSClient See http://www.cis.ksu.edu/~yli3568/mse/mse.html Thank!