Title Carolina First Steering Committee October 9, 2010 Online Voting System Design Yinpeng Li and Tian Cao May 3, 2011.

Slides:



Advertisements
Similar presentations
Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
Advertisements

Course final project: Online voting system design report
18-1 Verifying Object Behavior and Collaboration Role playing – the act of simulating object behavior and collaboration by acting out an object’s behaviors.
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Patterns Reusable solutions to common object-oriented programming problems When given a programming problem, re-use an existing solution. Gang of Four.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
IEG3080 Tutorial 7 Prepared by Ryan.
Design Patterns CS is not simply about programming
Design Patterns. What are design patterns? A general reusable solution to a commonly occurring problem. A description or template for how to solve a problem.
Graphical User Interface (GUI) Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Object-Oriented Analysis and Design
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
Katie C. O’Shea Dennis T. Tillman 11 February 2K2 Flyweight.
Course Instructor: Aisha Azeem
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
More OOP Design Patterns
Design Patterns Ric Holt & Sarah Nadi U Waterloo, March 2010.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
BDP Behavioral Pattern. BDP-2 Behavioral Patters Concerned with algorithms & assignment of responsibilities Patterns of Communication between Objects.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
An Introduction to Software Architecture
05 - Patterns Intro.CSC4071 Design Patterns Designing good and reusable OO software is hard. –Mix of specific + general –Impossible to get it right the.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
ISP666 MVC & Design Patterns. Outline Review Event Programming Model Model-View-Controller Revisit Simple Calculator Break Design Patterns Exercise.
Design Pattern. The Observer Pattern The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
 Whether using paper forms or forms on the web, forms are used for gathering information. User enter information into designated areas, or fields. Forms.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
18 April 2005CSci 210 Spring Design Patterns 1 CSci 210.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
Object Oriented Software Engineering Chapter 16 and 17 review 2014/06/03.
Unit 4 Object-Oriented Design Patterns NameStudent Number CAI XIANGHT082182A KYAW THU LINHT082238Y LI PENGFEIHT082220L NAUNG NAUNG LATTHT082195L PLATHOTTAM.
Structural Design Patterns
ECE450S – Software Engineering II
Design Patterns CSIS 3701: Advanced Object Oriented Programming.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
Design Patterns Introduction
Java Design Patterns Java Design Patterns. What are design patterns? the best solution for a recurring problem a technique for making code more flexible.
Interface Patterns. Adapter Provides the interface a client expects, using the services of a class with a different interface Note Avoid using object.
Example to motivate discussion We have two lists (of menu items) one implemented using ArrayList and another using Arrays. How does one work with these.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
Five Minute Design Patterns Doug Marttila Forest and the Trees May 30, 2009 Template Factory Singleton Iterator Adapter Façade Observer Command Strategy.
7 April 2004CSci 210 Spring Design Patterns 2 CSci 210.
Overview of Behavioral Patterns ©SoftMoore ConsultingSlide 1.
Client-side processing 26 Client-side processing 26.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
Teaching slides Chapter 6. Chapter 6 Software user interface design & construction Contents Introduction Graphical user interface – Rich window based.
The Object-Oriented Thought Process Chapter 15
Chapter 10 Design Patterns.
Chapter 5:Design Patterns
Software Design Patterns
MPCS – Advanced java Programming
Design Patterns Lecture part 2.
Introduction to Design Patterns
MVC and other n-tier Architectures
object oriented Principles of software design
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.
Software Engineering Lecture 7 - Design Patterns
Design Patterns in Game Design
An Introduction to Software Architecture
Informatics 122 Software Design II
Presentation transcript:

Title Carolina First Steering Committee October 9, 2010 Online Voting System Design Yinpeng Li and Tian Cao May 3, 2011

Outline  System Description  System Logic Explanations  User Stories  Use Case Diagram  System Design  System Architecture  Design Pattern  Discussion

System Logic Explanations  Inside of the system, a Voter is not allowed to participate in any election until he/she has registered as an Electorate. An Election officer is in charge of system maintenance, voter registration approval, election creation, etc.  An election can be at different levels and be of different topics. It can either be a voting of political referendums, or a voting of candidates for a government position. Depending on the type of an election, the Ballot can contain different kind of options.

User Stories  Four Roles  Voter  Electorate  Candidate  Election Officer

Use Case Diagram

Flowchart  See the webpage See the webpage

System Architecture  The system is designed to comply with the MVC (Model–View–Controller) architecture.

System Architecture  Both Server and Client have their own Model, View and Controller.  In Server-Side, the View generates a representation of a interface. This representation is downloaded to the Client which displays it. The Controller on the Server interprets the information from Client and routes the request to the View, which update the interface. The Model on the Server manages the database system.  In Client-Side, the View renders the interface to the screen, and the Controller interprets the keyboard and mouse events. The Model on Client deals with the data received from Server.

Overall System Design  See the webpage See the webpage

Design Patterns  Composite  Factory Method  Decorator  Flyweight  Observer  Proxy  Command  Iterator and Strategy  Memento  Facade and Singleton  State

Composite Pattern  The Composite pattern is used at the client side to organize the elements on the interface. In the system, all the information display and all the inputs are done through forms, which are similar to the concept in Web that's under the same name. A form can contain both data output elements such as Image Displays and Text Displays and data input elements such as Radios, Checkboxes and Text Inputs. The forms can be saved on the server for future continuation or be submitted directly.

Composite Pattern

Factory Method Pattern  The Factory Method pattern is used at the client side to defer the instantiation of Client to its subclasses.

Factory Method Pattern

Decorator Pattern  The Decorator pattern is used at the client side to control the appearances of the Interface Elements.

Decorator Pattern

Flyweight Pattern  The Flyweight pattern is used at the server side to reduce repetitive data storage. The options in ballots are stored as objects on the server, and they are organized as flyweights in the system. Some of the registration info of the voters, such as the zip codes, are also stored as flyweights.

Flyweight Pattern

Observer Pattern  The Observer pattern is implemented over the client-server connection to perform real-time update of election results.

Observer Pattern

Proxy Pattern  The Proxy pattern is used at the client side. It controls the access to the server, and implements security mechanisms such as connection timeouts.

Proxy Pattern

Command Pattern  The Command pattern is used both at the client side and at the server side. It encapsulate the requests and responds in the system, and let the system queue or log them. It also supports undoable operations.

Command Pattern

Iterator and Strategy Patterns  The Iterator and Strategy patterns are applied in the vote tally logic components. The Strategy pattern is used to encapsulate different statistical algorithms for election result computation. The Iterator pattern is used to encapsulate different methods to iterate over the BallotList.

Iterator and Strategy Patterns

Memento Pattern  The Memento pattern is implemented to realize the "save for later" functionality. When an electorate clicks the "save for later" button on the form, the form (ballot) he/she is working on will create a memento and save it on the server. This way, the form can be restored later. The client side can also take advantage of this feature to implement a mechanism to deal with power-outage problems.

Memento Pattern

Facade and Singleton Patterns  The Facade pattern provides a interface to a set of database interfaces in a database subsystem. Facade defines a higher-level interface that makes the database subsystem easier to use for the server. The Singleton pattern is used to ensure the Database Interface only has one instance.

Facade and Singleton Patterns

State Pattern  The State pattern is applied in the system to implement different command processing strategy for the client depending on the identity of the client. The identity is regarded as the state of the client.

State Pattern

Discussion  Although the system is designed to comply with the MVC architecture, since the View and the Controller at the client side share the same visual components, these two parts and their logics are not separated explicitly during the design process.

Discussion  We used Command pattern to do server-client communication, instead of using Interpreter pattern, as is the case in real-world Web system. This is due to the fact that the Command pattern gives more flexibility when processing the commands. For example, with the Command pattern, commands can be queued before processed, which is hard for the Interpreter pattern to realize.

Discussion  The Flyweight pattern could also be used on the ballots submitted by the electorates to reduce storage cost. For example, for a ballot consists of 10 items, with each item featuring 4 options, there are a total of 410= possible submitted ballots. However, if the election is intended for all the people in the U.S., there could be more than 100 million votes in total, and using this simple enumeration will dramatically improve the storage efficiency.

Section divider here Thank you for your attention.