Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Internet Voting System Manager Yonghua Li Kansas State University March 28, 2002 MSE Project - Phase 2.

Similar presentations


Presentation on theme: "An Internet Voting System Manager Yonghua Li Kansas State University March 28, 2002 MSE Project - Phase 2."— Presentation transcript:

1 An Internet Voting System Manager Yonghua Li Kansas State University March 28, 2002 MSE Project - Phase 2

2 Give my thanks to: Dr. Maria Zamfir-Bleyberg Dr. William Hsu Dr. David Gustafson

3 Presentation Overview Project Overview Prototype: GUI Project Design: Object Model Formal Specification Test Plan Formal Technical Review (FTR) Software Quality Assurance (SQA) Summary and Question

4 Project Review: Goals To design an internet voting system where voters can cast ballots through internet;To design an internet voting system where voters can cast ballots through internet; To test some approaches on internet voting system;To test some approaches on internet voting system; Also to improve the integrity and fairness of votingAlso to improve the integrity and fairness of voting

5 Project Review: Components Emphasis on two componentsEmphasis on two components  IVS manager (IVSM) (sever side)  Voter (client side) Integration with other components, e.g., databaseIntegration with other components, e.g., database

6 Basic Functions of IVSM Administrator login setupAdministrator login setup login id – administrator ’ s ID;login id – administrator ’ s ID; password – administrator ’ s password;password – administrator ’ s password; Database setupDatabase setup Candidate list database;Candidate list database; Voter database;Voter database; Voting period setupVoting period setup Start time;Start time; Stop time;Stop time;

7 Basic Functions of IVSM (Cont’d) Server initializing;Server initializing; Ballot counting – doing statistics on the voting ballots.Ballot counting – doing statistics on the voting ballots.

8 Basic Functions of the Server Idling – waiting for visit;Idling – waiting for visit; Querying – getting ballots for the requested election title from the database;Querying – getting ballots for the requested election title from the database; Caching – storing data and making them available to querying;Caching – storing data and making them available to querying; Uploading – sending required blank ballots to client.Uploading – sending required blank ballots to client.

9 Basic Functions of Client LoginLogin providing voter ID and password;providing voter ID and password; downloading a blank ballot;downloading a blank ballot; Voting – casting the ballot.Voting – casting the ballot.

10 Prototype: GUI (Server Side)

11 Prototype: GUI (Client Side)

12 Object Model: IVSM

13 Object Model: Client

14 Sequence Diagram for Server Side

15 Sequence Diagram in Client Side

16 Formal Specification: USE-Class model IVSM -- Class class Administrator attributes password:String password:Stringoperations verifyPassword(password:String):boolean verifyPassword(password:String):booleanend class ConnectionPool end class ConnManager end class QueryWrapper end class Ballot attributes candidates:String candidates:Stringend class CommCandidate end class ServerProtocol end class ConnServer end

17 Formal Specification: USE-association association session between ConnServer[1] role connserver ConnServer[1] role connserver ConnClient[1] role connclient ConnClient[1] role connclientend association admin between Administrator[1] role manager Administrator[1] role manager IVSM[1] role system IVSM[1] role systemend association service between Server[1] role server Server[1] role server IVSM[1] role system IVSM[1] role systemend association mediator between QueryWrapper[1] role wrapper QueryWrapper[1] role wrapper IVSM[1] role system IVSM[1] role systemend association pool between ConnectionPool[1] role poolsink ConnectionPool[1] role poolsink ConnManager[1] role handler ConnManager[1] role handlerend association connQuery between QueryWrapper[1] role wrapper QueryWrapper[1] role wrapper ConnManager[1] role handler ConnManager[1] role handlerend association thread between Server[1] role server Server[1] role server ConnServer[*] role connserver ConnServer[*] role connserverend association cache between ConnServer[1] role connserver ConnServer[1] role connserver Ballot[*] role ballot Ballot[*] role ballotend association xmlhandler between ConnServer[1] role connserver ConnServer[1] role connserver ServerProtocol[1] role xmlprocess ServerProtocol[1] role xmlprocessend

18 Formal Specification: USE-Constraints context Administrator::VerifyPassword(psword : String) : boolean pre passwordNotNull:psword.isdefined() pre passwordNotNull:psword.isdefined() post resultPost: post resultPost: result = self.password.equals(psword) result = self.password.equals(psword) context IVSM -- Over time must be greater than Start time -- Over time must be greater than Start time inv overtimeGreaterthanstart: inv overtimeGreaterthanstart: self.startTime < self.overTime self.startTime < self.overTime context Server -- system is ready before it can accept the request -- system is ready before it can accept the request inv systemready: inv systemready: self.connserver.isdefined() implies self.system.isdefined() self.connserver.isdefined() implies self.system.isdefined() context ConnServer -- every ConnServer must have its own ConnClient -- every ConnServer must have its own ConnClient inv connServerClientPair: inv connServerClientPair: ConnServer.allInstances->forAll(c1,c2:ConnServer|c1<>c2 implies (c1.connclient<>c2.connclient)) ConnServer.allInstances->forAll(c1,c2:ConnServer|c1<>c2 implies (c1.connclient<>c2.connclient)) -- every ConnServer belongs to the same Server -- every ConnServer belongs to the same Server inv connServerHasSameServer: inv connServerHasSameServer: ConnServer.allInstances->forAll(c1,c2:ConnServer|c1.server=c2.server) ConnServer.allInstances->forAll(c1,c2:ConnServer|c1.server=c2.server) -- Ballot on request -- Ballot on request inv ballotOnRequest: inv ballotOnRequest: self.ballot.isdefined() implies (self.ballot.size = 1 && self.connclient.isdefined()) self.ballot.isdefined() implies (self.ballot.size = 1 && self.connclient.isdefined()) -- QueryWrapper is ready before ballot is ready. -- QueryWrapper is ready before ballot is ready. self.ballot.isdefined() implies (self.server.system.wrapper.isdefined() self.ballot.isdefined() implies (self.server.system.wrapper.isdefined() context ConnClient -- ConnClient set up a connection before receive a ballot -- ConnClient set up a connection before receive a ballot inv connFirst: inv connFirst: self.ballot.isdefined() implies self.connserver.isdefined() self.ballot.isdefined() implies self.connserver.isdefined() -- ConnClient receives ballot after ConnServer gets it ready -- ConnClient receives ballot after ConnServer gets it ready inv ballotready: inv ballotready: self.ballot.isdefined() implies self.connserver.ballot.isdefined() self.ballot.isdefined() implies self.connserver.ballot.isdefined() -- ballot ConnClient received is the one its ConnServer sent -- ballot ConnClient received is the one its ConnServer sent inv sameballot: inv sameballot: self.ballot.candidates.equals(self.connserver.ballot.candidates) self.ballot.candidates.equals(self.connserver.ballot.candidates)

19 Test Plan Unit Testing: –each class is tested separately. Focus on major functions in each class Integration Testing –tests the program structure, the program is built with unit-tested modules. System Testing: Performance Testing –Stress testing –Boundary testing

20 Test Plan: Test Case Stress Testing: - From the same machine, keep sending a number of connecting requests to the server to test the performance - From the same machine, keep sending a number of connecting requests to the server to test the performance Boundary testing: - Sending the server some special characters, eg !~#@()+_-=\|$%* - Sending the server some special characters, eg !~#@()+_-=\|$%* Authentic testing: - testing voter id, password, registering code - testing voter id, password, registering code

21 Test Plan: Test Case (Cont’d) Error Handling Testing: - The error handling testing case will test if the server and client will show the right feedback - The error handling testing case will test if the server and client will show the right feedback Log Handling Testing: - This type of testing case will check if the log system will works well when the system run. - This type of testing case will check if the log system will works well when the system run. Voting Period Testing - Voting period testing will check if the server will accept connection in the right time. - Voting period testing will check if the server will accept connection in the right time.

22 Prototype: Test Suite GUI

23 Formal Technical Review (FTR) Software Formal Inspection Process Standard NASA-SYD-2202-93 Ensure consistency between previously approved documents of phase I and the new design concepts resulting from documents of phase II In this project, the system design will be subjected to the FTR. A formal checklist will be developed and used to inspect the document

24 FTR: Checklist Check list * Completeness * Modifiability * Consistence * Tracebility * Correctness * Understandability * Feasibility * Maintainability * Verifiability * Testability * Verifiability * Testability

25 Software Quality Assurance Plan (SQA) IEEE standard Std 730-1989 Software Quality Assurance Plan documents a plan, which assures the quality of the software during the whole life cycle of the software. Including Purpose, Reference, Management, Documentation, Standards Practices Conventions and Metrics, Review and Audit, Tools Techniques and Methodologies, Code Control, Training, Risk Analysis

26 Phase III – Implementation User Manual Source Code Formal Technical Review Testing & Reliability Evaluation Project Evaluation

27 Summary Project OverviewProject Overview Project Design: Object ModelProject Design: Object Model Formal SpecificationFormal Specification Test PlanTest Plan Formal Technical Review (FTR)Formal Technical Review (FTR) Software Quality Assurance (SQA)Software Quality Assurance (SQA) URL: http://www.cis.ksu.edu/~yli3568/mse/ms e.htmlURL: http://www.cis.ksu.edu/~yli3568/mse/ms e.html

28 Thank!


Download ppt "An Internet Voting System Manager Yonghua Li Kansas State University March 28, 2002 MSE Project - Phase 2."

Similar presentations


Ads by Google