Professional Documents
Culture Documents
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