L4 Flashcards

1
Q

Q: Who are the primary stakeholders in software development?

A

A: Users, Customers, and Software Engineers.

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

Q: What are the roles of the stakeholders?

A

A:

Users: Use the system and provide feedback.
Customers: Fund the project and define business needs.
Software Engineers: Develop and implement the system.

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

Q: What is a software requirement?

A

A: A software capability needed by a user to solve a problem.

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

Q: What is an example of a valid requirement?

A

A: “The system shall allow the user to access his account balance.”

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

Q: What is NOT a requirement?

A

A: “Customer account balances will be stored in a table called ‘balance’ in a MySQL database.” (This is an implementation detail.)

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

Q: What is a key characteristic of a good requirement?

A

A: It describes what the system should do, not how it should do it.

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

Q: What is requirements elicitation?

A

A: The process of discovering, reviewing, articulating, understanding, and documenting user needs and system constraints.

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

Q: What are the five key activities in requirements elicitation?

A

A:

Discover the needs
Review existing knowledge
Articulate requirements clearly
Understand the constraints
Document everything

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

Q: What techniques can be used for requirements elicitation?

A

A:

Blueskying (brainstorming with an open mind)
Role-playing (acting out user interactions)
Observation (watching users perform tasks)

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

Q: What are the four key attributes of a requirement?

A

A:

Behavior – The required functionality.
Priority – The importance of the requirement.
Status – The progress (waiting, in progress, completed).
Time Estimate – The estimated time needed to implement it.

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

Q: Who sets the priority of a requirement?

A

A: The customer, based on business value.

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

Q: Who estimates the time required for a requirement?

A

A: The software developers, using techniques like Planning Poker.

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

Q: What is an ideal length for a user story estimate?

A

A: Less than 15 days – Estimates longer than this are usually inaccurate.

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

Q: What should you do if a user story is estimated at 40 days?

A

A: Break it into smaller user stories.

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

Q: What is the AND Rule for breaking down requirements?

A

A: If a requirement contains “and,” it can probably be split into two or more smaller stories.

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

Q: Why is traceability important in software development?

A

A: It ensures that every requirement is properly tracked from definition to implementation and testing.

17
Q

Q: Who benefits from maintaining traceability?

A

A:

Developers (Check if the system is complete)
Testers (Ensure all requirements are met)
Designers (Understand design rationale)
Maintainers (Assess the impact of changes)

18
Q

Q: What are the steps to refining requirements iteratively?

A

A:

Talk to the customer to clarify needs.
Play planning poker to estimate effort.
Clarify assumptions and eliminate misunderstandings.
Reach a consensus on final estimates.

19
Q

Q: What are the two main types of software requirements?

A

A: Product and Process requirements.

20
Q

Q: What is the difference between product and process requirements?

A

A:

Product requirements define the behavior of the software (e.g., “The system shall verify prerequisites before course registration.”).
Process requirements define constraints on how the software is developed (e.g., “The software must be written in Java.”).

21
Q

Q: What are functional requirements?

A

A: Requirements that define specific behaviors and functions of the software (e.g., “The system shall allow users to log in.”).

22
Q

Q: What are non-functional requirements (NFRs)?

A

A: Requirements that describe system qualities, constraints, or properties (e.g., “The response time shall be less than 2 seconds.”).

23
Q

Q: What is another name for non-functional requirements?

A

A: “Ilities” – because they include scalability, usability, reliability, etc.

24
Q

Q: What are the key characteristics of a good requirement?

A

A:

Completeness – All necessary features are described.
Consistency – No contradictions exist between requirements.
Unambiguous – Only one possible interpretation.
Correctness – Only describes intended features.
Realistic – Feasible within time and budget.
Verifiable – Can be tested and measured.
Traceable – Can be linked to implementation and testing.

25
Q

Q: Why should requirements be quantifiable?

A

A: Quantifiable requirements are easier to verify (e.g., “Increase throughput by 20%”).

26
Q

Q: What are the main sources of requirements?

A

A:

Goals – Business objectives and critical success factors.
Domain Knowledge – Industry-specific knowledge needed for software design.
Stakeholders – Different viewpoints from users, customers, and engineers.
Operational Environment – Physical and software constraints.
Organizational Environment – Business processes, politics, and culture.

27
Q

Q: What are some common requirement elicitation techniques?

A

A:

Interviews – Ask stakeholders about their needs.
Scenarios (User Stories & Use Cases) – Describe real-world interactions.
Prototypes – Build a quick model for feedback.
Facilitated Meetings (Brainstorming) – Gather ideas in a group setting.
Observation – Watch users perform tasks without software

28
Q

Q: Why is domain knowledge important in requirements elicitation?

A

A: It helps infer tacit knowledge that stakeholders may not explicitly mention.

29
Q

Q: What is an SRS (Software Requirements Specification)?

A

A: A formal or informal document outlining the expected behavior and constraints of the software.

30
Q

Q: What are the benefits of an SRS?

A

A:

Agreement between customer and software team.
Prevents miscommunication.
Serves as a reference throughout development.

31
Q

Q: What is the difference between validation and verification?

A

Validation: “Are we building the right product?”
Verification: “Are we building the product right?”

32
Q

Q: What are common techniques for requirement validation?

A

A:

Requirements Reviews – Discuss requirements with stakeholders.
Prototyping – Build a model to confirm expectations.
Model Validation – Use formal methods or diagrams.
Acceptance Tests – Define how each requirement will be tested.

33
Q

Q: What are the steps to estimating a project?

A

Break down user stories into small, clear requirements.
Use Planning Poker to estimate effort.
Remove assumptions by clarifying with the customer.
Reach a consensus on estimates.
Sum up all estimates for a total project estimate

34
Q

Q: What happens if the total project estimate is too long?

A

A:

Reevaluate the scope and remove low-priority features.
Refactor requirements into smaller, more manageable pieces.
Adjust the timeline or team capacity.