Use-cases. An approach to capturing and describing software requirements and basis for use-case driven development. Use-cases

Similar documents
PROCESS USE CASES: USE CASES IDENTIFICATION

Specification of the Verity Learning Companion and Self-Assessment Tool

Notes on The Sciences of the Artificial Adapted from a shorter document written for course (Deciding What to Design) 1

Generating Test Cases From Use Cases

Pragmatic Use Case Writing

Implementing a tool to Support KAOS-Beta Process Model Using EPF

A Context-Driven Use Case Creation Process for Specifying Automotive Driver Assistance Systems

Online Marking of Essay-type Assignments

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

Major Milestones, Team Activities, and Individual Deliverables

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

Introduction to CRC Cards

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

Team Dispersal. Some shaping ideas

M55205-Mastering Microsoft Project 2016

UML MODELLING OF DIGITAL FORENSIC PROCESS MODELS (DFPMs)

IBM Software Group. Mastering Requirements Management with Use Cases Module 6: Define the System

ECE-492 SENIOR ADVANCED DESIGN PROJECT

Course outline. Code: ICT310 Title: Systems Analysis and Design

Software Maintenance

Student User s Guide to the Project Integration Management Simulation. Based on the PMBOK Guide - 5 th edition

OCR LEVEL 3 CAMBRIDGE TECHNICAL

Knowledge based expert systems D H A N A N J A Y K A L B A N D E

Unit 7 Data analysis and design

Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

Johannes Ryser Martin Glinz. SCENT - A Method Employing Scenarios to Systematically Derive Test Cases for System Test.

Modeling user preferences and norms in context-aware systems

Ministry of Education, Republic of Palau Executive Summary

TRAITS OF GOOD WRITING

An Open Framework for Integrated Qualification Management Portals

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

Class Responsibility Assignment (CRA) for Use Case Specification to Sequence Diagrams (UC2SD)

Shockwheat. Statistics 1, Activity 1

Concept Acquisition Without Representation William Dylan Sabo

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Emergency Management Games and Test Case Utility:

Course Content Concepts

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

The Seven Habits of Effective Iterative Development

evans_pt01.qxd 7/30/2003 3:57 PM Page 1 Putting the Domain Model to Work

The Moodle and joule 2 Teacher Toolkit

Radius STEM Readiness TM

Unpacking a Standard: Making Dinner with Student Differences in Mind

Evaluation of Learning Management System software. Part II of LMS Evaluation

DegreeWorks Advisor Reference Guide

Litterature review of Soft Systems Methodology

GACE Computer Science Assessment Test at a Glance

Using Virtual Manipulatives to Support Teaching and Learning Mathematics

Visual CP Representation of Knowledge

IT4305: Rapid Software Development Part 2: Structured Question Paper

content First Introductory book to cover CAPM First to differentiate expected and required returns First to discuss the intrinsic value of stocks

An NFR Pattern Approach to Dealing with Non-Functional Requirements

The Ti-Mandi window: a time-management tool for managers

Document number: 2013/ Programs Committee 6/2014 (July) Agenda Item 42.0 Bachelor of Engineering with Honours in Software Engineering

LEGO MINDSTORMS Education EV3 Coding Activities

The Keele University Skills Portfolio Personal Tutor Guide

Global Convention on Coaching: Together Envisaging a Future for coaching

K5 Math Practice. Free Pilot Proposal Jan -Jun Boost Confidence Increase Scores Get Ahead. Studypad, Inc.

Architecting Interaction Styles

Intuitive Practitioner Course Overview

Development and Innovation in Curriculum Design in Landscape Planning: Students as Agents of Change

Conversation Starters: Using Spatial Context to Initiate Dialogue in First Person Perspective Games

Lisa Forster Student Functional Group - ITS. SI-net: Student Placements

Identifying Novice Difficulties in Object Oriented Design

ACTION LEARNING: AN INTRODUCTION AND SOME METHODS INTRODUCTION TO ACTION LEARNING

Functional requirements, non-functional requirements, and architecture should not be separated A position paper

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Houghton Mifflin Online Assessment System Walkthrough Guide

Introduction and Motivation

Nearing Completion of Prototype 1: Discovery

1 Use complex features of a word processing application to a given brief. 2 Create a complex document. 3 Collaborate on a complex document.

IMGD Technical Game Development I: Iterative Development Techniques. by Robert W. Lindeman

FLN Learning Helping your Child succeed

writing good objectives lesson plans writing plan objective. lesson. writings good. plan plan good lesson writing writing. plan plan objective

DYNAMIC ADAPTIVE HYPERMEDIA SYSTEMS FOR E-LEARNING

Cambridge NATIONALS. Creative imedia Level 1/2. UNIT R081 - Pre-Production Skills DELIVERY GUIDE

BHA 4053, Financial Management in Health Care Organizations Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes.

WE GAVE A LAWYER BASIC MATH SKILLS, AND YOU WON T BELIEVE WHAT HAPPENED NEXT

SOCIAL STUDIES GRADE 1. Clear Learning Targets Office of Teaching and Learning Curriculum Division FAMILIES NOW AND LONG AGO, NEAR AND FAR

A systems engineering laboratory in the context of the Bologna Process

Strategic Practice: Career Practitioner Case Study

EXAMPLES OF SPEAKING PERFORMANCES AT CEF LEVELS A2 TO C2. (Taken from Cambridge ESOL s Main Suite exams)

WSU Five-Year Program Review Self-Study Cover Page

INTERMEDIATE ALGEBRA PRODUCT GUIDE

Requirements-Gathering Collaborative Networks in Distributed Software Projects

Problem and Design Spaces during Object-Oriented Design: An Exploratory Study

Development of an IT Curriculum. Dr. Jochen Koubek Humboldt-Universität zu Berlin Technische Universität Berlin 2008

Administrative Services Manager Information Guide

Introducing New IT Project Management Practices - a Case Study

Planning a Webcast. Steps You Need to Master When

Edexcel GCSE. Statistics 1389 Paper 1H. June Mark Scheme. Statistics Edexcel GCSE

Cara Jo Miller. Lead Designer, Simple Energy Co-Founder, Girl Develop It Boulder

ADAPTIVE PLANNING. 1 Powered by POeT Solvers Limited

Vorlesung Mensch-Maschine-Interaktion

2 Any information on the upcoming science test?

DG 17: The changing nature and roles of mathematics textbooks: Form, use, access

MULTIDISCIPLINARY TEAM COMMUNICATION THROUGH VISUAL REPRESENTATIONS

Transcription:

Use-cases An approach to capturing and describing software requirements and basis for use-case driven development Use-cases very useful tool in requirements capture and description intuitive and easy to understand, so can discuss with client document behaviour of system from external point of view developed from scenarios in Objectory Ivar Jacobson 1986 (Objectory now replaced by Unified Process) can also be primary element in project planning and development and for systems validation (type of testing) widely adopted by OO community, called Stories in Agile world 1

Use-cases Definition It describes a single functional requirement from a user s point of view, and describes the expected interactions between the user and the software (scenarios). use case set of scenarios tied together by common user goal. Or a coherent unit of functionality scenario sequence of steps describing an interaction between a user and a system can consider a scenario as an instance of a use case Use-case misuse A use-case does not and should not describe the inner workings of the software, i.e. it should not be considered as a software design artifact 2

Use-case scenarios example Use case: borrow a copy of a book scenario 1: object interactions in successful borrowing scenario 2: object interactions in when the maximum number of copies on loan by member already reached scenario 3: object interactions in when member has a fine outstanding and pays fine scenario 4: object interactions in when borrower is not a valid library member Use-cases graphical notation: actor + use case accompanied by brief description of primary scenario in natural language and possibly also some alternative scenarios can also add preconditions and post conditions, which must be true before use case can start and after it completes no UML standard on this 6 3

Use-case template Martin Fowler states "There is no standard way to write the content of a use case, and different formats work well in different cases." He describes "a common style to use" as follows: Title: "goal the use case is trying to satisfy" Main Success Scenario: numbered list of steps where a step is: "a simple statement of the interaction between the actor and a system" Extensions: separately numbered lists, one per Extension where an extension is: "a condition that results in different interactions from the main success scenario". An extension from main step 3 is numbered 3a, etc. Use-case diagram example 4

How big should a use-case be? Consider online purchase example Use-cases how big? what about situation where there is a returning customer? another scenario or does it merit a separate use case? can use an <<extend>> use-case relationship amount of detail depends on risk in the use case only detail some use-cases during elaboration phase in UP possibly add detail to other use-cases during later iterations 5

Use-case diagram example Actors and use-cases Actor is a role users plays with respect to (wrt) the system many users can play same role, one user can play many roles actors useful for identifying use cases, first establish actors, then their associated use cases does not mean actor is human, e.g. can be external system such as accounting system actor can be initiator or that which get value from use case primary actor important issue is use cases, actors only a means 6

Actors and use-cases May have other uses configuring system for different types of users negotiate priorities among use cases who want what use case may have no clear link to actor e.g. send out bill is customer the actor? could consider Billing Department as actor - it gets value not all use cases follow from actors, e.g. embedded real time software response to external events may help identify use cases, event may cause system reaction user reaction Use-case Relationships includes - known as uses in earlier UML standards Use-case generalisation extends notation makes use of stereotyping of relationships <<include>> <<extend>> 7

include (or uses) chunk of behaviour that is same across different use cases e.g. valuation from earlier example Professor Select courses to teach Request roster <<include>> <<include>> Validate user Older UML stereotype Professor Select courses to teach Request roster <<uses>> <<uses>> Validate user 8

Use-case generalisation use case similar to another but does a bit more captures alternative scenario sort of extends the use case alternative functionality put in specialised use case that refers to the base use case can override base use case Capture Deal Limits Exceeded Extend stereotype similar to generalisation except with more rules base case must declare extension points extending use case may extend one or more extension points indicated by text on line joining use cases 9

Extend stereotype The extension conditions of each use case provide a framework for investigating all the little, niggling things that somehow take up 80% of the development time and budget. It provides a look ahead mechanism, so the stakeholders can spot issues that are likely to take a long time to get answers for. These issues should be planned for, so that the answers can be ready when the development team gets around to working on them. When to use stereotypes extend and generalisation allow splitting of a use case elaboration phase: use when use case getting too complicated construction phase: when use case can t be built in 1 iteration use include for avoiding repetition of requirements description use generalisation for casual description of variation on normal behaviour use extend for more controlled description of variation on normal behaviour 10

Business and System use-cases With focus on user system (software) interaction, analyst can miss situation whew change to business process would be more useful Can distinguish 2 categories of use-cases: system use case: interaction with software business use case: how business responds to event or customer or how to meet a user s goal Fowler recommends looking at business use cases first and finding system use cases for them later When to use use-cases They are an essential tool in requirements capture and in planning and controlling an iterative project - Fowler capturing use cases is a primary task during elaboration must have requirements captured before you can plan for them (like waterfall?) can collect all use-cases first and then model or explore some use cases and do conceptual modelling together helps uncover other use cases 11

USE cases & User Interface Each step of a well-written use case should present actor goals or intentions (the essence of functional requirements), and normally it should not contain any user interface details, e.g. naming of labels and buttons, UI operations etc., which is a bad practice and will unnecessarily complicate the use case writing and limit its implementation. Advantages Easy to understand and facilitate communication The list of goal names provides the shortest summary of what the system will offer (even than user stories) The main success scenario of each use case provides everyone involved with an agreement as to what the system will basically do and what it will not do. It provides the context for each specific line item requirement (e.g. fine-grained user stories), a context that is very hard to get anywhere else. It also provides a project planning skeleton, to be used to build initial priorities, estimates, team allocation and timing. 12

Advantages The use case extension scenario fragments provide answers to the many detailed, often tricky and ignored business questions: What are we supposed to do in this case? Well-written use cases also serves as a groundwork and guidelines for the design of test cases and user manuals of the system. There are obvious connections between the flow paths of a use case and its test cases. Deriving functional test cases from a use case through its scenarios. Drawbacks/Limitations of use-cases may miss requirements if too much emphasis is put on finding actors and their use cases use case analysis and conceptual modelling may help here use cases are not well suited to capturing non-interaction based requirements of a system such as algorithm or mathematical requirements or real time embedded requirements) not well suited to capturing non-functional requirements (such as platform, performance, timing, or safety-critical aspects). These are better specified declaratively elsewhere. no fully standard definitions of use cases 13

Drawbacks: Use cases and UI design Use case developers often find it difficult to determine the level of user interface (UI) dependency to incorporate in a use case. While use case theory suggests that UI not be reflected in use cases, it can be awkward to abstract out this aspect of design, as it makes the use cases difficult to visualise. Drawbacks/Limitations of use-cases danger of building system which is not object oriented. Objects not primary abuse by decomposition in rush to deliver the use case in current iteration, developer may lose sight of the OO architecture, thus could lead to functionality driven design end up with top-down, function-oriented, unmaintainable, inflexible system 14

Use-case abuse example Functional decomposition Drawbacks of use-cases abuse by GUI looks like nearly everything is done may be significant gap between effort to put GUI together and the behind the scenes code indications of false progress, makes negotiation difficult 15

Finally In Agile development, especially Extreme Programming, simpler user stories are preferred to use cases Craig Larman stresses that "use cases are not diagrams, they are text" References https://en.wikipedia.org/wiki/use_case http://alistair.cockburn.us/use+cases 16