0% found this document useful (0 votes)
14 views18 pages

CH 07

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1/ 18

Software Engineering: A Practitioners Approach,

6/e

Chapter 7
Requirements Engineering
copyright 1996, 2001, 2005

R.S. Pressman & Associates, Inc.


For University Use Only
May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.

Thesecoursewarematerialsaretobeusedinconjunction

Requirements Engineering-I

Inceptionask a set of questions that establish

basic understanding of the problem


the people who want a solution
the nature of the solution that is desired, and
the effectiveness of preliminary communication and collaboration
between the customer and the developer

Elicitationelicit requirements from all stakeholders


Elaborationcreate an analysis model that identifies data, function
and behavioral requirements
Negotiationagree on a deliverable system that is realistic for
developers and customers

Thesecoursewarematerialsaretobeusedinconjunction

Requirements Engineering-II

Specificationcan be any one (or more) of the following:

Validationa review mechanism that looks for

A written document
A set of models
A formal mathematical
A collection of user scenarios (use-cases)
A prototype

errors in content or interpretation


areas where clarification may be required
missing information
inconsistencies (a major problem when large products or systems are
engineered)
conflicting or unrealistic (unachievable) requirements.

Requirements management

Thesecoursewarematerialsaretobeusedinconjunction

Inception

Identify stakeholders

who else do you think I should talk to?

Recognize multiple points of view


Work toward collaboration
The first questions

Who is behind the request for this work?


Who will use the solution?
What will be the economic benefit of a successful solution
Is there another source for the solution that you need?

Thesecoursewarematerialsaretobeusedinconjunction

Eliciting Requirements

meetings are conducted and attended by both software engineers and


customers
rules for preparation and participation are established
an agenda is suggested
a "facilitator" (can be a customer, a developer, or an outsider) controls
the meeting
a "definition mechanism" (can be work sheets, flip charts, or wall
stickers or an electronic bulletin board, chat room or virtual forum) is
used
the goal is

to identify the problem


propose elements of the solution
negotiate different approaches, and
specify a preliminary set of solution requirements

Thesecoursewarematerialsaretobeusedinconjunction

Eliciting Requirements
Conduct FAST
meetings

Make lists of
functions, classes

Make lists of
constraints, etc.

formal prioritization?

Elic it requirement s

no

yes
Use QFD to
prioritize
requirements

define actors

informally
prioritize
requirements
draw use-case
diagram

write scenario

Create Use-cases
complete template

Thesecoursewarematerialsaretobeusedinconjunction

Quality Function Deployment

Function deployment determines the value (as


perceived by the customer) of each function required of
the system
Information deployment identifies data objects and
events
Task deployment examines the behavior of the system
Value analysis determines the relative priority of
requirements

Thesecoursewarematerialsaretobeusedinconjunction

Elicitation Work Products

a statement of need and feasibility.


a bounded statement of scope for the system or product.
a list of customers, users, and other stakeholders who
participated in requirements elicitation
a description of the systems technical environment.
a list of requirements (preferably organized by function)
and the domain constraints that apply to each.
a set of usage scenarios that provide insight into the use of
the system or product under different operating
conditions.
any prototypes developed to better define requirements.
requirements

Thesecoursewarematerialsaretobeusedinconjunction

Use-Cases

A collection of user scenarios that describe the thread of usage of a system


Each scenario is described from the point-of-view of an actora person or
device that interacts with the software in some way
Each scenario answers the following questions:

Who is the primary actor, the secondary actor (s)?


What are the actors goals?
What preconditions should exist before the story begins?
What main tasks or functions are performed by the actor?
What extensions might be considered as the story is described?
What variations in the actors interaction are possible?
What system information will the actor acquire, produce, or change?
Will the actor have to inform the system about changes in the external environment?
What information does the actor desire from the system?
Does the actor wish to be informed about unexpected changes?

Thesecoursewarematerialsaretobeusedinconjunction

Use-Case Diagram
Arms/ disarms
system

Accesses system
via Internet

sensors

homeowner

Responds to
alarm event

Encounters an
error condition

system
administrator

Reconfigures sensors
and related
system features

Thesecoursewarematerialsaretobeusedinconjunction

10

Building the Analysis Model

Elements of the analysis model

Scenario-based elements

Class-based elements

Implied by scenarios

Behavioral elements

Functionalprocessing narratives for software functions


Use-casedescriptions of the interaction between an
actor and the system

State diagram

Flow-oriented elements

Data flow diagram

Thesecoursewarematerialsaretobeusedinconjunction

11

Class Diagram
From the SafeHome system
Sensor
name/id
type
location
area
characteristics
identify()
enable()
disable()
reconfigure ()

Thesecoursewarematerialsaretobeusedinconjunction

12

State Diagram
Reading
commands

Initialization
turn copier
on

system status=not ready


display msg =please wait
display status = blinking

subsystems
ready

entry/ switch machine on


do: run diagnostics
do: initiate all subsystems

not jammed

system status=Ready
display msg =enter cmd
display status = steady

paper full

entry/ subsystems ready


do: poll user input panel
do: read user input
do: interpret user input

turn copier off


start copies

Making copies
system status=Copying
display msg=copy count =
display message=#copies
display status=steady
entry/ start copies
do: manage copying
do: monitor paper tray
do: monitor paper flow

copies complete

paper tray empty


paper jammed

problem diagnosis
system status=J ammed
display msg=paper jam
display message=location
display status=blinking

load paper
system status=load paper
display msg=load paper
display status=blinking
entry/ paper empty
do: lower paper tray
do: monitor fill switch
do: raise paper tray

not jammed

entry/ paper jammed


do: determine location
do: provide correctivemsg.
do: interrupt making copies

Figure 7.6 Preliminary UML st at e diagram for a photocopier

Thesecoursewarematerialsaretobeusedinconjunction

13

Analysis Patterns
Pattern name: A descriptor that captures the essence of the pattern.
Intent: Describes what the pattern accomplishes or represents
Motivation: A scenario that illustrates how the pattern can be used to address the
problem.
Forces and context: A description of external issues (forces) that can affect how the
pattern is used and also the external issues that will be resolved when the pattern is
applied.
Solution: A description of how the pattern is applied to solve the problem with an
emphasis on structural and behavioral issues.
Consequences: Addresses what happens when the pattern is applied and what
trade-offs exist during its application.
Design: Discusses how the analysis pattern can be achieved through the use of
known design patterns.
Known uses: Examples of uses within actual systems.
Related patterns: On e or more analysis patterns that are related to the named
pattern because (1) it is commonly used with the named pattern; (2) it is structurally
similar to the named pattern; (3) it is a variation of the named pattern.

Thesecoursewarematerialsaretobeusedinconjunction

14

Negotiating Requirements

Identify the key stakeholders

Determine each of the stakeholders win conditions

These are the people who will be involved in the negotiation


Win conditions are not always obvious

Negotiate

Work toward a set of requirements that lead to win-win

Thesecoursewarematerialsaretobeusedinconjunction

15

Validating Requirements-I

Is each requirement consistent with the overall objective for the


system/product?
Have all requirements been specified at the proper level of
abstraction? That is, do some requirements provide a level of
technical detail that is inappropriate at this stage?
Is the requirement really necessary or does it represent an add-on
feature that may not be essential to the objective of the system?
Is each requirement bounded and unambiguous?
Does each requirement have attribution? That is, is a source
(generally, a specific individual) noted for each requirement?
Do any requirements conflict with other requirements?

Thesecoursewarematerialsaretobeusedinconjunction

16

Validating Requirements-II

Is each requirement achievable in the technical environment that will house


the system or product?
Is each requirement testable, once implemented?
Does the requirements model properly reflect the information, function and
behavior of the system to be built.
Has the requirements model been partitioned in a way that exposes
progressively more detailed information about the system.
Have requirements patterns been used to simplify the requirements model.
Have all patterns been properly validated? Are all patterns consistent with
customer requirements?

Thesecoursewarematerialsaretobeusedinconjunction

17

Requirements Management

Monitoring the requirement changes.


A set of activities helping project term identify, control, and track
requirements.
Traceability table:Feature traceability table.
Source traceability table.
Dependency traceability table.
Subsystem traceability table.
Interface traceability table.

Thesecoursewarematerialsaretobeusedinconjunction

18

You might also like