You are on page 1of 7

SoftwareRequirementsSpecificationTemplate

TableofContents

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
<ProjectName>

4.3DATAFLOWDIAGRAMS(DFD)...........................................................................................................................5
4.2STATETRANSITIONDIAGRAMS(STD)................................................................................................................5
5.A.APPENDICES......................................................................................................................................................5
A.1APPENDIX1.........................................................................................................................................................5
A.2Appendix2..........................................................................................................................................................5

SoftwareRequirementsSpecification Pageii
<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.4References
Thissubsectionshould:
(1) ProvideacompletelistofalldocumentsreferencedelsewhereintheSRS,orinaseparate,
specifieddocument.
(2) Identifyeachdocumentbytitle,reportnumberifapplicabledate,andpublishing
organization.
(3) Specifythesourcesfromwhichthereferencescanbeobtained.
Thisinformationmaybeprovidedbyreferencetoanappendixortoanotherdocument.

1.5IntendedAuidenace

SoftwareRequirementsSpecification Page1
<ProjectName>

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

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

2.1ProductPerspective
ThissubsectionoftheSRSputstheproductintoperspectivewithotherrelatedproductsor
projects.(SeetheIEEEGuidetoSRSformoredetails).

2.2ProductFunctions
ThissubsectionoftheSRSshouldprovideasummaryofthefunctionsthatthesoftwarewill
perform.

2.3UserCharacteristics
ThissubsectionoftheSRSshoulddescribethosegeneralcharacteristicsoftheeventualusersof
theproductthatwillaffectthespecificrequirements.(SeetheIEEEGuidetoSRSformore
details).

2.4GeneralConstraints
ThissubsectionoftheSRSshouldprovideageneraldescriptionofanyotheritemsthatwill
limitthedevelopersoptionsfordesigningthesystem.(SeetheIEEEGuidetoSRSforapartial
listofpossiblegeneralconstraints).

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

3.SpecificRequirements
ThiswillbethelargestandmostimportantsectionoftheSRS.Thecustomerrequirementswill
beembodiedwithinSection2,butthissectionwillgivetheDrequirementsthatareusedto
guidetheprojectssoftwaredesign,implementation,andtesting.

SoftwareRequirementsSpecification Page2
<ProjectName>

Eachrequirementinthissectionshouldbe:
Correct
Traceable(bothforwardandbackwardtoprior/futureartifacts)
Unambiguous
Verifiable(i.e.,testable)
Prioritized(withrespecttoimportanceand/orstability)
Complete
Consistent
Uniquelyidentifiable(usuallyvianumberinglike3.4.5.6)

Attentionshouldbepaidtothecarefulyorganizetherequirementspresentedinthissectionso
thattheymayeasilyaccessedandunderstood.Furthermore,thisSRSisnotthesoftwaredesign
document,thereforeoneshouldavoidthetendencytooverconstrain(andthereforedesign)the
softwareprojectwithinthisSRS.

3.1ExternalInterfaceRequirements
3.1.1UserInterfaces
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.3UseCases
3.3.1UseCase#1
3.3.2UseCase#2

SoftwareRequirementsSpecification Page3
<ProjectName>

3.4Classes/Objects
3.4.1<Class/Object#1>

3.4.1.1Attributes
3.4.1.2Functions
<Referencetofunctionalrequirementsand/orusecases>
3.4.2<Class/Object#2>

3.5NonFunctionalRequirements
Nonfunctionalrequirementsmayexistforthefollowingattributes.Oftentheserequirements
mustbeachievedatasystemwidelevelratherthanataunitlevel.Statetherequirementsinthe
followingsectionsinmeasurableterms(e.g.,95%oftransactionshallbeprocessedinlessthan
asecond,systemdowntimemaynotexceed1minuteperday,>30dayMTBFvalue,etc).
3.5.1Performance
3.5.2Reliability
3.5.3Availability
3.5.4Security
3.5.5Maintainability
3.5.6Portability

3.6InverseRequirements
Stateany*useful*inverserequirements.

3.7DesignConstraints
Specifydesignconstrainsimposedbyotherstandards,companypolicies,hardwarelimitation,
etc.thatwillimpactthissoftwareproject.

3.8LogicalDatabaseRequirements
Willadatabasebeused?Ifso,whatlogicalrequirementsexistfordataformats,storage
capabilities,dataretention,dataintegrity,etc.

3.9OtherRequirements
Catchallsectionforanyadditionalrequirements.

SoftwareRequirementsSpecification Page4
<ProjectName>

4.AnalysisModels
ListallanalysismodelsusedindevelopingspecificrequirementspreviouslygiveninthisSRS.
Eachmodelshouldincludeanintroductionandanarrativedescription.Furthermore,each
modelshouldbetraceabletheSRSsrequirements.

4.1SequenceDiagrams

4.3DataFlowDiagrams(DFD)

4.2Activity Diagram

5.ChangeManagementProcess
IdentifyanddescribetheprocessthatwillbeusedtoupdatetheSRS,asneeded,whenproject
scopeorrequirementschange.Whocansubmitchangesandbywhatmeans,andhowwillthese
changesbeapproved.

A.Appendices
Appendicesmaybeusedtoprovideadditional(andhopefullyhelpful)information.Ifpresent,
theSRSshouldexplicitlystatewhethertheinformationcontainedwithinanappendixistobe
consideredasapartoftheSRSsoverallsetofrequirements.

ExampleAppendicescouldinclude(initial)conceptualdocumentsforthesoftwareproject,
marketingmaterials,minutesofmeetingswiththecustomer(s),etc.

A.1Appendix1Glossary

A.2Appendix2Terminology

Providealistoftermsusedinthedocumentandtheirdescriptions,for
example:
Open Source A certification standard issued by the Open Source Initiative (OSI) that
indicates that the source code of a computer program is made available
free of charge to the general public.

SoftwareRequirementsSpecification Page5

You might also like