L06: Requirements Engineering Flashcards

1
Q

What are the requirements of a system?

A

Descriptions of the services a system should provide and the constraints on its operation
- Reflects the needs of the customers of the system
- Can range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional
specification

Can be the basis for
- bid for contract - should be open to interpretation
- contract itself - should be precise and detailed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How can we summarise requirements engineering?

A

Process of finding out, analysing, documenting and checking requirements (system services and constraints)
[Sommerville, 2016]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How do we get the requirements for a plan-driven process?

A
  1. Get from the user perspective
  2. Translate to system perspective
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How do we get the requirements for an agile process?

A

As the customer is consulted throughout the development process
1. Get from the user perspective
2. Keep the features that users want from the system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the 3 types of requirements in a plan-driven process?

A
  • User requirements
  • System requirements
  • Domain requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are user requirements?

A
  • Typically in natural language and diagrams to capture user interactions with the system
  • What the system is expected to provide for customers and the constraints under which it will operate
  • Written for customers (accessible to non-technical people)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are system requirements?

A
  • Structured document which details what should be implemented
  • Can be part of contract between customer and developing organisation
  • Functional and non-functional requirements (should be atomic and precise)
  • 1 requirement deals with 1 functionality of the system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are functional requirements?

A
  • What the system should do
  • May also state what the system should not do

There should be statements of
- services the system should provide
- how the system should react to particular inputs
- how the system should behave in particular situations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are non-functional requirements?

A
  • Specify or constrain characteristics of a system as a whole
  • Often applies to the system rather than the individual features or services
  • Can be more critical to a system success than individual functional requirements
  • E.g. usability, performance, security, availability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the challenges of non-functional requirements?

A
  • Users/customers often propose non-functional requirements as general goals instead of measurable requirements
  • Scope for interpretation and subsequent disputes after system is delivered
  • We can have vague requests such as “system should be easy to use”, “user errors should be minimised”
  • How can we measure these requirements?
  • Some requirements do not have simple metrics
  • Even if quantitative specification is possible, customers may not be able to relate their needs to them
  • Cost of objectively verifying non-functional requirements can be very high
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are some metrics for non-functional requirements?

A

Speed
- Transactions/second, response time to events

Size
-MBs

Easy to use
- Training time, support features

Reliability
- Mean time to failure, availability, rate of failure occurrence

Robustness
- Time to restart. probability of data corruption, percentage of events causing failure

Portability
- Number of target systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are domain requirements?

A
  • Derived from system domain rather than user perspective
  • If domain requirements are not satisfied, system may be unusable

Requirements from the operational domain
- New functional requirements
- Constraints on existing requirements
- Specific computations

  • E.g., even if the users do not tell you that you need this feature, e.g. logging for an audit trail, you still need to include it if it is vital for your domain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are some challenges with domain requirements?

A

Understandability
- Constraints expressed in the language of the application domain
- May not be understood by development team
- Omission and conflicts may be missed

Implicitness
- Domain experts may not realised that they need to explicitly state these requirements because they understand the domain so well (assume you would know as well)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the 4 activities involved in requirements engineering?

A
  1. Requirements elicitation and analysis
  2. Requirements specification
  3. Requirements validation
  4. Requirements management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is requirements elicitation and analysis?

A

Aims
- Understand the work of stakeholders
- Understand how the new system might support this work

Requirements engineers work with stakeholders to find out about
- Application domain
- Services the system would provide
- Operational constraints

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are some requirements elicitation techniques?

A

Interviewing
- Pros: facilitates communication, provides good overview
- Cons: relies on interviewee having good understanding, may be idealistic
Observation or ethnography
- Pros: provides realistic picture of what happens
- Cons: observer bias, observer effect
Stories and scenarios
- Pros: more relaxed than interview, can ask about specific scenarios, more realistic accurate answer
- Cons: _

17
Q

What are some challenges of requirements elicitation and analysis?

A

Stakeholders don’t always know what they need
- What precisely they want from the software system
- What a software system can/can’t do

Stakeholders express requirements in their own terms
- Lack of common vocabulary with requirements engineers

Different stakeholders may have different/conflicting requirements
- May require negotiations

Political factors within customer organisation may affect requirements

Requirements may change during the elicitation and analysis process
- Dynamic business and economic environments
- Changes in stakeholders

18
Q

How do we prioritise different requirements?

A
  • Divide into shall and should
  • Also high, medium, low

MoSCoW
- Must have
- Should have
- Could have
- Won’t have (this time)

19
Q

What is requirements specification?

A

Process of documenting user and system requirements

Notations
- Natural language
- Structured natural language
- Graphical notation
- Mathematical specifications

Process and notation may differ according to development process

20
Q

What is a requirements document?

A
  • Official statement of what is required of software developers (typically for plan driven development)
  • Should include user and system requirements
  • It should say what the system should do rather than how it should do it (not design)
  • Systems developed incrementally will have less detail in their requirements document
21
Q

What is a natural language specification?

A
  • E.g. 3.2 “The system shall measure the blood sugar and deliver insulin, if
    required, every 10 minutes”
  • Numbered sentences in natural language
  • Supplemented by diagrams and tables
  • Each sentence should express 1 requirement
  • Can be understood by customers and developers
22
Q

What are the guidelines of natural language?

A
  • Use a standard format for all requirements
  • Use language consistently
  • E.g. shall for mandatory requirements, should for desirable requirements
  • Can use highlighting to identify key parts of requirements
  • Avoid using software engineering jargon
  • Include rationale for requirement
23
Q

What is a structured requirements specification?

A

Requirements are written in natural language in a standard format- each field provides information about a specific aspect of the requirement
This is suitable for requirements where details are essential

24
Q

What may a simple structure of a requirement include?

A
  • Requirement id
  • Description
  • Priority
  • Dependencies
  • Source (customer/domain/developers)
25
Q

How can we capture a requirement graphically?

A

Use Cases
- Scenario/interaction modelling in UML
- High-level graphical models
- Describe system interactions showing actors
- A set of use cases for a system should show all possible interactions with the system
- UML sequence diagrams can be used to add more detail to use cases

26
Q

What are some qualities of a good requirements specification?

A
  • Precision
  • Validity
  • Pertinence
  • Completeness
  • Consistency
  • Verifiability / measurability
  • Comprehensibility
  • Feasibility
  • Traceability
  • Adaptability
27
Q

What is requirements validation?

A

Aims to demonstrate that documented requirements define the system that the customer wants

Properties
- Validity, consistency, completeness, realism, verifiability

Validation techniques
- Requirements reviews, prototyping, test case generation

Important because costs of requirements errors are high

28
Q

What is requirements management?

A

Process of managing changing requirements during the
software engineering process
- While the system is being developed
- After it is operational

Support for requirements management
- Tracking individual requirements
- Tracking dependencies among requirements
- Establishing a change management process