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)
- Voters will be able to securely log into the system with a username/password
- Voters will be able to see the elections that they are allowed to vote in
- Voters will be able to see the candidates in an election that they are allowed to vote in
- Voters will be able to vote in elections that they have not yet voted in
- Voters will be able to see the result of an election that they are allowed to vote in
Fault-Tolerance Requirements (ft)
- A server should automatically restart if it fails
- A client should recognize a server being down and failover to another server within 1 minute
- A voter will not be able to vote twice
- A client, or a transaction, is unaffected by a single server failure
- The system is available 24x7
Real-Time Requirements (rt)
- All requests, except entering votes, will be served within 5 seconds
- Entering votes will complete within 10 seconds
High-Performance Requirements (hp)
- The system will be able to service 20 concurrent users
- The system will be able to run up to 20 simultaneous elections with 20 candidates each
- The system will support up to 100 votes (transactions) per second