You are on page 1of 18

DrupalSurvey

SoftwareRequirementsSpecification
1.0
29/10/2009
ChrisPryor
PrincipalProjectManager

SoftwareRequirementsSpecificationSurveyModule

RevisionHistory
Date
5/11/2009

Description
Version1

Author
ChrisPryor

Comments
draft

DocumentApproval
ThefollowingSoftwareRequirementsSpecificationhasbeenacceptedandapprovedbythe
following:
Signature
PrintedName
Title
Date

SoftwareRequirementsSpecificationSurveyModule

TableofContents
REVISIONHISTORY................................................................................................................................................II
DOCUMENTAPPROVAL.........................................................................................................................................II
1.INTRODUCTION.....................................................................................................................................................1
1.1PURPOSE..................................................................................................................................................................1
1.2SCOPE.....................................................................................................................................................................1
1.3DEFINITIONS,ACRONYMS,ANDABBREVIATIONS............................................................................................................1
1.4REFERENCES............................................................................................................................................................1
1.5OVERVIEW...............................................................................................................................................................1
2.GENERALDESCRIPTION....................................................................................................................................1
2.1PRODUCTPERSPECTIVE..............................................................................................................................................1
2.2PRODUCTFUNCTIONS................................................................................................................................................2
2.3USERCHARACTERISTICS............................................................................................................................................2
2.4GENERALCONSTRAINTS.............................................................................................................................................2
2.5ASSUMPTIONSANDDEPENDENCIES..............................................................................................................................2
3.SPECIFICREQUIREMENTS................................................................................................................................2
3.1EXTERNALINTERFACEREQUIREMENTS.........................................................................................................................2
3.1.1UserInterfaces.............................................................................................................................................2
3.1.2HardwareInterfaces....................................................................................................................................2
3.1.3SoftwareInterfaces......................................................................................................................................2
3.1.4CommunicationsInterfaces..........................................................................................................................3
3.2FUNCTIONALREQUIREMENTS......................................................................................................................................3
3.2.1CreateDrupalSurveyNode.........................................................................................................................3
3.2.2UpdateDrupalSurveyNode........................................................................................................................3
3.2.3CreateSurveyItemNode.............................................................................................................................3
3.2.4UpdateSurveyItemNode.............................................................................................................................4
3.2.5AddanItemtoaSurvey...............................................................................................................................4
3.2.6ReorderanIteminaSurvey.........................................................................................................................4
3.2.7RemoveanItemfromaSurvey.....................................................................................................................4
3.2.8AddanItemtoaSectionItem(includingderivativesLoopandCompoundPage)..................................5
3.2.9ReorderanIteminaSectionItem(includingderivativesLoopandCompoundPage)............................5
3.2.10RemoveanItemfromaSectionItem(includingderivativesLoopandCompoundPage)......................5
3.2.11InviteUserstoaSurvey.............................................................................................................................5
3.2.12StartUserInterview...................................................................................................................................6
3.2.13ProcessSurveyItem...................................................................................................................................6
3.2.14GotonextSurveyPage..............................................................................................................................6
3.2.15CheckQuestionProgress...........................................................................................................................7
3.2.16DownloadData..........................................................................................................................................7
3.3USECASES..............................................................................................................................................................7
3.3.1UseCase#1..................................................................................................................................................7
3.3.2UseCase#2..................................................................................................................................................7
3.4CLASSES/OBJECTS..................................................................................................................................................7
3.4.1Survey...........................................................................................................................................................7
3.4.2Item(template).............................................................................................................................................8
3.4.3ResponseList................................................................................................................................................8
3.4.4ResponseContainer(childofItem)(template)............................................................................................9
3.4.5Question(childofResponseContainer)......................................................................................................9

SoftwareRequirementsSpecificationSurveyModule

3.4.6GridQuestion(childofQuestion).............................................................................................................10
3.4.7TextSubstitute(childofResponseContainer)...........................................................................................10
3.4.8GridTextSubstitute(childofTextSubstitute)...........................................................................................10
3.4.9Mask(childofTextSubstitute)...................................................................................................................11
3.4.10GridMask(childofGridTextSubstitute)...............................................................................................11
3.4.11Skip(childofTextSubstitute)..................................................................................................................11
3.4.12GridSkip(childofSkip)...........................................................................................................................11
3.4.13Section(childofItem)..............................................................................................................................11
3.4.13Loop(childofSection).............................................................................................................................12
3.4.13CompoundPage(childofSection)..........................................................................................................12
3.4.14Instruction(childofItem)........................................................................................................................12
3.4.15ClearMask(childofItem).......................................................................................................................12
3.4.15SurveyEnd(childofInstruction).............................................................................................................13
3.4.16QuestionMask(childofMask)................................................................................................................13
3.5NONFUNCTIONALREQUIREMENTS............................................................................................................................13
3.5.1Performance...............................................................................................................................................13
3.5.2Reliability...................................................................................................................................................13
3.5.3Availability.................................................................................................................................................13
3.5.4Security.......................................................................................................................................................13
3.5.5Maintainability...........................................................................................................................................13
3.5.6Portability..................................................................................................................................................13
3.6INVERSEREQUIREMENTS..........................................................................................................................................13
3.7DESIGNCONSTRAINTS.............................................................................................................................................13
3.8LOGICALDATABASEREQUIREMENTS.........................................................................................................................13
3.9OTHERREQUIREMENTS............................................................................................................................................13
4.CHANGEMANAGEMENTPROCESS..............................................................................................................14

SoftwareRequirementsSpecificationSurveyModule

DrupalSurvey

1.Introduction
1.1Purpose
ThisisaspecificationofaDrupalSurveyModule,usedtocollectinformationfromtheusersofa
DrupalsiteforPsychological,SocialorMarketResearchpurpose.TheSurveymodulewill
allowprivilegedusersofthesitewherethismoduleisenabledtocreateasurvey,consistingof
multiplepagesandflowcontrol,whichothernonprivilegeduserswillcomplete.

1.2Scope
SurveyModuleForDrupalCMS
ThismodulewillcollectdatafromDrupalusersviaanonlinesurvey,andprovidethemeansto
eitherdownloadthedatainaformatsuitableforfurtherofflineanalysisorprovideamechanism
tomanipulatethedatafurther.
Thismodulewillnot(initially)providereportsbeyondthatofthefrequencyofresponsestoeach
questionandwillnotinanofitselfprovidetoolstoanalysethedatacollected.

1.3Definitions,Acronyms,andAbbreviations
CMSContentManagementSystem
RotationThefirstdisplayedresponseinananswertoaquestionoritemwithinacontaineris
movedtotheendofthelistforthesubsequentsurveyrespondent.The'new'firstdisplayed
response/itemwillinit'sturnbemovedtotheendandsoforth.

1.4References
None

1.5Overview
Atthemomentonlyhighlevelfunctionrequirementsandclassdefinitionsareincluded

2.GeneralDescription
2.1ProductPerspective
Thereareanumberofcommercialandopensourcesolutionsforawebbasedsystemfor
gatheringsocialandresearchquantitativedataviaonlinesurveys.Examplesoftheformerare
ConfirmITandSurveyWriterandanexampleofthelatterisLimesurvey.Mostofthesehave
limitationsofonesortoranother,suchasbeingtoocomplexforenduses,notflexibleenoughto
copewithnonstandardsurveylayoutsorproblematicGUIworkflows.
TheDrupalCMSduetoismodularnatureandopenarchitecturewouldprovideagoodbasisfor
SoftwareRequirementsSpecification

Page1

DrupalSurvey
thecreationofanopen,extensibleanduserfriendlyalternativetothecurrentsurveysoftwarein
existence.
AssuchthisisaspecificationofaDrupalmodulethatwillprovidesurveyauthoringanddata
collectionfunctionsforthatwebplatform.

2.2ProductFunctions
ThemodulewillprovideanabilityforausertoaddasurveytoaDrupalsite,createquestions,
instructionsandstimulipresentationsforthatsurvey,inviteotherDrupaluserstocompletethe
survey(viaemail)anddownloadthedataassociatewiththatsurvey.
Thesurveywillconsistofanumberofindependentpageswhichtheusercompletingthesurvey
willmovethroughutilisingnavigationbuttonstomoveforwardandbackwardsthroughthe
survey,althoughitshouldbepossibletoblocktheusersfrommovingbackwardsandallow
timedpresentationofstimulibeforemovingforwards.
Itwillbepossibletoaltertheflowofthesurvey,aswellasthelayoutandtextofthequestions
baseduponausersresponsestopreviousquestionsinthesurvey.

2.3UserCharacteristics
Researcher:Theabilitytoaddandedittheirownsurvey.
Respondent:Canonlycompletesurveys.

2.4GeneralConstraints
OperatesasamodulewithinDrupal

2.5AssumptionsandDependencies
ThesoftwarewilloperateinthecontextoftheDrupalCMS,thusaworkinginstallationof
Drupalisassumed,independentofplatform.

3.SpecificRequirements
3.1ExternalInterfaceRequirements
3.1.1UserInterfaces
WebBrowser
3.1.2HardwareInterfaces
Desktop
Server
3.1.3SoftwareInterfaces
DrupalAPI
SoftwareRequirementsSpecification

Page2

DrupalSurvey
Sectionsmoduletoprovidecustomtheme'sforeachsurvey
UserImportModuletouploadRespondents
3.1.4CommunicationsInterfaces
HTTP

3.2FunctionalRequirements
3.2.1CreateDrupalSurveyNode
3.2.1.1Introduction
Privilegedusers(Researchers)cancreateasurveynodeinDrupal.Thiscancontainanynumber
ofsurveyitemswhichformthequestionsaskedinthesurveyaswellasdefinethelayoutofthe
surveypagesandflowofthesurveythroughthesurveyquestions.
3.2.1.2Inputs
SignaltocreateSurveyNode
3.2.1.3Processing
CreateSurveynodeandassociateddatastructureswithdefaultvalues
3.2.1.4Outputs
SurveyNode
3.2.2UpdateDrupalSurveyNode
3.2.2.1Introduction
Privilegedusers(Researchers)canupdatetheconfigurationvaluesofthesurvey
3.2.2.2Inputs
UpdatedvaluesforSurveyNode(IntroTextetc.seesurveyclass)
3.2.2.3Processing
UpdateSurveynodeandassociateddatastructures
3.2.2.4Outputs
Returncodeindicatingsuccessorfailure
3.2.3CreateSurveyItemNode
3.2.3.1Introduction
Privilegedusers(Researchers)cancreateaSurveyItemnodeinDrupal.Thesearetheentities
thatwillformthecontentofthesurveyandcontrolthedisplayandflowofthesurvey.They
are:
Question:Displaysaquestionanddefinesthedataassociatedwiththatquestion.
Skip:Altersthenormalflowofthesurveyjumpingeitherforwardofbacktoaparticularitem
Mask:Baseduponapreviousquestionsdata,setsorupdatesamaskdatastructurethatwillalter
thedisplayofsubsequentquestionssosomeoftheresponseoptionsdonotappear,thereisalso
anitemthatwillresetthisdatastructure.
Substitute:Setsupsomesubstitutiontextbaseduponresponsestoapreviousquestion.This
willreplacemarkeduptextwhenaquestionisdisplayed.
TherearealsoGridversionsoftheseItems(Imaycollapsethesebackintothebasetypesfor
betterusability)
Section:Anitemwhichcontainsotheritemswhichcanbedisplayedinarandomorder.
SoftwareRequirementsSpecification

Page3

DrupalSurvey
Loop:Anextensionofasectionwhichrepeatstheitemswithinit.
CompoundPage:AnextensionofSectionthatdisplaysallthequestionswithinitonthesame
page.
Instruction:Displaysinstructions(includingpossiblyimages,videoorotherDrupalnodetypes).
3.2.3.2Inputs
SignaltocreateSurveyItemNode
3.2.3.3Processing
CreateSurveyItemnodeandassociateddatastructureswithdefaultvalues
3.2.3.4Outputs
SurveyItemNode
3.2.4UpdateSurveyItemNode
3.2.4.1Introduction
Privilegedusers(Researchers)canupdatetheconfigurationvaluesofthesurveyItem.
3.2.4.2Inputs
UpdatedvaluesforSurveyItemNode.
3.2.4.3Processing
UpdateSurveyItemnodeandassociateddatastructures.ResponseList(listsofQuestion
ResponsesandAssociatedNumericcodes)objects(nodes?)canbecreatedorexistingones
assignedtotheitemaspartofthisprocess(Question,Skip,Mask,SubstituteandLoopitems)
3.2.4.4Outputs
Returncodeindicatingsuccessorfailure
3.2.5AddanItemtoaSurvey
3.2.5.1Introduction
Privilegedusers(Researchers)canaddaSurveyItemtoaSurvey.
3.2.5.2Inputs
SurveyItemNodeIDandlistorder.
3.2.5.3Processing
AddtheSurveyItemsIDtotheSurveysItemsListintheappropriateplace.
3.2.5.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.6ReorderanIteminaSurvey
3.2.6.1Introduction
Privilegedusers(Researchers)canreorderaSurveyIteminaSurvey.
3.2.6.2Inputs
SurveyItemNodeIDandorder.
3.2.6.3Processing
MovetheSurveyItemsIDtotheappropriateplaceintheList.
3.2.6.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.7RemoveanItemfromaSurvey
3.2.7.1Introduction
Privilegedusers(Researchers)canremoveaSurveyItemfromaSurvey.
SoftwareRequirementsSpecification

Page4

DrupalSurvey
3.2.7.2Inputs
SurveyItemNodeID.
3.2.7.3Processing
RemovetheSurveyItemsIDfromtheSurveysItemsList.
3.2.7.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.8AddanItemtoaSectionItem(includingderivativesLoopandCompoundPage)
3.2.8.1Introduction
Privilegedusers(Researchers)canaddaSurveyItemtoaSectionItem.
3.2.8.2Inputs
SurveyItemNodeIDandorder.
3.2.8.3Processing
AddtheSurveyItemsIDtotheSectionItems'SectionItemsListintheappropriateplace.
3.2.8.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.9ReorderanIteminaSectionItem(includingderivativesLoopandCompoundPage)
3.2.9.1Introduction
Privilegedusers(Researchers)canreorderaSurveyIteminaSectionItem.
3.2.9.2Inputs
SurveyItemNodeIDandorder.
3.2.9.3Processing
MovetheSurveyItemsIDtotheappropriateplaceintheList.
3.2.9.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.10RemoveanItemfromaSectionItem(includingderivativesLoopandCompound
Page)
3.2.10.1Introduction
Privilegedusers(Researchers)canremoveaSurveyItemfromaSectionItem.
3.2.10.2Inputs
SurveyItemNodeID.
3.2.10.3Processing
RemovetheSurveyItemsIDfromtheSectionItems'SectionItemsList.
3.2.10.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.11InviteUserstoaSurvey
3.2.11.1Introduction
Privilegedusers(Researchers)caninviteotherusersintoasurvey.
3.2.11.2Inputs
UserTablefieldsforemailandsurveyqualification.
3.2.11.3Processing
Sendanemailtoausersemailaddressiftheyqualifyforthesurvey,thisemailwillincludea
SoftwareRequirementsSpecification

Page5

DrupalSurvey
directlinktothesurveyincludinglogincredentialsifnecessary.
3.2.11.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.12StartUserInterview
3.2.12.1Introduction
Whenanunprivilegeduser(Respondent)entersthesurveytheinterviewisstarted.
3.2.12.2Inputs
UserID.
3.2.12.3Processing
Createstatedataforuseranddisplayintroductorytext.Thispagewillalsoallowtheuserstore
enterpreviousinterviewsifthatisenabled.Ifaninterviewisnotcompletedtheuserwillbe
redirectedtothelatestincompleteItem.
3.2.12.4Outputs
StateDataforinterview.
3.2.13ProcessSurveyItem
3.2.13.1Introduction
ProcessthesurveyitemtheRespondentisdirectedto.
3.2.13.2Inputs
ItemID,Indicationifmovingbackwardsthroughsurvey.
3.2.13.3Processing
Processitemspecificcode.Thiswillbe:
Question:Displayquestion,CollectRespondentinput.
Skip:RedirecttospecificItem(ornextItem)
Mask:Updatestatedata.
Substitute:Updatestatedata.
Section:Updatestatedata.
Loop:Updatestatedata.
CompoundPage:DisplayallquestionandInstructionwithinCompoundpageandwaitforuser
input.
Instruction:Displayquestionandwaitforuserinput.
SurveyEnd:Closeinterviewandredirect.
Someoperationswillhavetobereversedifmovingbackwardsthroughsurvey
3.2.13.4Outputs
NextItemIDorsignaltogotonext/previoussurveypage.
3.2.14GotonextSurveyPage
3.2.14.1Introduction
RouteRespondentsthroughtheSurvey.
3.2.14.2Inputs
NextItemIDorsignaltogotonext/previoussurveypage.
3.2.14.3Processing
DeterminethenextorpreviousIteminthesurveyonappropriatesignal.Extraprocessingat
SectionandLoopboundaries,andifskipstoanItemwithinaCompoundPagewillinsteadbe
SoftwareRequirementsSpecification

Page6

DrupalSurvey
directedtotheCompoundPageItemitself.
3.2.14.4Outputs
ItemID,Indicationifmovingbackwardsthroughsurvey.
3.2.15CheckQuestionProgress
3.2.15.1Introduction
Privilegedusers(Researchers)cancheckaQuestionsprogress.
3.2.15.2Inputs
SignaltocheckdataforItemID.
3.2.15.3Processing
RetrieveallResponsestoQuestionincurrentsurveyandDisplay.
3.2.15.4Outputs
Returncodeindicatingsuccessorfailure.
3.2.16DownloadData
3.2.10.1Introduction
Privilegedusers(Researchers)candownloadthedatacollectedbythesurvey.
3.2.10.2Inputs
Signaltodownloaddata.
3.2.10.3Processing
ExtractsurveydatafromDrupalDatabaseintoformattedfile(CommaSeparatedVariable,SPSS
etc.).
3.2.10.4Outputs
Linktodatafile.

3.3UseCases
3.3.1UseCase#1
3.3.2UseCase#2

3.4Classes/Objects
*designatesafunctiononlyavailabletoResearchers
3.4.1Survey
3.4.1.1Attributes
ActiveBOOLEANUserscanonlyenterthesurveyifthisistrue.
IntroTextIntroductorySurveyText
ItemsOrderedlistofItems(nodes)inthesurvey
RepeatedIntegerIndicateshowmanytimesthesurveycanbecompletedbyarespondent
(default1)
BackButtonBOOLEANIndicatesifthebackbuttoninvisible(ie,therespondentcango
backwardsthroughthesurvey,defaultTRUE)
LockedBOOLEANIndicatesifausercangointoacompletedsurveyandchangetheir
answers(defaultFALSE)
SoftwareRequirementsSpecification

Page7

DrupalSurvey
//Statedatastoredperuser/surveyinstance
CurrentLoop
CurrentContainer
CurrentQuestion
+CurrentMaskAlistofcodevalueswhichwillbeexcludedfromdisplayinanyquestionor
iteratorsinaloop
+CurrentScaleMaskAlistofvalueswhichwillbeexcludedfromdisplayinanyscale
+CurrentQuestionMaskAlistofitemswhichwillbeexcludedfromdisplay
+CurrentSubstitutionsAlistoftextsubstitutionswithassociatedcodeswhichwillbedone
whenapageisbeingdisplayed,baseduponamarkerwithinthetext(say#1#tosubstitutethe
code1value,escapedwith\#)
3.4.1.2Functions
+AddSurveyItemAddanitemtotheitemlist*
+RemoveSurveyItemRemoveanitemfromtheitemlist*
+ReorderSurveyItemReorderalistitem*
+DownloadDataDownloadthedatacollectedbythesurvey*
+UpdateRepeated*
+UpdateBackButton*
+UpdateIntroText*
+StartSurvey
DisplayPage
Thesurveyobjectwilldisplayeachpageofthesurveybycallingappropriatemethodsineach
item.Respondentuserswillnotseemaskedquestions,skips,masksortextsubstitutions
howevertheprocessesassociatedwiththeseitemswilltakeplaceandtheNextPagefunction
calledautomatically.Sectionswillhavetohavecontrolpassedtothem?
NextPage
ThishandlesForwardandBackButtonfunctions
3.4.2Item(template)
3.4.2.1Attributes
~ItemIDUniqueIdentifier
~TimerIfnonzerodisplaystheitemforthismanysecondsbeforeautomaticallygoingtothe
nextitem(default0)
3.4.2.2Functions
+UpdateItemID*
+UpdateTimer*
+DoItemProcessingDoeswhateverisneededtobedonebythisparticularitem.
3.4.3ResponseList

SoftwareRequirementsSpecification

Page8

DrupalSurvey
3.4.3.1Attributes
ResponseListIDUniqueIdentifier
ListofPossibleResponsesSTRING
CodesListofvaluesassociatedwitheachresponse
3.4.3.2Functions
UpdateResponseListID*
AddResponse*
RemoveResponse*
3.4.4ResponseContainer(childofItem)(template)
3.4.4.1Attributes
ListofResponseListThisclasscontainsoneormoreResponseListclasses
3.4.4.2Functions
+AddResponseListAddsnewResponseListtolist,mustensureuniquecodesforall
responses(maybe?)
+RemoveResponseList
+CreateResponseListResponseListshouldbecreatedviatheseobjects/pages
3.4.5Question(childofResponseContainer)
3.4.5.1Attributes
QuestionText
RequiredBOOLEANisaresponsetothisquestionrequired(defaultTRUE)
OrderAretheresponsesintheResponseList'spresentedinorder(defaultTRUE)
RandomBOOLEANAretheresponsesintheResponseList'spresentedinarandomor
rotated(default=TRUE)
TextResponseBOOLEANIndicatesiftheresponsesareopenendedtextorselected(ie.
Textboxorcheckbox/radiobutton).Thelettercode0or1inthedatabase.(defaultFALSE)
ResponsesINTEGERHowmayresponsesmaybeselectedorcontainatextresponse(default
=0whichindicatesanynumber)
//AdditionalattributesforResponsesinresponselisttheseareallcompoundvariablesmapped
backtotheresponsecodes
SpecifyBOOLEANThisresponseisanOther/Specify.IfTextResponseisFALSEand
textboxwillbedisplayednexttotheresponsewhichwillneedtobefillediniftheresponseis
selected(defaultFALSE)
ExclusiveBOOLEANIfthisresponseisselectedoranswerednoneoftheotherresponses
maybe(defaultFALSE)
3.4.5.2Functions
Update/setthevariousattributes*
SoftwareRequirementsSpecification

Page9

DrupalSurvey
Showresponses*displaydatacollectedsofarforthisquestion
3.4.6GridQuestion(childofQuestion)
3.4.6.1Attributes
ScaleListofResponseListtouseasthegridscale
ScaleResponsesINTEGERHowmayscaleitemsmaybeselectedorcontainatextresponse
acrossasingleresponse(default=0whichindicatesanynumber)
OrthogonalBOOLEANNormalascalewillappearacrossthetopofthegrid,ifthisistrueit
willappearontherightsideandtheresponsesacrossthetop(defaultFALSE)
3.4.6.2Functions
Update/setthevariousattributes*
3.4.7TextSubstitute(childofResponseContainer)
3.4.7.1Attributes
BaseAreferencetothequestionorlooponwhichthetextsubstitutionisbased,ifthequestion
isinsidealoopwhichtheObjectisnotthenthereferencemustincludealoopvalueaswell
//AdditionalattributesforResponsesinresponselisttheseareallcompoundvariablesmapped
backtotheresponsecodes
UpdateTargetINTEGERThesubstitutionvaluetobeupdated(defaulttoResponseListcode
value)
ComparatorThevaluethattheresponsesinbasewillbecomparedto
Operator'<''>''=''!=''substring'operatorusedinthecomparison
ResultThestringtobesubstituted(defaulttoResponseListtext)
3.4.7.2Functions
Update/setthevariousattributes*
+UpdateCurrentUpdatestheCurrentSubstitutionsstructureforanycode:operator:
comparatorequationsfoundtobetrue.
3.4.8GridTextSubstitute(childofTextSubstitute)
3.4.8.1Attributes
ScaleListofResponseListtoreferenceagridscale
//AdditionalattributesforResponsesinresponselisttheseareallcompoundvariablesmapped
backtotheresponsecodes
ScaleValueThescalevaluethefunctioncorrespondsto
3.4.8.2Functions
Update/setthevariousattributes*
SoftwareRequirementsSpecification

Page10

DrupalSurvey
+UpdateCurrentOverridetoincludegridvalues
3.4.9Mask(childofTextSubstitute)
SameasTextSubstitutebutupdatesthecurrentmask
3.4.10GridMask(childofGridTextSubstitute)
Ditto
3.4.11Skip(childofTextSubstitute)
3.4.11.1Attributes
TargetsSTRINGtheItemIDthatwillbethenextitemforagivenresponseinbase,ifnull
string(default)gotonextitemnormally
ResultOverride(defaulttonull)
3.4.11.2Functions
UpdateBase*
UpdateConditions*
UpdateTargets*
+UpdateCurrentOverride,gotoitemasspecifiedinTargetsifanyconditionresolvetotrue.
IfResultisnonnulldisplaythattextatthebeginningofthequestion
3.4.12GridSkip(childofSkip)
3.4.12.1Attributes
ScaleListofResponseListtoreferenceagridscale
//AdditionalattributesforResponsesinresponselisttheseareallcompoundvariablesmapped
backtotheresponsecodes
ScaleValueThescalevaluethefunctioncorrespondsto
3.4.12.2Functions
+UpdateCurrentOverridetoincludegridvalues
3.4.13Section(childofItem)
3.4.13.1Attributes
SectionItemsOrderedlistofItems(nodes)intheSection
OrderAretheitemsintheSectionpresentedinorder(default=TRUE)
RandomBOOLEANAretheitemsintheSectionpresentedinarandomorrotated(default=
TRUE)
RotationLevelINTEGERIfitemsarerotated,usedtodeterminewhatitemintherotationis
currentlyfirst
SoftwareRequirementsSpecification

Page11

DrupalSurvey
RespondentOrderTheorderofitemsforeachrespondent
3.4.13.2Functions
UpdateOrder*
UpdateRandom*
AddSectionItemAddanitemtothecontaineritemlist*
RemoveSectionItemRemoveanitemtothecontaineritemlist*
ReorderSectionItemReorderalistitem*
ReorderRandomisesorrotatestheorderoftheitemsforeachrespondentifappropriate
ExitSectionProcessingdonewhenasectionfinishes
3.4.13Loop(childofSection)
3.4.13.1Attributes
IterationslistofResponseListthecodesintheresponselistwillbeiteratedthrough
IterationOrderAretheiterationspresentedinorder(defaultTRUE)
IterationRandomBOOLEANAretheIterationpresentedinarandomorrotated(default=
TRUE)
CurrentIterationINTEGERcodevalueofcurrentiteration
3.4.13.2Functions
Update/setthevariousattributes*
3.4.13CompoundPage(childofSection)
3.4.13.1Attributes
3.4.13.2Functions
AddSectionItemOverridesothatSections,Loopsandotherpagescannotbeincludedina
page*
3.4.14Instruction(childofItem)
3.4.14.1Attributes
InstructionText
3.4.14.2Functions
UpdateInstructionText*
3.4.15ClearMask(childofItem)
3.4.14.1Attributes
SoftwareRequirementsSpecification

Page12

DrupalSurvey

3.4.14.2Functions
3.4.15SurveyEnd(childofInstruction)
3.4.15.1Attributes
RedirectSTRINGURLwhereusersaresendwhentheyhavecompletedthesurvey,thiswill
bethelastpagetheysee.ItshouldbepossibletoincludetextsubstitutionsandUserfieldsinthis
URLifnecessary.
3.4.15.2Functions
3.4.16QuestionMask(childofMask)
MasksaquestioninsteadofaResponselistitem

3.5NonFunctionalRequirements
3.5.1Performance
3.5.2Reliability
3.5.3Availability
3.5.4Security
3.5.5Maintainability
3.5.6Portability

3.6InverseRequirements
DrupalInstallation

3.7DesignConstraints
TBA

3.8LogicalDatabaseRequirements
DrupalSupported

3.9OtherRequirements
None

SoftwareRequirementsSpecification

Page13

DrupalSurvey

4.ChangeManagementProcess
ChaoticupdateviaInternet

SoftwareRequirementsSpecification

Page14

You might also like