Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design

Similar documents
Requirements Analysis

Comp435 Object-Oriented Design. Requirements and Use Cases. Requirements Analysis. Outline. Requirements Analysis. Requirements change

Requirements Analysis. Overview

Requirements Analysis. Requirements Analysis is Hard

Requirements Analysis

Requirements Engineering

PART II Inception. Chapter 4 Inception is Not the Requirements Phase. development cycle. phase. iteration. inc. elaboration construction transition

Requirements analysis and system specification. Fall 2012

Software Development Methodologies. CSC 440: Software Engineering Slide #1

System Sequence Diagrams. CSC 440: Software Engineering Slide #1

Essentials of IBM Rational Requirements Composer, v3. Module 4: Creating a use-case model

CHAPTER 3 Use Cases. 3. Use Cases

CHAPTER 3 Use Cases. 3. Use Cases

System Sequence Diagrams

SYSTEM AND SOFTWARE DESIGN USING THE UNIFIED MODELING LANGUAGE (UML)

Use cases. Version 2.6 November 2015

Lecture 1: Processes, Requirements, and Use Cases

Requirements Use Cases

Announcements: HW #6 due in two weeks. Next week: Spring Break

An Introduction to Use Cases

status Homework 2 posted:

Conceptual model (Larman)

System Sequence Diagrams

Requirements Engineering

Requirements Engineering. Andreas Zeller Saarland University

Inception. Describe the vision and business case for this project. Determine if the enterprise should build or buy the necessary system.

Software Engineering (CSC 4350/6350) Rao Casturi

Use cases. Version October 2013

Object-Oriented Analysis and Design PART1: ANALYSIS

Prerequisites It is recommended that the participants have a working knowledge of traditional Business Analysis tasks and techniques.

02291: System Integration

Information Technology Audit & Cyber Security

The Systems Development Lifecycle

CS 350 COMPUTER/HUMAN INTERACTION

User Stories and Use Cases

Behavior Driven Development

Design-Informing Models

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

CSSE 374 Software Architecture and Design I

Requirements elicitation: Finding the Voice of the Customer

Conceptual Modeling. Conceptual Modeling. Class diagrams (POS Example) Modeling the Problem Domain

1. Introduction. URDAD for System Design. Table of Contents. Dr. Fritz Solms. Abstract. Use-Case Responsibility Driven Analysis and Design

Software Architecture and Engineering Requirements Elicitation Peter Müller

MSO Analysis & UML 2

Virtual money in vacation resort

Use cases. Version November 2016

Software Architecture and Engineering Requirements Elicitation Peter Müller

CDS LOGON SCREEN. ! Type your assigned logon (may be case sensitive) to the Cashier Deposit System (CDS).

Manage all process together of retail business may be a great headache of all time.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

The Use Case Technique: An Overview

Thomson Learning DOCUMENTING ACCOUNTING SYSTEMS LEARNING OBJECTIVES

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Principles of Software Construction: Objects, Design and Concurrency. Object-Oriented Analysis. toad

Software Engineering Fall 2014

Chapter 3 Prescriptive Process Models

Four threads 8 Aug 11

ACS 3907 E-Commerce. Instructor: Kerry Augustine January 24 th Bowen Hui, Beyond the Cube Consulting Services Ltd.

A Brief Tour of Responsibility- Driven Design in Rebecca Wirfs-Brock

OneOne Infinity Loyalty System

Product Requirements. Requirements. Get it Right ASAP. Why Requirements are Difficult. Levels of S/W Requirements. Types of S/W Requirements

1) Introduction to Information Systems

Babu Madhav Institute of Information Technology, UTU 2017

Product Requirements Documentation: Use Cases

Integrated Tour & Travel Online System (ITTOS) 2003, Sentra Solusi Informatika (

An Introduction to Use-Case Modeling

The analysis and design of a Smalltalk application.

Use case methodology (IEC 62559) International Electrotechnical Commission

Unified Process and Testing with EasyAccept. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 22, 2007

Lecture 3 Process Modeling I

NOTE: Close any security window that pops up (McAfee, MalwareBytes, etc.)

Creating Robust and Effective Claims Solutions with IBM Case Manager IBM Redbooks Solution Guide

OnCD. Analysis and design of an online CD sales and inventory system

Development Process and Analysis. LTOOD/OOAD - Verified Software Systems 1

UC Santa Barbara. CS189A - Capstone. Chandra Krintz Department of Computer Science UC Santa Barbara

Software Engineering I (02161)

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2018 EXAMINERS REPORT. Software Engineering 2

Certified Business Analysis Professional - Introduction

Business Events as a focal point of analysis

Example1: Courseware System Description

Product Requirements. Requirements. Get it Right ASAP. Why Requirements are Difficult. Types of S/W Requirements. Levels of S/W Requirements

Software Engineering Fall 2014

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Getting Started. Chapter 1

Agile Requirements with User Stories. Overview

Unified Process. Peter Dolog dolog [at] cs [dot] aau [dot] dk Information Systems March 3, 2008

UN/CEFACT Simple, Transparent and Effective Processes For Global Commerce

Requirements Engineering with Use Cases

THE BPMN GRAPHIC HANDBOOK

Foreword. Sales Associates Managers

Test Management: Part I. Software Testing: INF3121 / INF4121

Requirements Engineering Unit 4: Requirements modeling, specification & prioritization

In this version of the template, I write Sub-Variation as an attempt to make it more distinct from Extensions. Refer to the original paper.

Software Modeling & Analysis

Project Report Template (Sem 1)

BPMN Guide Quick Start. by Bizagi BPM

Software Engineering (CSC 4350/6350) Rao Casturi

CS 5704: Software Engineering

Use-Case Diagram. Contents. Introduction. 1. Introduction. User-Centred Design (UCD) Users Requirements

Requirements Engineering. Massimo Felici Room 1402, JCMB, KB

Transcription:

Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design Aron Trauring T++ Technical Skills Training Program CUNY Institute for Software Design & Development (CISDD) New York Software Industry Association (NYSIA) December 6th, 2004 Aron Trauring Zoteca

What Is Analysis and Design? Analysis emphasizes an investigation of the problem and requirements, rather than a solution Usually qualified requirements analysis, object analysis OOA emphasizes finding and describing the objects (concepts) in the problem domain Design emphasizes a conceptual solution that fulfills the requirements, rather than its implementation Usually qualified database design, object design Aron Trauring Zoteca 1

OOD emphasizes defining software objects and how they collaborate to fulfill the requirements OOP implementing the design Aron Trauring Zoteca 2

Why Analysis and Design? Goal: Do the right thing (analysis), and do the thing right (design) Success criteria: working code [do the thing right] which meets customer needs [do the thing right] Focus of OO Analysis and Design Aron Trauring Zoteca 3

Object-Oriented Analysis and Design Anarchistic Model - OO is about Those Who Know, Decide Desert Island Skill Ability to skillfully assign responsibilities to software components Doing it right determines flexibility, robustness, maintainability, and re-usability of software components Aron Trauring Zoteca 4

How Much Analysis and Design? All methods and techniques apply to all processes differ by how much not that there are stages Waterfall/SDLC Finish analysis, then design and only then implement predictive model Unified Process Iterate, although spend some time doing the right thing up front analysis - before doing the thing right Extreme Programming Working code is the way to ensure you will do the right thing minimal up-front A & D Aron Trauring Zoteca 5

Three Steps of Every Iteration 1. Domain Model the concepts, attributes, and associations that are considered noteworthy static and behavioral 2. Domain Layer software objects and their collaborations (protocols, interfaces) Static and Behavioral 3. Software Implementation Aron Trauring Zoteca 6

Simple Example Dice Game: player rolls two die. If the total is seven, they win; otherwise, they lose Requirements Use Case: Play a Dice Game: A player picks up and rolls the dice. If the dice face value total seven, they win; otherwise, they lose Domain Model visualization of concepts in the real-world domain through a set of diagrams Aron Trauring Zoteca 7

Conceptual Class Diagram Domain Layer inspired by the real world domain model Aron Trauring Zoteca 8

Protocol Class Diagram and Interaction Diagram Aron Trauring Zoteca 9

Software Implementation Inspired by domain layer Aron Trauring Zoteca 10

UML probably not Aron Trauring Zoteca 11

Class in the Three Perspectives Conceptual Die a real-world die Protocol Die software data type Implementation Die Python (Java,C++,C#) Class Case Study 1 Point of Sale System (POS) Aron Trauring Zoteca 12

Information System Architectural Layers User Interface thin layer, little responsibility Application Logic and Domain Objects heart of the system Technical Services usually application-independent and reusable across several systems Aron Trauring Zoteca 13

What are Use Cases? Not specifically OO but first step in every analysis Use cases are little structured stories about the system In XP they are short stories called User Stories In SDLC they are Dickens novels Describe a set of scenarios, that is interactions, between the user and a system, related to a specific user goal Aron Trauring Zoteca 14

Key Terms Actor something with behavior,: a person (identified by role), computer system, or organization Scenario specific sequence of actions and interactions between actors and the system under discussion (SUD) Use Case collection of related success and failure scenarios that describe actors using a system to support a goal Aron Trauring Zoteca 15

Informal Example 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... Alternate 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,... Aron Trauring Zoteca 16

Why Use Cases Story telling is oldest tool of human communication Customer can write or be involved in writing use cases Forms the basis of discussion between customer and design teams Emphasis on customer goals and perspective do the right thing Aron Trauring Zoteca 17

How Much Detail? Brief One paragraph. Early stages of analysis (all you do for XP) Casual Multiple paragraphs Fully Dressed architecturally significant and high-value use cases only (in UP) Only working code matters Aron Trauring Zoteca 18

Guidelines Root Goal focus on real goal not mechanism to achieve them log in vs identification and authentication Essential Style Writing keep the UI out; focus on intent Focus on user intentions and system responsibilities 1. Administrator identifies self 2. System authenticates identity Not concrete actions 2) 1. Administrator enters user id and password in dialog box(see Figure Aron Trauring Zoteca 19

2. System authenticates Administrator 3. System display the edit users window (see Figure 3) Write tersely Black-Box Use Cases focus on responsibilities not internal workings Take Actor and Actor-Goal perspective do the right thing Aron Trauring Zoteca 20

How to find Use Cases 1. Choose the SUD boundary 2. Identify the primary actors 3. Identify the goals for each primary actor 4. Define use cases that satisfy user goals Aron Trauring Zoteca 21

Useful Use Cases Boss Test (User Goal) What have you been doing all day? Logging In Bad Negotiating a Supplier Contract Good Size Test (Sub-function) not too small Enter an Item ID Bad Authenticate User Good Aron Trauring Zoteca 22

Use Case Section Use Case Format Comment Use Case Name Scope Level Primary Actor Stake-holders and Interests Preconditions Success Guarantee (Postconditions) Main Success Scenario Extensions Special Requirements Technology & Data Variations List Frequency of Occurrence Miscellaneous Verb-Noun structure System Under Design User Goal or Sub-function Calls on the SUD to deliver its services Who cares about this use case and what do they want? What must be true on start worth telling readers? What must be true on successful completion worth telling readers? A typical, unconditional happy path scenario of success Alternative scenarios of success or failure Related non-functional requirements Varying I/O methods and data formats Influences investigation, testing and timing of implementation Such as Open Issues Aron Trauring Zoteca 23

Scope User-Goal Level to fulfill the goals of the primary Actor Sub-function Level sub-steps required to support a User Goal (e.g. Pay by Credit) Sub-function may be shared by several regular use cases Aron Trauring Zoteca 24

Stake-holders What Should Be in Use Case? SUD is contract between stake-holders Use Case gives behavioral part of contract Captures all and only behaviors relating to stake-holder interests Aron Trauring Zoteca 25

Preconditions Not tested in use case Assumed to be true Implies successful completion of a scenario from another use case Aron Trauring Zoteca 26

Main Success Scenario Leave conditional and branching to extensions Typical success path that satisfies the interests of the stake-holders Capitalize Actors names Number each step Put repeat statement after steps to be repeated Aron Trauring Zoteca 27

Three Kinds of Steps 1. An interaction between actors (may be SUD) System presents receipt to Customer 2. A validation (usually by system) Cashier verifies... 3. A state change by the system System records sale Aron Trauring Zoteca 28

Extensions All the rest of the success and failure scenarios Numbering keys back to Main branch Main:... 3. Cashier enters item identifier... Extensions:... 3a. Invalid Identifier: [Identify Condition] 1. System signals error and rejects entry [Response/Handling]... Aron Trauring Zoteca 29

Write the condition as something that can be detected by system or actor Condition can arise in a range of steps At end of extension handling merge back with main scenario unless indicated otherwise Complex extensions may be included in separate use case (indicate branch by underlining name) Condition that can occur during any step is indicated by *a *a. At any time, system fails: Aron Trauring Zoteca 30

Special Requirements Non-functional requirements Language Internationalization Quality attribute (performance, reliability, usability) System must respond within 30 seconds Constraint Touch Screen on LCD: text must be visible from 1 meter Related to specific use case May be gathered together later Aron Trauring Zoteca 31

Technology and Data Variations List Technical variations on how things are done bar code reader vs. keyboard entry Variations in data schemes UPC or ISBN data formats Early constraints try to avoid if possible Aron Trauring Zoteca 32