Specifications

From: VanL <vlindberg_at_verio_dot_net>
Date: Mon Aug 11 2003 - 11:16:15 CDT

EVM Specifications and Requirements

1. Software

1.1. Open Source

The software for the voting machine shall be completely open source.

Rationale: The availability of source code for the voting machine:
Reduces costs for governments
Allows the software code to be audited for bugs and security threats
Increases public trust in the correctness of the software

1.2. High-level Language

The software for EVM shall be in a high-level language.

Rationale:
High-level languages allow greater code transparency and auditability
HAVA guidelines call for a "high level language."

1.3. Model-View-Controller Organization

The source code shall follow a model-view-controller (MVC) organization.

Definitions:
View: The view manages the graphical and/or textual output to the portion of the bitmapped display that is allocated to its application.
Controller: The controller interprets the mouse and keyboard inputs from the user, commanding the model and/or the view to change as appropriate.
Model: the model manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller).

(From "Applications Programming in Smalltalk-80: How to use Model-View-Controller" http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html )

Rationale:
Only one model shall implement the program logic, regardless of the view requested.
Multiple views into the data will be required.

1.4. Security of the Model Against Attack

The Model shall be designed such that the security of the data can be reasonably guaranteed against attack by a person or persons having access to the software in its usual deployment at run-time.

1.5. Security of the Model Against Failure

The Model shall be designed to prevent data loss in the event of any reasonable failure of power or hardware.

1.6. Integrity of Data Flow Through the Controller

The Controller(s) shall be designed such that the input from any View is correctly transmitted to the Model.

1.7. Multiple Views

The EVM software shall allow multiple Views.

Specified Views:

The Default Local View. This view presents an on-screen single page ballot designed for voting at a polling place.
The Local View (Large). This view increases text-sizes and converts the on-screen ballot from a single to multiple screens.
The Local View (i18n). This view changes the language for the on-screen single page ballot.
The Local View (Large, i18n). This view changes the language for the on-screen ballot, increases text sizes, and converts the on-screen ballot from single to multiple screens.
The Remote View. This view presents an on-screen view, essentially identical to the Default Local View, but suitable for attended remote voting.
The Remote View also has Large and i18n sub-views, which differ from the corresponding Local Views only in that they can be securely remotely projected for attended remote voting.

2. PC

2.1. Off-The-Shelf

3. Paper Ballot

==================================================================
= The content of this message, with the exception of any external
= quotations under fair use, are released to the Public Domain
==================================================================
Received on Sun Aug 31 23:17:07 2003

This archive was generated by hypermail 2.1.8 : Sun Aug 31 2003 - 23:17:17 CDT