Online Polling System.pdf (Size: 34.94 KB / Downloads: 1313)
src source code.zip (Size: 18.71 KB / Downloads: 772)
Vikas D -
Mahesh Kumar Reddy K -
This document is the Software Requirements Specification for the "Online Polling System" which is being developed as part of an academic course. This document is intended to provide a detailed specification of the requirements for the developers and serve as a means to clearly outline the project features. The general requirements give an overview of the user's characteristics, product perspective, and overview of functional and data requirements. The specific requirements give a more refined version of the general requirements.
This software is being developed for use by everyone with a simple and self explanatory GUI. This is a software that can be used by people to vote in an election. All the user must do is login and click on his favorable candidates to register his vote. The development and testing is done on Ethernet.
1.3 Definitions, Acronyms, and Abbreviations.
GUI - Graphical User Interface.
Java - An Object Oriented Programming language with support for easy to handle GUI.
JVM - stands for Java Virtual Machine, which interprets and executes Java byte code.
JRE - stands for Java Runtime Environment. It is an implementation of JVM for a particular environment.
JVM specification - http://java.sun.com/docs/books/jvms/
An Integrated approach to Software Engineering, by Pankaj Jalote.
1.5 Overview of the Document
Chapter 2 of this document gives a general description of the product along with any assumptions made during the process of software analysis.
Chapter 3 gives a list of more specific requirements like External Interface, etc.
Chapter 4 lists various quality attributes that have to be satisfied by the final Software system
2.1 Product Perspective
The product is an election conducting tool with a simple GUI. The product is developed using Java. The product is stand-alone, however it requires Java Virtual Machine (JVM).The requirements are based on the requirements that JVM/JRE needs in order to function properly.
2.2 User Characteristics
Users are considered to be technically novices. The minimum requirement of being able to use a computer is expected. The user has to click against the favorable candidate on the GUI.
2.3 Product Functions
The product has a server back-end which takes care of authenticating the users, maintaining necessary data structures. The GUI at the server's end enables creating the polls on behalf of the client. The users must connect to the server to authenticate their identification against the password and then vote using the GUI at their end.
2.4 Overview of Data Requirements
The internal memory requirement will be constant or linearly dependent on the number of users depending on the provision of changing the vote at a later time. In such a case the actions will be stored in a data structure which will be referred to when needed. The external data about the candidates (with photos) and the posts or the poll questions and the answers will be given as input only at the server end.
2.5 Assumptions and Dependencies
The user is assumed to have JVM on his system irrespective of its hardware and software configuration. The other requirements are strongly design based and can be only be made concrete in the design stage. We also assume that all the clients running this software are not blocked by firewalls, proxies, etc.
3.1 External Interface
There are two external interfaces - the GUI's at client end and the user
The GUI at the server's end enables the client to build the polls. Inputs through the GUI:
- Name of the post for election (Poll Question)
- Name of the candidates along with photo (Poll options to choose)
There will be no limit on the no. of posts or the no. of candidates for each post.
The GUI at the user's end will allow the user to vote.
-Initially the user will be asked for authentication details.
-After being verified as a valid user he will be given a Post and list of candidates for that post as options to vote.
-He can vote by clicking against the candidate and confirming it. This is done for each post and then he is given a message that his vote has been registered.
3.2 Functional Requirements
Multiple users: The server end software (client) must be able to end multiple users at a time and handle the modification of data structures in an error free manner as every user will need access to the data structures when ever necessary.
Secure Channel: Both the server-end and the user-end softwares must make sure that data sent across them is secure by choosing secure and reliable protocols and encryption based interaction.
3.3 Quality Attributes
The channels that will be opted for communication between the server-end and user-end of the software shall be encryption supported secure channels.
Our product must perform consistently in terms of handling multiple users and recording their options as well as allowing them to change without any errors correctly at a later stage.
We will be using the Java language which is a pure OOP language to code our product. To improve the readability of the code, we are imposing a coding style within our own group of using indentation to show structure and having appropriate comments.
Since Java code produces platform independent Java byte code on compilation, our Software will be portable to any environment as along as it has a JRE installed.
The application will be easy to use. Since the interaction is only through the GUI's, which are to the maximum extent self explanatory, there will be no problem regarding understandability of the software for the client as well as the users.
The software does not make any assumptions on the size of the voter base and the number of simultaneous active voters. But this is constrained by the resources made available to the server component. Thus any constraints in the resources available like amount of Physical Memory and Network Bandwidth will impact the performance and also the scalability of the system.
## Check if JVM is installed.If it is not installed download from
##Java home page and install the one suitable for the system platform
#To Install the server component(./server) on the server side.
#To Install the client component(./client) on the each client computer.