Top Banner
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan, 2008-2014
23

CMPT 275 Software Engineering

Feb 25, 2016

Download

Documents

Chul

CMPT 275 Software Engineering. Requirements Analysis Process. Requirements Analysis. A requirement is a feature (ability) of the system that client requires Requirements analysis seeks to assess (analyze) and specify the behavior of the final system as a set of requirements. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CMPT 275 Software Engineering

1

CMPT 275Software Engineering

Requirements Analysis Process

Janice Regan, 2008-2014

Page 2: CMPT 275 Software Engineering

Janice Regan, 2008-2014 2

Requirements Analysis A requirement is a feature (ability) of the

system that client requires Requirements analysis seeks to assess

(analyze) and specify the behavior of the final system as a set of requirements.

Requirements analysis results in a complete, consistent, correct, and unambiguous specification of the requirements

Requirements analysis can be iteratively carried out or done in a top-down fashion

Page 3: CMPT 275 Software Engineering

Janice Regan, 2008-2014 3

Definitions Complete: All features of interest to the

client are described by the requirements Consistent: No requirement contradicts

any other requirement in the specification Unambiguous: The requirements cannot

be interpreted in multiple ways. Correct: The requirements describe all

features of interest to the client, but not extra or superfluous features

Page 4: CMPT 275 Software Engineering

Janice Regan, 2008-2014 4

Activities: Requirements Analysis Requirements Gathering (Elicitation)

Understand what the product must do, what the requirements of the product are

Requirements Specification Enumerate (list) each function the product

must do and the constraints under which the function must be done

Requirements Analysis Analyze the requirements of the system and

verify that the list is complete, unambiguous, consistent and correct

Page 5: CMPT 275 Software Engineering

Janice Regan, 2008-2014 5

Purpose of Requirements Analysis Requirements analysis is used by software

developers to understand The functions of the application to be

developed What the client/user expects the application to

do The relative importance of each function of

the system to the client/user Necessary details of the application domain The scope of the project

Page 6: CMPT 275 Software Engineering

Janice Regan, 2008-2014 6

Purpose of Requirements Analysis Requirements Analysis also helps the

clients/users to understand / quantify What their own requirements are Which requirements are most important The feasibility and costs of some features that

may be difficult to implement (this may change the user’s prioritization of features)

How they will be able to complete their required tasks

Page 7: CMPT 275 Software Engineering

Janice Regan, 2008-2014 7

Importance of Requirements Analysis Frederick Brooks: “The hardest single

part of building a software system is deciding precisely what to build”

Barry Boehm: by investing more up-front effort in verifying and validating the software requirements, software developers will see reduced integration and test costs, as well as higher software reliability and maintainability

Page 8: CMPT 275 Software Engineering

Janice Regan, 2008-2014 8

Why requirements analysis? Early software engineering studies tried to

identify the sources of problems and errors in large software development projects

Source of Errors/Problems

design27%

other10%

Requirements56%

coding7%

Effort to fix problems

other4%

coding1%

design13%

Requirements82%

After Demarco

Page 9: CMPT 275 Software Engineering

Janice Regan, 2008-2014 9

Types of Requirements Functional Requirements:

Specify services that the software system must provide. Describe all interactions between the system and it’s

environment that are not implementation dependente.g.: Compute value of user’s stock portfolio

Non-Functional Requirements: Specify quality (usability, reliability, performance, …) Specify constraints (budget, legal, implementation, …)e.g.: Compute value of stock portfolio in < 1s

Page 10: CMPT 275 Software Engineering

Janice Regan, 2008-2014 10

Non-Functional Requirements Quality: Performance

response time, capacity, availability, throughput

Quality: Usability Ease of use Amount / detail of user documentation Specified fonts, layouts, colours, logos Special client interface needs?

Page 11: CMPT 275 Software Engineering

Janice Regan, 2008-2014 11

Non-Functional Requirements Quality: Dependability, Reliability

Acceptable rate of errors, mean time to failure Robustness: ability to deal with incorrect inputs

and high stress operating conditions without serious failures

Quality: Supportability maintainability: can easily fix defects or deal

with new technology Adaptability: ease of adding new features Portability

Page 12: CMPT 275 Software Engineering

Janice Regan, 2008-2014 12

Non-Functional Requirements Constraints: Implementation

Must use specific languages, tools, platforms … Constraints: Legal requirements

Licensing, government regulation, certification Constraints: Operations requirements

Administration and management Constraints: Interface requirements

Interchange formats, interface to other systems Constraints: Packaging requirements

Page 13: CMPT 275 Software Engineering

Janice Regan, 2008-2014 13

Requirements

It is IMPORTANT to understand that requirements originate from the needs of the client, not from the wishes of the application design team.

Page 14: CMPT 275 Software Engineering

Janice Regan, 2008-2014 14

Requirements Common errors of developer driven

requirements Replacing the ‘requirements’ requested by the

user to their own vision of the application Deciding to use a particular tool not supported

by the user because it would make the application ‘better’For example producing a UNIX tool when developing an

application for a company that uses only WINDOWS Can you think of others?

Page 15: CMPT 275 Software Engineering

Janice Regan, 2008-2014 15

Realistic, Verifiable, Traceable Requirements are only useful if they have the

following properties Realism: system can be implemented without

violating any constraints Verifiability: As the system is designed and

built repeatable tests can be developed that demonstrate the system fulfills each requirement

Traceability: Each requirement can be mapped to one or more system functions, each system function can be mapped to at least one requirement. Interdependence between requirements are also mapped

Page 16: CMPT 275 Software Engineering

Janice Regan, 2008-2014 16

Overview of Requirements AnalysisRequirementsSpecification

Analysis Model

RequirementsElicitation

Analysis

System Design

Functional model(requirements, use cases)

Non-Functional requirements

Dynamic model

Static ModelAnalysis object model

Page 17: CMPT 275 Software Engineering

Janice Regan, 2008-2014 17

Requirements Analysis Phase Informal scenarios -> questions to client Software Requirement Specification doc (SRS) Use cases System Context diagram Primary classes Scenarios (not “informal scenarios”) Use case diagram Class diagram

Page 18: CMPT 275 Software Engineering

Janice Regan, 2008-2014 18

Requirements Gathering Activities Develop informal scenarios based on the

project description Informal scenarios are used to

Understand the initial project Formulate questions for client meetings,

interviews, site visits … Clarify understanding of the system

requirements

Page 19: CMPT 275 Software Engineering

Janice Regan, 2008-2014 19

Gathering Requirements Interviews with client, managers, etc.

Clarify project description, informal scenarios can help May be conducted by a member or members of the

development team or a Business Analyst May include technical specialists from the clients

organization as well as end users or clients … Visit to client site, see how the application will be

used Analyze current procedures your system will replace Analyze current electronic system if one exists

Page 20: CMPT 275 Software Engineering

Janice Regan, 2008-2014 20

Requirements Specification Activity Write a list of requirements for your

project based on the understanding you have gained from informal scenarios and meetings with the clients \ users

You may need one or more cycle of meeting with the client followed by refining your informal scenarios.

Page 21: CMPT 275 Software Engineering

Janice Regan, 2008-2014 21

Requirements Specification Activity The requirements must often be prioritized Basis of prioritization

What resources are available? Are all users requests possible to implement with

available resources? (scope is important) Which requirements are critical to the client? Which requirements are needed by the client? Which requirements are desired by the client?

Page 22: CMPT 275 Software Engineering

Janice Regan, 2008-2014 22

Analyze your requirements Tools used to analyze your requirements

include: System context diagram, Class (object)

diagram, Primary Classes Use cases and use case diagrams Scenarios (formal)

Requirements Analysis Activities

Page 23: CMPT 275 Software Engineering

Janice Regan, 2008-2014 23

Update your requirements based on this analysis If necessary repeat the cycle of analysis of

requirements (may also need additional elicitation) followed by update of requirements

Complete revision of your SRS (first version to go to the client)

May conduct a structured client requirements review to confirm and or refine your requirements

If necessary update of your SRS (both requirements and analysis)

Requirements Analysis Activities:3