2. Requirements Flashcards
(31 cards)
What does a software requirement primarily specify?
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.
Why can user requirements be challenging for developers initially?
User requirements are often high-level, vague, and incomplete, resembling business goals rather than specific software needs.
What is the software engineer’s role in relation to user requirements?
The software engineer’s job is to translate these high-level, vague user requirements into something useful for development.
What does “Requirements Engineering” primarily involve?
Requirements Engineering involves understanding what matters to the client and users, such as features, security, data sovereignty, availability, reliability, and user personas.
How does understanding “scenarios” and “parameters” help in defining system behavior?
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.
What are Functional Requirements?
Functional requirements are product features or features essential to the user’s task completion, defining what the system does.
What are Non-Functional Requirements (NFRs), also known as Quality Requirements?
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.
List three examples of Non-Functional Requirements.
Examples include:
Usability (ease of use)
Security (encryption, privacy)
Reliability (bug-free)
Performance (load times)
Availability (minimizing downtime)
Scalability (handling more users/data).
What is the general advice for defining User Interface (UI) requirements initially?
UI requirements should be kept high-level, focusing on important aspects rather than minor details. Hand-drawing can help focus on essential features.
What are the three types of UI artefacts used in requirements gathering?
The three types are:
1. Wireframes
2. Mockups
3. Prototypes
What is a Wireframe in UI design?
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.
What is a Mockup in UI design?
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.
What is a Prototype in UI design?
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.
What are the three main activities in Requirements Engineering?
- Requirements Gathering
- Requirements Analysis
- Requirements Specification
What is the goal of Requirements Gathering?
To help the customer define what is required: what the system should accomplish, how it fits business needs, and its day-to-day use.
What does Requirements Analysis involve?
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.
What is Requirements Specification?
Documenting system requirements semi-formally or formally (e.g., user stories, UML diagrams, acceptance tests) to ensure clarity, consistency, completeness, and traceability.
What is a Use Case?
A use case is a list of actions or event steps defining interactions between a role (actor) and a system to achieve a goal.
How are Use Cases represented in UML?
Ovals represent use cases, stick figures represent actors, boxes represent the system boundary, and lines represent associations.
What is the typical format of a User Story?
“As a [user role - WHO], I can [capability - WHAT], so that [business value - WHY]”.
What is a key characteristic of user stories in relation to testing?
They must have one or more acceptance tests attached, aligning with test-driven development. User stories are a preferred tool in Agile methodologies.
What is an Acceptance Test Case?
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.
What are the two types of acceptance tests mentioned?
User Acceptance Test (UAT), which is user-focused, and Operational Acceptance Test, which focuses on operational readiness (system-focused).
What is the purpose of User Acceptance Testing (UAT)?
UAT verifies that the software solution works for the user. It often uses the Given-When-Then format.