Sei sulla pagina 1di 9

Principles of Software Engineering CS340

Software Requirements Specification for

Online Polling System

Group No. : 3 K. Mahesh Kumar Reddy (CS04B014) Vikas Dosala (CS04B038)

-1-

Contents
1 Introduction 1.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Definitions, Acronyms, Abbreviations . . . . . . . . . . . . . . . . . . . . . . . 1.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Overview of Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3

3 3 3 4 4

2 General Description 5 2.1 Product perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 User Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Product Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 Overview of Data Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5 Assumptions and Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Specific Requirements 7 3.1 External Interface Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Quality Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Change Log

-2-

Chapter 1 Introduction
1.1 Purpose
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 users characteristics, product perspective, and overview of functional and data requirements. The specific requirements give a more refined version of the general requirements.

1.2 Scope
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.

-3-

1.4 References
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

-4-

Chapter 2 General Description

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.

-5-

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.

-6-

Chapter 3

Specific Requirements
3.1 External Interface
There are two external interfaces the GUI's at client end and the user end. 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.

-7-

3.3 Quality Attributes

3.3.1 Security The channels that will be opted for communication between the server-end and user-end of the software shall be encryption supported secure channels. 3.3.2 Reliability 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. 3.4.3 Maintainability 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. 3.4.4 Portability 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. 3.4.5 Usability 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. 3.4.6 Scalability 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.

-8-

Change Log: Version 1.0: March 07, 2007, Initial Release

-9-

Potrebbero piacerti anche