University of Zimbabwe

Computer Science Department
1. Introduction
1.1 Background
The project "E-Voting Software" aims at making the voting process easy in
cooperative societies. Presently voting is performed using ballot paper and
the counting is done manually, hence it consumes a lot of time. There can
be possibility of invalid votes. All these makes election a tedious task. In
our proposed system voting and counting is done with the help of
computer. It saves time, avoid error in counting and there will be no
invalid votes. It makes the election process easy
1.2 Statement of Problem or Nature of the Research Problem
Due to the continuous increase in population, the number of people taking part in the
voting exercise is increasing. The time taken to save these numbers and publish the results
has become a serious problem to the voting committee. This system is mainly being
designed in order to mainly make the voting process faster, easier and more accurate by
replacing human input with computer input.
1.3 Previous and Current Work, Methods and Procedures
Previously voting was done through the use of ballot boxes and ballot papers where
voters would actually write on the ballot paper indicating their candidate choice for a
certain position. This was then followed by physical counting and then publication of the
results. This process has a lot of drawbacks because the process is slow and there is a high
probability of human error. In order to counter this problem human input should be
replaced with computer input as there will no longer be human error and the speed of the
process will increase. An algorithm will be design that will do all the voting processes
that is from registration of voters, actual voting process, counting of results and then
publication of results.
1.4 Project Description/ Novel Characteristics of the Research

The only human effort that is going to be seen is that of the administration who will be assisting voters who will not be understanding how this new voting technology works and changing the mode of the system from registration. Introduction Give a brief introduction about what this chapter covers. control all the actual voting and then it will count and publish results. constitutional amendments. The system will do the registration of voters and keep the records in a database.E-Voting system is a system that is designed to do all the processes of voting without human interruption. 1. 2.6 Justification of Project/ Rationale/ Significance of project The main objective of this voting system is to allow voters to exercise their right to express their choices regarding specific issues. 1. System Functional Specification or Problem Definition . pieces of legislation. System Specification 2.1. 1. voting. CHAPTER TWO 2. citizen initiatives .8 Organisation of the project/ Summary / Presentation of Research This section gives an overview of the whole project that is what is going to be covered in each of the foregoing chapters. This is all to increase confidence in the users that everything in the voting process is being done accurately and fairly.5 Research Purpose/ Research Objectives/ Aims We are to design a voting system that:  ensure quick and precise biometric voting identification  provide a simple and user-friendly interface for registering and identifying voters  prevent duplicate registers  is easily scalable  provide a clear and accessible audit trail  facilitate interoperability between agencies for database consolidation and maintenance 1. recalls and to choose their government and political representatives.2. Technology is being used more and more as a tool to assist voters to cast their votes. counting and then publication of results.7 Scope of the Study This section specifies the system boundary that is it clearly spells out what is part of the system and what is not part of the system.

All the process above mentioned should be done fast 2.1. • Monitor : 15 VGA Colour. Storage of the election data depends on access to a large enough databases to hold all of the vote information. • Ram : 512 Mb.1.3 System Evolution The software should allow voters to log in to the system using their usernames and passwords which they create during registration.2 Non-Functional Requirements System requirements Hardware Requirements: • System : Pentium IV 2. • Coding Language : PHP • Data Base : WAMPSERVER 2. To check for duplication. : 40 GB. To calculate votes for each candidate. To calculate the percentage of total votes.4 GHz.5 2. To calculate percentage of votes for each candidate.1        Functional Requirements To count the total number of votes. along with constant access to the internet for students throughout the election.44 Mb.2. The voting officials . To find the winning persons in each section.1. Vote transfer is dependent on access to fast and reliable servers. Software Requirements: • Operating system : . The assistance of Disability Services is depended on for helping stuff whose disabilities hinder their ability to cast their votes successfully and confidently. • Mouse : Logitech.Windows XP. • Hard Disk • Floppy Drive : 1.

the available resources. 2. Thus. The officials are assumed to continue to be interested in the development of the system and to be present throughout its implementation in order to insure that their standards are being met. 2. This section is required for all programs that obtain input from their environment non interactively. functions prototyped and results of the prototyping process. user requirements and other limitations in implementing the system. 2. The developer must realise that that the boundary may or not may enclose all requirements. This section is required for all programs that obtain input from their environment non interactively.6 User Interface Design Give a detailed description of the system user interface including diagrams of all the ``work'' windows (or screens or panes). 2.9 System Data Files Give a precise description of the data files created or maintained by the system.1. Correlate the outputs with the inputs and the functions performed. The security of the system as a whole depends on reliable co-workers.4 System Scope This stage involves establishing the system boundary. .1. Give examples. browsing or viewing.8 Other User Outputs Give a precise description of the other outputs of the system including syntax and semantics. Those overseeing the main terminal and the paper trail will need to protect the election information. Other people who have access to security information are assumed to be trustworthy enough not to leak information to possible attackers. A work window is one that contains data the user is editing. 2. When setting up a system boundary the developer must consider among other things.1.1. for example. Further this section must give a description of system components and the system environment 2.5 Prototyping Developers may use this technique if they want to validate the requirements. a table of operations for each work window. you would include files in a database and you would exclude executable files and text files. The developer must articulate the goals of prototyping.1.1. Give examples.7 Other User Inputs Give a precise description of the other inputs to the system including source (human or storage) syntax (format) and semantics (meaning). Prototyping involves developing a quick and dirty but still convincing model of the final system. This section is required for all programs that engage the user interactively. A system boundary depicts the parts of the original requirements that are to be depended on to provide information on the nuances of the election. and precise descriptions of each operation that the user would regard as unfamiliar.

For feasibility analysis. Thus the developed system as well within the budget and this was achieved because most of the technologies used are freely available. some understanding of the major requirements for the system is essential. The amount of fund that the company can pour into the research and development of the system is limited.10 User Interface Specification  Interface Metaphor Model  User Screens/Dialog  Report Formats/Sample Data  On-line Help Material  Error Conditions and System Messages  Control Functions 2. Only the customized products had to be purchased. Any system . This is to ensure that the proposed system is not a burden to the company. Feasibility Study The feasibility of the project is analysed in this phase and business proposal is put forth with a very general plan for the project and some cost estimates.2. 2.1. the technical requirements of the system. The expenditures must be justified.1 Economic feasibility This study is carried out to check the economic impact that the system will have on the organization.3.3.3. During system analysis the feasibility study of the proposed system is to be carried out. that is.2 Technical Feasibility This study is carried out to check the technical feasibility. Three key considerations involved in the feasibility analysis are  ECONOMICAL FEASIBILITY  TECHNICAL FEASIBILITY  SOCIAL FEASIBILITY 2.

4. The user must not feel threatened by the system. Modifiability 2.5.5 Conclusion Give a chapter conclusion CHAPTER THREE . 2. which is welcomed. peripheral device usage) Reliability  Description of Reliability Measures (accuracy. error logging and reporting. etc. precision. consistency.4.2 2. This will lead to high demands on the available technical resources. The developed system must have a modest requirement. 2.3 2. failure consequences. instead must accept it as a necessity.developed must not have a high demand on the available technical resources. size. The level of acceptance by the users solely depends on the methods that are employed to educate the user about the system and to make him familiar with it. This will lead to high demands being placed on the client.4. Portability 2.4. manual and automatic recovery procedures)  Allowable/Acceptable Error/Failure Rate Security  Hardware Security  Software Security  Data Security  Execution Security (user validation) Maintainability 2.1 2. This includes the process of training the user to use the system efficiently. 2. as only minimal or null changes are required for implementing this system. reproducibility. Social Feasibility The aspect of study is to check the level of acceptance of the system by the user. as he is the final user of the system.)  Error/Failure Detection and Recovery (failure modes.4 System Performance Requirements Efficiency (speed. His level of confidence must be raised so that he is also able to make some constructive criticism.

Further the developer should analyse both the existing and new system with the aim of obtaining a fuller understanding of the system. 3.1. state transition diagrams. sequence diagrams. 3. You should correlate system functions with system structure and interface specifications. project network charts. data dictionary. decision tables and trees. At this stage. Introduction Give a chapter introduction 3. Each contribution must be accompanied by appropriate references to be listed in the reference section. The developer must not use technical tools in the analysis.1. Literature Review This is a historical or conceptual survey of relevant work done in the area by previous system developers. The developer must identify existing systems that were developed to address the current problem and how they are inadequate or what are their weaknesses. class diagrams. Data Flow Diagrams (level 1 and 2 DFDs) DFD(Data Flow Diagram) 0-Level (Context Level) DFD . petri nets.4.3. Project planning software may also be used.2. Further the developer must identify process models that that will be used and a justification must be given as to why certain process models have been chosen. Conclusion Give a chapter conclusion CHAPTER FOUR 4. Introduction Chapter introduction 4. use case diagrams. System Architecture 4. Gantt charts etc. ERDs. incremental etc. Be sure to choose a process model that suits your project.1.3. Students can also using project planning tools such as bar charts.2. System Analysis and Design This is a top level preliminary or provisional indication of the proposed system architecture and flow. Project planning and Literature Review 3. The user might choose process models such waterfall. spiral.2. Project planning and scheduling The project developer must clearly articulate the deliverables and milestones. The developer can use questionnaires or interviews or both when investigating about the system. the developer can make use of the following tools: dataflow diagrams. 4.

0.0 Polling Process Person Login User-Login 1. of votes Percentage of all votes Registratio nn User User Details Details TotalCandidateofVot e Candidate name User Details Poll Answer User Details Admin Login Process Home TotalCandidateofVot e .User 1-Level 1.0 DFDProcess System 1.0 Login Process Login Admin User Login 2-Level DFD Total No.

3. The most appropriate way is to come up with data dictionary for each and every technique that the developer would have used. Result of Candidate votes Admin User Details Percent Candidate 5. Entity Relationship Diagram This is a conceptual model of a system showing the entities and their attributes as well as the relationships between or among entities.3. use or contain other units.1.3.4. Other User Output Specification 4. Source of Input Data (NOT input device) 4. the name of the type of the data. The data dictionary should be part of every project. for each data item. and a definition of the data item in the form of either a symbolic expression or a precise description.1.2. its identifier. Identification of Input Data 4. Data Format/Syntax any abbreviation used instead of the identifier.3 Output Medium and/or Device . 5.3. System Structure Chart(s) This is a (set of) chart(s) showing the functional units of the system hierarchically organized to show which units call.1. Legal Value Specification 5.3.1. At a minimum it contains. Each interface between two units (a call) is annotated with small arrows and data item labels to show the data exchanged between the units.5.3.1. 4.2.3. Admin database 5. Identification of Output Data Destination of Output Data (NOT output device) Other User Input Specification 5. System Data Dictionary This is a comprehensive dictionary of all the data items that appear in the system data flow diagrams and the structure charts.1. System Data Structure Specifications _______________ Input Medium and/or Device 4. Equipment Configuration Describe the equipment you will use to support the operation and development of your system.

3.3. Introduction Chapter introduction 5. file organization. Module Functional specification 4. decision table.2 Module operational Specification 4. access. Conclusion Chapter conclusion CHAPTER FIVE 5 Implementation and Testing 5.1.3. updating.3.3. etc.3. rationale.1. using) 4.1. System Data Base/File Structure Specification Description of Module Operation 4.1. frequency) 4.2 (Sub) systems accessing the Data Base (creating. access. pseudo code.1 Locally Declared Data Specifications (variable dictionary) 4.4 Physical File Structure (storage device.2. etc) 4. blocking.3.) 4.4 4.3. . using.3.5 Data Base Management Subsystems Used (internal or external) 4.4.1 Functions Performed 4.3 Module Limitations and Restrictions arguments/global 4.3. rationale..4.2.3 Logical File Structure (record formats.4. organization.6 Data Base Creation and Update Procedure (if NOT by system) 4.4. access methods.3.2 Module Interface Specifications (input/output variables/files) 4.4. System Internal Data Structure Specification Choosing the language List the programming languages or scripting languages you have used for the implementation of your project and give reasons for choosing each language.2 Algorithm Specification (flowchart.3. examples) Module Design specifications 4.3. organization. Logical Structure of Data (format. Modules Accessing Structures (creating.3.5.4. examples) updating. Identification of Data Structures 4.4.5 Output Format/Syntax Output Interpretation (meaning of output) of Data Base/Files 4.4.

8.6. Protocol Study 5. Interviews Conclusion 5. Summary Problems Encountered and Solved Suggestions for Better Approaches to Problem/Project Suggestions for Future Extensions to Project REFERENCES APPENDICES Any other attachments .7. Language specific algorithm Efficiency Correctness Documentation of code Variables 5. 5. 5.8.2. Indicate the operating system used and web servers and other web authoring tools used and do not forget to justify why you chose those tools.4. User Survey 5.8.4. Items/Functions to be Tested 5. 5.8. 6.8. Evaluation of User System 5. Description of Test Cases 5.8. 6. 6. Justification of Test Cases 5. Test Run Procedures and Results 5.8. Choice of environment Indicate where applicable the databases that were used and justify why you chose for instance Oracle instead of MySQL or vice versa. Chapter conclusion CHAPTER SIX 6. Real Time Monitoring 5. Conclusions 6.5.1. Discussion of Test Results 5.8.4. System verification/ testing 5.6.

Program Listing User manual CDs or DVDs containing the system .