Project Definition Document

advertisement
Department of Information Technology
Final Year Project: Election data presentation
Project Definition Document
Due: October 27th 2006
Project Supervisor:
Team:
Pat Byrne
Sandra Fox
Damien Mc Clafferty
Table of Contents
Chapter 1:
Understanding the Project
1.1
Project Definition
1.2
Stakeholders
1.3
Scope
1.4
Goals and Objectives
1.5
1.4.1
Project Goals and Objectives
1.4.2
Personal Goals and Objectives
Project Constraints
Chapter 2: Project Requirements
2.1
System requirements
2.1.1
Functional requirements
2.1.2
Non functional requirements
Chapter 3: Research
3.1
Outline of procedure
3.2
Elimination
3.3
Filling last seat
3.4
STV is Non-monotonic
Chapter 4: Implementing the Technologies
4.1
Technology Consideration
4.2
Possible extra functionality/ features
Chapter 5:
Project Management
5.1
Roles and Responsibilities
5.2
Risk Analysis
5.3
Scheduling
5.3.1
5.3.2
Gantt Chart
5.3.3
Work Breakdown Structure
5.3.4
Milestones
Chapter 6:
6.1
Work plan
References
References
1: Understanding the Project
1.1 Project Definition:
The main aim of this project is to create a suitable program which will allow the display of
upcoming election result information by means of animated charts and visualisations. These
will be highly suitable for a television show which will represent the election results to the
electorate.
We are designing the program to accept all the election results on the regions,
constituencies, so that we can clearly provide details on the amount of votes received for
each politician, political party, how many seats each political party wins, the current winner,
whom has exceeded the quota, and also the overall votes within each constituency. We can
compare these results with the previous election.
Also in this Program will also be able to provide a prediction as to which political party
will succeed in winning the most seats and will provide us with a predicted overall election
outcome, based on the figures received to date. We will also provide and compare the
number of seats each political party has either gained or lost since the previous election,
therefore, this will show the percentage swings for each political party.
We will also apply the use of proportional representation so that a result could be predicted
for each constituency from the first count.
1.2 Stakeholders:
Key Stakeholders:
Pat Byrne: Project supervisor
Damien Mc Claffetry & Sandra Fox: Since we are the one’s that are going to build this
system , which will make understanding the election system and results much easier for the
public, we have a keen interest for a good outcome for the system. We will also gain from
this project by hopefully achieving a good final year result.
College: They own some of the rights to our project.
Broadcaster: The television station will want to attract as many viewers as possible on the
election night’s to increase profits. In order to do this, they will want their stations to be able
to produce the results in an interesting, new and attractive way, but at the same time keeping
the general public entertained.
Electorate: The electorate will be eager to find out who is winning the election, also who in
their constituency is being voted in and if the candidate they vote for will be voted in. They
are interested to know who exactly will be presenting them in government.
Politician: The politician’s will want to find out exactly how well they are doing, and to find
out exactly where there political party is popular and unpopular.
Public: The general public will be interested to see find out what political party will be
running the country, also how the people they have voted for got on.
Key stakeholders needs and expectations:
Pat Byrne: Requires us to have an in-depth understand of the background on how the
electorate system works. Expects us to design an excellent program to display animated
charts/visualisation of the election results and to be able to explain and defend the approaches
which we took throughout the project.
Damien Mc Clafferty & Sandra Fox: Need to build a system that will help the Irish
citizens interpret the election system. Will expect to receive a fair grade, for there work,
effort and final system.
College: Need a well developed final year project. Expect that a good effort will be put into
the plan, development and implementation of the system.
Broadcaster: Needs to increase viewer rating. Expect that the program will attract viewers.
Electorate: Need to be informed on current results. Expect to be well informed of the
election status.
Politician: Need to be informed on current results. Expect to be well informed on their
status and their parties’ status and whom they voted for.
Public: Need to be informed of the results. Expect the results to be well displayed so they
can be easily understood.
1.3 Scope:
Included:
o The system will hold a list of all political parties.
o We will list all politicians that ran for the last general election and all politicians from
the current election.
o It will also hold information on how many seats each political party had previously
and how many seats they are currently winning.
o It will calculate the amount of votes each politician gains.
o It will show if the politician has exceeded the quota.
o It will calculate the over all election outcome.
o It will show the percentage swing for each political party between this election and
the last election.
Excluded:
o This system does not have electorate personal information stored, i.e. their name
along with who they voted for.
1.4 Goals & objectives:
1.4.1 Project goals & objectives
o We need to complete detailed research on the election process and the
different ways to present the election data
o We need to research the different technologies that are readably available out there
and analyse their suitability for our project.
o Choose, undertake and learn the necessary technologies.
o We need to follow the work breakdown chart and Gantt chart to stay within the
scheduled time.
o Build a well functional system that meets all the requirements.
o Work very hard on all documentation and the project in order to build a good working
system that will provide and present all relevant information to the general public, so
that they will understand the process.
o Make sure we have a fully functional system before the deadline.
1.4.2 Personal Goals/Objectives:
o We will build on our team building skills such as building and
communication to a great extent while on this project. It will also stand to us
after college.
o Learn more bout following plans and time management.
o We will learn new technologies such as python, ASP.net, extensive databases
in Access and become extremely skilled in them.
o Extensive research into how the election system works. Before this we were
not so familiar in the way it worked.
o To work hard on our documentation and on building our project in order to
gain a high mark overall.
o To work to the best of our ability on all project elements and thus produce a
Project document and working tool that will be worthy of a good mark.
o To ensure that both group members contribute evenly to all aspects of the
project development
1.5. Project Constraints
There are many constraints involved within this project.
o This project a deadline so we have a schedule that we need to follow. However
because of the upcoming exams and other projects, we have to divide our time
between all, so that we can work efficiently and gain a good mark in all.
o As we have so many other project groups we might not always be available to meet
one another when necessary so this will impact our flexibility and time constraints.
o Another serious constraint is the Christmas holidays. Because of the distance between
each other, it will be impossible to work as a team on the project for a period of time.
o We will also need the use of the IT computers and college library. This may be limited
during the Christmas period depending on opening and closing times. This will
therefore impact our development over the Christmas period.
o After taking this into account, we have discussed the issue and we have that it will be
necessary that we will have to work a bit alone by using alternative resources but we
will always be contactable by phone, email or chat.
o This project is worth 25% of our overall I.T Degree, which is a lot of marks, but we
cannot forget that there is another 75%. By Christmas we will have another 25%
already complete, so we will have time to work on the other 50% of our degree.
o This project will require that we will have to learn some new technologies, such as,
python, advanced Access, ASP.net. Such technologies may prove extremely time
consuming and difficult to learn. We feel that the database side to the project will be
quite taxing.
So all in all we have a few critical constraints, but we hope to surpass these and deliver a
good quality project.
2: Project Requirements.
2.1 System requirements:
Our understanding of this project is to develop a program that will show clear,
understandable, colourful and eye-catching diagrams, charts and visualizations, of the results
of a general election in Ireland
These visualizations should be fit to be screened on television, while at the same time keep
the audience entertained and interested
These visualizations should show the results of every constituency within Ireland, giving the
details of exactly how many votes each politician won, therefore how many seats each
political party has won and also how many seats the political parties had gained or lost on the
previous general election
2.1.1 Functional requirements
The functional requirements:
o Results of general election
o This program should display the results of the entire general election, as to how
many seats each political party has won, and therefore which party has won the
election.
o Results of each constituencies
o The total number of votes from every count for every candidate from each
constituency, needs to recorded to show who has won the seats available in each
constituency
o Percentage swings (compare these results to previous election results)
o
This program should also be able to show graphically or visually how many seats a
party has gained or lost since the last general election. Therefore showing the
percentage swings for each political party since the last general election.
o Be able to predict at any stage of the election , as to who will be elected and
therefore which party will win
o This program should be able to give a prediction as to which political party is going
to win the most seats and therefore the overall election outcome, based on results
received to date. This will be achieved by knowing exactly how many votes and seats
each party had won in the last general election. From this information the program
will assume that since the constituency was in favour of a particular party during
the last general election, then there is no reason to suggest that this time round they
will favour a different party.
o The program may also apply the use of proportional representation so that a result
could be predicted for each constituency from the first count
o For each region involved the program should also be able to give an accurate
prediction as to who or which party will win the seats for each constituency from
the information gained from the first round of votes. This will be achieved by how
many people are voting, and then putting this information into a mathematical
equation.
Fig 1.
2.1.2 Non functional requirements
o Reliability/Performance:
Users will be able to depend on the program, in that while in use it will not crash
and it will bring up the relevant information that it is required to produce
o Ease of use:
The program should be simple to use and easy to understand
o Maintenance:
The program will be easy to update and easy to fix if for some reason a problem
occurs.
o Style:
The simplicity of the design of the system will make it more user friendly. The
graphs and visualisations will be colourful but to the point. The data and
information will be clear, easy to read and understand
3 Research
Ireland’s electoral system is proportional representation by means of a single transferable
vote (STV) in multi-seat constituencies. Voters are asked to rank the candidates in order of
preference on there ballot paper. All constituencies have three, four or five seats. Small threeseater constituencies favour the larger parties, and it is generally accepted that the optimal
size for STV constituencies is at least five. There are 42 constituencies in total. 166
politicians can get elected in total to the Dáil Eireann. There are around 10 political parties
but the main 8 political parties are Fianna Fáil, Fine Gael, Labour, Progressive Democrats,
Green Party, Sinn Fein, Socialist and the Independent.
3.1 Outline of the procedure
o At the beginning of the count for a constituency, all valid ballot papers are
thoroughly mixed together and then sorted according to first preferences.
o If we denote the total valid poll by P and let N be the number of seats, then the
quota Q is calculated by the formula Q = 1+ P/N +1, where we round down if this
number is not an integer. This is the smallest number of votes that guarantees
election. If the number of votes for any candidates is equal to or greater than the
quota they are deemed elected.
o The surplus of an elected candidate is the number of votes by which that
candidate’s total number of votes, original and transferred, exceeds the quota.
o When a candidate is elected, the surplus ballots may be transferred to the remaining
candidates according to the next preference on the ballots.
o The ballots are physically divided into sub-parcels (literally different piles of
ballots). Some ballots may not have a next preference for a continuing candidate,
and these ballots are called non-transferable.
o Ballots that do have a lower preference for a continuing candidate are called
transferable.
o The general idea is that a surplus is transferred if and only if at least one of the
following conditions is met.
o If transferring the surplus could elect the highest remaining candidate.
o
If transferring the surplus could bring the lowest remaining candidate equal to or
above the second lowest remaining candidate.
o
If transferring the surplus could bring the lowest remaining candidate up to one
quarter of the quota (candidates whose total reaches that figure qualify for
reimbursement of some election expenses)
3.2 Elimination
If none of the three conditions for transferring a surplus are met for any of the surpluses or
the sum of the un-transferred surpluses, we eliminate the candidate with the lowest number
of votes. All the transferable votes of the eliminated candidate are transferred to the
remaining candidates according to the next preference. The non-transferable votes are
classified as “non-transferable not effective,” since they did not have any effect on the
election, and are set aside.
3.3 Filling last seats
After the final count, the candidate or candidates who have the highest votes among those
remaining will be deemed elected, even if they have failed to secure a quota
3.4 STV is Non-monotonic
One odd aspect of STV is that it is non-monotonic. This means that getting more votes may
prevent you from being elected. For example:
Three candidates from party X are fighting for the last seat in county Z. When X3 is
eliminated, the transfers are evenly split among X1 and X2 and X1 is elected. But X2 does
not like X1, and demands a recount. The recount shows that two X1 ballots had been placed
among the X2 ballots, so at the second to last count X1 actually has 7999 and X2 4000. But
when X2 is eliminated, it turns out that all the votes have X3 as their next preference, and X3
is elected!
4 Implementing the Technologies
4.1 Technology Consideration
There are many programming languages and other software available, in which we could
develop this project in. After some research and asking around we have come to the
conclusion that we will probably be using one of the following programs, python, asp.net, or
Microsoft visual studio. We will also have to develop a database to hold all the voting
information.
Python
Python was designed to be a highly readable language. It aims toward an uncluttered visual
layout, uses English keywords frequently where other languages use punctuation, and has
notably fewer syntactic constructions than many structured languages. The standard library is
particularly well tailored to writing Internet-facing applications, with a large number of
standard formats and protocols supported. It contains modules for creating graphical user
interfaces and can connect to relational databases. Python is a remarkably powerful dynamic
programming language that is used in a wide variety of application domains.
ASP.NET
ASP.net is a set of web application development technologies marketed by Microsoft.
Programmers can use it to build dynamic web sites, web applications and XML web services.
It is part of Microsoft's .NET platform and is the successor to Microsoft's Active Server
Pages (ASP) technology. Programmers can write ASP.NET code using any of the different
programming languages supported by the .NET Framework, usually C#, Visual Basic.NET,
or JScript .NET, but also including open-source languages such as Perl and Python.
ASP.NET has performance benefits over other script-based technologies because the serverside code is compiled to one or a few DLL files on a web server.
Microsoft Visual Studio
Microsoft Visual Studio is an integrated development environment by Microsoft. It helps
programmers create programs, web sites, web applications, and web services that run on
various platforms. Supported platforms include Microsoft Windows servers and
workstations, PocketPC, Smartphones, and World Wide Web browsers.
Visual Studio includes the following:
o
o
o
o
Visual Basic
Visual C++
Visual C#
Visual J#
Relational databases
Relational database is a database that conforms to the relational model. The term refers to the
database's data, and to the database's structure of that data, known as a schema. The software
used to create a relational database is called the Relational Database Management System
(RDBMS), but sometimes that software is mistakenly called the relational database.
An RDBMS is sometimes incorrectly called a relational database. But, strictly speaking,
Oracle, Microsoft SQL Server,PostgreSQL, and MySQL are not relational databases. Under
popular usage of the term, these software packages are called "Relational Database
Management Systems" (RDBMS), and as such they can be used to create relational databases
4.2 Possible extra functionality/ features
We are hoping to build a website for any user who would like to view the election results
online. This would have a list of constituencies, political parties, politicians. It will enable the
user to compare the results of this current election to the previous one. We would like to also
cover all the functionalities of the system we are building for the television station.
5 Project Management
5.1 Roles and Responsibilities
As this is a rather large project, we have decided to assign specific roles and responsibilities
to each team members.
Project Leader:
We have assigned our project supervisor Pat Byrne as our project leader. Her main roles
within the project will be:
o Set project goals
o Hold team meetings
o Approve all the project plans
o Resolve issues that can’t be resolved within the working team
o Monitor team progress
o Provide expertise and guidance when required
Team Members Roles:
All team members, Sandra and Damien, will be assigned equal roles within the project. Each
of us will be performing different tasks within the project, depending on our IT knowledge
but our work load will be shared equally throughout the project. Our main roles within the
project will be:
o Arrange regular team meetings
o Decide on what work needs to be done
o Give support and help to one another
o Keep each other up to date on current project progress
5.2 Risk Analysis
With all big projects there are certain obstacles or risks involved from the project being late
or unfinished. Here we have tried to for see what future risks might be involved in this
project, which should help us in the long run.
Time
If we don’t follow the plan that we have set out for ourselves we could run out of time to
finish this project, which would be a disaster. Other problems that might occur if we don’t
follow our time scale are that we might end up rushing certain key areas of the project which
could affect our possibilities of gaining a good grade. By setting reasonable deadlines and
objectives we should be able to tell whether we are on the correct path to achieving our goal.
Lack of skills
We may come up to a part of the project that both our knowledge and skill levels are of no
good to us, in that we might not have enough knowledge of certain software that is needed to
do the project or that to gain enough knowledge to use a certain program may take up to
much time within the project.
Resources
We may find out that after setting out our ideas as to how we want our program to work and
run, the required resources or software is not available out there. Hopefully this situation
should not arise if we do enough research.
Changes to plan or program functionality
At the minute we do not see any changes to the project, but one cannot disregard the
occurrence of these events happening in the future.
5.3 Scheduling
5.3.1 Work Plan
Since this is quite a large project, we came to the conclusion that a work plan would be
beneficial to us as we progress through the project. This plan will be updated of course as we
progress through the days and weeks of the project.
Task
Week
Number
1
1-3
Phase
Deliverable
General Research
Constructing PDD
2
3-4
3
4-5
4
5-6
5
6-7
6
7-8
7
8-10
8
10-11
9
25/09/06 - 20/10/06
Project
Definition
Document
Researching technology
requirements
Designing the web page
Start – End Date
20/10/06 - 27/10/06
10/30/06 - 3/11/06
Web Page
8/11/06 - 15/11/06
Design phase 1
16/11/06 - 24/11/06
Study
27/11/06 - 1/12/06
Exams
4/12/07 - 15/12/06
Design phase 2
19/12/06 - 21/12/06
Holidays
22/12/06 - 8/01/07
Design phase 3
9/01/07 -14/02/07
Testing
15-02/07-14/02/07
Gathering information for
final report
15/03/07 - 21/03/07
11-13
13-17
10
9
18-21
10
21-22
11
23
12
24
13
25
Fig 2.
22/03/07 - 25/03/07
Bench demonstration
Final Project
Report
Documentation
Presentation
Viva voce demonstration
Viva Voce
02/04 - 06/04/07
Draft final year report
26/03/07 - 30/03/07
5.3.2 Gantt chart
The Gantt chart (fig. 3) is a breakdown of the tasks to be done, the time to be spent on them
and the milestone deliverable dates.
Fig 3.
5.3.3 Work breakdown structure
Election Data Presentation
1.1 Define Project (PDD)
2.1 Election Procedure
2.2.1 Research into
programming Languages
3. Design
2. Research
1. Project Management
1.2 Delegate
Workload
3.1 Program Architecture
3.2 Design Database
3.3 Graphical Design
2.2 Technology Research
2.2.2 Research of Database
technologies
2.2.3 Animation programs
4.1 Functionality Testing
Fig 4.
5.3.4 Milestones
Important dates for presentations and submissions:
Milestone:
Project Definition Document
Web Page Summarising Project
Final Project Report
Project Bench Demonstration
Project Viva Voce
4. Testing
Due Date:
Friday, 27th October 2006
Friday, 10th November 2006
Friday, March 23rd, 2007.
Week Beginning March 26th, 2007.
Week Beginning April 2nd, 2007.
4.2 Reliability Testing
6 References
6.1 References:
We gathered our information from different online sites.
1: Irish election database
http://election.polarbears.com/default.htm
2: ElectionsIreland.org
http://www.electionsireland.org/
3: The Oireachtas
http://www.oireachtas.ie/
4: Wikipedia
http://en.wikipedia.org/wiki/Main_Page
5: ASP.NET
www.asp.net/
6: Python
www.python.org/
Download