EAC Decision on Request for Interpretation 2010-08

2005 VVSG Volume I, Section 5.2.7.a.ii 

Date: 

November 22, 2010 

Question(s): 

For documenting the calling sequence of units, are manufacturers required to list every 

unit in the order in which it is called, or can a “first use” listing of units called be used to 

meet this requirement? 

Sections of Standards or Guidelines: 

2005 VVSG Volume I 5.2.7.a.ii Comment Conventions 

Voting system software shall use the following comment conventions: 

a. All modules shall contain headers. For small modules of 10 lines or less, the header 

may be limited to identification of unit and revision information. Other header 

information should be included in the small unit headers if not clear from the actual lines 

of code. Header comments shall provide the following information: 

 ii. Other units called and the calling sequence 

Discussion: 

The intent of the requirement is to ensure code is documented in a manner which allows a 

code reviewer to have all information necessary for assessment of a module under 

review. The requirement to list the units called by a module is clear, however the calling 

sequence does not define whether each unit must be listed every time it is called. Strict 

interpretation of this requirement could result in a module’s header having multiple 

listings for the same called unit. 

Other industries require the method of documenting units called and calling sequence be 

described in their internal coding standards, although variations exist in how this is 

accomplished. The following are three possible methods of meeting this requirement: 

Each Use – A called unit is listed in a module’s header each time it is called. The calls 

are listed in order of occurrence. This remains true even if the sequence is repeated. 

 All called units must be listed 

 One listing for every call 

 In the order of occurrence 

 1 
 2 

First Use Multiple – A called unit is listed in a module’s header with a single notation of 

the unit if multiple calls are made in succession. If a module is called multiple times but 

not in succession, it must be listed again. The calls are listed in order of occurrence. 

 All called units must be listed 

 One listing if multiple calls to the same unit are made in succession 

 In the order of occurrence 

First Use Singular – A called unit is listed in a module’s header only once, regardless of 

the number of times it is called. The calls are listed in order of occurrence. 

 All called units must be listed 

 One listing for each unit called with no repeated listings 

 In the order of occurrence 

See the table below for an example of each method: 

Header: Each Use method Header: First Use Multiple Header: First Use Singular

VotingSystem.getInfo() VotingSystem.getInfo() VotingSystem.getInfo() 

VotingSystem.getInfo() SystemView() SystemView() 

VotingSystem.getInfo() BallotView() BallotView() 

SystemView() VotingSystem.getInfo() ContestView() 

SystemView() ContestView() CandidateView() 

SystemView() VotingSystem.getInfo() 

BallotView() CandidateView() 

VotingSystem.getInfo() VotingSystem.getInfo() 

ContestView() BallotView() 

VotingSystem.getInfo() VotingSystem.getInfo() 

CandidateView() 

VotingSystem.getInfo() 

BallotView() 

VotingSystem.getInfo() 

Conclusion: 

2005 VVSG, Volume I 5.2.7.a.ii can be met by any of the proposed methods in this RFI. 

The method the manufacturer chooses to list the calling sequence must be consistently 

maintained throughout each voting system component. The method of listing the calling 

sequence must be notated in the manufacturer’s coding convention. If a First Use or Each 

Use method is implemented, all the units called required to review the source code 

module will be listed. 

Effective Date: 

For all systems without an approved Test Plan.