Software Requirements Overview
Transcript of Software Requirements Overview
Hans-PetterHalvorsen
SoftwareRequirementsRequirementsEngineering,RequirementsAnalysis
B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
2017.03.08
Contents
• Introduction• SoftwareRequirements• SoftwareDesign• UML• SRSDocument• RequirementsinTFS/VSTS
SoftwareRequirements
Requirementsforasoftwaresystemsetoutwhatthesystemshoulddoanddefineconstraintsonitsoperationandimplementation
Requirements:“Thestatementsthatdescribewhatthesoftwaresystemshouldbebutnothowitistobeconstructed.”RequirementsEngineering:“Asetofactivitiesrelatedtothedevelopmentandagreementofthefinalsetofrequirementspecifications.”
StepsintheRequirementsEngineeringProcess:
SoftwareRequirementsRequirementsEngineering
RequirementsEngineering
WhatisRequirementsEngineering?
UserWorld
SoftwareSystem
Requirements
Requirementsisthebridgebetweentherealworldandthesoftwaresystem
AnIntroductiontoRequirementsEngineering:https://youtu.be/Ec0s0z5uXQ8
RequirementsEngineering
WhattheCustomergot
WhattheCustomerreallyneeded
SoftwareRequirements&DesignRequirements(WHAT):• WHAT thesystemshoulddo• DescribeswhatthesystemshoulddowithWordsandFigures,etc.• SRS – SoftwareRequirementsSpecificationDocumentSoftwareDesign(HOW):• HOW itshoulddoit• Examples:GUIDesign,UML,ERdiagram,CAD,etc.• SDD – SoftwareDesignDocument
Note!Manydon'tseparateSRSandSDDdocuments,butincludeeverythinginaRequirements&DesignDocument(SRD document).Inpractice,requirementsanddesignareinseparable.
CommunicationbetweenCustomers/StakeholdersandSoftware/ITpeopleisdemanding!WhatdoestheCustomersreallywant/need?
CustomerRequirementsUser
RequirementsSystem
Requirements
FunctionalRequirements
Non-FunctionalRequirements
B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
6dimensionsofRequirementsTherearesixmaincategoriesofinformationthatmustbeaddressedintheRequirementsspecifications:
“Individualfunctionality”isthethenaturalstartingpoint.AsktheUsersandCustomerswhattheirproblemsareintermsofwhatfunctionsneedtobeimplementedintheproduct.
Whowillreadit?
Use the requirements todevelop validation tests forthe system.
Use the requirementsdocument to plan a bid forthe system and to plan thesystem development process.
Use the requirements tounderstand what system isto be developed.
System testengineers
Managers
Systemengineers
Specify the requirements andread them to check that theymeet their needs. Customersspecify changes to therequirements.
Systemcustomers
Use the requirements tounderstand the system andthe relationships between itsparts.
Systemmaintenance
engineers
Usersofarequirementsdocument
I.Sommerville,SoftwareEngineering:Pearson,2010.
TheDevelopmentProcess
Design
Implementation
Testing
Requirements
Deployment
InthiscasetheoverallRequirementsaregivenbytheTeacherintheAssignment.Thedetailsarewrittenbyyou!
TheDe
velopm
entP
rocessinvolvesdifferen
tphases
TheRequirementsmaybegivenbytheCustomer
Whenyouarefinished,youdeployandtestthesolutionontheCustomerSite
Makesureeverythingworkasexpected
TheDesignphaseisimportant,butmakesureyouhavetimeleftforalltheothertasksaswell)AretheDesignwrong?Go
backandcorrectit!
Errors?Improveyourcodeandfixthebugs
WhyspendtimeonRequirementsAnalysis?
SoftwareDevelopmentLifeCycle(SDLC)
Costperdefectsandchanges
Hans-PetterHalvorsen
SoftwareRequirements
High-LevelRequirements
…
….
DetailedRequirements
…
…
SoftwareRequirements
TypicalwrittenbytheCustomers TypicalwrittenbySoftwareArchitects,etc.
High-LevelRequirementsvs.
DetailedRequirements
High-LevelRequirements
• WHATshouldthesystemdo?• Whoshouldusethesystem• Whatisthepurposewiththesystem?• Performance• Whatpartsshouldthesystemconsistsof• WhatPlatformsshouldbeused(PC,Tablet,Web?,...)• etc.
UseWordsandFiguresinordertodescribetheseRequirements
DetailedRequirementsandDesign
• WhatPlatformsshouldbeused(Windows,iOS,...)inmoredetail• ToolsandLanguages• SoftwareArchitecture()• Frameworks(.NET,ASP.NET,...)• DetailedGUIdesignsketches• UMLDiagrams• ER(Database)Diagrams• CADDrawings• etc.
Requirements
UserRequirements
SystemRequirements
Requirements
FunctionalRequirements
Non-FunctionalRequirements
SoftwareRequirementsCategories
UserRequirements
SystemRequirements
FunctionalRequirements
Non-FunctionalRequirements
SoftwareRequirementsCategoriesRequirements:Statementsinnaturallanguageplusdiagramsoftheservicesthesystemprovidesanditsoperationalconstraints.Writtenforcustomers.
Astructureddocumentsettingoutdetaileddescriptionsofthesystem’sfunctions,servicesandoperationalconstraints.Defineswhatshouldbeimplementedsomaybepartofacontractbetweenclientandcontractor.
Constraintsontheservicesorfunctionsofferedbythesystemsuchastimingconstraints,constraintsonthedevelopmentprocess,standards,etc.Oftenapplytothesystemasawholeratherthanindividualfeaturesorservices.
Statementsofservicesthesystemshouldprovide,howthesystemshouldreacttoparticularinputsandhowthesystemshouldbehaveinparticularsituations.Maystatewhatthesystemshouldnotdo.
Statementsinnaturallanguageplusdiagramsoftheservicesthesystemprovidesanditsoperationalconstraints.Writtenforcustomers.
Uservs.SystemRequirementsUserRequirements:Statementsinnaturallanguageplusdiagramsoftheservicesthesystemprovidesanditsoperationalconstraints.Writtenforcustomers.
SystemRequirements:Astructureddocumentsettingoutdetaileddescriptionsofthesystem’sfunctions,servicesandoperationalconstraints.Defineswhatshouldbeimplementedsomaybepartofacontractbetweenclientandcontractor.
I.Sommerville,SoftwareEngineering:Pearson,2010.
Uservs.SystemRequirements
Client managersSystem end-usersClient engineersContractor managersSystem architects
System end-usersClient engineersSystem architectsSoftware developers
Userrequirements
Systemrequirements
I.Sommerville,SoftwareEngineering:Pearson,2010.
Whowillreadthem?
Uservs.SystemRequirements
I.Sommerville,SoftwareEngineering:Pearson,2010.
Examples:1. The MHC-PMS shall generate monthly management reports showingthe cost of drugs prescribed by each clinic during that month.
1.1 On the last working day of each month, a summary of the drugsprescribed, their cost and the prescribing clinics shall be generated.1.2 The system shall automatically generate the report for printing after17.30 on the last working day of the month.1.3 A report shall be created for each clinic and shall list the individualdrug names, the total number of prescriptions, the number of dosesprescribed and the total cost of the prescribed drugs.1.4 If drugs are available in different dose units (e.g. 10mg, 20 mg, etc.)separate reports shall be created for each dose unit.1.5 Access to all cost reports shall be restricted to authorized users listedon a management access control list.
User requirement definition
System requirements specification
Functionalvs.Non-FunctionalRequirementsFunctionalRequirementsStatementsofservicesthesystemshouldprovide,howthesystemshouldreacttoparticularinputsandhowthesystemshouldbehaveinparticularsituations.Maystatewhatthesystemshouldnotdo.
Non-FunctionalRequirementsConstraintsontheservicesorfunctionsofferedbythesystemsuchastimingconstraints,constraintsonthedevelopmentprocess,standards,etc.Oftenapplytothesystemasawholeratherthanindividualfeaturesorservices.
I.Sommerville,SoftwareEngineering:Pearson,2010.
FunctionalRequirements
• Describefunctionalityorsystemservices.• Dependonthetypeofsoftware,expectedusersandthetypeofsystemwherethesoftwareisused.
• Functionaluserrequirementsmaybehigh-levelstatementsofwhatthesystemshoulddo.
• Functionalsystemrequirementsshoulddescribethesystemservicesindetail.
I.Sommerville,SoftwareEngineering:Pearson,2010.
Non-FunctionalRequirements
• Thesedefinesystempropertiesandconstraintse.g.reliability,responsetimeandstoragerequirements.ConstraintsareI/Odevicecapability,systemrepresentations,etc.
• ProcessrequirementsmayalsobespecifiedmandatingaparticularIDE,programminglanguageordevelopmentmethod.
• Non-functionalrequirementsmaybemorecriticalthanfunctionalrequirements.Ifthesearenotmet,thesystemmaybeuseless.
I.Sommerville,SoftwareEngineering:Pearson,2010.
Non-FunctionalRequirementsExamples:
ProductRequirement:Thesystemshallbeavailabletoallclinicsduringnormalworkinghours(Mon–Fri,0830–17.30).Downtimewithinnormalworkinghoursshallnotexceedfivesecondsinanyoneday.OrganizationalRequirement:Usersofthesystemshallauthenticatethemselvesusingtheirhealthauthorityidentitycard.Externalrequirement:ThesystemshallimplementpatientprivacyprovisionsassetoutinHStan-03-2006-priv.
I.Sommerville,SoftwareEngineering:Pearson,2010.
Hans-PetterHalvorsen
SoftwareDesign
SystemOverviewandArchitecture
• Thebigpicture• Giveanintroductiontoyoursystemandthemainpieces,andhowtheyareconnected,etc.
• MSPowerPointorVisioaregoodtoolstouse
Design
GUIDesignandTechnicalDesign(UML,ERdiagram,CAD)
B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
GUIDesignSketches“Mockups”
FlowChartsHigh-LevelFlowChartsmakesiteasytoseehowthesystemshallwork
MSVisioorMSPowerPointhasbuiltinfeaturesforcreatingFlowCharts
TheFlowChartsshouldbeunderstoodbynon-programmersliketheStakeholders,ProjectManagersandCustomers
Note!LateryoumaycreatemoredetaileddiagramssuchasUML diagrams,etc.
FlowChartSymbols
Interfacespecifications
Module1 Module
2
Module3
?Howdodifferentmodulesinteractwitheachother?WhatisinputandoutputfromthedifferentModules?? ?
UML
Hans-PetterHalvorsen
UnifiedModellingLanguage
WhyuseUML?
• Design– ForwardDesign:doingUMLbeforecoding.Makesiteasiertocreatethecodeinastructuredmanner
– BackwardDesign:doingUMLaftercodingasdocumentation–WhendoingchangesintheDesign,makesuretoupdatetheCodeaccordingtothenewDesign
• Code– SomeToolscanAutogenerateCodefromUMLdiagrams–WhendoingchangesintheCode,makesuretoupdatetheUMLDiagrams
TypesofUMLDiagrams
http://en.wikipedia.org/wiki/Unified_Modeling_Language
UseCaseDiagram
SequenceDiagram
http://en.wikipedia.org/wiki/Sequence_diagram
Hans-PetterHalvorsen
SRSDocument
TypicalDocumentation
High-LevelRequirementsandDesignDocuments
UserManuals
SystemDocumentation
InstallationGuides
TestPlans
TestDocumentation
DetailedRequirementsandDesignDocuments
ERDiagram(Database)UMLDiagrams(Code)
Time
Start
Finish
HowtoTest/WhattoTest
CADDrawings,etc.
1.Planning
2.Testing
3.End-userDocumentation(Thepeoplethatshallactuallyusethesoftware)
TechnicalStuff
HowtouseitHowtoinstallit
Proofthatyouhavetestedandthatthesoftwareworksasexpected
(Thestakeholders,thesoftwareteam;architects,UXdesigners,developers)
(QApeople)
(SuperUser/ITdep.)
WHATHOW
(EndUser)
ProjectM
anagem
ent(Ga
nttC
hart,etc.)
(SRS)(SDD)
(STP)(STD)
DevelopmentPlan (SDP)
2.Requierements/Design
ProjectDocumentationDocumentationproducedduringasoftwareProjectcanbedividedinto2Categories:• Process Documentation– Thesedocumentsrecordtheprocessofdevelopmentandmaintenance,e.g.,Plans(SoftwareDevelopmentPlan,SoftwareTestPlan,...),Schedules(e.g.,GanttCharts),etc.
• Product Documentation– Thesedocumentsdescribetheproductthatisbeingdeveloped.Canbedividedinto2subcategories:• System Documentation
– Usedbyengineersdevelopingandmaintainingthesystem• User Documentation
– Usedbythepeoplethatisusingthesystem
ProcessDocumentation
ProductDocumentation
SystemDocumentation
UserDocumentation
ProjectDocumentation
DocumentationCategories
ProjectPlan,GantChart,MeetingDocuments,Requirements&Designdocumentation,Emails,Testdocuments,otherkindofWorkingDocuments,etc.
UserManual,Wikis,OnlineHelp,etc.
TechnicalDocumentationneededinordertomaintainthesoftware,etc.
InstallationGuides
TheSoftwareRequirementsDocument
• Thesoftwarerequirementsdocumentistheofficialstatementofwhatisrequiredofthesystemdevelopers.
• Shouldincludebothadefinitionofuserrequirementsandaspecificationofthesystemrequirements.
• ItisNOTadesigndocument.Asfaraspossible,itshouldsetofWHATthesystemshoulddoratherthanHOWitshoulddoit.
I.Sommerville,SoftwareEngineering:Pearson,2010.
SoftwareRequirementsSpecifications(SRS)
SRS/SDDDocument(s)
DatabaseDiagram(s)
UMLDiagrams
WrittenHigh-LevelRequirements
SystemSketches,FlowCharts,etc.
CADDrawings
DiagramsasFigures+Descriptionsofeach
DiagramsasFigures+OverallDescriptionsanddescriptionsforeachtable
DiagramsasFigures+Descriptionsofeach
DesignSketches-bothSystemArcitecture
andGUImockups
UseCaseDocument?
etc.
etc.
Usefulwhenyourprojectinvolveshardware
RequirementsAnalysis
TheStructureoftheSRSDocumentChapter 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 asummary 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 alsodescribe 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 mayuse natural language, diagrams, or other notations that are understandable to customers. Product and process standards that must be followed should bespecified.
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 nonfunctionalrequirements. 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 ofpossible 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 userneeds, 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 thesystem.
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 usedby 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.
I.Sommerville,SoftwareEngineering:Pearson,2010.
UsersofSRS
Use the requirements todevelop validation tests forthe system.
Use the requirementsdocument to plan a bid forthe system and to plan thesystem development process.
Use the requirements tounderstand what system isto be developed.
System testengineers
Managers
Systemengineers
Specify the requirements andread them to check that theymeet their needs. Customersspecify changes to therequirements.
Systemcustomers
Use the requirements tounderstand the system andthe relationships between itsparts.
Systemmaintenance
engineers
I.Sommerville,SoftwareEngineering:Pearson,2010.
UMLandUseCase
Nurse
Medical receptionistManager
Registerpatient
Viewpersonal info.
View record
Generatereport
Exportstatistics
DoctorEdit record
Setupconsultation
Graphicalmodels,supplementedbytextannotations,areusedtodefinethefunctionalrequirementsforthesystem;UMLusecaseandsequencediagramsarecommonlyused.Wewilllearnmoreaboutthislater!
Hans-PetterHalvorsen
RequirementsinTFS/VSTSProductBacklog&SprintBacklog
• TeamFoundationserver/VisualStudioTeamServices(VSTS)isanApplicationLifecycleManagement(ALM)system,– i.e.,thesystemtakescareofallaspectsinsoftwaredevelopment– fromplanning,requirements,coding,testing,deploymentandmaintenance.– AgileandScrumworkflowareincluded
• TFSisaSourceCodeControl(SCC),BugTracking,ProjectManagement,andTeamCollaborationplatform
• TightlyintegratedwithVisualStudioasMicrosoftisthevendorofbothVisualStudioandVSTS
• Cloudbasededition(HostingService):“VisualStudioTeamServices”(VSTS)
WhatisTFS/VSTS?
VisualStudioTeamServices(VSTS)
• WewilluseVisualStudioTeamServices(VSTS)asoursoftwarecollaborationplatformforoursoftwarelifecyclemanagement(SDLC).• HerewewilladdRequirementsandDesigndocuments,addTasks,SourceCode,reportBugs,etc.• VSTSislocatedhere:http://www.visualstudio.com
TeamFoundationServer(TFS)vs.VisualStudioTeamServices(VSTS)
https://en.wikipedia.org/wiki/Team_Foundation_Server
TeamFoundationServer(TFS)
VisualStudioTeamServices
(VSTS)
“TeamFoundationServer”(TFS).Thisissoftwareyoucaninstallonaserverinyourownnetwork.YouandyourteamcanthenhookupVisualStudiotothatserveranduseTFS.Youhavetobuythesoftware,buylicensesforusersanduseyourownserver.
“VisualStudioTeamServices”(VSTS)isanonlineversionofTFS– hostedbyMicrosoft.Youdon'tneedtoinstallanything,youjustpayamonthlyfee(until5usersisforfree).VSTSisavailablefromhttp://www.visualstudio.com
vs.
VisualStudio
VisualStudiodon'tcareifyouuseTFSorVSTS.YoujusthookitupusinganURL.
UsingTFS/VSTStocreatetheBacklog
http://msdn.microsoft.com/en-us/library/ee518933.aspx
SprintBackloginTFS/VSTS
BreakitemsdownintoTasksInthesprintbacklog,addatask:
Givethetaskaname,andestimatetheworkitwilltake:
FinalResults:
UsetheTaskbordtoupdateTasksThetaskboardisattheheartofdailystandups.Movetasksonthetaskboardtoreflecttheircurrentstate.
UsetheTaskbordtoupdateTasksYoucanassignatasktoaspecificperson:
UsetheTaskbordtoupdateTasksUpdatetheremainingworkbyeitherusingthedrop-downlistortypingaspecificvalue:
BurndownChartReviewoverallprogressbyopeningtheburndownchartforthesprint:
TypicalChallenges
• Stakeholdersdon’tknowwhattheyreallywant.
• Stakeholdersexpressrequirementsintheirownterms.
• Differentstakeholdersmayhaveconflictingrequirements.
• Organisational andpoliticalfactorsmayinfluencethesystemrequirements.
• Therequirementschangeduringtheanalysisprocess.Newstakeholdersmayemergeandthebusinessenvironmentmaychange.
I.Sommerville,SoftwareEngineering:Pearson,2010.O.W
idde
r.(201
3).geek&
poke.A
vailable:http://geek-and
-poke.com
References• I.Sommerville,SoftwareEngineering:Pearson,2010.• E.J.Braude andM.E.Bernstein,SoftwareEngineering.ModernApproaches,2ed.:Wiley,
2011.• F.Tsui,O.Karam,andB.Bernal,EssentialsofSoftwareEngineering,3ed.:Jones&Barlett
Learning,2014.• Wikipedia.(2013).SoftwareDevelopmentProcess.Available:
http://en.wikipedia.org/wiki/Software_process• NTNU.(2013).TDT4140Systemutvikling.Available:
http://www.ntnu.no/studier/emner/TDT4140• UiO.(2013).INF1050- Systemutvikling.Available:
http://www.uio.no/studier/emner/matnat/ifi/INF1050/• O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com• B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,
http://www.dagbladet.no/tegneserie/lunch/• S.Adams.Dilbert.Available:http://dilbert.com
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorwaywww.usn.no
E-mail:[email protected]:http://home.hit.no/~hansha/