+ All Categories
Home > Documents > Requirements Engineering Tasks -...

Requirements Engineering Tasks -...

Date post: 08-Sep-2018
Category:
Upload: phamngoc
View: 229 times
Download: 0 times
Share this document with a friend
6
01/31/08 EEC 421/521: Software Engineering 1 EEC 421/521: Software Engineering Requirements Engineering 01/31/08 EEC 421/521: Software Engineering 2 Requirements Analysis is Hard Frederick P. Brooks, Jr. “The hardest single part of building a software system is deciding what to build. No part of the work so cripples the resulting system if done wrong.” “The seeds of major software disasters are usually sown in the first three months of commencing the software project.” Capers Jones 01/31/08 EEC 421/521: Software Engineering 3 Requirements Engineering Tasks Inception Roughly define scope Elicitation Define requirements Elaboration Further define requirements Requirements engineering is accomplished through the execution of seven major tasks Negotiation Reconcile conflicts Specification Create analysis model Validation Ensure quality of requirements Requirements Management (Umbrella Activities) 01/31/08 EEC 421/521: Software Engineering 4 Requirements Process Elicitation Analysis Specification Validation Software Requirements Specification Collecting the user’s requirements Understanding and modeling the desired behavior Documenting the behavior of the proposed system Checking that specification matches user’s requirement
Transcript
Page 1: Requirements Engineering Tasks - selab.csuohio.eduselab.csuohio.edu/~nsridhar/teaching/spring08/eec521/slides/... · Requirements engineering is accomplished through the execution

01/31/08 EEC 421/521: Software Engineering 1

EEC 421/521: SoftwareEngineering

Requirements Engineering

01/31/08 EEC 421/521: Software Engineering 2

Requirements Analysis isHard

Frederick P. Brooks, Jr.

“The hardest single part ofbuilding a software systemis deciding what to build.No part of the work socripples the resulting

system if done wrong.”

“The seeds of majorsoftware disasters are

usually sown in the firstthree months ofcommencing the

software project.”

Capers Jones

01/31/08 EEC 421/521: Software Engineering 3

Requirements EngineeringTasks

• Inception

– Roughly define scope

• Elicitation

– Define requirements

• Elaboration

– Further definerequirements

Requirements engineering is accomplished through theexecution of seven major tasks

• Negotiation

– Reconcile conflicts

• Specification

– Create analysis model

• Validation

– Ensure quality ofrequirements

Requirements Management(Umbrella Activities)

01/31/08 EEC 421/521: Software Engineering 4

Requirements Process

Elicitation Analysis Specification Validation SoftwareRequirementsSpecification

Collecting theuser’s

requirements

Understandingand modelingthe desiredbehavior

Documentingthe behavior

of theproposedsystem

Checking thatspecification

matches user’srequirement

Page 2: Requirements Engineering Tasks - selab.csuohio.eduselab.csuohio.edu/~nsridhar/teaching/spring08/eec521/slides/... · Requirements engineering is accomplished through the execution

01/31/08 EEC 421/521: Software Engineering 5

Elicitation is the HardestPart!• Problems of scale

– Explicit and implicit requirements abound

• Problems of scope

– System boundaries are ill-defined

– Customers will provide irrelevant information

• Problems of understanding

– Customers never know exactly what they want

– Customers don’t understand capabilities and limitations

– Customers have trouble fully communicating needs

• Problems of volatility

– Requirements always change

01/31/08 EEC 421/521: Software Engineering 6

The Demons of Ambiguity(Harry Robinson)

• Why does the sign use the plural “children” insteadof the singular “child”?

• Who qualifies as a “child”?• What does it mean to be “present”?• Does this rule apply only when school is in session?

What about weekends? Holidays? Nighttime?• And what if these situations are combined?

What are We Talking About?!

!School Zone!Speed Limit 20 mph!

When Children are Present

01/31/08 EEC 421/521: Software Engineering 7

Stakeholders

• Clients (who’s paying)

• Customers (who’s buying)

• Users (who’s using)

• Domain experts (who knows about problem)

• Market researchers (will anyone buy this)

• Software engineers (who will build it)

01/31/08 EEC 421/521: Software Engineering 8

Types of Requirements

• Functional: behavior, features

• Non-functional or quality: characteristic

• Design constraint: choice of platform, etc.

• Process constraint: resources, techniques, …

Page 3: Requirements Engineering Tasks - selab.csuohio.eduselab.csuohio.edu/~nsridhar/teaching/spring08/eec521/slides/... · Requirements engineering is accomplished through the execution

01/31/08 EEC 421/521: Software Engineering 9

Requirements Documents

• Requirements Definition

– Complete listing of everything customer wants

– Described in terms of the operating environment

• Requirements Specification

– Spec of how the proposed system will behave

– System boundary clearly identifies what is in thesystem from what is outside (env)

01/31/08 EEC 421/521: Software Engineering 10

Requirements ManagementTools• With so many requirements to manage, we need

tools to deal with the complexity

– Features traceability tables

– Source traceability tables

– Dependency traceability tables

– Subsystem traceability tables

– Interface traceability tables

– Requirements traceability matrix (RTM)

• One of the most popular tools in practice

1000s of software requirements!

01/31/08 EEC 421/521: Software Engineering 11

The RequirementsTraceability Matrix (RTM)

UserRequirement

FunctionalRequirement

SystemModule

TestCase

FunctionalRequirement

SystemModule

TestCase

FunctionalRequirement

SystemModule

TestCase

An RTM is a set of tables that links requirements to system modules, andsystem modules to test cases.

http://yaktrack.sourceforge.net/yaktrack_docs/a2332.html

Here is an example from an open source project:

01/31/08 EEC 421/521: Software Engineering 12

Project Inception

• During the initial project meetings, the followingtasks should be accomplished– Identify the project stakeholders

• These are the folks we should be talking to

– Recognize multiple viewpoints• Stakeholders may have different (and conflicting) requirements

– Work toward collaboration• It’s all about reconciling conflict

– Ask the first questions• Who? What are the benefits? Another source?

• What is the problem? What defines success? Other constraints?

• Am I doing my job right?

Page 4: Requirements Engineering Tasks - selab.csuohio.eduselab.csuohio.edu/~nsridhar/teaching/spring08/eec521/slides/... · Requirements engineering is accomplished through the execution

01/31/08 EEC 421/521: Software Engineering 13

Collaborative Elicitation

• One-on-one Q&A sessions rarely succeed in practice;collaborative strategies are more practical

• Collaborative elicitation should result in several workproducts.

– A bounded statement of scope

– A list of stakeholders

– A description of the technical environment

– A list of requirements and constraints

– Any prototypes developed

– A set of use cases

• Characterize how users will interact with the system

• Use cases tie functional requirements together

01/31/08 EEC 421/521: Software Engineering 14

Narrative Use Case

• A use case describes a sequence of steps in aninteraction.

• Buy a Product Scenario:– The customer browses the catalog and adds

desired items to the shopping basket. When thecustomer wishes to pay, the customer describesthe shipping and credit care information andconfirms the sale. The system checks theauthorization on the credit card and confirms thesale both immediately and with a follow-up e-mail.

01/31/08 EEC 421/521: Software Engineering 15

The Analysis Model(Specification)• Purpose

– Precisely describes desired function and performance

– Precisely describes all relevant constraints

– Serves as the foundation for all subsequent activities

• Structure

– Consists of many different views

– Views range from informal to semi-formal to fully-formal

01/31/08 EEC 421/521: Software Engineering 16

Validating the Analysis Model

• Before design activities can proceed, the analysismodel must be validated

– Is the model intellectually manageable?

– Does the model reflect the system to be built?

– Are the requirements consistent?

– Is each requirement bounded and unambiguous?

– Is each requirement achievable?

– Is each requirement really necessary?

– Is each requirement testable?

– Does each requirement have attribution?

Page 5: Requirements Engineering Tasks - selab.csuohio.eduselab.csuohio.edu/~nsridhar/teaching/spring08/eec521/slides/... · Requirements engineering is accomplished through the execution

01/31/08 EEC 421/521: Software Engineering 17

The Analysis ModelThe analysis model consists of a wide variety of

diagrammatic forms used to bridge an important gap.

• Describe what the customer wants built

• Establish the foundation for the software design

• Provide a set of validation requirements

SystemDescription

DesignModel

AnalysisModel

Purpose:

• System information

• System function

• System behaviors

01/31/08 EEC 421/521: Software Engineering 18

Some Rules of Thumb

• Make sure all points of view are covered

• Every element should add value

• Keep it simple

• Maintain a high level of abstraction

• Focus on the problem domain

• Minimize system coupling

01/31/08 EEC 421/521: Software Engineering 19

Analysis ModelingApproaches

• Models data elements

– Attributes

– Relationships

• Models processes that transformdata

Structured Analysis

• Models analysis classes

– Data

– Processes

• Models class collaborations

Object-Oriented Analysis

Techniques from both approaches are typically used in practice.

01/31/08 EEC 421/521: Software Engineering 20

Data Objects

• Plays a necessary role

• Characterized by attributes

• Uniquely identifiable

• Roles

• Events

• Places

A data object is a domain element that will be manipulated by thesystem.

Characteristics: Examples:

• External entities

• Structures

• Other things

Object: car

Attributes:• VIN #• Make• Model• Price

Modeling

Page 6: Requirements Engineering Tasks - selab.csuohio.eduselab.csuohio.edu/~nsridhar/teaching/spring08/eec521/slides/... · Requirements engineering is accomplished through the execution

01/31/08 EEC 421/521: Software Engineering 21

Relationships, Cardinality,Modality

• Cardinality

– Defines the number of items oneither end of a connection

• Relationships

– Define connections betweenobjects

• Modality

– Defines the necessity of aconnection

Person

Car

ownsinsured

11

**

Trailer

attached

0..1

1

Entity-Relationship Diagram (ERD)


Recommended