Вы находитесь на странице: 1из 9

SoftwareRequirementsSpecificationTemplate

CptS322SoftwareEngineering
9February2005
ThefollowingannotatedtemplateshallbeusedtocompletetheSoftwareRequirements
Specification(SRS)assignmentofWSUTCCptS322.Theinstructormustapproveany
modificationstotheoverallstructureofthisdocument.
TemplateUsage:
Textcontainedwithinanglebrackets(<,>)shallbereplacedbyyourprojectspecific
informationand/ordetails.Forexample,<ProjectName>willbereplacedwitheitherSmart
HomeorSensorNetwork.
Italicizedtextisincludedtobrieflyannotatethepurposeofeachsectionwithinthistemplate.
ThistextshouldnotappearinthefinalversionofyoursubmittedSRS.
ThiscoverpageisnotapartofthefinaltemplateandshouldberemovedbeforeyourSRSis
submitted.
Acknowledgements:
SectionsofthisdocumentarebasedupontheIEEEGuidetoSoftwareRequirements
Specification(ANSI/IEEEStd.8301984).TheSRStemplatesofDr.OrestPilskalns(WSU,
Vancover)andJackHagemeister(WSU,Pullman)havealsobeusedasguidesindevelopingthis
templatefortheWSUTCSpring2005CptS322course.

WSUTCCptS322

SoftwareRequirementsSpecificationTemplate

KingsQuest
SoftwareRequirementsSpecification
1.00
30/10/14
YassinChibrani
LeadSoftwareEngineer

<ProjectName>

RevisionHistory
Date
28/10/14

Description
Version1.00

SoftwareRequirementsSpecification

Author
YassinChibrani

Comments
Firstdraft

Pageii

<ProjectName>

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....................................................................................................................................2
2.1PRODUCTPERSPECTIVE........................................................................................................................................2
2.2PRODUCTFUNCTIONS...........................................................................................................................................2
2.3USERCHARACTERISTICS......................................................................................................................................2
2.4GENERALCONSTRAINTS.......................................................................................................................................2
2.5ASSUMPTIONSANDDEPENDENCIES......................................................................................................................2
3.SPECIFICREQUIREMENTS................................................................................................................................2
3.1EXTERNALINTERFACEREQUIREMENTS...............................................................................................................3
3.1.1UserInterfaces.............................................................................................................................................3
3.1.2HardwareInterfaces....................................................................................................................................3
3.1.3SoftwareInterfaces......................................................................................................................................3
3.1.4CommunicationsInterfaces.........................................................................................................................3
3.2FUNCTIONALREQUIREMENTS...............................................................................................................................3
3.2.1<FunctionalRequirementorFeature#1>..................................................................................................3
3.2.2<FunctionalRequirementorFeature#2>..................................................................................................3
3.3USECASES............................................................................................................................................................3
3.3.1UseCase#1.................................................................................................................................................3
3.3.2UseCase#2.................................................................................................................................................3
3.4CLASSES/OBJECTS..............................................................................................................................................3
3.4.1<Class/Object#1>....................................................................................................................................3
3.4.2<Class/Object#2>....................................................................................................................................3
3.5NONFUNCTIONALREQUIREMENTS......................................................................................................................4
3.5.1Performance.................................................................................................................................................4
3.5.2Reliability.....................................................................................................................................................4
3.5.3Availability...................................................................................................................................................4
3.5.4Security........................................................................................................................................................4
3.5.5Maintainability.............................................................................................................................................4
3.5.6Portability....................................................................................................................................................4
3.6INVERSEREQUIREMENTS......................................................................................................................................4
3.7DESIGNCONSTRAINTS..........................................................................................................................................4
3.8LOGICALDATABASEREQUIREMENTS..................................................................................................................4
3.9OTHERREQUIREMENTS........................................................................................................................................4
4.ANALYSISMODELS..............................................................................................................................................4
4.1SEQUENCEDIAGRAMS..........................................................................................................................................5
4.3DATAFLOWDIAGRAMS(DFD)...........................................................................................................................5
4.2STATETRANSITIONDIAGRAMS(STD)................................................................................................................5

SoftwareRequirementsSpecification

Pageiii

<ProjectName>
5.CHANGEMANAGEMENTPROCESS................................................................................................................5
A.APPENDICES..........................................................................................................................................................5
A.1APPENDIX1.........................................................................................................................................................5
A.2APPENDIX2.........................................................................................................................................................5

SoftwareRequirementsSpecification

Pageiv

<ProjectName>

1.Introduction
TheintroductiontotheSoftwareRequirementSpecification(SRS)documentshouldprovidean
overviewofthecompleteSRSdocument.Whilewritingthisdocumentpleaserememberthatthis
documentshouldcontainalloftheinformationneededbyasoftwareengineertoadequately
designandimplementthesoftwareproductdescribedbytherequirementslistedinthis
document.(Note:thefollowingsubsectionannotatesarelargelytakenfromtheIEEEGuideto
SRS).

1.1Purpose
WhatisthepurposeofthisSRSandthe(intended)audienceforwhichitiswritten.

1.2Scope
Thissubsectionshould:
(1) Identifythesoftwareproduct(s)tobeproducedbyname;forexample,HostDBMS,Report
Generator,etc
(2) Explainwhatthesoftwareproduct(s)will,and,ifnecessary,willnotdo
(3) Describetheapplicationofthesoftwarebeingspecified.Asaportionofthis,itshould:
(a)Describeallrelevantbenefits,objectives,andgoalsaspreciselyaspossible.For
example,tosaythatonegoalistoprovideeffectivereportingcapabilitiesisnotasgood
assayingparameterdriven,userdefinablereportswitha2hturnaroundandonline
entryofuserparameters.
(b)Beconsistentwithsimilarstatementsinhigherlevelspecifications(forexample,the
SystemRequirementSpecification),iftheyexist.Whatisthescopeofthissoftware
product.

1.3Definitions,Acronyms,andAbbreviations
Thissubsectionshouldprovidethedefinitionsofallterms,acronyms,andabbreviations
requiredtoproperlyinterprettheSRS.Thisinformationmaybeprovidedbyreferencetooneor
moreappendixesintheSRSorbyreferencetootherdocuments.

1.4Overview
Thissubsectionshould:
(1)DescribewhattherestoftheSRScontains
(2)ExplainhowtheSRSisorganized.

2.GeneralDescription
ThissectionoftheSRSshoulddescribethegeneralfactorsthataffect'theproductandits
requirements.Itshouldbemadeclearthatthissectiondoesnotstatespecificrequirements;it
onlymakesthoserequirementseasiertounderstand.
SoftwareRequirementsSpecification

Page1

<ProjectName>

2.1ProductFunctions
ThissubsectionoftheSRSshouldprovideasummaryofthefunctionsthatthesoftwarewill
perform.

2.2UserCharacteristics
ThissubsectionoftheSRSshoulddescribethosegeneralcharacteristicsoftheeventualusersof
theproductthatwillaffectthespecificrequirements.(SeetheIEEEGuidetoSRSformore
details).

2.3GeneralConstraints
ThissubsectionoftheSRSshouldprovideageneraldescriptionofanyotheritemsthatwill
limitthedevelopersoptionsfordesigningthesystem.(SeetheIEEEGuidetoSRSforapartial
listofpossiblegeneralconstraints).

2.4AssumptionsandDependencies
ThissubsectionoftheSRSshouldlisteachofthefactorsthataffecttherequirementsstatedin
theSRS.Thesefactorsarenotdesignconstraintsonthesoftwarebutare,rather,anychangesto
themthatcanaffecttherequirementsintheSRS.Forexample,anassumptionmightbethata
specificoperatingsystemwillbeavailableonthehardwaredesignatedforthesoftwareproduct.
If,infact,theoperatingsystemisnotavailable,theSRSwouldthenhavetochangeaccordingly.

3.SpecificRequirements
ThiswillbethelargestandmostimportantsectionoftheSRS.Thecustomerrequirementswill
beembodiedwithinSection2,butthissectionwillgivetheDrequirementsthatareusedto
guidetheprojectssoftwaredesign,implementation,andtesting.
Eachrequirementinthissectionshouldbe:
Correct
Traceable(bothforwardandbackwardtoprior/futureartifacts)
Unambiguous
Verifiable(i.e.,testable)
Prioritized(withrespecttoimportanceand/orstability)
Complete
Consistent
Uniquelyidentifiable(usuallyvianumberinglike3.4.5.6)
Attentionshouldbepaidtothecarefulyorganizetherequirementspresentedinthissectionso
thattheymayeasilyaccessedandunderstood.Furthermore,thisSRSisnotthesoftwaredesign
SoftwareRequirementsSpecification

Page2

<ProjectName>
document,thereforeoneshouldavoidthetendencytooverconstrain(andthereforedesign)the
softwareprojectwithinthisSRS.

3.1ExternalInterfaceRequirements
3.1.1UserInterfaces
The main interface of Kings Quest is extremely user friendly with an castle defense -like feel.
The standard buttons present allow the user to load a game, edit a game, play a game, or get additional
help on how to use the game platform. Errors will display if the game is not loaded correctly by the user
or the loaded user game is unplayable meaning Java errors are present leading to run-time/compile-time
errors. Some keyboard shortcuts include pause buttons and/or a quick ctrl-H to get to the help page of the
platform. The games are organized by topic with buttons for each game selection in the category.
Clearly, the user interface is easy to navigate and understand, as it is the main component that will drive
the game playing system. If it is un-usable then the game platform is useless.

3.1.2HardwareInterfaces
3.1.3SoftwareInterfaces
3.1.4CommunicationsInterfaces

3.2FunctionalRequirements
Thissectiondescribesspecificfeaturesofthesoftwareproject.Ifdesired,somerequirements
maybespecifiedintheusecaseformatandlistedintheUseCasesSection.
3.2.1<FunctionalRequirementorFeature#1>
3.2.1.1Introduction
3.2.1.2Inputs
3.2.1.3Processing
3.2.1.4Outputs
3.2.1.5ErrorHandling
3.2.2<FunctionalRequirementorFeature#2>

3.5NonFunctionalRequirements
Nonfunctionalrequirementsmayexistforthefollowingattributes.Oftentheserequirements
mustbeachievedatasystemwidelevelratherthanataunitlevel.Statetherequirementsinthe
followingsectionsinmeasurableterms(e.g.,95%oftransactionshallbeprocessedinlessthan
asecond,systemdowntimemaynotexceed1minuteperday,>30dayMTBFvalue,etc).

SoftwareRequirementsSpecification

Page3

<ProjectName>
3.5.1Performance
3.5.2Reliability
3.5.3Availability
3.5.4Security
3.5.5Maintainability
3.5.6Portability

3.6InverseRequirements
Stateany*useful*inverserequirements.

3.9OtherRequirements
Catchallsectionforanyadditionalrequirements.

SoftwareRequirementsSpecification

Page4