an internet voting system manager yonghua li kansas state university march 28, 2002 mse project -...

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

Upload: patricia-sophie-bryant

Post on 18-Jan-2018

217 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

An Internet Voting System An Internet Voting System ManagerManager

Yonghua LiYonghua LiKansas State UniversityKansas State University

March 2March 288, 2002, 2002

MSE Project - Phase 2

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

Give my thanks to:Give my thanks to:

Dr. Maria Zamfir-Bleyberg Dr. Maria Zamfir-Bleyberg Dr. William HsuDr. William Hsu

Dr. David GustafsonDr. David Gustafson

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

Presentation OverviewPresentation OverviewProject Overview Project Overview Prototype: GUIPrototype: GUIProject Design: Object Model Project Design: Object Model Formal SpecificationFormal SpecificationTest PlanTest PlanFormal Technical Review (FTR)Formal Technical Review (FTR)Software Quality Assurance (SQA)Software Quality Assurance (SQA)Summary and QuestionSummary and Question

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

Project Review: GoalsProject Review: Goals

• To design an internet voting To design an internet voting system where voters can cast system where voters can cast ballots through internet;ballots through internet;

• To test some approaches on To test some approaches on internet voting system;internet voting system;

• Also to improve the integrity and Also to improve the integrity and fairness of votingfairness of voting

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

Project Review: ComponentsProject Review: Components

• Emphasis on two componentsEmphasis on two components IVS manager (IVSM) (sever side)IVS manager (IVSM) (sever side) Voter (client side)Voter (client side)

• Integration with other Integration with other components, e.g., databasecomponents, e.g., database

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

Basic Functions of IVSMBasic 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;

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

Basic Functions of IVSM (Cont’d)Basic Functions of IVSM (Cont’d)

• Server initializing;Server initializing;• Ballot counting – doing statistics Ballot counting – doing statistics

on the voting ballots.on the voting ballots.

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

Basic Functions of the ServerBasic Functions of the Server

• Idling – waiting for visit;Idling – waiting for visit;• Querying – getting ballots for the Querying – getting ballots for the

requested election title from the requested election title from the database;database;

• Caching – storing data and making Caching – storing data and making them available to querying;them available to querying;

• Uploading – sending required Uploading – sending required blank ballots to client. blank ballots to client.

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

Basic Functions of ClientBasic 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.

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

Prototype: GUI (Server Side)Prototype: GUI (Server Side)

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

Prototype: GUI (Client Side)Prototype: GUI (Client Side)

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

Object Model: IVSMObject Model: IVSM

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

Administratorid : Stringpassword : String

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

Serverquery : QueryWrapper

accept()sendBallot()verifyRequest()queryBallot()

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

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

CommCandidatecandidateList : VectorvotingGuide : String

getCandidates()getvotingGuide()addCandidate()

ServerProtocol

xmlProcess()

ConnServer

run()

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

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

QueryWrapperconnManager : ConnManager

verifiedQuery()ballotQuery()

BallotcommitteeList : VectorvotingGuide : String

getCommittees()getVotingGuide()addCommittee()

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

Object Model: ClientObject Model: Client

VClientintroFrame : IntroFramelogonFrame : LogonScreenvotingFrame : VotingScreenstatusFrame : ProgressScreencomm : ConnClient

ClientProtocol

xmlProcess()

BallotcommitteeList : VectorvotingGuide : String

addCommittee()getCommittees()getVotingGuide()

ConnClient

run()

TimeroutThreadthreadStatus : boolean

stopThread()run()

VotingScreen

IntroScreen LogonScreen

ProgressScreen

CommitteeCandidatescandidateList : VectorvotingGuide : String

addCandidate()getCandidates()getVotingGuide()

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

Sequence Diagram for Server SideSequence Diagram for Server Sideivsm : IVSM administrator :

Administratorserver : Server connServer :

ConnServerHandler :

ServerProtocolwrapper :

QueryWrapperconnManager : ConnManager

setCandidates(String)

verifyPassword(String)

setStartAndOverTime()

setDatabase(String)accept( )

start( ) xmlProcess(String)

verifiedQuery(String)

ballotQuery(String)

getConnection(String)

verifiedQuery(String)

ballotQuery(String)

accept( )

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

Sequence Diagram in Client SideSequence Diagram in Client Sidevclient : VClient connclient :

ConnClienthandler :

ClientProtocolballot : Ballot votingFrame :

VotingScreen

run( )

xmlProcess(String)

addCommittee(Object) formatBallot()

voting()xmlProcess(String)

sendBallot()

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

Formal Specification: USE-ClassFormal Specification: USE-Classmodel IVSMmodel IVSM

-- Class-- Classclass Administratorclass Administratorattributesattributes password:Stringpassword:Stringoperationsoperations verifyPassword(password:String):booleanverifyPassword(password:String):booleanendend

class ConnectionPoolclass ConnectionPoolendend

class ConnManagerclass ConnManagerendend

class QueryWrapperclass QueryWrapperendend

class Ballotclass Ballotattributesattributes candidates:Stringcandidates:Stringendend

class CommCandidateclass CommCandidateendend

class ServerProtocolclass ServerProtocolendend

class ConnServerclass ConnServerendend

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

Formal Specification: USE-associationFormal Specification: USE-associationassociation session betweenassociation session between ConnServer[1] role connserverConnServer[1] role connserver ConnClient[1] role connclientConnClient[1] role connclientendend

association admin betweenassociation admin between Administrator[1] role managerAdministrator[1] role manager IVSM[1] role systemIVSM[1] role systemendend

association service betweenassociation service between Server[1] role serverServer[1] role server IVSM[1] role systemIVSM[1] role systemendend

association mediator betweenassociation mediator between QueryWrapper[1] role wrapperQueryWrapper[1] role wrapper IVSM[1] role systemIVSM[1] role systemendend

association pool betweenassociation pool between ConnectionPool[1] role poolsinkConnectionPool[1] role poolsink ConnManager[1] role handlerConnManager[1] role handlerendend

association connQuery betweenassociation connQuery between QueryWrapper[1] role wrapperQueryWrapper[1] role wrapper ConnManager[1] role handlerConnManager[1] role handlerendend

association thread betweenassociation thread between Server[1] role serverServer[1] role server ConnServer[*] role connserverConnServer[*] role connserverendend

association cache betweenassociation cache between ConnServer[1] role connserverConnServer[1] role connserver Ballot[*] role ballotBallot[*] role ballotendend

association xmlhandler betweenassociation xmlhandler between ConnServer[1] role connserverConnServer[1] role connserver ServerProtocol[1] role xmlprocessServerProtocol[1] role xmlprocessendend

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

Formal Specification: USE-ConstraintsFormal Specification: USE-Constraintscontext Administrator::VerifyPassword(psword : String) : booleancontext 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 IVSMcontext IVSM -- Over time must be greater than Start time-- Over time must be greater than Start time inv overtimeGreaterthanstart:inv overtimeGreaterthanstart: self.startTime < self.overTimeself.startTime < self.overTime

context Servercontext 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 ConnServercontext 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 ConnClientcontext 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)

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

Test PlanTest PlanUnit Testing: Unit Testing: – each class is tested separately. Focus on each class is tested separately. Focus on

major functions in each classmajor functions in each class

Integration TestingIntegration Testing– tests the program structure, the program is tests the program structure, the program is

built with unit-tested modules.built with unit-tested modules.

System Testing: Performance TestingSystem Testing: Performance Testing– Stress testing Stress testing – Boundary testingBoundary testing

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

Test Plan: Test CaseTest Plan: Test CaseStress Testing:Stress Testing:

- From the same machine, keep sending a - From the same machine, keep sending a number of connecting requests to the number of connecting requests to the server to test the performanceserver to test the performanceBoundary testing:Boundary testing:

- Sending the server some special - Sending the server some special characters, eg !~#@()+_-=\|$%*characters, eg !~#@()+_-=\|$%*Authentic testing:Authentic testing:

- testing voter id, password, registering - testing voter id, password, registering codecode

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

Test Plan: Test Case (Cont’d)Test Plan: Test Case (Cont’d)Error Handling Testing:Error Handling Testing:

- The error handling testing case will test if - The error handling testing case will test if the server and client will show the right the server and client will show the right feedbackfeedbackLog Handling Testing:Log Handling Testing:

- This type of testing case will check if the - This type of testing case will check if the log system will works well when the log system will works well when the system run.system run.Voting Period TestingVoting Period Testing

- Voting period testing will check if the - Voting period testing will check if the server will accept connection in the right server will accept connection in the right time.time.

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

Prototype: Test Suite GUIPrototype: Test Suite GUI

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

Formal Technical Review (FTR)Formal Technical Review (FTR)Software Formal Inspection Process Software Formal Inspection Process Standard NASA-SYD-2202-93Standard NASA-SYD-2202-93

Ensure consistency between previously Ensure consistency between previously approved documents of phase I and the approved documents of phase I and the new design concepts resulting from new design concepts resulting from documents of phase IIdocuments of phase II

In this project, the system design will be In this project, the system design will be subjected to the FTR. A formal checklist will subjected to the FTR. A formal checklist will be developed and used to inspect the be developed and used to inspect the documentdocument

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

FTR: ChecklistFTR: Checklist

Check listCheck list* Completeness * Modifiability* Completeness * Modifiability* Consistence * Tracebility* Consistence * Tracebility* Correctness* Correctness * Understandability * Understandability* Feasibility * Maintainability * Feasibility * Maintainability

* Verifiability * Testability* Verifiability * Testability

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

Software Quality Assurance Plan Software Quality Assurance Plan (SQA)(SQA)

IEEE standard Std 730-1989IEEE standard Std 730-1989

Software Quality Assurance Plan documents a Software Quality Assurance Plan documents a plan, which assures the quality of the software plan, which assures the quality of the software during the whole life cycle of the software.during the whole life cycle of the software.

Including Purpose, Reference, Management, Including Purpose, Reference, Management, Documentation, Standards Practices Conventions Documentation, Standards Practices Conventions and Metricsand Metrics, , Review and Audit, Tools Techniques Review and Audit, Tools Techniques and Methodologies,and Methodologies, Code Control, Training, Risk Code Control, Training, Risk AnalysisAnalysis

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

Phase III Phase III –– ImplementationImplementation

User ManualUser ManualSource CodeSource CodeFormal Technical ReviewFormal Technical ReviewTesting & Reliability EvaluationTesting & Reliability EvaluationProject EvaluationProject Evaluation

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

SummarySummary• 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: URL:

http://www.cis.ksu.edu/~yli3568/mse/mse.http://www.cis.ksu.edu/~yli3568/mse/mse.htmlhtml

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

Thank!Thank!