Presentation on theme: "Course final project: Online voting system design report"— Presentation transcript:
1Course final project: Online voting system design report COMP 723 software design and implementation Spring 2011Ying Shi, Lei PanMay 2nd, 2011
2Content Voting system requirements User study (user stories) Work flow (process diagram)UML designDesign patterns in the system design
3Voting system requirements OverviewThe system must be able to support the organization and carrying out of elections at national, state, and local levels.It must allow voters to register and vote online.It must maintain the normal prohibitions against one person voting more than once in any single election.It must maintain the normal prohibition against non-registered voters voting in any elections.It must also maintain the normal prohibition of any one voter being registered in more than one place.
4Voting system requirements(cont.) Overview (cont.)The system must allow novel forms of election to occur... for example, we will want to have elections as we do now (meaning all voting in a single day) but we also will want to have elections that occur over longer periods of time... weeks, perhaps months.We will want to allow flexible voting policies... for example, we may want an election where once your vote is cast it is irrevocable; we may also want elections where a voter can log on and change his/her vote as many times as desired... as long as it is prior to the end of the election.We want the system to have an information structure to make it easy for the voters to get at least candidate statements, party platforms, information about voting process, and the law of the land.The system must support the gathering of statistical information...
5Voting system requirements(cont.) Main EntitiesElectionChoice (issue, referendum)Ballot (collection of choices)CandidateElection officerVoter (citizen)Electorate (registered voters)Documents (laws, news, instructions, statements, etc.)Talley (vote count)
6Voting system requirements(cont.) Activities of the systemDocuments the law of the land (constitution, etc.)Documents election lawsDocuments candidate/party statements/platformsAuthenticate voters when votingRegister votersEnforce one-vote-per-voter-per-issue (or whatever the rules are) Talley votes, keep statisticsReport results
7Voting system requirements(cont.) Design IssuesDevelop the Use Cases for the systemLet Use Cases guide your CRC cards sessionsGo from cards (concepts and relationships) to classesMay have many objects in the system that are not part of the card design... "Internal" components of the patterns, etc.may have many methods to implement a single responsibilityidentify the variances... areas that appear right for pattern creationDevelop a user interface...program to an interface, not an implementation favor object composition over inheritance
8User Study (user stories) As an election organizer/voting holder/election officer:I want a voting system with different scales so that I carry the elections out at national, state, and local levels.I want the voting system to be completely electronic and digitalized, so that it allows voters to register and vote online.I want a counter in the voting system so that it can provide normal prohibitions against one person voting more than once in any single election.I want an identity authentication in the voting system so that it can save the voter’s personal information and authenticate the legality of the voters.
9User Study (user stories) As an election organizer/voting holder/election officer(cont.):I want an identity authentication in the voting system so that it can provide normal prohibition of any one voter being registered in more than one place.I want a regular form of election so that I can hold the all voting in a single day.I want a regular form of election so that I can have elections that occur over longer periods of time.I want a statistical calculator so that the voting system can show me the results every day, on every region, on every party or individual.I want an identity management in the voting system so that it can offer different access authorities to different types of users to the voting system.
10User Study (user stories) As an election organizer/voting holder/election officer(cont.):I want an identity authentication in the voting system so that it can provide normal prohibition against non-registered voters voting in any election.I want a function that gives me the authority to access the information based on my identity and title.I want that the voting system has flexible voting policies, so that the voting can be conducted in different ways in different regions.I want a counter and a restriction for the voting system so that once a voter’s vote is cast it is irrevocable.I want a message sending function so that I can send messages to related voters.
11User Study (user stories) As a voter/electorate:I want a profile management section on the voting system so that I can check and modify personal information.I want a “re-vote” function on the voting system so that I can log on and change my vote as many times as desired as long as it is prior to the end of the election.I want a “Check my result” function on the voting system so that I can log on and check who or which one I have voted.I want an information board in the voting system so that it is easy for me to get at least candidate statements, party platforms, information about voting process, and the law of the land.
12User Study (user stories) As a voter/electorate(cont.):I want an information reminder in the voting system so that once there is new information about the candidates and parties, the system can remind me.I want a deadline reminder in the voting system so that once the voting deadline is approaching, the system can remind me.
13User Study (user stories) As an auditor:As an auditor, I want an independent module in the voting system for me so that I can audit, administrate and review the voting process without request the authority to access the private information or modify the system data.As a random net people:As a random net people, I want a function to check current elections without logging in the system.As a random net people, I want a function to get general voting information ( e.g. voting introduction, voting deadline, candidate introduction and so on) introduction of a defined electionAs a random net people, I want a function to check the voting result of finished elections.As a reporter/analyst:As an election reporter/analyst, I want a private access to the voting system that supports the gathering of statistical information
14Work flow Over view of the total work flow In this section, process flows of different types of users and the election itself are illustrated in the process diagram. These diagrams show all possible behaviors and states of different users when they are using this voting system. The online voting system provides different functions to different users based on the system requirements and the user identities. The process flows also show how the system work and cooperate with the subsystems.
15Work flowOfficerWhen an officer of an election successfully logged in, he can choose to manage all messages sending and receiving in this election; manage the election information, setting or updating the election rules, time limit, or manage user information, including verify and delete some particular users
16Work flow Administrator When a system administrator successfully logged in, he can manage the whole system more powerfully. A system administrator can control all subsystem including message system, statistics system and database system. He can also backup the system data in case of disaster. An officer can only manage a specific election that he or she is assigned to, while an administrator can manage all elections that are conducting in the system.
17Work flowUserBefore a user is logged in, he or she is prompted to sign in. After successfully logged in, users can get different types of information and update their own information. They can choose different elections to register. They can also send messages to their friends to remind them the election is conducted.
18Work flowVoterAfter a voter is successfully logged in, he or she can choose an election to register. He or she can vote or revote based on the time limit and the rules of the election. Voters can also check the voting history of their selves or somebody else.
19Work flowCandidateAfter candidates successfully logged into the system, they can manage their information for all the elections that they are participating. They can also check the current voting results.
20Work flowAuditorAuditor can audit the whole voting process of some particular elections that they are assigned to. They can announce the legality of the election if they find no problem during the voting process; otherwise they can report the problems to the officers or election organizers.
21Work flow Overview of total election flow In the election flow, we can see the whole life cycle of a particular election from beginning till end.
22Work flowflow1An election and its sub-elections are created by the administrator or organizer (officer), rules, time limit and restrictions are set. Then candidates and their information are added to the election.
23Work flowflow2Then the election is open for users to register. Voters can get kinds of information and update their own information. Voters are checked for their identities and authorities before they vote or revote for some candidates. The system outputs some current results to all candidates, voters, officers and analysts at different stages of the election process.
24Work flowflow3After the voting is expired, system calculates and announces the current election results to auditors. Then system checks all results from sub-elections and calculates the total results from current stage. At the end, system combines both current results and sub-results and returns this total final result to upper-level election before it ends.