Chapter 4, Requirements Elicitation
Chapter 4, Requirements Elicitation
Chapter 4, Requirements Elicitation
What is this?
Software lifecycle:
Set of activities and their relationships to each other to support the development of a software system
Analysis
Testing
Object Design
Implementation
Testing
Expressed in Terms Of
Structured By
Source Code
The development of a system is not just done by taking a snapshot of a scene (domain) Two questions need to be answered:
How can we identify the purpose of a system? Crucial is the definition of the system boundary: What is inside, what is outside the system?
These two questions are answered in the requirements process The requirements process consists of two activities:
Requirements Elicitation:
Definition of the system in terms understood by the customer (Problem Description) Technical specification of the system in terms understood by the developer (Problem Specification)
Requirements Analysis:
(Activity Diagram)
Requirements Analysis
analysis model: Model
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Requirements Elicitation
10
Both models focus on the requirements from the users view of the system. System specification uses natural language (derived from the problem statement) The analysis model uses formal or semi-formal notation (for example, a graphical language like UML) The starting point is the problem statement
11
Problem Statement
The problem statement is developed by the client as a description of the problem addressed by the system Other words for problem statement:
Statement of Work
12
Current situation: The Problem to be solved Description of one or more scenarios Requirements
Functional and Nonfunctional requirements Constraints (pseudo requirements)
Project Schedule
Major milestones that involve interaction with the client including deadline for delivery of the system
Target environment
The environment in which the delivered system has to perform a specified set of system tests
13
The response time when playing letter-chess is far too slow. I want to play Go, but cannot find players on my level.
A new function (business process) is introduced into the business Example: We can play highly interactive games with remote people
A new solution (technology enabler) has appeared Example: The internet allows the creation of virtual communities.
14
Many multi-player computer games now include support for virtual communities.
Players can receive news about game upgrades, new game levels, announce and organize matches, and compare scores.
Currently each game company develops such community support in each individual game.
Each company uses a different infrastructure, different concepts, and provides different levels of support.
15
Types of Requirements
Functional requirements:
Describe the interactions between the system and its environment independent from implementation Examples:
Nonfunctional requirements:
User visible aspects of the system not directly related to functional behavior. Examples:
The response time must be less than 1 second The ARENA server must be available 24 hours a day
The implementation language must be Java ARENA must be able to dynamically interface to existing games provided by other game developers.
17
System structure, implementation technology Development methodology Development environment Implementation language Reusability It is desirable that none of these above are constrained by the client. Fight for it!
18
Requirements Validation
Requirements validation is a critical step in the development process, usually after requirements engineering or requirements analysis. Also at delivery (client acceptance test).
19
Requirements Validation
Problem with requirements validation: Requirements change very fast during requirements elicitation. Tool support for managing requirements:
Store requirements in a shared repository Provide multi-user access Automatically create a system specification document from the repository Allow change management Provide traceability throughout the project lifecycle
20
Greenfield Engineering
Development starts from scratch, no prior system exists, the requirements are extracted from the end users and the client Triggered by user needs Example: Develop a game from scratch: Asteroids
Re-engineering
Re-design and/or re-implementation of an existing system using newer technology Triggered by technology enabler Example: Reengineering an existing game
Interface Engineering
Provide the services of an existing system in a new environment Triggered by technology enabler or new market needs Example: Interface to an existing game (Bumpers)
21
Scenarios
A narrative description of what people do and experience as they try to make use of computer systems and applications [M. Carrol, Scenario-based Design, Wiley, 1995] A concrete, focused, informal description of a single feature of the system used by a single actor.
Scenarios can have many different uses during the software lifecycle
Requirements Elicitation: As-is scenario, visionary scenario Client Acceptance Test: Evaluation scenario System Deployment: Training scenario.
22
Types of Scenarios
As-is scenario:
Used in describing a current situation. Usually used in re-engineering projects. The user describes the system.
Visionary scenario:
Used to describe a future system. Usually used in greenfield engineering and reengineering projects. Can often not be done by the user or developer alone
Evaluation scenario:
User tasks against which the system is to be evaluated.
Example: Four users (two novice, two experts) play in a TicTac Toe tournament in ARENA.
Training scenario:
Step by step instructions that guide a novice user through a system
Example: How to play Tic Tac Toe in the ARENA Game Framework.
23
Dont expect the client to be verbal if the system does not exist (greenfield engineering) Dont wait for information even if the system exists Engage in a dialectic approach (evolutionary, incremental engineering)
You help the client to formulate the requirements The client helps you to understand the requirements The requirements evolve while the scenarios are being developed
24
However, dont rely on questionnaires alone. Insist on task observation if the system already exists (interface engineering or reengineering)
Ask to speak to the end user, not just to the software contractor Expect resistance and try to overcome it
25
What needs to be done to report a Cat in a Tree incident? What do you need to do if a person reports Warehouse on Fire? Who is involved in reporting an incident? What does the system do, if no police cars are available? If the police car has an accident on the way to the cat in a tree incident? What do you need to do if the Cat in the Tree turns into a Grandma has fallen from the Ladder? Can the system cope with a simultaneous incident report Warehouse on Fire?
26
Bob, driving down main street in his patrol car notices smoke coming out of a warehouse. His partner, Alice, reports the emergency from her car. Alice enters the address of the building, a brief description of its location (i.e., north west corner), and an emergency level. In addition to a fire unit, she requests several paramedic units on the scene given that area appear to be relatively busy. She confirms her input and waits for an acknowledgment. John, the Dispatcher, is alerted to the emergency by a beep of his workstation. He reviews the information submitted by Alice and acknowledges the report. He allocates a fire unit and two paramedic units to the Incident site and sends their estimated arrival time (ETA) to Alice. Alice received the acknowledgment and the ETA.
27
Concrete scenario Describes a single instance of reporting a fire incident. Does not describe all possible situations in which a fire can be reported. Participating actors Bob, Alice and John
28
Find all the use cases in the scenario that specifies all possible instances of how to report a fire
Example: Report Emergency in the first paragraph of the scenario is a candidate for a use case
29
Use Cases
A use case is a flow of events in the system, including interaction with actors It is initiated by an actor Each use case has a name Each use case has a termination condition Graphical Notation: An oval with the name of the use case
ReportEmergency
Use Case Model: The set of all use cases specifying the complete functionality of the system
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30
FieldOf ficer
Dispatcher
OpenIncident
ReportEmergency
AllocateResources
31
Select a horizontal slice (i.e. many scenarios) to define the scope of the system.
Discuss the scope with the user
Use illustrative prototypes (mock-ups) as visual support Find out what the user does
Task observation (Good) Questionnaires (Bad)
32
Exceptions:
The FieldOfficer is notified immediately if the connection between her terminal and the central is lost. The Dispatcher is notified immediately if the connection between any logged in FieldOfficer and the central is lost.
33
The FieldOfficer activates the Report Emergency function of her terminal. FRIEND responds by presenting a form to the officer. The FieldOfficer fills the form, by selecting the emergency level, type, location, and brief description of the situation. The FieldOfficer also describes possible responses to the emergency situation. Once the form is completed, the FieldOfficer submits the form, at which point, the Dispatcher is notified. The Dispatcher reviews the submitted information and creates an Incident in the database by invoking the OpenIncident use case. The Dispatcher selects a response and acknowledges the emergency report. The FieldOfficer receives the acknowledgment and the selected response.
34
Actors:
Field Supervisor: This is the official at the emergency site.... Resource Allocator: The Resource Allocator is responsible for the commitment and decommitment of the Resources managed by the FRIEND system. ... Dispatcher: A Dispatcher enters, updates, and removes Emergency Incidents, Actions, and Requests in the system. The Dispatcher also closes Emergency Incidents. Field Officer: Reports accidents from the Field
35
Field Officer (Bob and Alice in the Scenario) Dispatcher (John in the Scenario) Resource Allocator Field Supervisor
Entry Condition
The Resource Allocator has selected an available resource. The resource is currently not allocated
Flow of Events
The Resource Allocator selects an Emergency Incident. The Resource is committed to the Emergency Incident.
Exit Condition
The use case terminates when the resource is committed. The selected Resource is now unavailable to any other Emergency Incidents or Resource Requests.
Special Requirements
The Field Supervisor is responsible for managing the Resources
36
Field Officer (Bob and Alice in the Scenario) Dispatcher (John in the Scenario)
37
A use case model consists of use cases and use case associations
A use case association is a relationship between use cases
Extends
A use case extends another use case
Generalization
38
Problem:
A function in the original problem statement is too complex to be solvable immediately
Solution:
Describe the function as the aggregation of a set of simpler functions. The associated use case is decomposed into smaller use cases
ManageIncident
<<include>>
CreateIncident
Bernd Bruegge & Allen H. Dutoit
HandleIncident
CloseIncident
39
Problem:
There are already existing functions. How can we reuse them?
Solution:
The include association from a use case A to a use case B indicates that an instance of the use case A performs all the behavior described in the use case B (A delegates to B)
Example:
The use case ViewMap describes behavior that can be used by the use case OpenIncident (ViewMap is factored out)
<<include>> OpenIncident Base Use Case ViewMap
<<include>> AllocateResources
Supplier Use Case
Note: The base case cannot exist alone. It is always called with the supplier use case
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40
Problem:
The functionality in the original problem statement needs to be extended.
Solution:
An extend association from a use case A to a use case B indicates that use case B is an extension of use case A.
Example:
The use case ReportEmergency is complete by itself , but can be extended by the use case Help for a specific scenario in which the user requires help
FieldOfficer f ReportEmergency
Help
<<extend>>
Note: The base use case can be executed without the use case extension in extend associations.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41
Problem: You have common behavior among use cases and want to factor this out. Solution: The generalization association among use cases factors out common behavior. The child use cases inherit the behavior and meaning of the parent use case and add or override some behavior. Example: Consider the use case ValidateUser, responsible for verifying the identity of the user. The customer might require two realizations: CheckPassword and CheckFingerprint
ValidateUser CheckFingerprint
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Level 2
Level 2
Level 3
Level 3
Level 3
Level 4
Level 4
Operations
Level 2
Level 2
Level 3
Level 3
Level 3
Level 4
Level 4
Operations
B
Participating Objects
44
Entry condition
This use case starts when
Flow of Events
Free form, informal natural language
Exit condition
This use cases terminates when
Exceptions
Describe what happens if things go wrong
Special Requirements
Nonfunctional Requirements, Constraints)
45
Summary
The requirements process consists of requirements elicitation and analysis. The requirements elicitation activity is different for:
Greenfield Engineering, Reengineering, Interface Engineering
Scenarios:
Great way to establish communication with client Different types of scenarios: As-Is, visionary, evaluation and training Use cases: Abstraction of scenarios
46