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:
  1. One person, one vote. Prevent anyone from voting both on-line and in person, prevent anyone form voting more than once on-line.
  2. Secret ballot. Nobody should be able to determine how Joey LeBaron (grocer) voted.
  3. 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

  1. Describe 2 or more scenarios, such as:
  2. Extract the classes from these scenarios (scenaria?)
  3. A sequence diagram and interaction diagram (or data flow diagram) for each of these scenarios.
  4. Class diagram or CRC Cards showing what your classes need to do, and how they interact (collaborate)
  5. Risk analysis: How feasible is this system, what are the potential problems?
  6. Can this system be phased in in stages?
  7. Testing: How can the system be tested before the election?