Chapter 4 - Requirements Engineering

0.0(0)
studied byStudied by 1 person
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/38

flashcard set

Earn XP

Description and Tags

CS 3354

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

39 Terms

1
New cards

Problems with Requirements

Failure to communicate

Insufficient focus on up-front activities

Over promise, under deliver

Requirements volatility

2
New cards

Perspective on Dealing with Requirements Problem

Computer scientists use formal specification techniques

System analysts use modeling approaches

Software project managers use iterative-and-incremental development

Developers use peer reviews (inspections) of the requirements

Testers and QA people require testable requirements and do early test set construction (test-driven development)

Agile advocates place a customer representative on the development team

3
New cards

Solutions to Known Problems

Talk to stakeholders (customers, users, and others)

Iterative and incremental development (manages volatile requirements and provides visibility)

Agile methods and UP are “methodologies” that systematically address these issues

4
New cards

“Sweet Spot” for Requirements Volatility in Agile Methods

30-50% (or more) per month

<p>30-50% (or more) per month</p>
5
New cards

Unified Process (UP) Requirements Workflow

What must the product be able to do?

Develop understanding of application domain (specific environment it operates in)

Build business model of client’s business processes

Use business model to determine client’s requirements

Iterate, as necessary

Phases: Inception, Elaboration, Construction, Transition

6
New cards

Requirements Engineering

Process of establishing services that a customer requires from a system and the constraints under which it operates and is developed

Concerned with discovering, eliciting, developing, analyzing, determining verification methods, validating, communicating, documenting, and managing requirements.

7
New cards

Requirement

A statement which translates or expresses a need and its associated constraints and conditions (may range from high-level abstract statement to a detailed math functional specification;  requirements abstraction)

8
New cards

Derived Requirements

Requirements that are deduced or inferred from the collection and organization of requirements into a particular system configuration and solution

9
New cards

User Requirements

Statements in natural language plus diagrams of services that the system provides and its operation constraints

Written for customers

<p>Statements in natural language plus diagrams of services that the system provides and its operation constraints<br><br>Written for customers</p>
10
New cards

System Requirements

Structured document setting out detailed descriptions of system’s functions, services, and operational constraints.

Defines what should be implemented so may be part of a contract between client and contractor

<p>Structured document setting out detailed descriptions of system’s functions, services, and operational constraints.<br><br>Defines what should be implemented so may be part of a contract between client and contractor</p>
11
New cards

Readers of User Requirements

Client managers

System end-users

Client engineers

Contractor managers

System architects

12
New cards

Readers of System Requirements

System end-users

Client engineers

System architects

Software developers

13
New cards

System stakeholders

Any person/organization who’s affected by the system in some way and has a legitimate interest

Types:

  • End users

  • System managers

  • System owners

  • External stakeholders

14
New cards

Functional Requirements

The “What?” — statements of:

  • services system should provide

  • how system should react to particular inputs

  • how system should behave in particular situations

May state what system shouldn’t do as well

Describes functionality or system services, often expressed in terms of inputs and outputs.

May be high-level statements of what system should do, should describe system services in detail.

<p>The&nbsp;“What?” — statements of:</p><ul><li><p>services system should provide</p></li><li><p>how system should react to particular inputs</p></li><li><p>how system should behave in particular situations</p></li></ul><p>May state what system shouldn’t do as well<br><br>Describes functionality or system services, often expressed in terms of inputs and outputs.<br><br>May be high-level statements of what system should do, should describe system services in detail.</p>
15
New cards

Non-Functional Requirements

The “How?” — defines constraints on services or functions offered by system such as timing constraints, constraints on development process, standards, etc.

Process requirements may also be specified mandating a particular IDE, programming language, or development method.

Often applied to the system as a whole rather than individual features or services (system properties and constraints).

May be more critical than functional requirements, as the system may be useless if they aren’t met.

16
New cards

Requirements Jargon

Requirements → “shall”

Statements of fact, futurity, or declaration of purpose → “will”

Preferences or goals → “should”

Suggestions or allowances → “may”

Non-requirements → “are”, “is”, “was”


Avoid “must” due to misinterpretations and negative requirements (“shall not”)

Use active voice, not passive.

17
New cards

Characteristics of a Good Set of Requirements

In principle:

1) Complete

2) Consistent

3) Affordable (in budget, time, and life cycle constraints)

4) Bounded (maintains scope)

In practice, it’s impossible to make a complete AND consistent requirements document due to system and environmental complexity

18
New cards

Requirements Scrubbing

Requirements consistency checks

Requirements reviews

Requirements-driven early test case design

Testable requirements

Modeling, simulation, and prototyping to check early requirements validity

Formal specification techniques

19
New cards

Non-Functional Classifications

Product Requirements — specifies that delivered product behaves in a particular way (execution speed, reliability, etc)

Organizational Requirements — a consequence of organizational policies and procedures (process standards used, implementation requirements, etc)

External Requirements — Arises from factors external to system (interoperability requirements, legislative requirements, etc)

<p>Product Requirements — specifies that delivered product behaves in a particular way (execution speed, reliability, etc)<br><br>Organizational Requirements — a consequence of organizational policies and procedures (process standards used, implementation requirements, etc)</p><p></p><p>External Requirements — Arises from factors external to system (interoperability requirements, legislative requirements, etc)</p>
20
New cards

Example of Non-Functional Requirements

knowt flashcard image
21
New cards

Metrics for Specifying Non-Functional Requirements

Speed, Size, Ease of Use, Reliability, Robustness, Portability

<p>Speed, Size, Ease of Use, Reliability, Robustness, Portability</p>
22
New cards

Requirements Engineering Processes

Common Generic Activities:

1) Requirements elicitation and analysis

2) Requirements specification

3) Requirements Validation

4) Requirements Management

In practice, RE is an iterative activity in which these processes are interleaved.

23
New cards

Requirements Elicitation and Analysis

Discovery, classification and organization, prioritization and negotiation, and specification of requirements

Problems: stakeholders don’t know what they want and can’t express requirements, different stakeholders may have conflicting requirements, influence from organizational and political factors, changing requirements from new stakeholders or business environment

<p>Discovery, classification and organization, prioritization and negotiation, and specification of requirements<br><br>Problems: stakeholders don’t know what they want and can’t express requirements, different stakeholders may have conflicting requirements, influence from organizational and political factors, changing requirements from new stakeholders or business environment</p>
24
New cards

Problems with Interviews

Technical or language gaps between application specialists and requirements engineers

Not good for understanding domain requirements

Thus, use ethnography (social scientists)!

25
New cards

Scenarios

Structured form of user story

Should include:

  • Description of starting situation

  • Description of normal flow of events

  • Desc of of what can go wrong

  • Information about other concurrent activities

  • Description of the state when the scenario finishes

<p>Structured form of user story<br><br>Should include:</p><ul><li><p>Description of starting situation</p></li><li><p>Description of normal flow of events</p></li><li><p>Desc of of what can go wrong</p></li><li><p>Information about other concurrent activities</p></li><li><p>Description of the state when the scenario finishes</p></li></ul><p></p>
26
New cards

Requirements Specification

Process of writing down user and system requirements in a requirements document; should be as complete as possible as it may be used for contracts

User requirements → understandable to non-technical backgrounds and end-users

System requirements → more detailed and includes more technical information

27
New cards

Requirements Representations

Natural language, structured natural language, design description languages, graphical notations, mathematical specifications

<p>Natural language, structured natural language, design description languages, graphical notations, mathematical specifications</p>
28
New cards

Structured Specification

Approach to writing requirements where the freedom of the requirements writer is limited, and requirements are written in a standard way

Works well for some types of requirements (like for an embedded control system), but sometimes too rigid for writing business system requirements

<p>Approach to writing requirements where the freedom of the requirements writer is limited, and requirements are written in a standard way<br><br>Works well for some types of requirements (like for an embedded control system), but sometimes too rigid for writing business system requirements</p>
29
New cards

Tabular Specification

Used to supplement natural language; useful when you have to define a number of possible alternative courses of action

<p>Used to supplement natural language; useful when you have to define a number of possible alternative courses of action</p>
30
New cards

Tabular Specification + Class Responsibility Collaborator (CRC) Modelling

Class — name of class

Responsibility — attributes and operations that’re relevant for class (anything it does or knows)

Collaborator — classes that are required to provide current class with info needed to complete responsibility (a request for info or action)

<p>Class — name of class</p><p>Responsibility — attributes and operations that’re relevant for class (anything it does or knows)</p><p>Collaborator — classes  that are required to provide current class with info needed to complete responsibility (a request for info or action)</p>
31
New cards

Use Cases

A kind of scenario included in the UML that identifies actors in interaction and describes interaction itself

A set of use cases should describe all possible interactions within system

<p>A kind of scenario included in the UML that identifies actors in interaction and describes interaction itself<br><br>A set of use cases should describe all possible interactions within system</p>
32
New cards

Requirements Validation

Concerned with demonstrating that the requirements define the system that the customer really wants due to requirement error costs being very high

Fixing requirements error may cost 100x the cost of fixing an implementation error

33
New cards

Requirements Checks

Validity (does system provide functions which best support customer needs?)

Consistency

Completeness

Realism (can it be done given available budget and tech?)

Verifiability

34
New cards

Requirements Validation Techniques

Requirements reviews

Prototyping

Test-case generation

35
New cards

Requirements Management

Process of managing changing requirements during RE process and system development

New requirements emerge as a system is being developed and after it’s gone into use

Must keep track of individual requirements and maintain links between dependent requirements to assess impact of requirement changes

Must establish formal process for making change proposals and linking these to system requirements

36
New cards

Changing Requirements

Business and technical environment of system always changes after installation

People who pay for system and users of system are rarely the same people

Large systems usually have diverse user community, with many users having different requirements and priorities that may be conflicting/contradictory

<p>Business and technical environment of system always changes after installation<br><br>People who pay for system and users of system are rarely the same people<br><br>Large systems usually have diverse user community, with many users having different requirements and priorities that may be conflicting/contradictory</p>
37
New cards

Requirements Management Planning

Establishes level of requirements management detail that’s required.

Requirements management decisions:

  • Requirements identification → each requirement must be uniquely identified (used for cross-referencing between other requirements)

  • A change management process → set of activities that assess impact and cost of changes

  • Traceability policies → defines relationships between each requirement and between requirements and system design

  • Tool support tools → ranges from specialist requirements and management systems to spreadsheets and simple databases

38
New cards

Requirements Change Management

Deciding if requirements change should be accepted

Stages:

  • Problem analysis and change specification

  • Change analysis and costing

  • Change implementation

<p>Deciding if requirements change should be accepted<br><br>Stages:</p><ul><li><p>Problem analysis and change specification</p></li><li><p>Change analysis and costing</p></li><li><p>Change implementation</p></li></ul><p></p>
39
New cards

Structure of Requirements Document

Preface

Introduction

Glossary

User requirements definition

System architecture

System requirements specification

System models

System evolution

Appendices

Index

<p>Preface</p><p>Introduction</p><p>Glossary</p><p>User requirements definition</p><p>System architecture</p><p>System requirements specification</p><p>System models</p><p>System evolution</p><p>Appendices</p><p>Index</p>