Software Documentation Overview

Transcription

Software Documentation Overview
SoftwareDocumentation
B.Lund.Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
Hans-PetterHalvorsen,M.Sc.
End-User
Documentation
System
Documentation
STD
UserGuides
Installation
Guides
Deployment
SDP
Maintenance
SoftwareDevelopment
Plan
ProjectPlanning
Testing
SoftwareTestDocumentation
TestPlan
Test
Documentation
Planning
GanttChart
YourSoftware
withDocumentation
Requirements
Analysis
SRS
Implementation
SoftwareRequirements
Specifications
Code
SystemDocumenation
Design
SDD
SoftwareDesignDocuments
withERDiagram,UMLDiagrams,CADDrawings
ProjectDocumentation
1.Planning
(stakeholders, the
softwareteam;
architects,UX
designers,
developers)
Time
ProjectManagement(GanttChart,etc.)
ProjectStart
ProjectFinish
2.Testing
(QApeople)
3.End-user
Documentation
ProjectPlanning
SoftwareDevelopmentPlan(SDP)
High-Level
Requirementsand
DesignDocuments
WHAT
Detailed
Requirementsand
DesignDocuments
ERDiagram
UMLDiagrams
CADDrawings
TestPlans
TestDocumentation
HowtoTest/
WhattoTest
Proofthatyou havetested
andthatthesoftwareworks
asexpected
System
Documentation
TechnicalStuff
InstallationGuides
Howtoinstallit
(Thepeoplethat
shallactuallyuse
thesoftware)
UserManuals
4.Handover
FinalReport
(Business people)
HOW
(SuperUser/ITdep.)
Howtouseit
(EndUser)
SoftwareProjectDocumentationCategories
Project
Documentation
Process
Documentation
ProjectPlan,GantChart,MeetingDocuments,
Requirements&Designdocumentation,
Emails,otherkindof WorkinDocuments, etc.
System
Documentation
TechnicalDocumentation needed in
ordertomaintainthesoftware,etc.
Product
Documentation
Installation
Guides
User
Documentation
UserManual,Wikis,Online
Help, etc.
SoftwareProcessDocumentation
1. SoftwareDevelopmentPlan(SDP)
2. SoftwareRequirements
Specifications(SRS)
3. SoftwareDesignDocuments(SDD)
4. SoftwareTestDocuments(STD)
SoftwareRequirements&Design
Requirements(WHAT):
• WHAT thesystemshoulddo
• DescribewhatthesystemshoulddowithWordsand
Figures,etc.
• SRS – SoftwareRequirementsSpecification
SoftwareDesign(HOW):
• HOW itshoulddoit
• Examples:GUIDesign,UML,ERdiagram,CAD,etc.
• SDD – SoftwareDesignDocument
ManydontseparateSRSandSDDdocuments,butincludeeverythingina
Requirementsdocument.
Inpractice,requirementsanddesignareinseparable.
TheSoftwareRequirementsDocument
SoftwareRequirmentsSpecifications(SRS)
• Thesoftwarerequirementsdocumentisthe
officialstatementofwhatisrequiredofthe
systemdevelopers.
• Shouldincludebothadefinitionofuser
requirementsandaspecificationofthe
systemrequirements.
• ItisNOTadesigndocument.Asfaras
possible,itshouldsetofWHATthesystem
shoulddoratherthanHOWitshoulddoit.
I.Sommerville,SoftwareEngineering:Pearson,2015. TheStructureoftheSRSDocument
Chapter
Description
Preface
This should define the expected readership of the document and describe its version history, including a rationale for the creation of
a new version and a summary of the changes made in each version.
Introduction
This should describe the need for the system. It should briefly describe the system’s functions and explain how it will work with other
systems. It should also describe how the system fits into the overall business or strategic objectives of the organization
commissioning the software.
Glossary
This should define the technical terms used in the document. You should not make assumptions about the experience or expertise
of the reader.
User requirements definition
Here, you describe the services provided for the user. The nonfunctional system requirements should also be described in this
section. This description may use natural language, diagrams, or other notations that are understandable to customers. Product and
process standards that must be followed should be specified.
System architecture
This chapter should present a high-level overview of the anticipated system architecture, showing the distribution of functions across
system modules. Architectural components that are reused should be highlighted.
System requirements specification
This should describe the functional and nonfunctional requirements in more detail. If necessary, further detail may also be added to
the nonfunctional requirements. Interfaces to other systems may be defined.
System models
This might include graphical system models showing the relationships between the system components and the system and its
environment. Examples of possible models are object models, data-flow models, or semantic data models.
System evolution
This should describe the fundamental assumptions on which the system is based, and any anticipated changes due to hardware
evolution, changing user needs, and so on. This section is useful for system designers as it may help them avoid design decisions
that would constrain likely future changes to the system.
Appendices
These should provide detailed, specific information that is related to the application being developed; for example, hardware and
database descriptions. Hardware requirements define the minimal and optimal configurations for the system. Database
requirements define the logical organization of the data used by the system and the relationships between data.
Index
Several indexes to the document may be included. As well as a normal alphabetic index, there may be an index of diagrams, an
index of functions, and so on.
8
I.Sommerville,SoftwareEngineering:Pearson,2015. SoftwareDocumentationRequirements
• Shouldactasacommunicationmediumbetween
membersoftheDevelopmentTeam
• InformationrespositoryusedbyMaintenanceEngineers
• InformationforManagementtohelpthemPlan,Budget
andSchedule theSoftwareDevelopmentProcess
• Someofthedocumentsshouldtellusershowtouseand
administerthesystem
• DocumentsforQualityControl,SystemCertification,etc.
=>Satisfyingtheserequirementsrequiresdifferenttypesof
documentsfrominformalworkingdocumentsthrough
professionallyproducedUserManuals
SoftwareDocumentation
Ifthedocumentationisnotuseful– dontmakeit!!
SoftwareDocumentation
• System/TechnicalDocumentation
– ClassDiagrams
– StateDiagrams
– SequenceDiagrams
– CodeComments
• UserDocumentation
– UserManual
– InstallationGuide
– Wiki
– OnlineDocumentationandHelp
SoftwareDocumentation
• Forlargeprojects,itisusuallythecasethat
documentationstartsbeinggeneratedwellbeforethe
developmentprocessbegins
• Thesetofdocumentsthatyouhavetoproduceforany
systemdepends
– onthecontractwiththeclientforthesystem(the
customer)
– thetypeofsystembeingdeveloped
– itsexpectedlifetime
– thecompanyculture
– thesizeofthecompanydevelopingthesystem
– thedevelopmentschedule
Programmersdon'tdocumentL
ButtheyshouldJ!!!
SoftwareProjectDocumentation
DocumentationproducedduringasoftwareProject
canbedividedinto2Categories:
• ProcessDocumentation
– Thesedocumentsrecordtheprocessofdevelopment
andmaintenance,e.g.,Plans,Schedules(e.g.,Gantt
Charts),etc.
• ProductDocumentation
– Thesedocumentsdescribetheproductthatisbeing
developed.Canbedividedinto2subcategories:
• SystemDocumentation
– Usedbyengineersdevelopingandmaintainingthesystem
• UserDocumentation
– Usedbythepeoplethatisusingthesystem
ProcessDocumentation
15
ProcessDocumentation
Purpose:
• ProcessDocumentationisproducedsothat
thedevelopmentofthesystemcanbe
managed
• Itisanessentialcomponentofplan-driven
approaches(e.g.,Waterfall)
• AgileApproaches:TheGoalistominimizethe
amountofProcessDocumentation
ProcessDocumentation
Categories:
1. Plans,estimatesandschedules.Thesearedocumentsproducedby
managerswhichareusedtopredictandtocontrolthesoftware
process.
2. Reports.Thesearedocumentswhichreporthowresourceswereused
duringtheprocessofdevelopment.
3. Standards.Thesearedocumentswhichsetouthowtheprocessisto
beimplemented.Thesemaybedevelopedfromorganizational,
nationalorinternationalstandards.
4. Workingpapers.Theseareoftentheprincipaltechnical
communicationdocumentsinaproject.Theyrecordtheideasand
thoughtsoftheengineersworkingontheproject,areinterimversions
ofproductdocumentation,describeimplementationstrategiesandset
outproblemswhichhavebeenidentified.Theyoften,implicitly,record
therationalefordesigndecisions.
5. E-mailmessages,wikis,etc.Theserecordthedetailsofeveryday
communicationsbetweenmanagersanddevelopmentengineers.
SoftwareDevelopmentPlan(SDP)
AnSDPnormallyincludethefollowingsections:
1. Introduction:Thisbrieflydescribestheobjectivesoftheprojectandsetoutthe
constraints(e.g.,budget,time,etc.)thataffectsthemanagementoftheproject
2. ProjectOrgianization (TeamDescription) Thissectiondescribeshowthe
developmentteamisorganized,thepeaople involvedandtheirrolesinthe
team.SoftwareProcessModelDescription(Scrum,XP,Waterfall,...),etc.
3. RiskAnalysis
4. HardwareandSoftwareResourceRequirements
5. WorkBreakdown(WBS,WorkBreakdownStructure):Breakdowntheprojectin
intoactivitiesandidentifiesmilestones
6. ProjectSchedule:Showsdependenciesbetweenactivities,theestimatedtime
requiredtoreacheachmilestone,allocationofpeopletoactivities.(5)and(6)is
typicallydoneinaGanttChart(createdine.g.MicrosoftProject)
7. MonitoringandReportingMechanisms:DefinitionoftheManagementReport
thatshouldbeproduced,whenthes shouldbeproduced,etc.
8. Toolsthatyouareusing
GanttChart
19
TestDocumentation
SoftwareTestPlan(STP)
TestLogs
PlanningTests
PerformTests
Document
TestResults
SoftwareTest
Documentation
(STD)
SoftwareDesignDocument (SDD)
SoftwareRequirementsSpecifications(SRS)
- Functional&Non-FunctionalRequirements
- User&SystemRequirements
ThesedocumentswillbethefoundationforallTesting
ProductDocumentation
ProductDocumentation
Purpose:
• Describingthedeliveredsoftwareproduct
• Unlikemostprocessdocumentation,ithasa
relativelylonglife.
• ItmustEvolveinstepwiththeproductthatit
describes.
• Productdocumentationincludes
– Userdocumentation,whichtellsusershowtousethe
softwareproduct,
– SystemDocumentation,whichisprincipallyintendedfor
maintenanceengineers.
ProductDocumentationTypes&Readers
Tocaterforthesedifferentclassesofuseranddifferentlevelsofuserexpertise,
severaldocuments(orperhapschaptersinasingledocument)shouldbedelivered
withthesoftwaresystem.
ProductDocumentation
UserDocumentation
UserDocumentation
UserDocumentationReaders
• Usersofasystemarenotallthesame.
• Theproducerofdocumentationmuststructureittocaterfor
differentusertasksanddifferentlevelsofexpertiseand
experience.
• Itisparticularlyimportanttodistinguishbetweenend-usersand
systemadministrators:
1. End-usersusethesoftwaretoassistwithsometask.
–
Thismaybeflyinganaircraft,managinginsurancepolicies,writinga
book,etc.Theywanttoknowhowthesoftwarecanhelpthem.
Theyarenotinterestedincomputeroradministrationdetails.
2. Systemadministratorsareresponsibleformanagingthe
softwareusedbyend-users.
–
Thismayinvolveactingasanoperatorifthesystemisalarge
mainframesystem,asanetworkmanageristhesysteminvolvesa
networkofworkstationsorasatechnicalguruwhofixesend-users
softwareproblemsandwholiaisesbetweenusersandthesoftware
supplier.
UserManual
Wiki
O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com
ProductDocumentation
SystemDocumentation
System
Documentation
30
SystemDocumentation
• Systemdocumentationincludesallofthedocuments
describingthesystemitselffromtherequirements
specificationtothefinalacceptancetestplan.
• Documentsdescribingthedesign,implementation
andtestingofasystemareessentialiftheprogramis
tobeunderstoodandmaintained.
• Likeuserdocumentation,itisimportantthatsystem
documentationisstructured,withoverviewsleading
thereaderintomoreformalanddetaileddescriptions
ofeachaspectofthesystem.
CodeDocumentation
O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com
SystemDocumentation
Forlargesystemsthataredeveloped toacustomer’sspecification, thesystem
documentation should include:
1.
Therequirements document.
2.
Adocumentdescribing thesystemarchitecture.
3.
Foreachprograminthesystem,adescription ofthearchitectureofthatprogram.
4.
Foreachcomponent inthesystem,adescription ofitsfunctionality andinterfaces.
5.
Programsourcecodelistings, whichshould becommentedwherethecomments
should explaincomplexsectionsofcodeandprovidearationaleforthecoding method
used.
–
–
6.
Validation documents describing howeachprogramisvalidatedandhowthevalidation
information relatestotherequirements.
–
7.
Ifmeaningfulnamesareusedandagood,structuredprogrammingstyleisused, muchofthecodeshould
beselfdocumentingwithouttheneedforadditionalcomments.
Thisinformation isnownormally maintainedelectronicallyratherthanonpaperwithselectedinformation
printedondemandfromreaders.
Thesemayberequiredforthequalityassuranceprocesses intheorganization.
ASystemMaintenanceGuide,whichdescribesknown problems withthesystem,
describeswhichpartsof thesystemarehardwareandsoftwaredependent andwhich
describeshowevolution ofthesystemhasbeentakenintoaccountinitsdesign
UseCaseDiagrams
UML
ClassDiagrams
Sequence Diagrams
DatabaseERDiagram
Example:
Summary
References
• I.Sommerville,SoftwareEngineering:Pearson,2015.
• Wikipedia.(2013).ScrumDevelopment.Available:
http://en.wikipedia.org/wiki/Scrum_(development)
• Wikipedia.(2013).AgileSoftwareDevelopment.Available:
http://en.wikipedia.org/wiki/Agile_software_development
• CoreTrek.(2013).Scrumi etnøtteskall.Available:
http://www.coretrek.no/scrum-i-et-noetteskall/category642.html
• S.Adams.Dilbert.Available:http://dilbert.com
• O.Widder.(2013).Geek&Poke.Available:http://geek-andpoke.com
• B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,
http://www.dagbladet.no/tegneserie/lunch/
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorway
www.usn.no
E-mail:hans.p.halvorsen@hit.no
Blog:http://home.hit.no/~hansha/