The Decider Group Decision Making Application Design Document Shiran Alush Shai Kerer Dor Altshuler Academic instructor: Prof. Ronen Brafman Contents Reminder – About the project Main System Requirements System Architecture Class Diagram – Main Classes Database Scheme User Interface Algorithms Task List What is “The Decider” ? The Decider© is a web-based Facebook application for group decision making. The Decider is a new tool that will help groups of different scale to convey polls & questionnaires, while letting the voter express his preferences, and process the results using the most cutting-edge algorithms in order to get an ideal decision. Main System Requirements Create questionnaires Invite others Vote - with four types of possible questions (Choose, Rank, Grade, Budget). to participate in a questionnaire. fill out and submit questionnaire and Express preferences. Decide /View result - Reach a decision in a fair way. View statistics users. about questionnaires, votes, results and System Architecture Our System will be deployed on a web server, exposing its API and communicating with the front-end users as a web-service, via a 3rd-party actor which is the Facebook interface. Class Diagram Class Diagram Questionnaire – represent a collection of questions (variables) and possible answers (values), and some other additional information regarding the questionnaire. Variable – represent a question in a questionnaire. Value – represent a possible answer to a certain question. Class Diagram Vote (Abstract) – a vote is basically a pair of type question-answer. An instance of vote can be according to the question type (Choose, Rank, Score). VoteManager – this class's role is to create the above mentioned votes according to the user's input, and save those votes in the Database. Class Diagram Decider – Creates the decision. It does so by reading the votes from the Database and invoking the decision-making algorithms. Decision –Represent a complete decision to a questionnaire. Algorithm (Interface) – provide an interface for the classes that implements a decision-making algorithm. Class Diagram SystemHandler – a type of façade controller that handles all the transactions between the end-user and our system. GuiHandler – translate requests made by the user via the GUI to real system functionality expressed as objects instantiation and methods invocation. DatabaseHandler – responsible for communication with the Database. FacebookHandler – API that connects between our system and Facebook. Database Scheme - ERD Database Scheme (partial) Questionnaire (ID, Name, Description, Creator-Id, Creation-date, settings) Variables (Question-Id, Var-num, Name, Description, Type) Values (Question-Id, Var-number, Value-num, Name, Is-Visible) Constraints (Question-Id, Var1-num, Value1-num , Var2-num, Value2-num) Single-Value-Vote (Question-Id, Dependency-comb, Var-num, Value-num, Count) Ranking-Vote (Question-Id, Dependency-comb, Var-num, Ranking, Count) Grading-Vote (Question-Id, Dependency-comb, Var-num, Value-num, Sum-Score, Count) Dependency-Combination (Question-Id, Dependency-Id, Var-num, Value-num) User interface example An example of a questionnaire: What community car to buy? • Brand? (rank) – – – – 1) Porsche 2) Volvo 3) Subaru 4) Mazda • Color? (rank) – – – – 1) Red 2) black 3) White 4) Blue • Gear? (choose) – 1) Automatic – 2) Manual Does your answer to any question will depend on other questions? My answer to Brand depends on my answer to: My answer to Color depends on my answer to: My answer to Gear depends on my answer to: Color Gear Brand Gear Brand Color Does your answer to any question will depend on other questions? My answer to Brand depends on my answer to: My answer to Color depends on my answer to: My answer to Gear depends on my answer to: Color Gear Brand Gear Brand Color Does your answer to any question will depend on other questions? My answer to Brand depends on my answer to: My answer to Color depends on my answer to: My answer to Gear depends on my answer to: The car’s manufacture and model. Color Gear Brand Gear Brand Color Does your answer to any question will depend on other questions? My answer to Brand depends on my answer to: My answer to Color depends on my answer to: My answer to Gear depends on my answer to: Color Brand Brand Gear Gear Color Does your answer to any question will depend on other questions? My answer to Brand depends on my answer to: My answer to Color depends on my answer to: My answer to Gear depends on my answer to: Color Brand Brand Gear Gear Color Rank your preferences to “Brand”: Instructions: Click on a value and move it up or down using the arrows. Porsche Volvo Subaru The ranking given to this variable. ‘1234’ means that in first Specifies the dependencies st place is the 1 value in which this vote is cast. Number of similar (Porsche), in second place votes cast onisthis so we Questionnaire’sHere ID there are none Variable number the 2nd value (Volvo) and etc. variable. put value zero. Mazda Ranking-Vote: Question-Id Dependency Var-num Ranking Count 0001 0 1 1234 1 Dependences: If “Brand” is “Color”: Porsche then rank your preferences to “Porsche” Red Black Dependency-Combination: White DependencyQuestion-Id Specifies the dependencies Var-num Value-num ID in which this vote is cast. The1 ranking given1 to this 0001 1 to the record ‘1’ points on variable. the Combination table. Blue Color Ranking-Vote: Question-Id Dependency Var-num Ranking Count 0001 1 2 1234 1 Choose your preferences of “Gear”: Automatic Manual Single-Value-Vote: Question-Id Dependency Var-num Value-num Count 0001 0 3 2 1 Gear “Manual” Decision Making Algorithms Choose one Algorithms •Plurality •Plurality with run-off (two rounds) •Sequential run-off (multiple rounds) Ranking Algorithms •Borda count •Condorcet (can return empty set) •Plurality with run-off •Sequential run-off •Extended Condorcet - Copeland Score Algorithms •Maximum sum •Minimal regret http://www.math.princeton.edu/math_alive/Voting/ Task List Data base Build-up. Decision Algorithms implementation. Graphical User interface (creation, voting, editing, result viewing) • Domain layer implementation. • System handler implementations. • Proto-type testing. • Smart Voting and Sequential voting implementation. • Project- day presentation – Due date 10/6/2010 Thank You
© Copyright 2026 Paperzz