Exercises on Use Cases



Similar documents
Software Specification and Architecture 2IW80

Electronic Data Solutions. E-Prescription System Software Requirement Specifications. Version 1.0

Reizen Atomic Talking Analog Alarm Clock Item # Instruction Manual

Crazy Alarm Clock L A K S H M I M E Y Y A P P A N J A M E S K A Y E W I L L I A M D I E H L C O N G C H E N

JIRA Workflows GUIDEBOOK

Fruit Machine. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code

SECURITY SYSTEM MANUAL

TeachingEnglish Lesson plans

TRAFFIC LIGHT: A PEDAGOGICAL EXPLORATION

Let s put together a Manual Processor

Reading and Understanding Java s API Documentation

Android Programming Family Fun Day using AppInventor

3. Add an Event: Alarm Alarm 0 a. Add an Action: Set Variable i. Applies to: Self ii. Variable: time_left iii. Value: +1 iv. Check the Relative box

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Phases of the Moon. Preliminaries:

Input / Output and I/O Strategies

Quick Start Guide Getting Started with Stocks

Inside Blackboard Collaborate for Moderators

PM CENTRAL SANDBOX GETTING STARTED GUIDE

Methods Used for Counting

Using Rational Rose to Create Object-Oriented Diagrams

Measuring Resistance Using Digital I/O

Advanced Software Test Design Techniques Use Cases

EXCEED IEP Goals Product Screen

VHDL Test Bench Tutorial

Dec06-04: Geek Binary Alarm Clock

BBC LEARNING ENGLISH 6 Minute Grammar Future perfect continuous

Sequence Diagram Tutorial. From: UML Distilled, Third Edition, Chapter 4 M. Fowler

COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012

Timex AM/FM Radio Alarm Clock User Manual

Use fireworks and Bonfire night as a stimulus for programming

HAL E-BANK MANUAL CROSS-BORDER PAYMENTS AND OPERATIONS WITH FOREIGN CURRENCIES. Hal E-Bank version: 16.X.X.01

How to Build a Simple Pac-Man Game

How to Modernize Your School s Bells, Overhead Paging, and Mass Notification in Times of Austerity. August 25, 2011

OVERVIEW OF THE PROJECT...

The web-based training (WBT) is a detailed training resource on Access Online functions. The WBT includes:

>

Object-Oriented Analysis and Design

CA60 Plus Software Version 3.1 User Manual May 2000

Whack-a-Witch. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code

CPS122 - OBJECT-ORIENTED SOFTWARE DEVELOPMENT. Team Project

Alarm Clock USER GUIDE

APP CLOCK INTRODUCTION

Daylite Synchronization Guide

Euler s Method and Functions

CHAPTER 14 Understanding an App s Architecture

Black Problems - Prime Factorization, Greatest Common Factor and Simplifying Fractions

netduino Getting Started

C4DI Arduino tutorial 4 Things beginning with the letter i

Maple T.A. Beginner's Guide for Instructors

Customer Portal User Manual Scott Logic Limited. All rights reserve Scott Logic Limited. All rights reserved

Lecture 12: More on Registers, Multiplexers, Decoders, Comparators and Wot- Nots

Reizen Atomic Talking Analog Alarm Clock Item # Instruction Manual

BBC Learning English Talk about English Business Language To Go Part 10 - Dealing with difficult clients

Digital Voice Services User Guide

Software Requirements Specification. Task Management System. for. Prepared by. Version 1.0. Group Name: Pink and Purple. Date:

Lab 2.1 Tracking Down the Bugs

DISTANCE LEARNING CENTRE FEES & CHARGES

C Programming Structure of a C18 Program

Cubase Pro 8.5 Cubase Artist 8.5

Assignment 2: Matchismo 2

Finite State Machine Design A Vending Machine

SAY IT BETTER IN ENGLISH

Audio Conferencing User Guide. May 31, 2016

Digital Radio/DAB+/FM RDS digital clock radio with dual alarm Operating instruction

FEATURE GUIDE AeroSphère / Small / Large / Base

Operating Guide. Alert 8D Version 8 Zone Controller Arrowhead Alarm Products Ltd

White Noise Help Guide for iphone, ipad, and Mac

Be sure to connect the USB cable from TonePort into your computer s USB port, and then proceed with the following steps

DOH 329 Registry Physician Initiated Application

Documentation and screenshots are based on Zoom version 2.5.XXXX

ACTIVITY BOOKLET. There s never been anyone quite like Ramona Quimby! art by Tracy Dockray

USER GUIDE Version 2.0

TAR25 audio recorder. User manual Version 1.03

MALL WORLD TIPS & TRICKS

Why go to College?

Margin Guide and Guide to Margin Close Out

Applying Use Cases to Microcontroller Code Development. Chris Gilbert Cypress Semiconductor

Page -1- Humans and Technology HaT TR96.03a ( )


Remote Access. Remote Access Start-up Guide. Non Cheshire East Council PC s/laptops. Page 0

PG-01instruction manual

Use Cases. Reference: Craig Larman, Applying UML and Patterns, Ch. 6

Release Notes. Asset Control and Contract Management Solution 6.1. March 30, 2005

Creating Animated Apps

How to Log in to LDRPS-Web v10 (L10)

Mac Client Installation Notes

Computer-System Architecture

Installation. Powerline 500 Model XAVB5221

Fundamentals of Probability

Backing up with Windows 7

RingCentral for Google. User Guide

Tecla for Android. Downloading and Installing the Tecla Access App. Activating and Selecting the Tecla Access Keyboard

Lab 11. Simulations. The Concept

Transcription:

Exercises on Use Cases Wishnu Prasetya (wishnu@cs.uu.nl) 2010/11 1. Many people have cats. Suppose you want to develop software enabling them to keep track the location of their cats; give a use case diagram modeling this software. In this example, just decide by yourself what you want from this software. Theory questions: (a) What is the main purpose of use case modeling? To capture the software s functional requirement. (b) Give few examples of non-functional requirements that could be sensical for this software. How do you position use-case modeling with respect to such requirements? E.g. that the software should be platform independent (can run on Windows, Mac, Unix, etc); and that it should be web-browserwe-based. Such requirements cannot be captured with a use case and should thus be documented complementary. Modeling question: should cat be an actor? Either way can. You can see cat as a (secondary) actor that provides its location to your software (e.g. through some small hardware attached to it). Or you can see it as a part of the system. track location Cat owner Cat Just a minimalistic one. 2. Work out at least one use case in your model above to the casual detail level. Work out your use-case further to the fully dressed level; while you do that, give an example of an alternate flow that would be sensical in your use-case. Should you just keep one model, or both models? Casual: Use case: track location. Primary actor: Owner 1

Secondary actors: Cat The owner requests the locations of her cat(s). The system shows her their last known locations. In order to know the locations, the system regularly checks the cats. Fully dressed: Use case: track location. Primary actor: Owner Secondary actors: Cat Pre-condition: - A1. The use-case is activated when the Owner requests it. A2. The system checks the last known locations of the owner s cats. A3. The system displays the location. To keep track the locations, the system continously polls the cats in the background: B1. loop forever: B2. for each cat, check the cat location. Update knowledge with this location. Alternate flow: A3b. If the last know location of a cat is timed has not changed since the last time the owner asked, and it is too old (> 3 hour), warn the owner. 3. Give situations (one for each) where it would be sensical to use these constructs to structure your use case above: include extend specialization (a) E.g. if the polling in the example above is quite involved, we can separate it to its own use case, and link it with include. (b) If the alternate flow in the example above becomes too large, we can separate it in its own use case, and link it with extend. (c) Suppose we also provide tracking of wild animals, which could be a bit different than tracking a house cat. E.g. we need to poll less frequently. A use case for this can be made as a specialization from that of tracking cat. 4. Do you know that it costs a lot of money to get a Certified Java Programmer certificate? It could cost you thousands of euros. Let s imagine we will develop a browser-based training system to help people prepare for such a certification exam. A user can request a quiz for the system. The system picks a set of questions from its database, and compose them together to make a quiz. It rates the user s answers, and gives hints if the user requests it. 2

In addition to users, we also have tutors who provide questions and hints. And also examinators who must certify questions to make sure they are not too trivial, and that they are sensical. Make a use case diagram to model this system. Work out some of your use cases. Since we don t have real stake holders here, you are free to fill in details you think is sensical for this example. Report result Make a quiz Add questions Tutor User {extend} Provide hint Certify questions Examinator We ll assume multiple choice quiz. Use case: Make quiz. Pre-condition: The system has at least 10 questions. 1. The use-case is activated when the user requests it. 2. The user specifies the difficulty level. 3. The system selects 10 questions, and offers them as a quiz to the user. 4. The system starts a timer. 5. For every question: 5a. The user selects an answer, or skip. [Extension point] 6. If the user is done with the quiz, or the timer runs out, the quiz is concluded, and [include use case Report result ]. Use case: Provide hint Pre-condition: The user requests for a hint. 1. The system provides a hint. The verbosity of the hint is determined by the difficulty level set previously by the user. 2. Return to to Make quiz main flow. 3

5. Suppose we want to develop software for an alarm clock. The clock shows the time of day. Using buttons, the user can set the hours and minutes fields individually, and choose between 12 and 24-hour display. It is possible to set one or two alarms. When an alarm fires, it will sound some noise. The user can turn it off, or choose to snooze. If the user does not respond at all, the alarm will turn off itself after 2 minutes. Snoozing means to turn off the sound, but the alarm will fire again after some minutes of delay. This snoozing time is pre-adjustable. Identify the top-level functional requirement for the clock, and model it with a use case diagram. Display time Set time Set display-mode User Set alarm Make sound Turn off alarm Snooze In this model make sound is made as a separate use case. It does not have to. I assume that snooze would be one of your use cases. Work it out to the fully dressed level. Use case: Snooze. Pre-condition: An alarm is firing. 1. The use-case is activated when the user hits the snooze button. 2. The alarm is turned off. 3. Wait for snooze time. 4. Include use case Make sound Use case: Make sound Primary actor: System Pre-condition: - 4

The use case starts when it is called. What it does is to just make some noisy sound. 5