Chapter 4 Requirements Elicitation, Specification, and Management - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Chapter 4 Requirements Elicitation, Specification, and Management

Description:

He allocates a fire unit and two paramedic units to the Incident site and sends ... automated tool support to check for defects (spell check, grammar check) ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 29
Provided by: BerndB
Category:

less

Transcript and Presenter's Notes

Title: Chapter 4 Requirements Elicitation, Specification, and Management


1
Chapter 4 Requirements Elicitation,
Specification, and Management
2
Software Lifecycle Activities
Aka Architecture
Aka Detailed Design
Solution Space
Problem Space
Aka Construction
System Design
Object Design
Implemen- tation
Testing
Requirements Elicitation Specification
Requirements Analysis
Implemented By
Expressed in Terms Of
Structured By
Realized By
Verified By
?
?
SubSystems, Interfaces, Constraints
Application Domain Objects
Implementation Domain Objects
Use Case Model
Source Code
Test Cases
3
Requirements Elicitation and Specification
Activities
  • Identify, describe actors
  • Identify, describe scenarios
  • Identify, describe use cases
  • functional, non-functional requirements
  • Identify relationships among use cases
  • Validate, refine use cases

4
Requirements Elicitation, Specification, and
Analysis
  • Requirements Elicitation and Specification
    Definition of the system in terms understood by
    the customer
  • Determine and capture the purpose of a system
  • Definition of the system boundary (scope)
  • What is inside, what is outside?
  • Specification of the systems capabilities
  • functional and non-functional
  • may be captured in a variety of notations or
    approaches
  • e.g., semi-formal use cases, formal Z, VDM,
    Statechart specifications
  • Analysis Technical specification of the system
    in terms understood by the developer.

5
Requirements Elicitation
  • Challenging activity
  • Requires collaboration of people with different
    backgrounds
  • User with application domain knowledge
  • Developer with implementation domain knowledge
  • Bridging the gap between user and developer
  • Scenarios Example of the use of the system in
    terms of a series of interactions with between
    the user and the system
  • Use cases Abstraction that describes a class of
    scenarios

6
Types of Requirements
  • Functional requirements Describe the
    interactions between the system and its
    environment independent from implementation
  • The watch system must display the time based on
    its location
  • Nonfunctional requirements User visible aspects
    of the system not directly related to functional
    behavior.
  • The response time must be less than 1 second
  • The accuracy must be within a second
  • The watch must be available 24 hours a day except
    from 200am-201am and 300am-301am
  • Constraints (Pseudo requirements) Imposed by
    the client or the environment in which the system
    will operate
  • The implementation language must be COBOL.

7
What is usually not in the Requirements?
  • System structure, implementation technology
  • Development methodology
  • Development environment
  • Implementation language
  • Reusability

8
Requirements Validation and Quality Attributes
  • Validation - critical step in the development
    process
  • Question Are we building the right product?
  • Some Requirements Quality criteria
  • Correctness
  • The requirements represent the clients view.
  • Completeness
  • All possible scenarios through the system are
    described, including exceptional behavior by the
    user or the system
  • Consistency
  • There are functional or nonfunctional
    requirements that contradict each other
  • Clarity
  • There are no ambiguities in the requirements.

9
Requirements Validation Criteria (continued)
  • Realism
  • Requirements can be implemented and delivered
  • Traceability
  • Each system function can be traced to a
    corresponding set of functional requirements
  • Refer to the IEEE recommended practice for
    software requirements specifications for
    additional quality criteria
  • IEEE Std 830-1998 , 20 Oct. 1998

10
Types of Requirements Elicitation
  • Greenfield Engineering
  • Development starts from scratch, no prior system
    exists, the requirements are extracted from the
    end users, the client, applicable standards
  • Triggered by user needs
  • Re-engineering
  • Re-design and/or re-implementation of an existing
    system using newer technology
  • Triggered by technology enabler
  • Interface Engineering
  • Provide the services of an existing system in a
    new environment
  • Triggered by technology enabler or new market
    needs

11
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

12
Heuristics for finding Scenarios
  • Ask yourself and/or the client the following
    questions
  • What are the primary tasks that the system needs
    to perform?
  • What data will the actor create, store, change,
    remove or add in the system?
  • What external changes does the system need to
    know about?
  • What changes or events will the actor of the
    system need to be informed about?
  • What standards need to be complied with?

13
Why Scenarios and Use Cases?
  • Comprehensible by the user
  • Use cases model a system from the users point of
    view (functional requirements)
  • Define every possible event flow through the
    system
  • Description of externally visible interactions
    between objects
  • Use cases can form basis for whole development
    process (e.g., RUP)
  • User manual
  • Analysis model
  • System design and detailed design models
  • Implementation
  • System Test specification
  • Client acceptance test

14
Scenario Example Warehouse on Fire
  • 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 (428
    Main st.) , a brief description of its location
    (i.e., north west corner), and an emergency
    level, 2. In addition to a fire unit, she
    requests 2 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), 10 minutes,
    to Alice.
  • Alice received the acknowledgment and the ETA.

15
Observations about Warehouse on Fire Scenario
  • Concrete scenario
  • Describes a single instance of reporting a fire
    incident.
  • Does not describe all possible situations in
    which a fire can be reported.
  • Has specific values
  • Participating actors
  • Bob, Alice and John

16
After the scenarios are formulated
  • Find a use case 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
  • Describe this use case in more detail
  • Describe the entry condition
  • Describe the normal flow of events
  • Describe the exit condition
  • Describe alternate flow of events
  • Describe special requirements (constraints,
    nonfunctional requirements)

17
Example of steps in formulating a use case
  • 1. name the use case
  • Use case name ReportEmergency
  • should be a concise, verb phrase
  • Avoid vague verbs like process
  • 2. find the actors
  • Generalize the concrete names (Bob) to
    participating actors (Field officer)
  • Participating Actors
  • Field Officer (Bob and Alice in the Scenario)
  • Dispatcher (John in the Scenario)
  • 3. concentrate on the flow of events
  • Use natural language
  • Be specific, unambiguous, clear, correct, concise

18
Example of steps in formulating a use case
  • Formulate the Flow of Events (preliminary
    version)
  • The FieldOfficer activates the Report Emergency
    function on her terminal. FRIEND responds by
    presenting a form to the officer.
  • The FieldOfficer fills the form, by selecting the
    emergency level, type of emergency, 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. 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.

19
Example of steps in formulating a use case
  • Write down the exceptions
  • The FieldOfficer is notified immediately if the
    connection between her terminal and the central
    is lost.
  • These are captured as alternate flows in the use
    case
  • Identify and write down any special requirements
  • The FieldOfficers report is acknowledged within
    30 seconds

20
How to Specify a Use Case (Summary)
  • Name of Use Case
  • Actors
  • Description of actors involved in use case
  • Entry condition
  • Use a syntactic phrase such as This use case
    starts when
  • Normal Flow of Events
  • natural language
  • Exit condition
  • Star with This use cases terminates when
  • Alternate Flow of Events (Exceptions)
  • Describe what happens if things go wrong
  • Special Requirements
  • List nonfunctional requirements and constraints

21
Use Case Model for Incident Management - UML
Dispatcher
FieldOf
f
icer
OpenIncident
ReportEmergency
AllocateResources
22
Use Case Associations
  • Use case association relationship between use
    cases
  • Important types
  • Extends
  • Include
  • Generalization

23
ltltIncludegtgt Reuse of Existing Functionality
  • 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)
  • Note The base case cannot exist alone. It is
    always called with the supplier use case

ltltincludegtgt
OpenIncident
ViewMap
Base Use Case
ltltincludegtgt
Supplier Use Case
AllocateResources
24
ltExtendgtgt Association for Use Cases
  • Problem
  • The functionality in the original problem
    statement needs to be extended to describe
    additional, optional functionality.
  • 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
  • i.e., Help is a capability that is not
    currently offered in the system
  • Note In an extend assocation, the base use case
    can be executed without the use case extension

Help
ltltextendgtgt
FieldOfficer
ReportEmergency
25
Generalization association in use cases
  • Problem
  • You have generalization relationships among use
    cases and want to model this
  • Solution
  • 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

CheckPassword
Parent Case
Child Use Case
ValidateUser
CheckFingerprint
26
How do I find use cases?
  • Find out what the user needs to do
  • Task observation
  • Questionnaires
  • Interviews
  • Describe scenarios
  • Use mock-ups as visual support, story-boards
  • Generalize the scenarios into use cases

27
How do I manage use cases?
  • Options
  • Use case model can go under configuration
    management as one unit
  • Collections (i.e., subsets) of use cases can go
    under configuration management as one unit
  • Individual use cases can go under configuration
    management as a unit
  • Trade-offs
  • How likely are some capabilities going to change?
  • What metrics need to be collected?
  • How many use cases are there? (e.g., 10? 100?
    1000?)
  • Is there a straightforward way to partition them
    into subsets?
  • What does the tool allow you to do? (e.g., one
    Rose .mdl file?)

28
Use Cases Friend or Foe?
  • Informal notation
  • Once well written, they are straightforward to
    read
  • - Difficult to write concise, unambiguous use
    cases
  • English can be ambiguous
  • - Very little automated tool support to check
    for defects (spell check,
  • grammar check)
  • Manual inspections are time consuming, error
    prone
  • (Formal methods have fully or partially automated
    tool support to help identify problems)
  • External Partitioning of Requirements
  • List of use case names provides nice summary of
    the functional capabilities of the
  • system
  • Nice fit with scenario driven approaches good
    for requirements
  • elicitation
  • Blackbox description of the system
  • - Does not support non-functional requirements
    well
  • Non-functional requirements can permeate many
    functional capabilities
Write a Comment
User Comments (0)
About PowerShow.com