Presentation is loading. Please wait.

Presentation is loading. Please wait.

Course final project: Online voting system design report

Similar presentations


Presentation on theme: "Course final project: Online voting system design report"— Presentation transcript:

1 Course final project: Online voting system design report
COMP 723 software design and implementation Spring 2011 Ying Shi, Lei Pan May 2nd, 2011

2 Content Voting system requirements User study (user stories)
Work flow (process diagram) UML design Design patterns in the system design

3 Voting system requirements
Overview The 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.

4 Voting 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...

5 Voting system requirements(cont.)
Main Entities Election Choice (issue, referendum) Ballot (collection of choices) Candidate Election officer Voter (citizen) Electorate (registered voters) Documents (laws, news, instructions, statements, etc.) Talley (vote count)

6 Voting system requirements(cont.)
Activities of the system Documents the law of the land (constitution, etc.) Documents election laws Documents candidate/party statements/platforms Authenticate voters when voting Register voters Enforce one-vote-per-voter-per-issue (or whatever the rules are)   Talley votes, keep statistics Report results

7 Voting system requirements(cont.)
Design Issues Develop the Use Cases for the system Let Use Cases guide your CRC cards sessions Go from cards (concepts and relationships) to classes May 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 responsibility identify the variances... areas that appear right for pattern creation Develop a user interface... program to an interface, not an implementation  favor object composition over inheritance

8 User 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.

9 User 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.

10 User 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.

11 User 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.

12 User 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.

13 User 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 election As 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

14 Work 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.

15 Work flow Officer When 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

16 Work 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.

17 Work flow User Before 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.

18 Work flow Voter After 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.

19 Work flow Candidate After 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.

20 Work flow Auditor Auditor 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.

21 Work 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.

22 Work flow flow1 An 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.

23 Work flow flow2 Then 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.

24 Work flow flow3 After 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.

25 UML Design The Overview UML of Whole System

26 UML Design View & Controller Users Election UML of Main System

27 UML Design UML of Election Subsystem

28 UML Design UML of Voter Design

29 Design Patterns in the System Design
1. The Composite Pattern and Iterator Pattern in Election 2. The Façade Pattern and Strategy Pattern for Various Statistic systems

30 Design Patterns in the System Design
3. The Proxy Pattern and Decorator Pattern for Authorized privilege of Election

31 Design Patterns in the System Design
4. The Observer Pattern for Election Data Updating

32 Design Patterns in the System Design
5. Flyweight in Ballot

33 System User Interface Design
1. The Factory Method for User Creation

34 System User Interface Design
2. The Memento Pattern in Revocable Electorate of Voter

35 Questions

36 Thank you


Download ppt "Course final project: Online voting system design report"

Similar presentations


Ads by Google