Home > Software Requirements Specification Template

Software Requirements Specification Template

Page 1
Drupal Survey Software Requirements Specification 1.0 29/10/2009 Chris Pryor Principal Project Manager
Software Requirements Specification Survey Module

Page 2
Revision History
Date Description Author Comments 5/11/2009 Version 1 Chris Pryor draft
Document Approval
The following Software Requirements Specification has been accepted and approved by the  following: Signature Printed Name Title Date Software Requirements Specification Survey Module

Page 3
Table of Contents
REVISION HISTORY................................................................................................................................................II DOCUMENT APPROVAL.........................................................................................................................................II 1. INTRODUCTION.....................................................................................................................................................1 1.1 PURPOSE..................................................................................................................................................................1 1.2 SCOPE.....................................................................................................................................................................1 1.3 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS............................................................................................................1 1.4 REFERENCES............................................................................................................................................................1 1.5 OVERVIEW...............................................................................................................................................................1 2. GENERAL DESCRIPTION....................................................................................................................................1 2.1 PRODUCT PERSPECTIVE..............................................................................................................................................1 2.2 PRODUCT FUNCTIONS................................................................................................................................................2 2.3 USER CHARACTERISTICS............................................................................................................................................2 2.4 GENERAL CONSTRAINTS.............................................................................................................................................2 2.5 ASSUMPTIONS AND DEPENDENCIES..............................................................................................................................2 3. SPECIFIC REQUIREMENTS................................................................................................................................2 3.1 EXTERNAL INTERFACE REQUIREMENTS.........................................................................................................................2 3.1.1 User Interfaces.............................................................................................................................................2 3.1.2 Hardware Interfaces....................................................................................................................................2 3.1.3 Software Interfaces......................................................................................................................................2 3.1.4 Communications Interfaces..........................................................................................................................3 3.2 FUNCTIONAL REQUIREMENTS......................................................................................................................................3 3.2.1 Create Drupal Survey Node.........................................................................................................................3 3.2.2 Update Drupal Survey Node........................................................................................................................3 3.2.3 Create Survey Item Node.............................................................................................................................3 3.2.4 Update Survey Item Node.............................................................................................................................4 3.2.5 Add an Item to a Survey...............................................................................................................................4 3.2.6 Reorder an Item in a Survey.........................................................................................................................4 3.2.7 Remove an Item from a Survey.....................................................................................................................4 3.2.8 Add an Item to a Section Item (including derivatives  Loop and Compound Page)..................................5 3.2.9 Reorder an Item in a Section Item (including derivatives  Loop and Compound Page)............................5 3.2.10 Remove an Item from a Section Item (including derivatives  Loop and Compound Page)......................5 3.2.11 Invite Users to a Survey.............................................................................................................................5 3.2.12 Start User Interview...................................................................................................................................6 3.2.13 Process Survey Item...................................................................................................................................6 3.2.14 Go to next Survey Page..............................................................................................................................6 3.2.15 Check Question Progress...........................................................................................................................7 3.2.16 Download Data..........................................................................................................................................7 3.3 USE CASES..............................................................................................................................................................7 3.3.1 Use Case #1..................................................................................................................................................7 3.3.2 Use Case #2..................................................................................................................................................7 3.4 CLASSES / OBJECTS..................................................................................................................................................7 3.4.1 Survey...........................................................................................................................................................7 3.4.2 Item (template).............................................................................................................................................8 3.4.3 Response List................................................................................................................................................8 3.4.4 Response Container (child of Item) (template)............................................................................................9 3.4.5 Question (child of Response Container)......................................................................................................9
Software Requirements Specification Survey Module

Page 4
3.4.6 Grid Question (child of Question).............................................................................................................10 3.4.7 Text Substitute (child of Response Container)...........................................................................................10 3.4.8 Grid Text Substitute (child of Text Substitute)...........................................................................................10 3.4.9 Mask (child of Text Substitute)...................................................................................................................11 3.4.10 Grid Mask (child of Grid Text Substitute)...............................................................................................11 3.4.11 Skip (child of Text Substitute)..................................................................................................................11 3.4.12 Grid Skip (child of Skip)...........................................................................................................................11 3.4.13 Section (child of Item)..............................................................................................................................11 3.4.13 Loop (child of Section).............................................................................................................................12 3.4.13 Compound Page (child of Section)..........................................................................................................12 3.4.14 Instruction (child of Item)........................................................................................................................12 3.4.15 Clear Mask (child of Item).......................................................................................................................12 3.4.15 Survey End (child of Instruction).............................................................................................................13 3.4.16 Question Mask (child of Mask)................................................................................................................13 3.5 NONFUNCTIONAL REQUIREMENTS............................................................................................................................13 3.5.1 Performance...............................................................................................................................................13 3.5.2 Reliability...................................................................................................................................................13 3.5.3 Availability.................................................................................................................................................13 3.5.4 Security.......................................................................................................................................................13 3.5.5 Maintainability...........................................................................................................................................13 3.5.6 Portability..................................................................................................................................................13 3.6 INVERSE REQUIREMENTS..........................................................................................................................................13 3.7 DESIGN CONSTRAINTS.............................................................................................................................................13 3.8 LOGICAL DATABASE REQUIREMENTS.........................................................................................................................13 3.9 OTHER REQUIREMENTS............................................................................................................................................13 4. CHANGE MANAGEMENT PROCESS..............................................................................................................14
Software Requirements Specification Survey Module

Page 5
Drupal Survey
1. Introduction
1.1 Purpose
This is a specification of a Drupal Survey Module, used to collect information from the users of a  Drupal site for Psychological, Social or Market Research purpose.  The Survey module will  allow privileged users of the site where this module is enabled to create a survey, consisting of  multiple pages and flow control, which other nonprivileged users will complete.
1.2 Scope
Survey Module For Drupal CMS This module will collect data from Drupal users via an online survey, and provide the means to  either download the data in a format suitable for further offline analysis or provide a mechanism  to manipulate the data further. This module will not (initially) provide reports beyond that of the frequency of responses to each  question and will not in an of itself provide tools to analyse the data collected.
1.3 Definitions, Acronyms, and Abbreviations
CMS – Content Management System Rotation – The first displayed response in an answer to a question or item within a container is  moved to the end of the list for the subsequent survey respondent.  The 'new' first displayed  response/item will in it's turn be moved to the end and so forth. 
1.4 References
None
1.5 Overview
At the moment only high level function requirements and class definitions are included
2. General Description
2.1 Product Perspective
There are a number of commercial and open source solutions for a web based system for  gathering social and research quantitative data via online surveys.  Examples of the former are  ConfirmIT and SurveyWriter and an example of the latter is Limesurvey.  Most of these have  limitations of one sort or another, such as being too complex for end uses, not flexible enough to  cope with nonstandard survey layouts or problematic GUI work flows. The Drupal CMS due to is modular nature and open architecture would provide a good basis for  Software Requirements Specification Page 1

Page 6
Drupal Survey the creation of an open, extensible and user friendly alternative to the current survey software in  existence. As such this is a specification of a Drupal module that will provide survey authoring and data  collection functions for that web platform.
2.2 Product Functions
The module will provide an ability for a user to add a survey to a Drupal site, create questions,  instructions and stimuli presentations for that survey, invite other Drupal users to complete the  survey (via email) and download the data associate with that survey. The survey will consist of a number of independent pages which the user completing the survey  will move through utilising navigation buttons to move forward and backwards through the  survey, although it should be possible to block the users from moving backwards and allow  timed presentation of stimuli before moving forwards. It will be possible to alter the flow of the survey, as well as the layout and text of the questions  based upon a users responses to previous questions in the survey.  
2.3 User Characteristics
Researcher:  The ability to add and edit their own survey. Respondent:  Can only complete surveys.
2.4 General Constraints
Operates as a module within Drupal
2.5 Assumptions and Dependencies
The software will operate in the context of the Drupal CMS, thus a working installation of  Drupal is assumed, independent of platform.
3. Specific Requirements
3.1 External Interface Requirements
3.1.1 User Interfaces Web Browser 3.1.2 Hardware Interfaces Desktop Server 3.1.3 Software Interfaces Drupal API Software Requirements Specification Page 2

Page 7
Drupal Survey Sections module to provide custom theme's for each survey User Import Module to upload Respondents 3.1.4 Communications Interfaces HTTP
3.2 Functional Requirements
3.2.1 Create Drupal Survey Node 3.2.1.1 Introduction Privileged users (Researchers) can create a survey node in Drupal.  This can contain any number  of survey items which form the questions asked in the survey as well as define the layout of the  survey pages and flow of the survey through the survey questions. 3.2.1.2 Inputs Signal to create Survey Node 3.2.1.3 Processing Create Survey node and associated data structures with default values 3.2.1.4 Outputs Survey Node 3.2.2 Update Drupal Survey Node 3.2.2.1 Introduction Privileged users (Researchers) can update the configuration values of the survey  3.2.2.2 Inputs Updated values for Survey Node (Intro Text etc.  see survey class) 3.2.2.3 Processing Update Survey node and associated data structures 3.2.2.4 Outputs Return code indicating success or failure 3.2.3 Create Survey Item Node 3.2.3.1 Introduction Privileged users (Researchers) can create a Survey Item node in Drupal.  These are the entities  that will form the content of the survey and control the display and flow of the survey.  They  are: Question:  Displays a question and defines the data associated with that question. Skip:  Alters the normal flow of the survey jumping either forward of back to a particular item Mask:  Based upon a previous questions data, sets or updates a mask data structure that will alter  the display of subsequent questions so some of the response options do not appear, there is also  an item that will reset this data structure. Substitute:  Sets up some substitution text based upon responses to a previous question.  This  will  replace marked up text when a question is displayed. There are also ��Grid�� versions of these Items (I may collapse these back into the base types for  better usability) Section:  An item which contains other items which can be displayed in a random order. Software Requirements Specification Page 3

Page 8
Drupal Survey Loop:  An extension of a section which repeats the items within it. Compound Page:  An extension of Section that displays all the questions within it on the same  page . Instruction:  Displays instructions (including possibly images, video or other Drupal node types). 3.2.3.2 Inputs Signal to create Survey Item Node 3.2.3.3 Processing Create Survey Item node and associated data structures with default values 3.2.3.4 Outputs Survey Item Node 3.2.4 Update Survey Item Node 3.2.4.1 Introduction Privileged users (Researchers) can update the configuration values of the survey Item.  3.2.4.2 Inputs Updated values for Survey Item Node. 3.2.4.3 Processing Update Survey Item node and associated data structures.  Response List (lists of Question  Responses and Associated Numeric codes) objects (nodes?) can be created or existing ones  assigned to the item as part of this process (Question, Skip, Mask, Substitute and Loop items) 3.2.4.4 Outputs Return code indicating success or failure 3.2.5 Add an Item to a Survey 3.2.5.1 Introduction Privileged users (Researchers) can add a Survey Item to a Survey.  3.2.5.2 Inputs Survey Item Node ID and list order. 3.2.5.3 Processing Add the Survey Items ID to the Surveys Items List in the appropriate place. 3.2.5.4 Outputs Return code indicating success or failure. 3.2.6 Reorder an Item in a Survey 3.2.6.1 Introduction Privileged users (Researchers) can reorder a Survey Item in a Survey.  3.2.6.2 Inputs Survey Item Node ID and order. 3.2.6.3 Processing Move the Survey Items ID to the appropriate place in the List. 3.2.6.4 Outputs Return code indicating success or failure. 3.2.7 Remove an Item from a Survey 3.2.7.1 Introduction Privileged users (Researchers) can remove a Survey Item from a Survey.  Software Requirements Specification Page 4

Page 9
Drupal Survey 3.2.7.2 Inputs Survey Item Node ID. 3.2.7.3 Processing Remove the Survey Items ID from the Surveys Items List. 3.2.7.4 Outputs Return code indicating success or failure. 3.2.8 Add an Item to a Section Item (including derivatives  Loop and Compound Page) 3.2.8.1 Introduction Privileged users (Researchers) can add a Survey Item to a Section Item.  3.2.8.2 Inputs Survey Item Node ID and order. 3.2.8.3 Processing Add the Survey Items ID to the Section Items' ��Section Items List�� in the appropriate place. 3.2.8.4 Outputs Return code indicating success or failure. 3.2.9 Reorder an Item in a Section Item (including derivatives  Loop and Compound Page) 3.2.9.1 Introduction Privileged users (Researchers) can reorder a Survey Item in a Section Item.  3.2.9.2 Inputs Survey Item Node ID and order. 3.2.9.3 Processing Move the Survey Items ID to the appropriate place in the List. 3.2.9.4 Outputs Return code indicating success or failure. 3.2.10 Remove an Item from a Section Item (including derivatives  Loop and Compound  Page) 3.2.10.1 Introduction Privileged users (Researchers) can remove a Survey Item from a Section Item.  3.2.10.2 Inputs Survey Item Node ID. 3.2.10.3 Processing Remove the Survey Items ID from the Section Items' ��Section Items List��. 3.2.10.4 Outputs Return code indicating success or failure. 3.2.11 Invite Users to a Survey 3.2.11.1 Introduction Privileged users (Researchers) can invite other users into a survey.  3.2.11.2 Inputs User Table fields for email and survey qualification.  3.2.11.3 Processing Send an email to a users email address if they qualify for the survey, this email will include a  Software Requirements Specification Page 5

Page 10
Drupal Survey direct link to the survey including login credentials if necessary. 3.2.11.4 Outputs Return code indicating success or failure. 3.2.12 Start User Interview 3.2.12.1 Introduction When an unprivileged user (Respondent) enters the survey the interview is started.  3.2.12.2 Inputs User ID. 3.2.12.3 Processing Create state data for user and display introductory text.  This page will also allow the users to re enter previous interviews if that is enabled.  If an interview is not completed the user will be  redirected to the latest incomplete Item. 3.2.12.4 Outputs State Data for interview. 3.2.13 Process Survey Item 3.2.13.1 Introduction Process the survey item the Respondent is directed to. 3.2.13.2 Inputs Item ID, Indication if moving backwards through survey. 3.2.13.3 Processing Process item specific code.  This will be: Question: Display question, Collect Respondent input. Skip:Redirect to specific Item (or next Item) Mask:Update state data. Substitute:Update state data. Section:Update state data. Loop:Update state data. Compound Page:Display all question and Instruction within Compound page and wait for user  input. Instruction: Display question and wait for user input. Survey End:Close interview and redirect. Some operations will have to be reversed if moving backwards through survey 3.2.13.4 Outputs Next Item ID or signal to go to next/previous survey page. 3.2.14 Go to next Survey Page 3.2.14.1 Introduction Route Respondents through the Survey.  3.2.14.2 Inputs Next Item ID or signal to go to next/previous survey page. 3.2.14.3 Processing Determine the next or previous Item in the survey on appropriate signal.  Extra processing at  Section and Loop boundaries, and if skips to an Item within a Compound Page will instead be  Software Requirements Specification Page 6

Page 11
Drupal Survey directed to the Compound Page Item itself. 3.2.14.4 Outputs Item ID, Indication if moving backwards through survey. 3.2.15 Check Question Progress 3.2.15.1 Introduction Privileged users (Researchers) can check a Questions progress.  3.2.15.2 Inputs Signal to check data for Item ID. 3.2.15.3 Processing Retrieve all Responses to Question in current survey and Display. 3.2.15.4 Outputs Return code indicating success or failure. 3.2.16 Download Data 3.2.10.1 Introduction Privileged users (Researchers) can download the data collected by the survey.  3.2.10.2 Inputs Signal to download data. 3.2.10.3 Processing Extract survey data from Drupal Database into formatted file (Comma Separated Variable, SPSS  etc.). 3.2.10.4 Outputs Link to data file.
3.3 Use Cases
3.3.1 Use Case #1 3.3.2 Use Case #2
3.4 Classes / Objects
* designates a function only available to Researchers 3.4.1 Survey 3.4.1.1 Attributes Active – BOOLEAN – Users can only enter the survey if this is true. Intro Text – Introductory Survey Text Items – Ordered list of Items (nodes) in the survey Repeated – Integer – Indicates how many times the survey can be completed by a respondent  (default 1) Back Button – BOOLEAN – Indicates if the back button in visible (ie, the respondent can go  backwards through the survey, default TRUE) Locked – BOOLEAN – Indicates if a user can go into a completed survey and change their  answers (default FALSE) Software Requirements Specification Page 7

Page 12
Drupal Survey //State data – stored per user/survey instance Current Loop Current Container Current Question +Current Mask –  A list of code values which will be excluded from display in any question or  iterators in a loop +Current Scale Mask –  A list of values which will be excluded from display in any scale +Current Question Mask –  A list of items which will be excluded from display +Current Substitutions – A list of text substitutions with associated codes which will be done  when a page is being displayed, based upon a marker within the text (say #1# to substitute the  code 1 value, escaped with \#) 3.4.1.2 Functions +Add Survey Item – Add an item to the item list* +Remove Survey Item – Remove an item from the item list* +Reorder Survey Item – Reorder a list item* +Download Data – Download the data collected by the survey* +Update Repeated* +Update Back Button* +Update Intro Text* +Start Survey DisplayPage The survey object will display each page of the survey by calling appropriate methods in each  item.  Respondent users will not see masked questions, skips, masks or text substitutions  however the processes associated with these items will take place and the NextPage function  called automatically.  Sections will have to have control passed to them? NextPage This handles Forward and Back Button functions 3.4.2 Item (template) 3.4.2.1 Attributes ~Item ID – Unique Identifier ~Timer – If nonzero displays the item for this many seconds before automatically going to the  next item (default 0) 3.4.2.2 Functions +Update Item ID* +Update Timer* +Do Item Processing – Does whatever is needed to be done by this particular item. 3.4.3 Response List Software Requirements Specification Page 8

Page 13
Drupal Survey 3.4.3.1 Attributes Response List ID – Unique Identifier List of Possible Responses  STRING Codes  List of values associated with each response 3.4.3.2 Functions Update Response List ID* Add Response* Remove Response* 3.4.4 Response Container (child of Item) (template) 3.4.4.1 Attributes List of Response List – This class contains one or more ��Response List�� classes 3.4.4.2 Functions +Add Response List – Adds new Response List to list, must ensure unique codes for all  responses (maybe?) +Remove Response List +Create Response List – Response List should be created via these objects/pages 3.4.5 Question (child of Response Container) 3.4.5.1 Attributes Question Text Required – BOOLEAN – is a response to this question required (default TRUE) Order – Are the responses in the Response List's presented in order (default TRUE) Random – BOOLEAN – Are the responses in the Response List's presented in a random or  rotated  (default = TRUE) Text Response – BOOLEAN – Indicates if the responses are open ended text or selected (ie.  Text box or check box/radio button).  The letter code 0 or 1 in the database.  (default FALSE) Responses  INTEGER– How may responses may be selected or contain a text response(default  = 0 which indicates any number) //Additional attributes for Responses in response list – these are all compound variables mapped  back to the response codes Specify – BOOLEAN  This response is an ��Other/Specify��.  If ��Text Response�� is FALSE and  text box will be displayed next to the response which will need to be filled in if the response is  selected (default FALSE) Exclusive – BOOLEAN – If this response is selected or answered none of the other responses  may be (default FALSE)  3.4.5.2 Functions Update/set the various attributes* Software Requirements Specification Page 9

Page 14
Drupal Survey Show responses*  display data collected so far for this question 3.4.6 Grid Question (child of Question) 3.4.6.1 Attributes Scale – List of ��Response List�� to use as the grid scale Scale Responses  INTEGER– How may scale items may be selected or contain a text response  across a single response(default = 0 which indicates any number) Orthogonal – BOOLEAN – Normal a scale will appear across the top of the grid, if this is true it  will appear on the right side and the responses across the top (default FALSE) 3.4.6.2 Functions Update/set the various attributes* 3.4.7 Text Substitute (child of Response Container) 3.4.7.1 Attributes Base – A reference to the question or loop on which the text substitution is based, if the question  is inside a loop which the Object is not then the reference must include a loop value as well //Additional attributes for Responses in response list – these are all compound variables mapped  back to the response codes Update Target – INTEGER – The substitution value to be updated (default to Response List code  value) Comparator – The value that the responses in base will be compared to  Operator  '<' '>' '=' '!=' 'substring' – operator used in the comparison Result – The string to be substituted (default to Response List text) 3.4.7.2 Functions Update/set the various attributes* +Update Current  – Updates the Current Substitutions structure for any code : operator :  comparator equations found to be true. 3.4.8 Grid Text Substitute (child of Text Substitute) 3.4.8.1 Attributes Scale – List of ��Response List�� to reference a grid scale //Additional attributes for Responses in response list – these are all compound variables mapped  back to the response codes Scale Value – The scale value the function corresponds to 3.4.8.2 Functions Update/set the various attributes* Software Requirements Specification Page 10

Page 15
Drupal Survey +Update Current – Override to include grid values 3.4.9 Mask (child of Text Substitute) Same as Text Substitute but updates the current mask 3.4.10 Grid Mask (child of Grid Text Substitute) Ditto 3.4.11 Skip (child of Text Substitute) 3.4.11.1 Attributes Targets – STRING – the Item ID that will be the next item for a given response in base, if null  string (default) go to next item normally Result – Override (default to null) 3.4.11.2 Functions Update Base* Update Conditions* Update Targets* +Update Current – Override, go to item as specified in Targets if any condition resolve to true.  If Result is nonnull display that text at the beginning of the question 3.4.12 Grid Skip (child of Skip) 3.4.12.1 Attributes Scale – List of ��Response List�� to reference a grid scale //Additional attributes for Responses in response list – these are all compound variables mapped  back to the response codes Scale Value – The scale value the function corresponds to 3.4.12.2 Functions +Update Current – Override to include grid values 3.4.13 Section (child of Item) 3.4.13.1 Attributes Section Items – Ordered list of Items (nodes) in the Section Order – Are the items in the Section presented in order (default = TRUE) Random – BOOLEAN – Are the items in the Section presented in a random or rotated  (default =  TRUE) Rotation Level – INTEGER – If items are rotated, used to determine what item in the rotation is  currently first Software Requirements Specification Page 11

Page 16
Drupal Survey Respondent Order – The order of items for each respondent 3.4.13.2 Functions Update Order* Update Random* Add Section Item – Add an item to the container item list* Remove Section Item – Remove an item to the container item list* Reorder Section Item – Reorder a list item* Reorder – Randomises or rotates the order of the items for each respondent if appropriate Exit Section – Processing done when a section finishes  3.4.13 Loop (child of Section) 3.4.13.1 Attributes Iterations – list of Response List – the codes in the response list will be iterated through Iteration Order – Are the iterations presented in order (default TRUE) Iteration Random – BOOLEAN – Are the Iteration presented in a random or rotated  (default =  TRUE) Current Iteration – INTEGER – code value of current iteration 3.4.13.2 Functions Update/set the various attributes* 3.4.13 Compound Page (child of Section) 3.4.13.1 Attributes 3.4.13.2 Functions Add Section Item – Override so that Sections, Loops and other pages can not be included in a  page* 3.4.14 Instruction (child of Item) 3.4.14.1 Attributes Instruction Text 3.4.14.2 Functions Update Instruction Text* 3.4.15 Clear Mask (child of Item) 3.4.14.1 Attributes Software Requirements Specification Page 12

Page 17
Drupal Survey 3.4.14.2 Functions 3.4.15 Survey End (child of Instruction) 3.4.15.1 Attributes Redirect – STRING – URL where users are send when they have completed the survey, this will  be the last page they see.  It should be possible to include text substitutions and User fields in this  URL if necessary. 3.4.15.2 Functions 3.4.16 Question Mask (child of Mask) Masks a question instead of a Response list item
3.5 NonFunctional Requirements
3.5.1 Performance 3.5.2 Reliability 3.5.3 Availability 3.5.4 Security 3.5.5 Maintainability 3.5.6 Portability
3.6 Inverse Requirements
Drupal Installation
3.7 Design Constraints
TBA
3.8 Logical Database Requirements
Drupal Supported
3.9 Other Requirements
None Software Requirements Specification Page 13

Page 18
Drupal Survey
4. Change Management Process
Chaotic update via Internet Software Requirements Specification Page 14
Search more related documents:Software Requirements Specification Template

Set Home | Add to Favorites

All Rights Reserved Powered by Free Document Search and Download

Copyright © 2011
This site does not host pdf,doc,ppt,xls,rtf,txt files all document are the property of their respective owners. complaint#nuokui.com
TOP