Requirements Elicitation

Requirements (1)

What are requirements?

Engineering and human-oriented approaches

Cost of Delay in Fixing Requirements Errors

Requirements and system fitness

Requirements faults:
(What we’re trying to avoid)

Software Lifecycle Activities

Figure 4-1. Products of requirements elicitation and analysis (UML activity diagram).

System Specification vs Requirements Analysis Model

Types of Requirements

What is usually not in the Requirements?

Figure 4-2. A System is a collection of real world Phenomena. A Model is a collection of Concepts that represent the System’s Phenomena. Many Models can represent different aspects of the same System. An unambiguous Model corresponds to only one System.

Key concepts:
“is” vs. “ought”

Case Example:
Scheduling and Scheduler

The system and the world
(Jackson, 2000)

Example of information display problem frame

Example of controlled behavior problem frame

Requirements Elicitation Activities

Requirements Elicitation

Types of Requirements Elicitation

Key concepts:
Use cases and scenarios

Case Example:
Scheduling scenarios

Figure 4-12. Activities of JAD (UML activity diagram). The heart of JAD is the Session activity during which all stakeholders design and agree to a system specification. The activities prior to the Session maximizes its efficiency. The production of the Final document ensures that the decisions made during the Session are captured.

System Identification

Use cases

Actors

Figure 4-4. Actors of the FRIEND system. FieldOfficers not only have access to different functionality, they use different computers to access the system.

SetTime use case

Figure 4-8. Example of communication relationships among actors and use cases in FRIEND (UML use case diagram). The FieldOfficer initiates the ReportEmergency use case and the Dispatcher initiates the OpenIncident and AllocateResources use cases. FieldOfficers cannot directly open an incident or allocate resources on their own.

Figure 4-9. Example of use of extend relationship (UML use case diagram). ConnectionDown extends the ReportEmergency use case. The ReportEmergency use case becomes shorter and solely focused on emergency reporting.

Figure 4-10. Example of include relationships among use cases. ViewMap describes the flow of events for viewing a city map (e.g., scrolling, zooming, query by street name) and is used by both OpenIncident and AllocateResources use cases.

Scenarios

Types of Scenarios

Why Scenarios?

Scenario Exploration

Envisionment through scenarios

Case Example:
Spec. & scenario fragments

Issues with Scenarios

Instantiating Actors and Actions

How do we find scenarios?

Heuristics for finding Scenarios

Key concept:
Requirements refinement

Objectives & requirements

Pre-requirements traceability

Case Example:
Refining a fuzzy requirement

Key concept:
Inquiry cycles

Case Illustration:
Inquiry-driven refinements

Requirements Validation

Requirements Validation Criteria (continued)

Testable performance requirements

Testable usability requirements

Case example: Testable quality requirements

Summary