object-oriented analysis/design and use cases object...

33
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

Upload: others

Post on 16-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

Object-Oriented Analysis/Design and UseCases

Object Oriented Analysis and Design

Aron TrauringT++ Technical Skills Training Program

CUNY Institute for Software Design & Development (CISDD)New York Software Industry Association (NYSIA)

December 6th, 2004

Aron Trauring — Zoteca

Page 2: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

What Is Analysis and Design?

• Analysis emphasizes an investigation of the problem and requirements, ratherthan a solution

• Usually qualified — requirements analysis, object analysis

• OOA emphasizes finding and describing the objects (concepts) in the problemdomain

• Design emphasizes a conceptual solution that fulfills the requirements, ratherthan its implementation

• Usually qualified — database design, object design

Aron Trauring — Zoteca 1

Page 3: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

• OOD emphasizes defining software objects and how they collaborate to fulfillthe requirements

• OOP — implementing the design

Aron Trauring — Zoteca 2

Page 4: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 5: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Object-Oriented Analysis and Design

• Anarchistic Model —- OO is about “Those Who Know, Decide”

• “Desert Island” Skill — Ability to skillfully assign responsibilities to softwarecomponents

• Doing it right determines flexibility, robustness, maintainability, and re-usabilityof software components

Aron Trauring — Zoteca 4

Page 6: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

How Much Analysis and Design?

• All methods and techniques apply to all processes — differ by how much notthat 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 theright thing — minimal up-front A & D

Aron Trauring — Zoteca 5

Page 7: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Three Steps of Every Iteration

1. Domain Model — the concepts, attributes, and associations that are considerednoteworthy — static and behavioral

2. Domain Layer — software objects and their collaborations (protocols, inter-faces) — Static and Behavioral

3. Software Implementation

Aron Trauring — Zoteca 6

Page 8: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Simple Example

• Dice Game: player rolls two die. If the total is seven, they win; otherwise, theylose

• Requirements — Use Case:

Play a Dice Game: A player picks up and rolls the dice. If the diceface value total seven, they win; otherwise, they lose

• Domain Model — visualization of concepts in the real-world domain througha set of diagrams

Aron Trauring — Zoteca 7

Page 9: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Conceptual Class Diagram

• Domain Layer — “inspired by” the real world domain model

Aron Trauring — Zoteca 8

Page 10: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Protocol Class Diagram and Interaction Diagram

Aron Trauring — Zoteca 9

Page 11: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

• Software Implementation — ”Inspired by” domain layer

Aron Trauring — Zoteca 10

Page 12: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

• UML — probably not

Aron Trauring — Zoteca 11

Page 13: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 14: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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 acrossseveral systems

Aron Trauring — Zoteca 13

Page 15: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 16: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Key Terms

• Actor — something with behavior,: a person (identified by role), computersystem, or organization

• Scenario — specific sequence of actions and interactions between actors andthe system under discussion (SUD)

• Use Case — collection of related success and failure scenarios that describeactors using a system to support a goal

Aron Trauring — Zoteca 15

Page 17: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Informal Example

Handle ReturnsMain 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 withcash.

If the item identifier is not found in the system, notify the Cashier andsuggest manual entry of the identifier code (perhaps it is corrupted).

If the system detects failure to communicate with the external accountingsystem, ...

Aron Trauring — Zoteca 16

Page 18: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 19: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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 (inUP)

• Only working code matters

Aron Trauring — Zoteca 18

Page 20: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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 self2. System authenticates identity

Not concrete actions

1. Administrator enters user id and password in dialog box(see Figure2)

Aron Trauring — Zoteca 19

Page 21: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

2. System authenticates Administrator3. 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

Page 22: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 23: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 24: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Use Case Format

Use Case Section Comment

Use Case Name Verb-Noun structure

Scope System Under Design

Level “User Goal” or “Sub-function”

Primary Actor Calls on the SUD to deliver its services

Stake-holders and Interests Who cares about this use case and what do they want?

Preconditions What must be true on start worth telling readers?

Success Guarantee (Postconditions) What must be true on successful completion worth telling readers?

Main Success Scenario A typical, unconditional “happy path” scenario of success

Extensions Alternative scenarios of success or failure

Special Requirements Related non-functional requirements

Technology & Data Variations List Varying I/O methods and data formats

Frequency of Occurrence Influences investigation, testing and timing of implementation

Miscellaneous Such as Open Issues

Aron Trauring — Zoteca 23

Page 25: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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 byCredit)

• Sub-function may be shared by several regular use cases

Aron Trauring — Zoteca 24

Page 26: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 27: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Preconditions

• Not tested in use case

• Assumed to be true

• Implies successful completion of a scenario from another use case

Aron Trauring — Zoteca 26

Page 28: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 29: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Three Kinds of Steps

1. An interaction between actors (may be SUD) — “System presents receipt toCustomer”

2. A validation (usually by system) — “Cashier verifies...”

3. A state change by the system — “System records sale”

Aron Trauring — Zoteca 28

Page 30: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

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

Page 31: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

• 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 indicatedotherwise

• Complex extensions may be included in separate use case (indicate branch byunderlining name)

• Condition that can occur during any step is indicated by “*a”

*a. At any time, system fails:

Aron Trauring — Zoteca 30

Page 32: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Special Requirements

• Non-functional requirements — “Language Internationalization”

• Quality attribute (performance, reliability, usability) — “System must respondwithin 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

Page 33: Object-Oriented Analysis/Design and Use Cases Object ...donatas/PSArchitekturaProjektavimas/Library/OOAD/OOAD-Use...T++ — CISDD — NYSIA Use Cases - OOAD Three Steps of Every Iteration

T++ — CISDD — NYSIA Use Cases - OOAD

Technology and Data Variations List

• Technical variations on how things are done — bar code reader vs. keyboardentry

• Variations in data schemes — “UPC or ISBN data formats”

• Early constraints — try to avoid if possible

Aron Trauring — Zoteca 32