160 likes | 180 Vues
Use. Cases. Part 1. http://flic.kr/p/4kextB. Recall: Iterative development process. We are here. http://en.wikipedia.org/wiki/File:Iterative_development_model_V2.jpg. Recall: FURPS+ Classification of Requirements. F unctional : features, capabilities, security
E N D
Use Cases Part 1 http://flic.kr/p/4kextB
Recall: Iterative development process We are here http://en.wikipedia.org/wiki/File:Iterative_development_model_V2.jpg
Recall: FURPS+ Classification of Requirements • Functional: features, capabilities, security • Usability: human factors, help, documentation • Reliability: frequency of failure, recoverability, predictability • Performance: response times, throughput, accuracy, availability, resource usage • Supportability: adaptability, maintainability, internationalization, configurability
Recall: UP Requirements Artifacts • Use-case model: (we’ll discuss in a minute, but primarily functional req.) • Supplementary specification: non-functional req. and functional req. that don’t fit in UCs • Glossary: Terms and definitions (surprisingly important!) • Vision: Overview of requirements focused on the business case for the system • Business rules: Rules and laws from the problem domain that must be followed http://flic.kr/p/6meLX
Today, we’re going to learn about Use Cases (Ch. 6.0–6.10) But first, we must introduce a case study… http://flic.kr/p/anWc2v
Larman Case Study: NextGen POS System • POS = Point of Sale • Computerized application used (in part) to record sales and handle payments • Typically used in retail store • Includes hardware • E.g.: barcode scanner • Interfaces with various service applications • E.g.: tax calculator • Must be fault tolerant • E.g.: handle cash as backup http://flic.kr/p/4UtQzk http://flic.kr/p/4UtQzk
Use case: text stories of some actor using a system to meet goals Process Sale: A customer arrives at a checkout with items to purchase. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a receipt from the system and then leaves with the items.
Let’s push the UC definition a bit further… Actor: something with behavior, such as a person, computer, organization Scenario (or use case instance): specific sequence of actions and interactions between actors and the system Use case: collection of related success and failure scenarios that describe an actor using a system to support a goal
The first UC example I showed used a “brief” format; here’s one that uses a “casual” format • Handle Returns: • Main success scenario: A customer arrives at a checkout with items to return. The cashier uses the POS system to record each returned item… • Alternative scenarios: • If the customer paid by credit, and the reimbursement transaction to their credit account is rejected, inform the customer and pay them with cash. • If the item identifier is not found in the system, notify the cashier and suggest manual entry of the identifier code (perhaps it is corrupted). • If the system detects failure to communicate with the external accounting system…
3 kinds of actors • Primary actor: has user goals fulfilled through using the system • Identify to find user goals • Supporting actor: provides a service to the system • Identify to clarify external interfaces/protocols • Offstage actor: has an interest in the behavior of the UC, but is not directly involved (e.g., US Government) • Identify to ensure all necessary interests are identified
Yet another definition… Use-Case Model: set of all written use cases; it is a model of system’s functionality and environment The UC Model is just one type of requirements artifact
Why create use cases? Aha! • Easy for customers to understand/contribute • Help communication • Emphasize user goals and perspectives • Keep the requirements focused on the customer http://flic.kr/p/5dFxK2
Which UCs to write/refine first? • High value • I.e.: Represent system’s core functionality • High risk • Architecturally significant http://en.wikipedia.org/wiki/File:Iterative_development_model_V2.jpg
Activity: Creating use cases http://flic.kr/p/5dfuqL http://en.wikipedia.org/wiki/File:Barclayscyclehire.jpg
Basic system architectureEmphasis on system boundary Bicyclestations The System Mobile/webcustomer Phonecustomer Phone system Servicetech Phonesupport
Summary • Use cases • Actors and scenarios • Styles: • “Brief” • “Casual” • “Fully dressed” • The Use Case Model http://flic.kr/p/YSY3X