Professional Documents
Culture Documents
Elicitation
Chapter 4,
Requirements
Software Lifecycle Activities
Implemented
Expressed in By
Structured By Realized By
Terms Of Verified
By
class...
class...
class... ?
class....?
Use Case Application Implementat
Domain SubSystems Source Test
Model ion Domain
Objects Code Cases
Objects
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2
Requirements Elicitation Activities
Requirement:
A feature the system must have
A constraint the system must satisfy
Identify
actors
scenarios
use cases
relationships among use cases
nonfunctional requirements
participating objects
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3
Requirements Elicitation Concepts
Functional requirements
Interaction between system & actors
Avoid specifying how the system works
Nonfunctional requirements
Examples include
Performance
Accuracy
Documentation
Pseudo requirements
Imposed by client
E.g., Cappello requires:
– Java implementation
– Runs in student lab
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4
Requirement Document Desiderata
Correct
The client agrees that it represents the reality
Complete
The client agrees that all relevant scenarios are described
Consistent
Unambiguous
There is only 1 way to interpret the specification
Realistic
All features can be implemented subject to all constraints
Verifiable
Requirements & constraints are testible
Traceable
For each system function there is some requirement[s]
For each requirement there is some system function[s]
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5
Identify Actors
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6
Identify Scenarios
Scenario
A description of what actors do as they use the system
For each scenario, there is a:
Use case
Acceptance test case
Questions for identifying scenarios:
What tasks to the actors want the system to perform?
What data does the actor need?
Who creates, modifies, removes that data?
Which external changes affect the system’s state?
How is the change communicated to the system? (what actor?)
Under what circumstances?
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7
Elements of a Scenario Description
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8
Identify Use Cases
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9
Elements of a Use Case Description
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10
Refine the Use case model
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12
Identify Initial Analysis Objects
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14
To Do List
Project definition
Complete a project description that the customer agrees to.
Research
Initial identification of actors & event flows
Document unresolved issues/ambiguities
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15