Software Engineering Assignment #2
Requirements and Design
Due in 2 parts, October 1 and 8, 2014
The municipality of North Hatley will be holding an election for
mayor in October 2016. This will be done by secret ballot. The
candidate receiving the most votes is elected, there is no run-off.
In case of a tie, a name will be drawn from a hat (Municipal code
provision! This actually happened in North Hatley several years
ago.) The list of voters is drawn up by the municipal
secretary-treasurer according to municipal code regulations.
Meanwhile, There is the possibility of a referendum on a new condo
development, this is an opportunity to test changes in voting
procedures.
The scenario for conducting the vote is as follows:
Voters will come to the town hall on election day. There, there
will be 3 election officials. As well, one observer is allowed for
each candidate, the observer is only allowed to watch that no
irregularities occur, but not allowed to influence the voters. The
voter will identify her- or himself to an official, who will cross
that person's name off the list (one person, one vote) and give a
ballot to the voter. The voter will go behind a screen, mark a
vote for one candidate (or yes or no to a
question) , fold the ballot, and then deposit it in the ballot
box, and then leave. At the end of the day, the officials will
open the ballot box, count the ballots, and determine the winner.
Now, the council, interested in better participation in democracy,
wants your advice about extending the vote to on-line participation,
since many North Hatleyites are part-time residents, working in
Montreal or spending the winter in Arizona. Your job is to analyze
the requirements for the on-line system, and propose a design. You
must respect the following:
- One person, one vote. Prevent anyone from voting both on-line
and in person, prevent anyone form voting more than once
on-line.
- Secret ballot. Nobody should be able to determine how Joey
LeBaron (grocer) voted.
- Recount: The number of votes received must equal the number of
people "crossed off" the list electronically, and equal the sum
of the votes for each candidate plus "spoiled ballots" (no
identifiable vote).
What to do:
Requirements, due October 1, Wednesday, Beginning of class
Please write down what you think are the requirements for (the
on-line portion of) the vote. What must be or should be, provided.
Requirements can be thought of as Safety (nothing bad should
happen), Liveness (something good must happen) and Non-Functional
(constraints from the environment, such as, "The Internet is
required for this.")
Design, due October 8, Wednesday, Beginning of class
- Describe 2 or more scenarios, such as:
- A scenario for how Eric Molson (absentee property owner)
would vote, and how the vote would be recorded.
- An abnormal scenario, in which Sad Gabr (former property
owner) tries repeatedly to vote.
- Extract the classes from these scenarios (scenaria?)
- A sequence diagram and interaction diagram (or data flow
diagram) for each of these scenarios.
- Class diagram or CRC Cards showing what your classes need to
do, and how they interact (collaborate)
- Risk analysis: How feasible is this system, what are the
potential problems?
- Can this system be phased in in stages?
- Testing: How can the system be tested before the election?