25
Software Software Requirements Requirements Analysis and Analysis and Specification Specification C.Eng 491 C.Eng 491 Fall 2009-2010 Fall 2009-2010

Software Requirements Analysis and Specification

Embed Size (px)

DESCRIPTION

Software Requirements Analysis and Specification. C.Eng 491 Fall 2009-2010. Requirements Engineering. Requirements Engineering. Requirements Elicitation. Requirements Analysis. Requirements Verification. Requirements Specification. Requirements Management. Requirements Engineering. - PowerPoint PPT Presentation

Citation preview

Page 1: Software Requirements Analysis and Specification

Software Requirements Software Requirements Analysis and SpecificationAnalysis and Specification

C.Eng 491C.Eng 491

Fall 2009-2010Fall 2009-2010

Page 2: Software Requirements Analysis and Specification

Requirements EngineeringRequirements Engineering

Requirements Elicitation Requirements Analysis

Requirements Specification Requirements Verification

Requirements Management

Requirements Engineering

Page 3: Software Requirements Analysis and Specification

Requirements EngineeringRequirements Engineering

Stakeholder identificationStakeholder identification Stakeholder interviewsStakeholder interviews Contract-style requirement listsContract-style requirement lists Measurable goalsMeasurable goals PrototypesPrototypes Use casesUse cases

Page 4: Software Requirements Analysis and Specification

Requirements EngineeringRequirements Engineering Eliciting requirements: the task of communicating : the task of communicating

with customers and users to determine what their with customers and users to determine what their requirements are. This is sometimes also called requirements are. This is sometimes also called requirements gathering. requirements gathering.

Analyzing requirements: determining whether the Analyzing requirements: determining whether the stated requirements are unclear, incomplete, stated requirements are unclear, incomplete, ambiguous, or contradictory, and then resolving these ambiguous, or contradictory, and then resolving these issues. issues.

Recording requirementsRecording requirements (specification) (specification): : Requirements might be documented in various forms, Requirements might be documented in various forms, such as natural-language documents, such as natural-language documents, use cases, , user stories, or process specifications. , or process specifications.

Page 5: Software Requirements Analysis and Specification

Eliciting RequirementsEliciting Requirements

Analysts can employ several techniques to Analysts can employ several techniques to elicit the requirements from the customer. elicit the requirements from the customer. interviews, , focus groups (requirements workshops) and (requirements workshops) and

creating requirements lists. creating requirements lists. prototyping, and , and use cases. . combination of these methodscombination of these methods

Page 6: Software Requirements Analysis and Specification

Software Requirement AnalysisSoftware Requirement Analysis DDetermining the needs or conditions to meet for a new or etermining the needs or conditions to meet for a new or

altered product, altered product,

In other words, pIn other words, process of studrocess of studying and analyzing the ying and analyzing the customer and the user/stakaholder needs to arrive at a customer and the user/stakaholder needs to arrive at a definition of software reqiurements.definition of software reqiurements.

Requirements must be actionable, measurable, testable, related Requirements must be actionable, measurable, testable, related to identified business needs or opportunities, and defined to a to identified business needs or opportunities, and defined to a level of detail sufficient for system design. level of detail sufficient for system design.

Requirements can be functional and non-functional. Requirements can be functional and non-functional.

Page 7: Software Requirements Analysis and Specification

Types of RequirementsTypes of Requirements

Functional requirementsFunctional requirements Performance requirementsPerformance requirements

Speed, accuracy, frequency, throughputSpeed, accuracy, frequency, throughput External interface requirementsExternal interface requirements Design constraintsDesign constraints

Requirements are usually about “what”, this is Requirements are usually about “what”, this is a “how”.a “how”.

Quality attributesQuality attributes i.e. reliability, portability, maintainability, i.e. reliability, portability, maintainability,

supportabilitysupportability

Page 8: Software Requirements Analysis and Specification

Requirements vs. DesignRequirements vs. Design

RequirementsRequirements DesignDesign

Describe Describe whatwhat will be will be delivereddelivered

Describe Describe howhow it will be done it will be done33

Primary goal of analysis:Primary goal of analysis:

UNDERSTANDINGUNDERSTANDING

Primary goal of design:Primary goal of design:

OPTIMIZATIONOPTIMIZATION

There is more than one There is more than one solutionsolution

There is only one (final) There is only one (final) solutionsolution

Customer interestedCustomer interested Customer not interested (Most Customer not interested (Most of the time) except for externalof the time) except for external

Page 9: Software Requirements Analysis and Specification

Software Quality AttributesSoftware Quality Attributes CorrectnessCorrectness ReliabilityReliability

Rating = 1 – (Num Errors/ Num LOC)Rating = 1 – (Num Errors/ Num LOC) Can be allocated to subsystemsCan be allocated to subsystems

EfficiencyEfficiency IntegrityIntegrity UsabilityUsability SurvivabilitySurvivability MaintainabilityMaintainability VerifiabilityVerifiability FlexibilityFlexibility PortabilityPortability ReusabilityReusability InteroperabilityInteroperability ExpandabilityExpandability

Page 10: Software Requirements Analysis and Specification

Requirements AnalysisRequirements Analysis

Defining Stakeholder profilesDefining Stakeholder profiles

Description - brief description of the stakeholder typeDescription - brief description of the stakeholder type Type - Qualify s-h’s expertise, technical background, degree Type - Qualify s-h’s expertise, technical background, degree

of sophisticationof sophistication Responsibilities - List s-h’s key responsibilities with regard to Responsibilities - List s-h’s key responsibilities with regard to

the system being developed - why a stakeholder?the system being developed - why a stakeholder? Success Criteria - How does the stakeholder define success? Success Criteria - How does the stakeholder define success?

How rewarded?How rewarded? Involvement - involved in the project in what way? Involvement - involved in the project in what way?

Requirements reviewer, system tester, ...Requirements reviewer, system tester, ... Deliverables* - required by the stakeholderDeliverables* - required by the stakeholder Comments/Issues - Problems that interfere w/ success, etc.Comments/Issues - Problems that interfere w/ success, etc.

Page 11: Software Requirements Analysis and Specification

Requirements AnalysisRequirements Analysis

Defining User ProfilesDefining User Profiles

Description - of the user typeDescription - of the user type Type - qualify expertise, technical background, degree of Type - qualify expertise, technical background, degree of

sophisticationsophistication Responsibilities - user’s key resp.’s w.r.t. system being Responsibilities - user’s key resp.’s w.r.t. system being

developed developed Success Criteria - how this user defines success? rewarded?Success Criteria - how this user defines success? rewarded? Involvement - How user involved in this project? what role?Involvement - How user involved in this project? what role? Deliverables - Are there any deliverables the user produces? Deliverables - Are there any deliverables the user produces?

For whom?For whom? Comments/Issues - Problems that interfere w/ success, etc.Comments/Issues - Problems that interfere w/ success, etc.

This includes trends that make the user’s job easier or harderThis includes trends that make the user’s job easier or harder

Page 12: Software Requirements Analysis and Specification

Requirements AnalysisRequirements Analysis

Defining User Work EnvironmentDefining User Work Environment

Number of people involved in doing this now? Number of people involved in doing this now? Changing?Changing?

How long is a task cycle now? Changing?How long is a task cycle now? Changing? Any unique environmental constraints: mobile, Any unique environmental constraints: mobile,

outdoors, in-flight, etc.outdoors, in-flight, etc. Which system platforms are in use today? future?Which system platforms are in use today? future? What other applications are in use? Need to What other applications are in use? Need to

integrate?integrate?

Page 13: Software Requirements Analysis and Specification

Requirements AnalysisRequirements Analysis

Product OverviewProduct Overview

Put the product in perspective to other related products Put the product in perspective to other related products and the user’s environment.and the user’s environment.

Independent? Independent? Component of a larger system?Component of a larger system? How do the subsystems interact with this?How do the subsystems interact with this? Known interfaces between them and this component?Known interfaces between them and this component? Block diagramBlock diagram

Page 14: Software Requirements Analysis and Specification

Requirements AnalysisRequirements Analysis

Other Product RequirementsOther Product Requirements

hardware platform requirements -- hardware platform requirements -- system requirements -- supported host o.s.’s, system requirements -- supported host o.s.’s,

peripherals, companion softwareperipherals, companion software environmental requirements -- temperature, shock, environmental requirements -- temperature, shock,

humidity, radiation, usage conditions, resource humidity, radiation, usage conditions, resource availability, maintenance issues, type of error availability, maintenance issues, type of error recoveryrecovery

applicable standards -- legal, regulatory, applicable standards -- legal, regulatory, communicationscommunications

Page 15: Software Requirements Analysis and Specification

Software Requirement Software Requirement SpecificationSpecification

A software requirements specification (SRS) is a complete A software requirements specification (SRS) is a complete description of the behavior of the system to be developed description of the behavior of the system to be developed

A document that clearly and precisely describes, each of the A document that clearly and precisely describes, each of the essential requirements of the software and the external essential requirements of the software and the external interfaces. interfaces. (functions, performance, design constraint, and quality attributes)(functions, performance, design constraint, and quality attributes)

Each requirement is defined in such a way that its achievement Each requirement is defined in such a way that its achievement is capable of being is capable of being objectively verifiedobjectively verified by a prescribed by a prescribed method; for example inspection, demonstration, analysis, or method; for example inspection, demonstration, analysis, or test.test.22

Page 16: Software Requirements Analysis and Specification

Requirements AnalysisRequirements Analysis Fundamental Techniques (Views) functional view

hierarchy - function tree process use cases information ow data flow diagram (DFD)

data oriented view data structures data dictionary (DD), syntax diagram,

Jackson diagram relations between entities entity relationship diagram

(ER) object-oriented view

class structure class diagram

Page 17: Software Requirements Analysis and Specification

Requirements AnalysisRequirements Analysis

algorithmic view control structures pseudo code, structogram, flow diagram, Jackson diagram conditions rules, decision table

state-oriented view state machines Petri nets sequence charts

Page 18: Software Requirements Analysis and Specification

Use CaseUse Case

uuse casese case is a description of a system’s is a description of a system’s behavior as it responds to a request that behavior as it responds to a request that originates from outside of that system. originates from outside of that system.

itit describes "who" can do "what" with the describes "who" can do "what" with the system in question system in question

Page 19: Software Requirements Analysis and Specification

Use Case DiagramUse Case Diagram A A use case diagramuse case diagram

in the Unified Modeling Language (UML) in the Unified Modeling Language (UML) a type of behavioral diagram defined by and created from a a type of behavioral diagram defined by and created from a

Use-case analysis. Use-case analysis. Its purpose is to present a graphical overview of the Its purpose is to present a graphical overview of the

functionality provided by a system in terms of actors, their functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies goals (represented as use cases), and any dependencies between those use cases.between those use cases.

The main purpose The main purpose to show what system functions are performed for which to show what system functions are performed for which

actor. actor. Roles of the actors in the system can be depicted.Roles of the actors in the system can be depicted.

Page 20: Software Requirements Analysis and Specification

Use Case DiagramUse Case Diagram

Page 21: Software Requirements Analysis and Specification

Data Flow Diagram (DFD)

graphical representation of data ow (classical technique)

nodes: function labeled circle store name between two horizontal lines interface to environment labeled rectangle

directed edges: represent data flow properties of DFDs

easy to create easy to read and understand

Page 22: Software Requirements Analysis and Specification

Data DictionaryData Dictionary

A data dictionary is a collection of data about A data dictionary is a collection of data about data. data.

It maintains information about the definIt maintains information about the definiition, tion, structure, and use of each data element that an structure, and use of each data element that an organization uses. organization uses.

Page 23: Software Requirements Analysis and Specification

Software requirements specificationSoftware requirements specification

Functional and Non-functional SRSFunctional and Non-functional SRS

IEEE 830-1998. IEEE 830-1998.

Page 24: Software Requirements Analysis and Specification

IEEE Std 830-1998 IEEE Recommended IEEE Std 830-1998 IEEE Recommended Practice for Software Requirements Practice for Software Requirements

Specifications -DescriptionSpecifications -Description

Abstract: The content and qualities of a good software Abstract: The content and qualities of a good software requirementsspecification (SRS) are described and several requirementsspecification (SRS) are described and several sample SRS outlines are presented. This recommended sample SRS outlines are presented. This recommended practice is aimed at specifying requirements of software to be practice is aimed at specifying requirements of software to be developed but also can be applied to assist in the selection of developed but also can be applied to assist in the selection of in-house and commercial software products. Guidelines for in-house and commercial software products. Guidelines for compliance with 12207.1-1997 are also provided.compliance with 12207.1-1997 are also provided.

Keywords: contract, customer, prototyping, software Keywords: contract, customer, prototyping, software requirements specification, supplier, system requirements requirements specification, supplier, system requirements specificationsspecifications

Page 25: Software Requirements Analysis and Specification

SRSSRS

Customer Requirements Customer Requirements  Functional RequirementsFunctional Requirements Non-functional RequirementsNon-functional Requirements Performance RequirementsPerformance Requirements Design RequirementsDesign Requirements Derived RequirementsDerived Requirements Allocated RequirementsAllocated Requirements