knowledge-kitchen

Requirements Engineering - What Should The Software Do?

A disciplined approach to figuring out what needs to be done.

  1. Overview
  2. Motivations
  3. Types
  4. User Requirements
  5. Business Requirements
  6. Compliance Requirements
  7. Security Requirements
  8. Requirements Elicitation
  9. Conclusions

Overview

Requirements engineering is the disciplined process of defining what a project requires to be done and how it must be done.

Motivations

Requirements provide several benefits to a project:

Types

There are two top-level categories of requirements:

Functional requirements

Functional requirements describe what the system must do, in layman’s terms, including:

Non-functional requirements

Non-functional requirements specify constraints on either the system or the development process, including:

User Requirements

The main variety of functional requirement, focused on the user experience.

Define what a user must be able to do with the system, written in layman’s terms.

There are two popular ways of writing user requirements:

Use Cases

Describe how an actor achieves their goals using the system.

A list of actions and events involved in a specific user interaction.

Use Cases

At a minimum contains:

Use Cases

Example:

Title: Purchase items

Actor: Customer

Scenario: Customer reviews items in shopping cart. Customer provides payment and shipping information. System validates payment information and responds with a confirmation of order and provides order number that Customer can use to check on order status. System will send Customer a confirmation of order details and tracking number in an email.

Use Cases

Written use cases often are accompanied by a Unified Modeling Diagram Language (UML) diagram:

Use case diagram

User Stories

An alternative to Use Cases, written in user-centric language:

As a ___, I want ___, so I can ___.

User Stories

Each User Story also may optionally include:

User Stories

Example:

As a customer, I want to sign up so I can start placing orders.

This may have the following additional notes attached:

Estimation of effort: M

Acceptance criteria:

  1. Customer name is captured and saved
  2. Customer email is captured and saved
  3. Customer phone number is captured and saved
  4. Customer password is captured and saved
  5. Invalid name, email, phone, and passwords are rejected
  6. Customer is signed in automatically after registration
  7. An error message indicates any invalid values entered into the form

Read more about the use of User Stories in so-called “agile” development.

Use Cases vs. User Stories

Use cases vs. user stories

Business Requirements

Overview

An organization engages in a development project for a reason. Business requirements documents document this reason and any other business constraints. This may include:

… and so on …

Compliance Requirements

Overview

Software used in certain industries or certain purposes must abide by government regulation or industry standards, e.g.

Government regulations:

… and so on …

Security Requirements

Overview

Focused on three P’s:

Elicitation

Techniques

How do you determine the requirements of a project?

Midwifery

Why do we say we “elicit” requirements?

Interviews

It would typically be a mistake not to interview:

Interviews (continued)

An interview can either be conducted in an open or closed manner.

Interviews (continued again)

Start broad:

Go deeper:

Very detailed:

Observation

Observing end-users achieving their goals without your system, such as with…

Observation (again)

Similarly to interviews, observation can either be active or passive.

Intuition & brainstorming

Realistically, a requirements engineer (who may also be a software engineer) already has preeconceived notions of what users might want to do with the system based on their experience.

Conclusions

Thank you. Bye.