Requirements

Traceability

The requirements of each milestone are numbered and each milestone has an abbreviation (b, ft, rt, or hp). When tracking requirements, use the notation

abbreviation-number

to unambiguously refer to a requirement. For example,

b-2

is the requirement "Voters will be able to vote in elections they have not yet voted in."

Baseline Requirements (b)

  1. Voters will be able to securely log into the system with a username/password
  2. Voters will be able to see the elections that they are allowed to vote in
  3. Voters will be able to see the candidates in an election that they are allowed to vote in
  4. Voters will be able to vote in elections that they have not yet voted in
  5. Voters will be able to see the result of an election that they are allowed to vote in

Fault-Tolerance Requirements (ft)

  1. A server should automatically restart if it fails
  2. A client should recognize a server being down and failover to another server within 1 minute
  3. A voter will not be able to vote twice
  4. A client, or a transaction, is unaffected by a single server failure
  5. The system is available 24x7

Real-Time Requirements (rt)

  1. All requests, except entering votes, will be served within 5 seconds
  2. Entering votes will complete within 10 seconds

High-Performance Requirements (hp)

  1. The system will be able to service 20 concurrent users
  2. The system will be able to run up to 20 simultaneous elections with 20 candidates each
  3. The system will support up to 100 votes (transactions) per second