software requirements analysis and specification
Post on 30-Dec-2015
71 Views
Preview:
DESCRIPTION
TRANSCRIPT
Software Requirements Software Requirements Analysis and SpecificationAnalysis and Specification
C.Eng 491C.Eng 491
Fall 2009-2010Fall 2009-2010
Requirements EngineeringRequirements Engineering
Requirements Elicitation Requirements Analysis
Requirements Specification Requirements Verification
Requirements Management
Requirements Engineering
Requirements EngineeringRequirements Engineering
Stakeholder identificationStakeholder identification Stakeholder interviewsStakeholder interviews Contract-style requirement listsContract-style requirement lists Measurable goalsMeasurable goals PrototypesPrototypes Use casesUse cases
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.
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
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.
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
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
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
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.
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
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?
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
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
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
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
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
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
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.
Use Case DiagramUse Case Diagram
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
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.
Software requirements specificationSoftware requirements specification
Functional and Non-functional SRSFunctional and Non-functional SRS
IEEE 830-1998. IEEE 830-1998.
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
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
top related