66
Hans-Petter Halvorsen Software Requirements Requirements Engineering, Requirements Analysis B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/ 2017.03.08

Software Requirements Overview

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Software Requirements Overview

Contents

• Introduction• SoftwareRequirements• SoftwareDesign• UML• SRSDocument• RequirementsinTFS/VSTS

Page 3: Software Requirements Overview

SoftwareRequirements

Requirementsforasoftwaresystemsetoutwhatthesystemshoulddoanddefineconstraintsonitsoperationandimplementation

Page 4: Software Requirements Overview

Requirements:“Thestatementsthatdescribewhatthesoftwaresystemshouldbebutnothowitistobeconstructed.”RequirementsEngineering:“Asetofactivitiesrelatedtothedevelopmentandagreementofthefinalsetofrequirementspecifications.”

StepsintheRequirementsEngineeringProcess:

Page 5: Software Requirements Overview

SoftwareRequirementsRequirementsEngineering

Page 6: Software Requirements Overview

RequirementsEngineering

Page 7: Software Requirements Overview

WhatisRequirementsEngineering?

UserWorld

SoftwareSystem

Requirements

Requirementsisthebridgebetweentherealworldandthesoftwaresystem

AnIntroductiontoRequirementsEngineering:https://youtu.be/Ec0s0z5uXQ8

Page 8: Software Requirements Overview

RequirementsEngineering

WhattheCustomergot

WhattheCustomerreallyneeded

Page 9: Software Requirements Overview

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.

Page 10: Software Requirements Overview

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/

Page 11: Software Requirements Overview

6dimensionsofRequirementsTherearesixmaincategoriesofinformationthatmustbeaddressedintheRequirementsspecifications:

“Individualfunctionality”isthethenaturalstartingpoint.AsktheUsersandCustomerswhattheirproblemsareintermsofwhatfunctionsneedtobeimplementedintheproduct.

Page 12: Software Requirements Overview

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.

Page 13: Software Requirements Overview

TheDevelopmentProcess

Design

Implementation

Testing

Requirements

Deployment

InthiscasetheoverallRequirementsaregivenbytheTeacherintheAssignment.Thedetailsarewrittenbyyou!

TheDe

velopm

entP

rocessinvolvesdifferen

tphases

TheRequirementsmaybegivenbytheCustomer

Whenyouarefinished,youdeployandtestthesolutionontheCustomerSite

Makesureeverythingworkasexpected

TheDesignphaseisimportant,butmakesureyouhavetimeleftforalltheothertasksaswell)AretheDesignwrong?Go

backandcorrectit!

Errors?Improveyourcodeandfixthebugs

Page 14: Software Requirements Overview

WhyspendtimeonRequirementsAnalysis?

SoftwareDevelopmentLifeCycle(SDLC)

Costperdefectsandchanges

Page 15: Software Requirements Overview

Hans-PetterHalvorsen

SoftwareRequirements

Page 16: Software Requirements Overview

High-LevelRequirements

….

DetailedRequirements

SoftwareRequirements

TypicalwrittenbytheCustomers TypicalwrittenbySoftwareArchitects,etc.

Page 17: Software Requirements Overview

High-LevelRequirementsvs.

DetailedRequirements

Page 18: Software Requirements Overview

High-LevelRequirements

• WHATshouldthesystemdo?• Whoshouldusethesystem• Whatisthepurposewiththesystem?• Performance• Whatpartsshouldthesystemconsistsof• WhatPlatformsshouldbeused(PC,Tablet,Web?,...)• etc.

UseWordsandFiguresinordertodescribetheseRequirements

Page 19: Software Requirements Overview

DetailedRequirementsandDesign

• WhatPlatformsshouldbeused(Windows,iOS,...)inmoredetail• ToolsandLanguages• SoftwareArchitecture()• Frameworks(.NET,ASP.NET,...)• DetailedGUIdesignsketches• UMLDiagrams• ER(Database)Diagrams• CADDrawings• etc.

Page 20: Software Requirements Overview

Requirements

UserRequirements

SystemRequirements

Requirements

FunctionalRequirements

Non-FunctionalRequirements

SoftwareRequirementsCategories

Page 21: Software Requirements Overview

UserRequirements

SystemRequirements

FunctionalRequirements

Non-FunctionalRequirements

SoftwareRequirementsCategoriesRequirements:Statementsinnaturallanguageplusdiagramsoftheservicesthesystemprovidesanditsoperationalconstraints.Writtenforcustomers.

Astructureddocumentsettingoutdetaileddescriptionsofthesystem’sfunctions,servicesandoperationalconstraints.Defineswhatshouldbeimplementedsomaybepartofacontractbetweenclientandcontractor.

Constraintsontheservicesorfunctionsofferedbythesystemsuchastimingconstraints,constraintsonthedevelopmentprocess,standards,etc.Oftenapplytothesystemasawholeratherthanindividualfeaturesorservices.

Statementsofservicesthesystemshouldprovide,howthesystemshouldreacttoparticularinputsandhowthesystemshouldbehaveinparticularsituations.Maystatewhatthesystemshouldnotdo.

Statementsinnaturallanguageplusdiagramsoftheservicesthesystemprovidesanditsoperationalconstraints.Writtenforcustomers.

Page 22: Software Requirements Overview

Uservs.SystemRequirementsUserRequirements:Statementsinnaturallanguageplusdiagramsoftheservicesthesystemprovidesanditsoperationalconstraints.Writtenforcustomers.

SystemRequirements:Astructureddocumentsettingoutdetaileddescriptionsofthesystem’sfunctions,servicesandoperationalconstraints.Defineswhatshouldbeimplementedsomaybepartofacontractbetweenclientandcontractor.

I.Sommerville,SoftwareEngineering:Pearson,2010.

Page 23: Software Requirements Overview

Uservs.SystemRequirements

Client managersSystem end-usersClient engineersContractor managersSystem architects

System end-usersClient engineersSystem architectsSoftware developers

Userrequirements

Systemrequirements

I.Sommerville,SoftwareEngineering:Pearson,2010.

Whowillreadthem?

Page 24: Software Requirements Overview

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

Page 25: Software Requirements Overview

Functionalvs.Non-FunctionalRequirementsFunctionalRequirementsStatementsofservicesthesystemshouldprovide,howthesystemshouldreacttoparticularinputsandhowthesystemshouldbehaveinparticularsituations.Maystatewhatthesystemshouldnotdo.

Non-FunctionalRequirementsConstraintsontheservicesorfunctionsofferedbythesystemsuchastimingconstraints,constraintsonthedevelopmentprocess,standards,etc.Oftenapplytothesystemasawholeratherthanindividualfeaturesorservices.

I.Sommerville,SoftwareEngineering:Pearson,2010.

Page 26: Software Requirements Overview

FunctionalRequirements

• Describefunctionalityorsystemservices.• Dependonthetypeofsoftware,expectedusersandthetypeofsystemwherethesoftwareisused.

• Functionaluserrequirementsmaybehigh-levelstatementsofwhatthesystemshoulddo.

• Functionalsystemrequirementsshoulddescribethesystemservicesindetail.

I.Sommerville,SoftwareEngineering:Pearson,2010.

Page 27: Software Requirements Overview

Non-FunctionalRequirements

• Thesedefinesystempropertiesandconstraintse.g.reliability,responsetimeandstoragerequirements.ConstraintsareI/Odevicecapability,systemrepresentations,etc.

• ProcessrequirementsmayalsobespecifiedmandatingaparticularIDE,programminglanguageordevelopmentmethod.

• Non-functionalrequirementsmaybemorecriticalthanfunctionalrequirements.Ifthesearenotmet,thesystemmaybeuseless.

I.Sommerville,SoftwareEngineering:Pearson,2010.

Page 28: Software Requirements Overview

Non-FunctionalRequirementsExamples:

ProductRequirement:Thesystemshallbeavailabletoallclinicsduringnormalworkinghours(Mon–Fri,0830–17.30).Downtimewithinnormalworkinghoursshallnotexceedfivesecondsinanyoneday.OrganizationalRequirement:Usersofthesystemshallauthenticatethemselvesusingtheirhealthauthorityidentitycard.Externalrequirement:ThesystemshallimplementpatientprivacyprovisionsassetoutinHStan-03-2006-priv.

I.Sommerville,SoftwareEngineering:Pearson,2010.

Page 29: Software Requirements Overview

Hans-PetterHalvorsen

SoftwareDesign

Page 30: Software Requirements Overview

SystemOverviewandArchitecture

• Thebigpicture• Giveanintroductiontoyoursystemandthemainpieces,andhowtheyareconnected,etc.

• MSPowerPointorVisioaregoodtoolstouse

Page 31: Software Requirements Overview
Page 32: Software Requirements Overview

Design

GUIDesignandTechnicalDesign(UML,ERdiagram,CAD)

B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/

Page 33: Software Requirements Overview

GUIDesignSketches“Mockups”

Page 34: Software Requirements Overview

FlowChartsHigh-LevelFlowChartsmakesiteasytoseehowthesystemshallwork

MSVisioorMSPowerPointhasbuiltinfeaturesforcreatingFlowCharts

TheFlowChartsshouldbeunderstoodbynon-programmersliketheStakeholders,ProjectManagersandCustomers

Note!LateryoumaycreatemoredetaileddiagramssuchasUML diagrams,etc.

Page 35: Software Requirements Overview

FlowChartSymbols

Page 36: Software Requirements Overview

Interfacespecifications

Module1 Module

2

Module3

?Howdodifferentmodulesinteractwitheachother?WhatisinputandoutputfromthedifferentModules?? ?

Page 37: Software Requirements Overview

UML

Hans-PetterHalvorsen

UnifiedModellingLanguage

Page 38: Software Requirements Overview

WhyuseUML?

• Design– ForwardDesign:doingUMLbeforecoding.Makesiteasiertocreatethecodeinastructuredmanner

– BackwardDesign:doingUMLaftercodingasdocumentation–WhendoingchangesintheDesign,makesuretoupdatetheCodeaccordingtothenewDesign

• Code– SomeToolscanAutogenerateCodefromUMLdiagrams–WhendoingchangesintheCode,makesuretoupdatetheUMLDiagrams

Page 39: Software Requirements Overview

TypesofUMLDiagrams

http://en.wikipedia.org/wiki/Unified_Modeling_Language

Page 40: Software Requirements Overview

UseCaseDiagram

Page 41: Software Requirements Overview

SequenceDiagram

http://en.wikipedia.org/wiki/Sequence_diagram

Page 42: Software Requirements Overview

Hans-PetterHalvorsen

SRSDocument

Page 43: Software Requirements Overview

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

Page 44: Software Requirements Overview

ProjectDocumentationDocumentationproducedduringasoftwareProjectcanbedividedinto2Categories:• Process Documentation– Thesedocumentsrecordtheprocessofdevelopmentandmaintenance,e.g.,Plans(SoftwareDevelopmentPlan,SoftwareTestPlan,...),Schedules(e.g.,GanttCharts),etc.

• Product Documentation– Thesedocumentsdescribetheproductthatisbeingdeveloped.Canbedividedinto2subcategories:• System Documentation

– Usedbyengineersdevelopingandmaintainingthesystem• User Documentation

– Usedbythepeoplethatisusingthesystem

Page 45: Software Requirements Overview

ProcessDocumentation

ProductDocumentation

SystemDocumentation

UserDocumentation

ProjectDocumentation

DocumentationCategories

ProjectPlan,GantChart,MeetingDocuments,Requirements&Designdocumentation,Emails,Testdocuments,otherkindofWorkingDocuments,etc.

UserManual,Wikis,OnlineHelp,etc.

TechnicalDocumentationneededinordertomaintainthesoftware,etc.

InstallationGuides

Page 46: Software Requirements Overview

TheSoftwareRequirementsDocument

• Thesoftwarerequirementsdocumentistheofficialstatementofwhatisrequiredofthesystemdevelopers.

• Shouldincludebothadefinitionofuserrequirementsandaspecificationofthesystemrequirements.

• ItisNOTadesigndocument.Asfaraspossible,itshouldsetofWHATthesystemshoulddoratherthanHOWitshoulddoit.

I.Sommerville,SoftwareEngineering:Pearson,2010.

SoftwareRequirementsSpecifications(SRS)

Page 47: Software Requirements Overview

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

Page 48: Software Requirements Overview

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.

Page 49: Software Requirements Overview

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.

Page 50: Software Requirements Overview

UMLandUseCase

Nurse

Medical receptionistManager

Registerpatient

Viewpersonal info.

View record

Generatereport

Exportstatistics

DoctorEdit record

Setupconsultation

Graphicalmodels,supplementedbytextannotations,areusedtodefinethefunctionalrequirementsforthesystem;UMLusecaseandsequencediagramsarecommonlyused.Wewilllearnmoreaboutthislater!

Page 51: Software Requirements Overview

Hans-PetterHalvorsen

RequirementsinTFS/VSTSProductBacklog&SprintBacklog

Page 52: Software Requirements Overview

• 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?

Page 53: Software Requirements Overview

VisualStudioTeamServices(VSTS)

• WewilluseVisualStudioTeamServices(VSTS)asoursoftwarecollaborationplatformforoursoftwarelifecyclemanagement(SDLC).• HerewewilladdRequirementsandDesigndocuments,addTasks,SourceCode,reportBugs,etc.• VSTSislocatedhere:http://www.visualstudio.com

Page 54: Software Requirements Overview

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.

Page 55: Software Requirements Overview

UsingTFS/VSTStocreatetheBacklog

http://msdn.microsoft.com/en-us/library/ee518933.aspx

Page 56: Software Requirements Overview

SprintBackloginTFS/VSTS

Page 57: Software Requirements Overview

BreakitemsdownintoTasksInthesprintbacklog,addatask:

Givethetaskaname,andestimatetheworkitwilltake:

Page 58: Software Requirements Overview

FinalResults:

Page 59: Software Requirements Overview

UsetheTaskbordtoupdateTasksThetaskboardisattheheartofdailystandups.Movetasksonthetaskboardtoreflecttheircurrentstate.

Page 60: Software Requirements Overview

UsetheTaskbordtoupdateTasksYoucanassignatasktoaspecificperson:

Page 61: Software Requirements Overview

UsetheTaskbordtoupdateTasksUpdatetheremainingworkbyeitherusingthedrop-downlistortypingaspecificvalue:

Page 62: Software Requirements Overview

BurndownChartReviewoverallprogressbyopeningtheburndownchartforthesprint:

Page 63: Software Requirements Overview

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

Page 64: Software Requirements Overview
Page 65: Software Requirements Overview

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

Page 66: Software Requirements Overview

Hans-PetterHalvorsen,M.Sc.

UniversityCollegeofSoutheastNorwaywww.usn.no

E-mail:[email protected]:http://home.hit.no/~hansha/