2. Requirements Flashcards

(31 cards)

1
Q

What does a software requirement primarily specify?

A

A requirement specifies the business functions a user will perform with the system in different situations, the user’s experience, and may include concerns like resource management and data protection.

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

Why can user requirements be challenging for developers initially?

A

User requirements are often high-level, vague, and incomplete, resembling business goals rather than specific software needs.

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

What is the software engineer’s role in relation to user requirements?

A

The software engineer’s job is to translate these high-level, vague user requirements into something useful for development.

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

What does “Requirements Engineering” primarily involve?

A

Requirements Engineering involves understanding what matters to the client and users, such as features, security, data sovereignty, availability, reliability, and user personas.

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

How does understanding “scenarios” and “parameters” help in defining system behavior?

A

Understanding scenarios and their parameters helps decide what the system should do or how it should respond to a particular situation, which is then unpacked into tasks.

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

What are Functional Requirements?

A

Functional requirements are product features or features essential to the user’s task completion, defining what the system does.

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

What are Non-Functional Requirements (NFRs), also known as Quality Requirements?

A

Non-functional requirements describe how well the system performs its functions, defining its qualities or constraints, such as usability, security, reliability, performance, availability, and scalability.

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

List three examples of Non-Functional Requirements.

A

Examples include:
Usability (ease of use)
Security (encryption, privacy)
Reliability (bug-free)
Performance (load times)
Availability (minimizing downtime)
Scalability (handling more users/data).

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

What is the general advice for defining User Interface (UI) requirements initially?

A

UI requirements should be kept high-level, focusing on important aspects rather than minor details. Hand-drawing can help focus on essential features.

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

What are the three types of UI artefacts used in requirements gathering?

A

The three types are:
1. Wireframes
2. Mockups
3. Prototypes

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

What is a Wireframe in UI design?

A

A wireframe is a quick, low-fidelity sketch conveying the high-level concept of new product functionality, focusing on the format and structure of content. Its purpose is to gain consensus and internal feedback.

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

What is a Mockup in UI design?

A

A mockup is a realistic, middle-fidelity visual design resembling the new product functionality, including visual elements like logos, colors, and icons. Its purpose is to facilitate detailed critiques.

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

What is a Prototype in UI design?

A

A prototype is a high-fidelity, interactive simulation of new product functionality, including final interactive elements and navigation. Its purpose is to collect feedback through user testing of the real experience.

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

What are the three main activities in Requirements Engineering?

A
  1. Requirements Gathering
  2. Requirements Analysis
  3. Requirements Specification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the goal of Requirements Gathering?

A

To help the customer define what is required: what the system should accomplish, how it fits business needs, and its day-to-day use.

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

What does Requirements Analysis involve?

A

Refining and modifying gathered requirements, often with back-and-forth between developers and the client. It also involves evaluating feasibility, realism, and identifying business policies.

17
Q

What is Requirements Specification?

A

Documenting system requirements semi-formally or formally (e.g., user stories, UML diagrams, acceptance tests) to ensure clarity, consistency, completeness, and traceability.

18
Q

What is a Use Case?

A

A use case is a list of actions or event steps defining interactions between a role (actor) and a system to achieve a goal.

19
Q

How are Use Cases represented in UML?

A

Ovals represent use cases, stick figures represent actors, boxes represent the system boundary, and lines represent associations.

20
Q

What is the typical format of a User Story?

A

“As a [user role - WHO], I can [capability - WHAT], so that [business value - WHY]”.

21
Q

What is a key characteristic of user stories in relation to testing?

A

They must have one or more acceptance tests attached, aligning with test-driven development. User stories are a preferred tool in Agile methodologies.

22
Q

What is an Acceptance Test Case?

A

An acceptance test case specifies, for a given “situation” or “context” (defined by system inputs), the output or behavior the system will produce in response.

23
Q

What are the two types of acceptance tests mentioned?

A

User Acceptance Test (UAT), which is user-focused, and Operational Acceptance Test, which focuses on operational readiness (system-focused).

24
Q

What is the purpose of User Acceptance Testing (UAT)?

A

UAT verifies that the software solution works for the user. It often uses the Given-When-Then format.

25
How is requirements analysis incorporated into a Scrum Sprint Planning Meeting?
In the 1st half, the team selects product backlog items for the sprint. In the 2nd half, developers break these items into actionable tasks (architecture, design, coding, testing, etc.).
26
What is the main challenge in requirements prioritization?
Differentiating between "urgent" and "important" tasks. Assigning priority points can be hard; rank ordering is often easier.
27
What is Requirements Sizing used for?
To estimate which user stories and tasks require the most effort, often using size points (or story points) assigned to each user story based on its size or complexity.
28
How is project duration estimated using story points and velocity?
Project duration = Total Size / Velocity (sum of all user story points) / (points completed per day/iteration).
29
What is a Release Burn-Up Chart used for?
To track the progress of completed story points against iterations, often showing forecasts and the planned MVP scope.
30
Name two software tools that can be used for Requirements Specification.
Examples include: 1. GitHub Projects 2. Monday 3. Trello 3. Taiga 4. Azure DevOps 5. Notion 6. Kanboard.
31
What are five key qualities that good software requirements should possess?
Good software requirements should be: Documented - recorded for future use. Traceable - ensuring you know who said what, which meeting it was discussed in, when it was designed, etc.. Actionable - meaning they can be broken down into tasks that can be implemented. Testable - meaning they are accompanied by acceptance tests. Related to business needs - ensuring they align with the overall goals, often achieved through user stories (who-what-why format).