Академический Документы
Профессиональный Документы
Культура Документы
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)havealsobeusedasguidesindeveloping
thistemplatefortheWSUTCSpring2005CptS322course.
<ProjectName>
SoftwareRequirementsSpecification
<Version>
<Date>
WSUTCCptS322
SoftwareRequirementsSpecificationTemplate
<YourName>
LeadSoftwareEngineer
Preparedfor
WSUTCCptS322SoftwareEngineeringPrinciplesI
Instructor:A.DavidMcKinnon,Ph.D.
Spring2005
WSUTCCptS322
SoftwareRequirementsSpecificationTemplate
RevisionHistory
Date
<date>
Description
<Version1>
Author
<YourName>
Comments
<FirstRevision>
DocumentApproval
ThefollowingSoftwareRequirementsSpecificationhasbeenacceptedandapprovedbythe
following:
Signature
PrintedName
Title
Date
<YourName>
LeadSoftwareEng.
A.DavidMcKinnon
Instructor,CptS322
<ProjectName>
TableofContents
REVISIONHISTORY................................................................................................................................................
DOCUMENTAPPROVAL........................................................................................................................................
1.INTRODUCTION.....................................................................................................................................................
1.1PURPOSE...............................................................................................................................................................
1.2SCOPE...................................................................................................................................................................
1.3DEFINITIONS,ACRONYMS,ANDABBREVIATIONS................................................................................................
1.4REFERENCES.........................................................................................................................................................
1.5OVERVIEW............................................................................................................................................................
2.GENERALDESCRIPTION....................................................................................................................................
2.1PRODUCTPERSPECTIVE........................................................................................................................................
2.2PRODUCTFUNCTIONS...........................................................................................................................................
2.3USERCHARACTERISTICS......................................................................................................................................
2.4GENERALCONSTRAINTS.......................................................................................................................................
2.5ASSUMPTIONSANDDEPENDENCIES......................................................................................................................
3.SPECIFICREQUIREMENTS................................................................................................................................
3.1EXTERNALINTERFACEREQUIREMENTS...............................................................................................................
3.1.1UserInterfaces.............................................................................................................................................
3.1.2HardwareInterfaces....................................................................................................................................
3.1.3SoftwareInterfaces......................................................................................................................................
3.1.4CommunicationsInterfaces.........................................................................................................................
3.2FUNCTIONALREQUIREMENTS...............................................................................................................................
3.2.1<FunctionalRequirementorFeature#1>..................................................................................................
3.2.2<FunctionalRequirementorFeature#2>..................................................................................................
3.3USECASES............................................................................................................................................................
3.3.1UseCase#1.................................................................................................................................................
3.3.2UseCase#2.................................................................................................................................................
3.4CLASSES/OBJECTS..............................................................................................................................................
3.4.1<Class/Object#1>....................................................................................................................................
3.4.2<Class/Object#2>....................................................................................................................................
3.5NONFUNCTIONALREQUIREMENTS......................................................................................................................
3.5.1Performance.................................................................................................................................................
3.5.2Reliability.....................................................................................................................................................
3.5.3Availability...................................................................................................................................................
3.5.4Security........................................................................................................................................................
3.5.5Maintainability.............................................................................................................................................
3.5.6Portability....................................................................................................................................................
3.6INVERSEREQUIREMENTS......................................................................................................................................
3.7DESIGNCONSTRAINTS..........................................................................................................................................
3.8LOGICALDATABASEREQUIREMENTS..................................................................................................................
3.9OTHERREQUIREMENTS........................................................................................................................................
4.ANALYSISMODELS..............................................................................................................................................
4.1SEQUENCEDIAGRAMS..........................................................................................................................................
4.3DATAFLOWDIAGRAMS(DFD)...........................................................................................................................
4.2STATETRANSITIONDIAGRAMS(STD)................................................................................................................
5.CHANGEMANAGEMENTPROCESS................................................................................................................
A.APPENDICES..........................................................................................................................................................
A.1APPENDIX1.........................................................................................................................................................
A.2APPENDIX2.........................................................................................................................................................
SoftwareRequirementsSpecification
Page
<ProjectName>
1.Introduction
TheintroductiontotheSoftwareRequirementSpecification(SRS)documentshouldprovide
anoverviewofthecompleteSRSdocument.Whilewritingthisdocumentpleaseremember
thatthisdocumentshouldcontainalloftheinformationneededbyasoftwareengineerto
adequatelydesignandimplementthesoftwareproductdescribedbytherequirementslisted
inthisdocument.(Note:thefollowingsubsectionannotatesarelargelytakenfromthe
IEEEGuidetoSRS).
1.1Purpose
WhatisthepurposeofthisSRSandthe(intended)audienceforwhichitiswritten.
1.2Scope
Thissubsectionshould:
(1) Identifythesoftwareproduct(s)tobeproducedbyname;forexample,HostDBMS,
ReportGenerator,etc
(2) Explainwhatthesoftwareproduct(s)will,and,ifnecessary,willnotdo
(3) Describetheapplicationofthesoftwarebeingspecified.Asaportionofthis,itshould:
(a)Describeallrelevantbenefits,objectives,andgoalsaspreciselyaspossible.For
example,tosaythatonegoalistoprovideeffectivereportingcapabilitiesisnotas
goodassayingparameterdriven,userdefinablereportswitha2hturnaroundand
onlineentryofuserparameters.
(b)Beconsistentwithsimilarstatementsinhigherlevelspecifications(forexample,the
SystemRequirementSpecification),iftheyexist.Whatisthescopeofthissoftware
product.
1.3Definitions,Acronyms,andAbbreviations
Thissubsectionshouldprovidethedefinitionsofallterms,acronyms,andabbreviations
requiredtoproperlyinterprettheSRS.Thisinformationmaybeprovidedbyreferencetoone
ormoreappendixesintheSRSorbyreferencetootherdocuments.
1.4References
Thissubsectionshould:
(1) ProvideacompletelistofalldocumentsreferencedelsewhereintheSRS,orina
separate,specifieddocument.
(2) Identifyeachdocumentbytitle,reportnumberifapplicabledate,andpublishing
organization.
(3) Specifythesourcesfromwhichthereferencescanbeobtained.
Thisinformationmaybeprovidedbyreferencetoanappendixortoanotherdocument.
1.5Overview
Thissubsectionshould:
(1)DescribewhattherestoftheSRScontains
(2)ExplainhowtheSRSisorganized.
2.GeneralDescription
ThissectionoftheSRSshoulddescribethegeneralfactorsthataffect'theproductandits
requirements.Itshouldbemadeclearthatthissectiondoesnotstatespecificrequirements;
itonlymakesthoserequirementseasiertounderstand.
SoftwareRequirementsSpecification
Page
<ProjectName>
2.1ProductPerspective
ThissubsectionoftheSRSputstheproductintoperspectivewithotherrelatedproductsor
projects.(SeetheIEEEGuidetoSRSformoredetails).
2.2ProductFunctions
ThissubsectionoftheSRSshouldprovideasummaryofthefunctionsthatthesoftwarewill
perform.
2.3UserCharacteristics
ThissubsectionoftheSRSshoulddescribethosegeneralcharacteristicsoftheeventualusers
oftheproductthatwillaffectthespecificrequirements.(SeetheIEEEGuidetoSRSfor
moredetails).
2.4GeneralConstraints
ThissubsectionoftheSRSshouldprovideageneraldescriptionofanyotheritemsthatwill
limitthedevelopersoptionsfordesigningthesystem.(SeetheIEEEGuidetoSRSfora
partiallistofpossiblegeneralconstraints).
2.5AssumptionsandDependencies
ThissubsectionoftheSRSshouldlisteachofthefactorsthataffecttherequirementsstated
intheSRS.Thesefactorsarenotdesignconstraintsonthesoftwarebutare,rather,any
changestothemthatcanaffecttherequirementsintheSRS.Forexample,anassumption
mightbethataspecificoperatingsystemwillbeavailableonthehardwaredesignatedfor
thesoftwareproduct.If,infact,theoperatingsystemisnotavailable,theSRSwouldthen
havetochangeaccordingly.
3.SpecificRequirements
ThiswillbethelargestandmostimportantsectionoftheSRS.Thecustomerrequirements
willbeembodiedwithinSection2,butthissectionwillgivetheDrequirementsthatareused
toguidetheprojectssoftwaredesign,implementation,andtesting.
Eachrequirementinthissectionshouldbe:
Correct
Traceable(bothforwardandbackwardtoprior/futureartifacts)
Unambiguous
Verifiable(i.e.,testable)
Prioritized(withrespecttoimportanceand/orstability)
Complete
Consistent
Uniquelyidentifiable(usuallyvianumberinglike3.4.5.6)
Attentionshouldbepaidtothecarefulyorganizetherequirementspresentedinthissection
sothattheymayeasilyaccessedandunderstood.Furthermore,thisSRSisnotthesoftware
designdocument,thereforeoneshouldavoidthetendencytooverconstrain(andtherefore
design)thesoftwareprojectwithinthisSRS.
SoftwareRequirementsSpecification
Page
<ProjectName>
3.1ExternalInterfaceRequirements
3.1.1UserInterfaces
3.1.2HardwareInterfaces
3.1.3SoftwareInterfaces
3.1.4CommunicationsInterfaces
3.2FunctionalRequirements
Thissectiondescribesspecificfeaturesofthesoftwareproject.Ifdesired,some
requirementsmaybespecifiedintheusecaseformatandlistedintheUseCasesSection.
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
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.Statetherequirementsin
thefollowingsectionsinmeasurableterms(e.g.,95%oftransactionshallbeprocessedin
lessthanasecond,systemdowntimemaynotexceed1minuteperday,>30dayMTBF
value,etc).
SoftwareRequirementsSpecification
Page
<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.7DesignConstraints
Specifydesignconstrainsimposedbyotherstandards,companypolicies,hardware
limitation,etc.thatwillimpactthissoftwareproject.
3.8LogicalDatabaseRequirements
Willadatabasebeused?Ifso,whatlogicalrequirementsexistfordataformats,storage
capabilities,dataretention,dataintegrity,etc.
3.9OtherRequirements
Catchallsectionforanyadditionalrequirements.
4.AnalysisModels
Listallanalysismodelsusedindevelopingspecificrequirementspreviouslygiveninthis
SRS.Eachmodelshouldincludeanintroductionandanarrativedescription.Furthermore,
eachmodelshouldbetraceabletheSRSsrequirements.
4.1SequenceDiagrams
4.3DataFlowDiagrams(DFD)
4.2StateTransitionDiagrams(STD)
5.ChangeManagementProcess
IdentifyanddescribetheprocessthatwillbeusedtoupdatetheSRS,asneeded,when
projectscopeorrequirementschange.Whocansubmitchangesandbywhatmeans,and
howwillthesechangesbeapproved.
A.Appendices
Appendicesmaybeusedtoprovideadditional(andhopefullyhelpful)information.If
present,theSRSshouldexplicitlystatewhethertheinformationcontainedwithinan
appendixistobeconsideredasapartoftheSRSsoverallsetofrequirements.
ExampleAppendicescouldinclude(initial)conceptualdocumentsforthesoftwareproject,
marketingmaterials,minutesofmeetingswiththecustomer(s),etc.
SoftwareRequirementsSpecification
Page
<ProjectName>
A.1Appendix1
A.2Appendix2
SoftwareRequirementsSpecification
Page