Humans and Technology Alistair Cockburn Page 1 ©Humans and Technology Use Cases in Theory & Practice Alistair Cockburn Humans and Technology Salt Lake.

Slides:



Advertisements
Similar presentations
Use-Cases.
Advertisements

Object-Oriented Analysis and Design Evolutionary Requirements.
CPSC 333: Foundations of Software EngineeringJ. Denzinger 2.2. Use Cases: Scenario based requirements modeling Recommended: Booch, Rumbaugh, Jacobson:
Process Redesign Stages Developing Business Vision Understanding the Existing Business Designing the New Business Installing the New Business.
Use Case & Use Case Diagram
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
9/10/2004Use Case Workshop 1 CSC480 Software Engineering Workshop 1 Requirements Modeling.
Introduzione ai casi d’uso  Adriano Comai 1999 Pag. 1 Use Cases: an Introduction  Adriano Comai 1999.
SWENET.org1 Applying Use Case Templates Paul Grabow - Baylor University Stephen Frezza – Gannon University.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
Fall 2009ACS-3913 Ron McFadyen1 Use Cases Used to capture functional requirements – there are other requirements categories such as usability, reliability,
From Class Diagrams to Databases. So far we have considered “objects” Objects have attributes Objects have operations Attributes are the things you record.
Use Cases & Requirements Analysis By: Mostafa Elbarbary.
Documenting Requirements using Use Case Diagrams
Requirements Elicitation Chapter 4. Establishing Requirements Two questions –What is the purpose of the system –What is inside and what is outside the.
Use Case Modeling. Kendall & Kendall© 2005 Pearson Prentice Hall18-2 Commonly Used UML Diagrams The most commonly used UML diagrams are: – Use case diagram,
The first step in getting what you want is to decide what you want.
Use Case Analysis From soft systems methodology to understanding the system functionality.
User Interface Theory & Design
CS499 Use Cases References From Alistair Cockburn Writing Effective Use Cases (Book) - Use Case.
Humans and Technology Alistair Cockburn Page 1 ©Humans and Technology Use Cases in Theory & Practice Alistair Cockburn Humans and Technology Salt Lake.
Systems Analysis and Design – Week 4. SAD – Week 4 Finish off last weeks workshop Finish off last weeks workshop Homework review Homework review Recap.
Object-Oriented Analysis - Instructor Notes
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Introduction to Sequence Diagrams
Use Cases Ivar Jacobson - guru at Rational Corp., defined UML.
ZEIT2301 Design of Information Systems Functional Design: Use Cases School of Engineering and Information Technology Dr Kathryn Merrick.
Developing Use Cases in a Group Carolyn L. Cukierman Face-to-Face Technology Conference March 27, 2000.
1 CSE 403 Software Requirements and Use Cases Reading: Writing Effective Use Cases A. Cockburn These lecture slides are copyright (C) Marty Stepp, 2007,
PROPOSING TO WRITE A PROPOSAL? BY PAPIA BAWA. What are Proposals? Long reports usually written in response to a specific request or in response to your.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
1. To start the process, Warehouse Stationery (WSL) will invite you to use The Warehouse Group Supplier Electronic Portal and will send you the link to.
© 2007 First Data Corporation. All Rights Reserved. RFP 101 – Requirements Management Dave Halbig December 6, 2007.
 Development is organized in a series of short, fixed-length mini-projects called iterations  Iterations are also incremental  Successive enlargement.
1 Object-Oriented Modeling Using UML CS 3331 Section 2.4 Modeling Requirements with Use Cases.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
Behavior Modeling (based on Alistair Cockburn book) PA116 – L11 (c) Zdenko Staníček, Sept 2010.
Adv. Use cases Actor generalization – general and special actors Use case generalization – general and special use cases Include and extend relationships.
Unified Modeling Language User Guide Section 4 - Basic Behavioral Modeling Chapter 16 - Use Cases Chapter 17 - Use Case Diagrams.
Requirements specification Why is this the first major stage of software development? –Need to understand what customer wants first Goal of requirements.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
Scenario A scenario is a sequence of steps describing an interaction between a user and a system. Use case is a set of scenarios tied together by a common.
CMSC 345 Use Cases. u Describes the system’s behavior under various conditions as the system responds to a request from one of the stakeholders, called.
Sept Ron McFadyen1 Use Cases Introduced by Ivar Jacobson in 1986 literal translation from Swedish ”usage case” Used to capture and describe.
1 What is the Software Life Cycle? The stages of developing a software application Requirements Analysis High-level Design Plan Low-level Design Implementation.
22 August, 2007Information System Design IT60105, Autumn 2007 Information System Design IT60105 Lecture 8 Use Case Diagrams.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Writing Use Cases: Requirements in Context.
Chapter 6: Structuring Requirements: Use Case Description and Diagrams Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Requirements capture: Using UML Use Cases David Millard and Yvonne Howard {dem,
Jan Ron McFadyen1 Use Cases Used to capture functional requirements – there are other requirements categories such as usability, reliability,
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Writing Effective Use Cases
Using Use Case Diagrams
Use Cases in Theory & Practice
Use Cases Discuss the what and how of use cases: Basics Benefits
UML Use Case Diagrams.
Customer Contract Management Scenario Overview
Concepts, Specifications, and Diagrams
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Order-to-Cash (Project-Based Services) Scenario Overview
Customer Contract Management Scenario Overview
Using Use Case Diagrams
Order-to-Cash (Project-Based Services) Scenario Overview
Object-Oriented Software Engineering
Use cases Dr. X.
Presentation transcript:

Humans and Technology Alistair Cockburn Page 1 ©Humans and Technology Use Cases in Theory & Practice Alistair Cockburn Humans and Technology Salt Lake City, UT

Humans and Technology Alistair Cockburn Page 2 ©Humans and Technology Use cases address “how to make functional requirements readable, reviewable.” 1. Use cases hold functional requirements in an easy-to-read, easy-to-track, text format. 2. A use case collects how a goal succeeds / fails; a scenario shows one specific condition; scenarios & use cases nest. 3. Use cases show only the Functional req’ts. 4. They make a framework for non-functional requirements & project details. 5. Design is not done only in use case increments.

Humans and Technology Alistair Cockburn Page 3 ©Humans and Technology The IT industry now loves use cases, but... how do you write large volumes of them? Common agreement that use cases are useful. Adopted by every OO methodology Repeated commendation from developers, users But what are they really? How do you structure 180 of them? what is their format? level of detail? Jacobson invented “uses” and “extends” relations: when do you use each, how do you type it in?

Humans and Technology Alistair Cockburn Page 4 ©Humans and Technology Many meanings of “Use Case” are around. This model has both theory & practice. A workshop of 14 leading OO consultants had 14 definitions of “use case” Value: user story / requirements Structure: none / semi-formal / formal Content: contradictory / consistent / formal Scenario =? Use case:same / different Common agreement:no standard form valuable

Humans and Technology Alistair Cockburn Page 5 ©Humans and Technology The basic model of use cases is that Actors interact to achieve their goals Primary Actor person or system with goal for s.u.d. System under design could be any system Secondary Actor other system against which s.u.d. has a goal Responsibility - Goal 1 - Goal 2... action 1. : - backup goal for Goal 2 Responsibility - Goal 1...action 1 Responsibility (Interaction 1) (Interaction 2)

Humans and Technology Alistair Cockburn Page 6 ©Humans and Technology Examing the Goals the system supports makes good functional requirements. “Place an order.” “Get money from my bank account.” “Get a quote.” “Find the most attractive alternative.” “Set up an advertising program.” Goals summarize system function in understandable, verifiable terms of use.

Humans and Technology Alistair Cockburn Page 7 ©Humans and Technology Users, executives and developers appreciate seeing requirements in the form of goals. Users: “We can understand what these mean” “You mean we are going to have to...?” Executives: “You left out one thing here...” Developers: “These are not just a pile of paragraphs!”

Humans and Technology Alistair Cockburn Page 8 ©Humans and Technology Structured narrative keeps the context visible, the value to the user clear. Compare just paragraphs: “The order entry system has an interface to system EBMS and to a terminal. It computes and displays the sum of the order items’ cost....” With structured narrative: “The orderer (EBMS or an entry person) identifies the name of the customer & the items on the order. The system displays the cost of the total order. If the items are in stock and the client has sufficient credit,...” When? How?

Humans and Technology Alistair Cockburn Page 9 ©Humans and Technology The use case pulls goal & scenarios together, Each scenario says how 1 condition unfolds. The use case name is the goal statement: “ Order product from catalog” Scenario (1): Everything works out well... Scenario (2): Insufficient credit... Scenario (3): Product out of stock... Use case is goal statement plus the scenarios. (Note the grammar: active verb first)

Humans and Technology Alistair Cockburn Page 10 ©Humans and Technology The collected scenarios are like stripes on trousers, with success and failure legs. Goal: “Place order” sc1 sc2sc6sc7... S sc3 (Success scenarios)(Failure sc.) S S F S F S S F F F F Establish... credit... stock sc4sc5 Subgoal:

Humans and Technology Alistair Cockburn Page 11 ©Humans and Technology How to do it: (1). Identify the actors and their goals. What computers, subsystems and people will drive our system? An “actor” is anything with behavior. What does each actor need our system to do? Each need shows up as a trigger to our system. Result: a list of use cases, a sketch of the system. Short, fairly complete list of usable system function.

Humans and Technology Alistair Cockburn Page 12 ©Humans and Technology How to do it: For each use case... (2). Write the simple case: goal delivers. The main success scenario, the happy day case. Easiest to read and understand. Everything else is a complication on this. Capture each actor’s intent and responsibility, from trigger to goal delivery. Say what information passes between them. Number each line. Result: readable description of system’s function.

Humans and Technology Alistair Cockburn Page 13 ©Humans and Technology How to do it: (3). Write failure conditions as extensions. Usually, each step can fail. Note the failure condition separately, after the main success scenario. Result: list of alternate scenarios.

Humans and Technology Alistair Cockburn Page 14 ©Humans and Technology How to do it: For each failure condition, (4). Follow the failure till it ends or rejoins. Recoverable extensions rejoin main course. Non-recoverable extensions fail directly. Each scenario goes from trigger to completion. “Extensions” are merely a writing shorthand. Can write “if” statements. Can write each scenario from beginning to end. Result: Complete use case

Humans and Technology Alistair Cockburn Page 15 ©Humans and Technology How to do it: (5). Note the deferred variations. Some extensions are too low-level to cover “here”. e.g. “Reimburse customer” Reimburse by cash, check, EFT, or purchase credit? Deferred variations note cases that must be handled eventually, by lower-level use cases. Useful for tracking requirements at high level. Result: Feed-forward information, rolled up into an easy-to-track format.

Humans and Technology Alistair Cockburn Page 16 ©Humans and Technology Review: Make scenarios run from trigger event to goal completion or abandonment. UC 4: “Place an order” Trigger: the request (phone call, EDI,...). End: order started or canceled. Scenario Scenario Scenario all ok: Insufficient $: No product: Start order. Refuse order Issue raincheck and forget. and forget. (Use case in “decision-table” format)

Humans and Technology Alistair Cockburn Page 17 ©Humans and Technology The value of failure scenarios is detecting unusual situations, completeness “What if their credit is too low?” “What if they run over the extended credit limit?” “What if we cannot deliver the quantity?” “What if data is corrupt in the database?” (These are commonly overlooked situations)

Humans and Technology Alistair Cockburn Page 18 ©Humans and Technology Both recoverable and non-recoverable failures are part of requirements. Ideal situation (s1): Good credit, items in stock -> accept order. Recoverable situation (s2, s3): Low credit -> valued customer? -> accept. Low stock -> reduce quantity? -> accept. Unrecoverable situations (s4, s5): Not a valued customer -> decline order Out of stock ->decline order

Humans and Technology Alistair Cockburn Page 19 ©Humans and Technology Write the recoverable and failure scenarios as “extensions” to the ideal one. UC 4: “Place an order” “1. Identify the customer, each item and quantity. 2. System accepts and queues the order.” Extensions: “1a. Low credit: Customer is ‘Preferred’...” “1b. Low credit & not Preferred customer:...” “2a. Low on stock: Customer accepts reduced...”

Humans and Technology Alistair Cockburn Page 20 ©Humans and Technology A scenario refers to lower-level goals: subordinate use cases or common functions. UC 4: “Place an Order” 1. Identify customer (UC 41) UC 41: “Identify Customer” 1. Operator enters name. 2. System finds near matches. Extensions: 2a. No match found:... Note the active verbs!

Humans and Technology Alistair Cockburn Page 21 ©Humans and Technology The outer use case only cares if the inner one succeeds, avoiding proliferation. UC 4: “Place an Order” 1. Identify customer <- (assumes success) Extensions: 1a. Customer not found: <-(does not care why it failed, only if it is recoverable)

Humans and Technology Alistair Cockburn Page 22 ©Humans and Technology Each scenario step is a sub-goal, hiding a nested use case (striped trousers image). Goal: “Place order” s1 s2s6s7... S s3 (Success scenarios)(Failure sc.) S S F S F..?S S F F F F Establish... credit... stock s4s5 Subgoal:

Humans and Technology Alistair Cockburn Page 23 ©Humans and Technology Use cases nest by (level, scope, detail). Which should you write in? Level: Why do we want this goal? enter $ amount, to get $, to buy lunch (“subfunction” vs. “task” vs. “strategic” goal) Scope: Which system boundary do we mean? The panel is part of the ATM, is part of the bank. (“internal” vs. “system” vs. “organization/corporation”) Detail: Do we describe intent, or action detail? hit number buttons to enter $ amount (“dialog description” vs. “semantic / intent”)

Humans and Technology Alistair Cockburn Page 24 ©Humans and Technology Systems are recursive in nature, from enterprise down to program modules. company computer system other dept. other company other System Our Sys. subsystem

Humans and Technology Alistair Cockburn Page 25 ©Humans and Technology “Trade money for goods.” Capture strategic & task goals; system & corporate scope; capture intent (semantics). (strategic, corp., semantic) Program subsystem (task, system, semantic) cust. “Enter order” (task, internal, semantics) “order (p1, p2)” corp. Program subsystem (task, system, dialog) “Go to next entry field”

Humans and Technology Alistair Cockburn Page 26 ©Humans and Technology Strategic use cases, tasks, and subfunctions link together as a graph. Sailboat image: User tasks are at sea level. advertiseorderinvoice set up promotio n referenc e promotio n monitor promotio n place order create invoice send invoice identify promotion identify customer register user identify product project goal Strategic Goals Task Goals Subfunctions

Humans and Technology Alistair Cockburn Page 27 ©Humans and Technology Mid-point review: “Use cases” collect functional requirements by system goals. 1. Use cases hold functional requirements in an easy-to-read, easy-to-track, text format. 2. A use case collects how 1 goal succeeds or fails; a scenario shows one specific condition; scenarios / use cases nest inside each other. 3. Use cases show only the Functional req’ts. 4. They make a framework for non-functional requirements & project details. 5. Design is not done only in use case increments.

Humans and Technology Alistair Cockburn Page 28 ©Humans and Technology Goals make a good structure on which to hang requirements & project details. Some requirements are not in the use cases: Performance, delivery time window. Interface and business rule usage Project planning capitalizes on goal structure: (Useable) Releases. Priorities, schedule, staffing. Growth of the somponent base.

Humans and Technology Alistair Cockburn Page 29 ©Humans and Technology Unresolved scheduling problem: system features slice and cross use cases Example: 1. Place an order - using standard pricing. 2. Place an order - using Preferred pricing. 3. Place an order - do not check credit limit. With full use case / feature -> use case explosion. Use case for many features -> scheduling difficulty. ( Still looking for a way to avoid use case duplication. )

Humans and Technology Alistair Cockburn Page 30 ©Humans and Technology Use cases do not show interface requirements. Collect them by use case. Use case FormOut set up promotion on-lineproducts, dates In reference promotion on-line enter an order on-line create an invoice database send an invoice tape promotion # customer, products,... order number invoice # new promotion promotion value new order new invoice paper or EDI

Humans and Technology Alistair Cockburn Page 31 ©Humans and Technology Use cases do not capture performance requirements. Connect them to use cases. Use case Frequency... set up promotion 10 / mointeractive Performance reference promotion 500 / day interactive enter an order 80 / day 3 seconds create an invoice 80 / dy sub-second send an invoice 1600/mo 420/hr (10 sec.)

Humans and Technology Alistair Cockburn Page 32 ©Humans and Technology Use cases do not collect formulae, state, cardinality. Capture them separately.... in any form available (“just a tool problem”) Examples: 1. Order sum = order item costs * 1.06 tax 2. Promotions may not run longer than 6 months. 3. Customers only become Preferred after an initial 6 month period. 4. A customer has one and only one sales contact. 5. An order item may use many promotions.

Humans and Technology Alistair Cockburn Page 33 ©Humans and Technology Need a list of actual clients of each use case, for use in packaging and training. Use case Users set up promotion reference promotion enter an order create an invoice send an invoice Marketing managers Managers, order clerks, other subsystems Managers, invoicing subsystem

Humans and Technology Alistair Cockburn Page 34 ©Humans and Technology Project management: Schedule releases by clusters of use cases. Release 1: (#1&#2) Set up & reference promotion (#4) Enter order Release 2: (#5) Create invoice (#3) Monitor promotion Release 3: (#6) Send invoice

Humans and Technology Alistair Cockburn Page 35 ©Humans and Technology Use cases can be managed in text, in Lotus Notes, or in “use case” OO database. Group 1: Tried Word / Wordperfect (unsatisfactory) Hard to share, hard to modify format. Group 2: Used Lotus Notes (good) Excellent for sharing, evolving format, data. Contents slowly became inconsistent. Group 2 converting to Intelligent Software Factory Has places for performance, etc. (like L.Notes) OODB with semantic model, consistency, etc.

Humans and Technology Alistair Cockburn Page 36 ©Humans and Technology Now for Design: Scenarios provide the basis for design with responsibilities. Responsibility-based design is based on role- playing a walkthrough of a scenario. Multiple scenarios provide the basis for asserting that the design delivers the required function. Use of failure scenarios make the design complete & robust.

Humans and Technology Alistair Cockburn Page 37 ©Humans and Technology Designers can use the scenarios directly to design the system. Scenarios What if...? “Knows how to...”

Humans and Technology Alistair Cockburn Page 38 ©Humans and Technology Robust design requires examining use cases out of schedule sequence. A new use case may add to existing classes. -> Harder to schedule class design milestones. -> The object model is never complete, only “complete with respect to these use cases.” New use cases may change optimal design -> Use all use cases or do incremental design? Just make sure someone is responsible for delivering the total function.

Humans and Technology Alistair Cockburn Page 39 ©Humans and Technology The model: an interaction is a sequence or set of possible sequences of interactions. Actor 1Actor 2 GoalResponsibility Interaction Set of sequences Sequence of Interactions Single Message ConditionResult

Humans and Technology Alistair Cockburn Page 40 ©Humans and Technology An actor’s action triggers an interaction, calling upon another actors responsibility. Actor Behavior Interaction Internal External System in Design Subsystem Person Group Object System Responsibility Goal Action triggers calls upon Set of sequences Sequence of Interactions Single Message ConditionResult

Humans and Technology Alistair Cockburn Page 41 ©Humans and Technology An actor has goals; goals name use cases; a use case has scenarios naming sub-use cases. Actor GoalUse case Scenario conditions oucome has names contains calls out

Humans and Technology Alistair Cockburn Page 42 ©Humans and Technology Summary of key points. 1. Use cases hold functional requirements in an easy-to-read, easy-to-track, text format. 2. A use case collects how 1 goal succeeds or fails; a scenario shows one specific condition; scenarios / use cases nest inside each other. 3. Use cases show only the Functional req’ts. 4. They make a framework for non-functional requirements & project details. 5. Design is not done only in use case increments.