37
1 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.

11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

Embed Size (px)

Citation preview

Page 1: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

11

Partnership for Performance

How to hear this lecture

Click on the icon: to hear the narration for each slide.

Page 2: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2

Partnership for Performance

fisher.osu.edu

Fisher logoAnalysis

Dr. Rajiv RamnathDirector

Collaborative for Enterprise Transformation and Innovation (CETI)Department of Computer Science and Engineering, College of EngineeringDepartment of Computer Science and Engineering, College of Engineering

The Ohio State UniversityThe Ohio State University

[email protected]@osu.edu

http://www.ceti.cse.ohio-state.eduhttp://www.ceti.cse.ohio-state.edu

Partnership for PerformancePartnership for Performance

Page 3: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

College of EngineeringThe Ohio State University

UML – A Notation for Capturing Software Engineering Work Products

Page 4: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

44

Partnership for Performance

Uses of UML

• As Sketch

• As Blueprint

• As Programming Language

• Concepts (e.g. in a domain model)

• Specification (of software components)

• Implementation (tied to a language)

Ref: Applying UML and Patterns, Craig Larman, Safari

Page 5: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

55

Partnership for Performance

Use Case

Ref: UML Distilled, Martin Fowler: Safari

Page 6: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

66

Partnership for Performance

Use Case Diagram Showing <<Extends>>

Ref: http://www.agilemodeling.com/images/models/useCaseDiagram.jpg

Page 7: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

7

Partnership for Performance

Use Case Diagram Showing Uses

Intake Processor

Client System

<<

use

s>>

Page 8: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

88

Partnership for Performance

Class Diagram

Ref: UML Distilled, Martin Fowler: Safari

Page 9: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

99

Partnership for Performance

Association

Ref: UML Distilled, Martin Fowler: Safari

Page 10: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1010

Partnership for Performance

Object Diagram

Ref: UML Distilled, Martin Fowler: Safari

Page 11: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1111

Partnership for Performance

Sequence Diagram

Ref: UML Distilled, Martin Fowler: Safari

Page 12: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1212

Partnership for Performance

Collaboration (Communication) Diagram

Ref: UML Distilled, Martin Fowler: Safari

Page 13: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1313

Partnership for Performance

State Diagram

Ref: UML Distilled, Martin Fowler: Safari

Page 14: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1414

Partnership for Performance

Activity Diagram

Ref: UML Distilled, Martin Fowler: Safari

Page 15: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1515

Partnership for Performance

Advanced UML – 1

Ref: UML Distilled, Martin Fowler: Safari

Aggregation

Composition (cannot exist outside of)

Static Operations

Page 16: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1616

Partnership for Performance

Advanced UML - 2

Interfaces

Ref: UML Distilled, Martin Fowler: Safari

Page 17: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1717

Partnership for Performance

Advanced UML - 3

Ref: UML Distilled, Martin Fowler: Safari

Interaction Overview Diagram

Page 18: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1818

Partnership for Performance

Advanced UML – 4

Ref: http://www.agilemodeling.com/style/activityDiagram.htmSwimlanes

Page 19: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

1919

Partnership for Performance

Package Diagram (Package == Namespace)

Ref: UML Distilled, Martin Fowler: Safari

Page 20: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2020

Partnership for Performance

Deployment Diagram

Ref: UML Distilled, Martin Fowler: Safari

Page 21: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

College of EngineeringThe Ohio State University

Analysis

Page 22: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2222

Partnership for Performance

What is Analysis?

• Analysis = Understanding:• In general: separating the target of the analysis into its

component parts– Understanding static structure– Understanding dynamic behavior– Capturing this in documents or tacitly

• Domain Analysis: Understanding the domain• Static structure aka Domain Model

• Problem Analysis: Understanding the problem• Solution Analysis: Defining the solution

• Interactions at the system boundary, no deeper

Page 23: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2323

Partnership for Performance

Process and Techniques

• Focus on target of analysis (not a solution to an immediately perceived problem)• Do not introduce design

• Be iterative and incremental• Techniques:

• Reuse existing models (CBM?, Porter? Value Chain?)• Create a categorized list of things in the domain• Create narratives and extract nouns (objects) and

verbs (responsibilities)• Build class and object models for static structure• Use sequence, collaboration, state and activity

diagrams for dynamic behavior• Use CRC Cards to socialize the process of analysis

Page 24: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

College of EngineeringThe Ohio State University

Analysis Using Structured Processes

Page 25: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2525

Partnership for Performance

Analysis Work-Products

Analysis GuidelinesDomain Analysis

• Part 1 of project• Create a Domain Model using an object diagram

Problem Analysis• Start with Problem Statement (note overlap with Requirements)• Use a problem object diagram to describe the static aspects of the

problem• Explain problem scenarios using sequence, collaboration, activity

or state diagrams

Solution Analysis• Start with Use Cases (note overlap with Requirements)• Explain scenarios using sequence, collaboration, state, or activity

diagrams• Describe interface objects using object and class diagrams

Page 26: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2626

Partnership for Performance

Notes on Analysis Guidelines

Done jointly by the developers - team leader and analysts

Keep minimal and not overly restrictiveWork product guidelines

• Which work products• Templates• Naming conventions• Diagramming conventions

Process guidelines• How should the team do the analysis

– Create scenarios from use cases, possible sketch UI screens, look at the as-is system

– CRC Cards

Page 27: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2727

Partnership for Performance

Notes on Solution Scenarios

• Elaboration of a Use Case (one path through a use case)

– Tradeoff: New use case vs. adding a scenario to existing

• Use case + Assumptions + Outcomes• How to create:

– Identify all the different outcomes in the use case

– Techniques– Use domain experts, look at similar examples

» Web reservation systems (itn.com), ATM systems

– Reviewing the Problem statement– Walking through case studies or storyboards

» Successful and unsuccessful outcomes

» Look at each subclass of the actors involved

Reference: Developing Object-Oriented Software – An Experience-Based Approach, Chapter on Analysis

Page 28: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2828

Partnership for Performance

Notes on Sequence Diagrams

• Graphical representation of each scenario (could combine scenarios, or explore only major ones)). UML notation.

• Used to discover or validate class responsibilities• Object messages or internal activities• Components

• Object• Time line• Messages - synchronous or asynchronous

– loops, returns, internal

• Advice• Keep messages in English• Feel free to annotate to properly describe the problem

Reference: Developing Object-Oriented Software – An Experience-Based Approach, Chapter on Analysis

Page 29: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

2929

Partnership for Performance

Notes on Object and Class Models

• Use the sequence diagrams to derive and validate this

• UML Notation• Components

• Objects and Classes• Relationships (aggregation (component), IS-A

(inheritance), association (relationship))• Attributes• Methods

Question: Why is an “object” model used in analysis, not a class model?

Reference: Developing Object-Oriented Software – An Experience-Based Approach, Chapter on Analysis

Page 30: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

3030

Partnership for Performance

Notes on Domain Model

• Illustrates important business concepts

• Used in analysis

• Often serves as software business objects – an interface layer in design• Along with problem object model

Ref: Applying UML and Patterns, Craig Larman, Safari

Page 31: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

3131

Partnership for Performance

Domain Model - Example

Ref: Applying UML and Patterns, Craig Larman, Safari

Page 32: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

3232

Partnership for Performance

Notes on CRC Cards - Template

Ref: A Laboratory For Teaching Object-Oriented Thinking Kent Beck, Ward Cunningham – electronic reference

Page 33: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

3333

Partnership for Performance

Notes on CRC Cards - Example

Ref: Applying UML and Patterns, Craig Larman, Safari

Ref: A Laboratory For Teaching Object-Oriented Thinking Kent Beck, Ward Cunningham – electronic reference

Page 34: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

College of EngineeringThe Ohio State University

Agile Analysis

Page 35: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

3535

Partnership for Performance

Agile Analysis – Mostly About Values and Practices, Less About Techniques

• An integral part of requirements definition – not a separate phase

• Model with others• Model in small increments• Collective ownership• Purpose determines model• Create several models (in parallel)• Use simple tools• Prove it with code• Single source of information• Display publicly• Active stakeholder involvementRef: Visual Studio Team System: Better Software Development for Agile Teams, Will

Stott; James W. Newkirk, Safari. Agile 101.pdf – ThoughtWorks Inc. – CSE 757 Course Site

Page 36: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

3636

Partnership for Performance

Agile UML Modelling – Use Case Sketch

Page 37: 11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide

3737

Partnership for Performance

Thank you!