20
Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer Science & Engineering

Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

Embed Size (px)

DESCRIPTION

3 The UP description shows that most of the work in requirements workflow occurs in Inception and Elaboration phases

Citation preview

Page 1: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

Chapter 3: The Requirements Workflow

[Arlow and Neustadt, 2005]

CS 426 Senior Projects in Computer Science

University of Nevada, RenoDepartment of Computer Science & Engineering

Page 2: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

2

Outline

The requirements workflow Metamodel for software requirements Requirements workflow details The importance of requirements Defining requirements

Page 3: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

3

The Requirements Workflow The UP description shows that most of the work in requirements workflow occurs in Inception and Elaboration phases

Page 4: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

4

The Requirements Workflow

The purpose of the requirements workflow is to reach an agreement on what the system should do, expressed in a way accessible to the users of the system

Requirements engineering involves various activities: elicitation, negotiation, conflict resolution, prioritization, documentation, and maintenance of requirements

Various stakeholders are involved in establishing the set of requirements for the system

UML uses cases describe functional requirements, but non-functional requirements need different description

Page 5: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

5

Metamodel for Software Requirements

Page 6: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

6

Requirements Workflow DetailSpecific tasks for UP requirements workflow

Page 7: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

7

Requirements Workflow DetailArlow and Neustadt extend slightly the UP requirementsworkflow with the addition of new tasks: find functional requirements, find non-functional requirements, prioritize requirements, & trace requirements to use cases.

Page 8: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

8

The Importance of Requirements

Requirements engineering is about establishing what the stakeholders need from the system

Poor requirements engineering is the major cause of software project failure

The second major cause of software project failure is lack of user participation

Page 9: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

9

Defining Requirements

Requirement: “a specification of what should be implemented”

There are two types of requirements: Functional requirements: describe the desired behavior of the system Non-functional requirements: specify particular properties of or

constraints on the system

In theory, the set of requirements should be only about “what”

the system should do, but in practice it is not possible to avoid “how” aspects of the system

Page 10: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

10

Defining Requirements

The SRS (Systems Requirements Specification) is the document that contains the set of requirements expected to be satisfied by the system, both functional and non-functional

There are many ways to write an SRS (“company dependent” ways)

The SRS provides the input for analysis and design phases of the development process

The bottom line regarding the SRS is: “does it help me to understand what the system should do or not?”

Page 11: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

11

Defining Requirements Simple format recommended for well-formed requirements:

<id> The <system> shall <function>

Examples of functional requirements (what the system should do):

1 The ATM shall check the validity of the ATM card inserted

2 The ATM shall validate the PIN number entered by the client

3 The ATM shall allow the user to deposit cash

Examples of non-functional requirements (constraints on or properties of the system):

1 The ATM shall be written in C++

2 The ATM shall validate the PIN in three seconds or less

Page 12: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

12

Defining Requirements

Organizing requirements: a more complex taxonomy can be used when there are many requirements, e.g.

Functional requirements• Customers• Products• Orders• Sales channels• Payments

Page 13: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

13

Defining Requirements

Organizing requirements: a more complex taxonomy can be used when there are many requirements, e.g.

Non-functional requirements

• Performance• Capacity• Availability • Compliance with standards• Security

Page 14: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

14

Defining Requirements

Requirements may have attributes, e.g., priority Must have Should have Could have Want to have [the MoSCoW system]

Other requirement attributes in RUP: Status (proposed, approved, rejected, incorporated) Benefit (critical, important, useful) Effort (measured in person*day or function points) Risk (high, medium, low) Stability (high, medium, low) TargetRelease (product version when implemented)

Page 15: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

15

Finding Requirements

Requirements come from the context of the system:

• Direct users• Other stakeholders (e.g., managers, maintainers, installers)• Other systems that interact with the system• Hardware devices attached to the system• Legal and regulatory constraints• Technical constraints• Business goals

Page 16: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

16

Finding Requirements The map is not the territory When modeling, we apply three cognitive filters that simplify

our effort [Chomsky, 1975]:

Deletion Distortion Generalization

Page 17: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

17

Finding Requirements

In requirements specification we need to identify the application of the above filters and find “challenges” for them to recover information

In particular, universal quantifiers such as All Everyone Always Never Nobody None should be inspected closely for accuracy

Page 18: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

18

Finding Requirements

Interviews:

Don’t imagine a solution Ask context-free questions Listen Don’t mind read Have patience

Page 19: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

19

Finding Requirements

Questionnaires

Cannot substitute the interviews Can supplement the interviews Good at getting answers to closed questions

Page 20: Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer

20

Finding Requirements

Requirements workshop Participants

• Facilitator• Requirements engineer• Stakeholders• Domain experts

Procedure• Brainstorm (accept all ideas) • Identify key requirements • Iterate over identified requirements, note additional attributes

After the meeting• Analyze results and turn them into requirements• Circulate results for comment