SE463
Software Requirements Specification & Analysis
Workflow Models
Readings:
Karl E Wiegers and Joy Beatty. Software Requirements, 3ed.
Microsoft Press, 2013.
Chapter 12: "A picture is worth 1024 words"
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Workflow
A workflow as a series of tasks that are organized to
accomplish some business use case
• Decomposition of use case into tasks
• Data needed to perform each task
• Data produced by each task
• Sequencing of tasks
Cannot make real
progress until all
parties agree on the
desired workflow
http://thedoghousediaries.com/2659
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Module Objectives
Elicit workflow of use cases
Express workflow as scenarios,
activity diagrams
Express information flows in
data-flow diagrams
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Scenarios
A scenario is one full execution path through a use case,
listing only observable actions
• interactions between the Work and external actors
Banking Scenario
1.
User
requests
to
withdraw
funds,
specifies
amount
2.
Bank
authenticates
user
3.
Bank
checks
that
the
account
has
sufficient
funds
4.
Bank
dispenses
cash
and
receipt
5.
Bank
records
the
transaction
6.
User
takes
cash
and
receipt
and
leaves
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Template
• Business Event Name:
• Business Use Case Name and Number:
• Trigger:
• Preconditions: Sometimes certain conditions must exist before
the use case is valid.
• Interested Stakeholders:
• Active Stakeholders:
• Normal Case Steps:
• Step 1 . . .
• Step 2 . . .
• Step 3 . . .
• Alternatives:
• Exceptions:
• Postcondition:
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Template
Business Event Name: Unformatted Query
Business Use Case Name and Number: Send Unformatted Queries
Trigger: User enters unformatted Query
Preconditions: User is an authenticated subscriber
Postcondition: User receives response to query
Interested Stakeholders: Users
Active Stakeholders: Users
Normal Case Steps:
User Rockit Internet SMS
1. Enters unformatted
query
2. Parses query and sends
request to the Internet
3. Sends response
to Rockit
4. Parses the response,
reformats it as an SMS
message, and sends the
message to SMS
5. Sends message
to the user
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
More Complex Actions
• If (conditional statement)
• For (iteration expression)
• While (conditional iteration)
• Go To UCn
Example:
User Bank
1. Requests to withdraw funds,
3. While the Bank checks that account has sufficient funds
specifies amount
3.1 Show advertisements to the customer
2. Authenticates user
3. While checking that user’s account has sufficient funds
Show advertisements to the customer
These constructs are not needed very often and may be a sign
that the scenario is becoming too detailed or too much like
pseudo-code.
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Variations
Alternative: a sub use case that achieves the main goal of a
use case through a different intended sequence of actions
• Number specifies where with in the main scenario the
alternative sub scenario starts
• Provides an alternate sequence of actions/interactions.
• Actor may have multiple possible actions at each step.
Exception: a sub use case that captures an unwanted but
possible deviation
• Number specifies where within the main scenario the
exceptional sub scenario starts
• Typically initiated by a fault within the system (the Work)
• Might not rejoin main flow;; may have different outcome
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Alternatives
User Rockit Internet SMS
1. Enters unformatted
query
2. Parses query and sends request to
the Internet
3. Sends response
to Rockit
4. Parses the response, reformats it as
an SMS message, and sends the
message to SMS
5. Sends message to
the user
Alternative 1 – Rockit has a cached response to query
2.1 Parses the query and determines it
has a cached response;; sends
response to SMS
Goto Step 5
Alternative 2 – User resubmits an old query from cache
1.1 Selects previously requested
query from cache
Goto Step 2
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Exceptions
User Rockit Internet SMS
1. Enters unformatted
query
2. Parses query and sends request to the
Internet
3. Sends response
to Rockit
4. Parses the response, reformats it as
an SMS message, and sends the
message to SMS
5. Sends message
to the user
Exception 2.1 – User sends query in an unsupported language
2.1 Fails to parse query;; constructs an
error message and sends the message to
SMS
Goto Step 5
Exception 3.1 – Internet fails to respond to query
4.1 Times out waiting for response from
Internet;; constructs an error message
and sends the message to SMS
Goto Step 5
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Use cases vs. Scenarios
A use case is a collection of success & failure scenarios
initiated by an external actor, to achieve a particular goal
SC1 SC4 SC6 SC2 SC3 SC5
S S F S S 1. User authenticates
S F S — 2. User requests withdraw
S S F — 3. Bank checks account balance
S S F 4. Bank dispenses cash and receipt
S S 5. Bank records the transaction
S S 6. User takes cash and receipt
S Success
F Failure
Success leg Failure leg
— Don’t care
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Activity Diagram
An Activity Diagram is a UML model for expressing the flow
of control from one activity to another.
actor Customer Bank actor
activity
Request Money Authenticate
guard condition
from Account User
end of activity
decision (branch) [failure]
[success]
Check that Account
has Sufficient Funds
[insufficient]
[sufficient]
synchronization bar
(fork)
Dispense Cash Record concurrent activities
and Receipt Transaction [when order doesn’t matter]
Collect Cash, synchronization bar
Receipt and Leave (join)
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
ReadYourStory
User ReadYourStory Printer
Select Book
Template
Upload child’s
Create Book Order
photo and info
Review book
preview
[decline] [order] Prompt for
Payment Info
Enter Payment Info Verify Payment Info
[rejected]
[approved]
Change Order Status Print Book
Send Book
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Dataflow Diagram (DFD)
A dataflow diagram (DFD) is a functional decomposition of the
work, and the data dependencies between functions.
actor process
data flow
on/off
air temp commands
Thermometer Thermostat Furnace
set
air temp data store
thermostat settings
For each step in the workflow
• What information is needed (and where does it come from)?
• What information is produced (and who needs it)?
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)
Rockit
Process
Internet
query Query query
User SMS Internet
response
Cached Responses
SMS Internet
response response
Process
Response
Copyright © Atlee, Berry, Day, Godfrey 1995-2018 U Waterloo SE463 (Spring 2018)