A Software Design Specification Template.docx
《A Software Design Specification Template.docx》由会员分享,可在线阅读,更多相关《A Software Design Specification Template.docx(13页珍藏版)》请在冰点文库上搜索。
ASoftwareDesignSpecificationTemplate
ASoftwareDesignSpecificationTemplate
byBradAppleton
Copyright©1994-1997byBradfordD.Appleton
Permissionisherebygrantedtomakeanddistributeverbatimcopiesofthisdocument
providedthecopyrightnoticeandthispermissionnoticearepreservedonallcopies.
TableofContents
∙Introduction
∙DocumentOutline
∙DocumentDescription
oIntroduction
oSystemOverview
oDesignConsiderations
▪AssumptionsandDependencies
▪GeneralConstraints
▪GoalsandGuidelines
▪DevelopmentMethods
oArchitecturalStrategies
oSystemArchitecture
▪SubsystemArchitecture
oPoliciesandTactics
oDetailedSystemDesign
▪DetailedSubsystemDesign
oGlossary
oBibliography
Introduction
Thefollowingisanattempttoputtogetheracomplete,yetreasonablyflexibletemplateforthespecificationofsoftwaredesigns.Whereverpossible,Ihavetriedtoprovideguidelines(insteadofprescribingrequirements)forthecontentsofvarioussectionsandsubsectionsofthedocument.Somemayprefertorequiremoredetailedsubsectionsofaparticularsection,choosingoneormoreofthesubsectiontopicsfromthelistofguidelinesprovided.Inthissense,thisdocumentisreallyatemplateforatemplate.
Indevisingthistemplate,Ihavegleanedinformationfrommanysources,includingvarioustextsonSoftwareEngineering(Pressman,Sommerville,andVanVliet),Object-OrientedDevelopment(Booch,Rumbaugh,Berard,andWirfs-Brock),variousSEIreports,DoD-StdandMil-Stddocumentationrequirements(2167/2167A),andIEEEdocumentationstandards(particularlyIEEE-1016forsoftwaredesigns,andIEEE-830forsoftwarerequirements).Ihavemadeeveryeffortnottoassumeorimposeaparticularsoftwaredevelopmentmethodologyorparadigm,andtoplacemoreemphasisoncontentthanonformat.
Itismydesirethatacompletedsoftwaredesignspecificationmeetthefollowingcriteria:
∙Itshouldbeabletoadequatelyserveastrainingmaterialfornewprojectmembers,impartingtothemenoughinformationandunderstandingabouttheprojectimplementation,sothattheyareabletounderstandwhatisbeingsaidindesignmeetings,andwon'tfeelasiftheyaredrowningwhentheyarefirstaskedtocreateormodifysourcecode.
∙Itshouldserveas"objectiveevidence"thatthedesignersand/orimplementorsarefollowingthroughontheircommitmenttoimplementthefunctionalitydescribedintherequirementsspecification.
∙Itneedstobeasdetailedaspossible,whileatthesametimenotimposingtoomuchofaburdenonthedesignersand/orimplementorsthatitbecomesoverlydifficulttocreateormaintain.
Pleasenotethattherearenosectionsinthisdocumentfordescribingadministrativeorbusinessduties,orforproposingplansorschedulesfortestingordevelopment.Thesectionsinthisdocumentareconcernedsolelywiththedesignofthesoftware.Whilethereareplacesinthisdocumentwhereitisappropriatetodiscusstheeffectsofsuchplansonthesoftwaredesign,itisthisauthor'sopinionthatmostofthedetailsconcerningsuchplansbelonginoneormoreseparatedocuments.
DocumentOutline
Hereistheoutlineoftheproposedtemplateforsoftwaredesignspecifications.Pleasenotethatmanypartsofthedocumentmaybeextractedautomaticallyfromothersourcesand/ormaybecontainedinother,smallerdocuments.Whatfollowsisjustonesuggestedoutlineformattousewhenattemptingtopresentthearchitectureanddesignoftheentiresystemasonesingledocument.Thisbynomeansimpliesthatitliterallyisasingledocument(thatwouldnotbemypersonalpreference):
∙Introduction
∙SystemOverview
∙DesignConsiderations
oAssumptionsandDependencies
oGeneralConstraints
oGoalsandGuidelines
oDevelopmentMethods
∙ArchitecturalStrategies
ostrategy-1nameordescription
ostrategy-2nameordescription
o...
∙SystemArchitecture
ocomponent-1nameordescription
ocomponent-2nameordescription
o...
∙PoliciesandTactics
opolicy/tactic-1nameordescription
opolicy/tactic-2nameordescription
o...
∙DetailedSystemDesign
omodule-1nameordescription
omodule-2nameordescription
o...
∙Glossary
∙Bibliography
Theaboveoutlineisbynomeansexclusive.Aparticularnumberingschemeisnotnecessarilyrequiredandyouaremorethanwelcometoaddyourownsectionsorsubsectionswhereyoufeeltheyareappropriate.Inparticularyoumaywishtomovethebibliographyandglossarytothebeginningofthedocumentinsteadofplacingthemattheend.
Thesametemplateisintendedtobeusedforbothhigh-leveldesignandlow-leveldesign.Thedesigndocumentusedforhigh-leveldesignisa"livingdocument"inthatitgraduallyevolvestoincludelow-leveldesigndetails(althoughperhapsthe"DetailedDesign"sectionmaynotyetbeappropriateatthehigh-leveldesignphase).
Theorderingofthesectionsinthisdocumentattemptstocorrespondtotheorderinwhichissuesareaddressedandinwhichdecisionsaremadeduringtheactualdesignprocess.Ofcourseitisunderstoodthatsoftwaredesignsfrequently(andoftenfortunately)don'talwaysproceedinthisorder(orinanylinear,orevenpredictableorder).However,itisusefulforthepurposeofcomprehendingthedesignofthesystemtopresentthemasiftheydid.Frequently,oneofthebestwaystodocumentaproject'sdesignistokeepadetailedprojectjournal,log,ordiaryofissuesastheyaremulledoverandbandiedaboutandtorecordthedecisionsmade(andthereasonswhy)inthejournal.Unfortunately,thejournalformatisnotusuallyorganizedthewaymostpeoplewouldlikeitforaformalreview.Insuchcases,forthepurposeofreview,thejournalcanbecondensedand/orportionsofitextractedandreorganizedaccordingtothisoutline.However,ifthisisdonethenyouneedtochoosewhethertoupdateandmaintainthedesigndocumentinthejournalformat,ortheformalreviewformat.Itisnotadvisabletotryandmaintainthedesigndocumentinbothformats.(Ifyouhaveanautomatedmethodofconvertingthejournalintoaformaldocument,thenthisproblemissolved.)
DocumentDescription
Hereisthedescriptionofthecontents(bysectionandsubsection)oftheproposedtemplateforsoftwaredesignspecifications:
Introduction
Provideanoverviewoftheentiredocument:
∙Describethepurposeofthisdocument
∙Describethescopeofthisdocument
∙Describethisdocument'sintendedaudience
∙Identifythesystem/productusinganyapplicablenamesand/orversionnumbers.
∙Providereferencesforanyotherpertinentdocumentssuchas:
oRelatedand/orcompaniondocuments
oPrerequisitedocuments
oDocumentswhichprovidebackgroundand/orcontextforthisdocument
oDocumentsthatresultfromthisdocument(e.g.atestplanoradevelopmentplan)
∙Defineanyimportantterms,acronyms,orabbreviations
∙Summarize(orgiveanabstractfor)thecontentsofthisdocument.
Note:
Fortheremainingsectionsofthisdocument,itisconceivable(andperhapsevendesirable)thatoneormoreofthesectiontopicsarediscussedinaseparatedesigndocumentwithintheproject.Foreachsectionwheresuchadocumentexists,areferencetotheappropriatedesigndocumentisallthatisnecessary.Allsuchexternal(orfragmented)designdocumentsshouldprobablybeprovidedwiththisdocumentatanydesignreviews.
SystemOverview
Provideageneraldescriptionofthesoftwaresystemincludingitsfunctionalityandmattersrelatedtotheoverallsystemanditsdesign(perhapsincludingadiscussionofthebasicdesignapproachororganization).Feelfreetosplitthisdiscussionupintosubsections(andsubsubsections,etc...).
DesignConsiderations
Thissectiondescribesmanyoftheissueswhichneedtobeaddressedorresolvedbeforeattemptingtodeviseacompletedesignsolution.
AssumptionsandDependencies
Describeanyassumptionsordependenciesregardingthesoftwareanditsuse.Thesemayconcernsuchissuesas:
∙Relatedsoftwareorhardware
∙Operatingsystems
∙End-usercharacteristics
∙Possibleand/orprobablechangesinfunctionality
GeneralConstraints
Describeanygloballimitationsorconstraintsthathaveasignificantimpactonthedesignofthesystem'ssoftware(anddescribetheassociatedimpact).Suchconstraintsmaybeimposedbyanyofthefollowing(thelistisnotexhaustive):
∙Hardwareorsoftwareenvironment
∙End-userenvironment
∙Availabilityorvolatilityofresources
∙Standardscompliance
∙Interoperabilityrequirements
∙Interface/protocolrequirements
∙Datarepositoryanddistributionrequirements
∙Securityrequirements(orothersuchregulations)
∙Memoryandothercapacitylimitations
∙Performancerequirements
∙Networkcommunications
∙Verificationandvalidationrequirements(testing)
∙Othermeansofaddressingqualitygoals
∙Otherrequirementsdescribedintherequirementsspecification
GoalsandGuidelines
Describeanygoals,guidelines,principles,orprioritieswhichdominateorembodythedesignofthesystem'ssoftware.Suchgoalsmightbe:
∙TheKISSprinciple("Keepitsimplestupid!
")
∙Emphasisonspeedversusmemoryuse
∙working,looking,or"feeling"likeanexistingproduct
Foreachsuchgoalorguideline,unlessitisimplicitlyobvious,describethereasonforitsdesirability.Feelfreetostateanddescribeeachgoalinitsownsubsubsectionifyouwish.
DevelopmentMethods
Brieflydescribethemethodorapproachusedforthissoftwaredesign.Ifoneormoreformal/publishedmethodswereadoptedoradapted,thenincludeareferencetoamoredetaileddescr