L3: Understanding Design Needs Flashcards

1
Q

What is a requirement?

A

Condition or capability needed by a user to solve a problem or achieve an objective

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

Why do we need requirements?

A

Badly defined requirements is one of the most common causes for software failure

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

3 High-level types of requirements

A
  • Functional: functionality/behaviour that a system offers
  • Quality/non-functional: qualities of the system
  • Constraint: limits that cannot be influenced
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Various requirements-engineering activities

A
  • Eliciting (interviews, comparisons, etc.)
  • Documenting (natural language, models,…)
  • Validation (quality aspects, inspection, …)
  • Negotiation (resolving conflicts, …)
  • Management (prioritizing, versioning, …)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How to document requirements?

A
  • Customer / system requirements specification (V-Model)
  • Software requirements specification (ISO/IEC/IEEE standard)
  • Natural language
  • Software modeling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Step 1: Determine binding (MoSCoW)

A

MoSCoW prioritization method:
- Must have
- Should have
- Could have
- Won’t have

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

Step 2&3: Determine process and system activity

A

Define the core of the (functional) requirement
Clasify how the system acts within this core:
- Autonomously (“the system must find”)
- Via user interaction (the system shall provide a user with the ability to add”)
- By interfacing with another party/system (“the system could be able to estimate”)

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

Step 4: Determine on what a process is performed

A

Most processes are executed on something (an object)
Adding the object and additional details to the requirements:
- “the system must find the fastest route to the destination”
- “the system shall provide a user with the ability to add a destination”
- “the system could be able to estimate the arrival time”

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

Step 5: Determine when a process is execute

A

Functionalities are often execute under certain conditions
Adding conditions in the beginning:
(“as soon as” = temporal, “if” = logical, avoid “when” since it is unclear)
- “if a destination has been added the system must find the best route to that destination”
- “as soon as traffic data arrives the system could be able to estimate the arrival time”

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

What is a use case?

A

Description of how a system shall be used or should behave:
- Can involve multiple scenarios
- Makes functional requirements more concrete
- Must fulfill quality requirements and constraints

Combining models with a textual specification

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

Sample template for a use case:

A
  • Identifier: Unique identifier for the use case
  • Name: Unique name for the use case
  • Authors: Names of the authors of the use case
  • Priority: Importance of the use case
  • Summary: Brief description of the use case
  • Actors: List of all actors involved
  • Pre-conditions: List of conditions required to start execution
  • Post-conditions: List of states of the system after the main scenario
  • Result: Description of what is being produced
  • Main scenario: The primary scenario
  • Alternatie scenarios: List of triggers for alternatives cenarios or description of alternate scenarios (possible with other post-conditions)
  • Exception scenarios: List of triggers for alternatives scenarios or description of alternate scenarios
  • Requirements: Related requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Software models

A

Model = abstract representation of reality
This course: Unified Modeling Language (UML)

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

Properties of a software system

A
  • Structure (static representation)
  • Behaviour (dynamic representation)
  • Interaction (data / control flow)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is a class versus an object

A
  • A class is a blueprint: Defines the structure of any car in a system
  • An object is the concrete instance: Creates two concrete representations of a car
How well did you know this?
1
Not at all
2
3
4
5
Perfectly