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
College of EngineeringThe Ohio State University
UML – A Notation for Capturing Software Engineering Work Products
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
55
Partnership for Performance
Use Case
Ref: UML Distilled, Martin Fowler: Safari
66
Partnership for Performance
Use Case Diagram Showing <<Extends>>
Ref: http://www.agilemodeling.com/images/models/useCaseDiagram.jpg
7
Partnership for Performance
Use Case Diagram Showing Uses
Intake Processor
Client System
<<
use
s>>
88
Partnership for Performance
Class Diagram
Ref: UML Distilled, Martin Fowler: Safari
99
Partnership for Performance
Association
Ref: UML Distilled, Martin Fowler: Safari
1010
Partnership for Performance
Object Diagram
Ref: UML Distilled, Martin Fowler: Safari
1111
Partnership for Performance
Sequence Diagram
Ref: UML Distilled, Martin Fowler: Safari
1212
Partnership for Performance
Collaboration (Communication) Diagram
Ref: UML Distilled, Martin Fowler: Safari
1313
Partnership for Performance
State Diagram
Ref: UML Distilled, Martin Fowler: Safari
1414
Partnership for Performance
Activity Diagram
Ref: UML Distilled, Martin Fowler: Safari
1515
Partnership for Performance
Advanced UML – 1
Ref: UML Distilled, Martin Fowler: Safari
Aggregation
Composition (cannot exist outside of)
Static Operations
1616
Partnership for Performance
Advanced UML - 2
Interfaces
Ref: UML Distilled, Martin Fowler: Safari
1717
Partnership for Performance
Advanced UML - 3
Ref: UML Distilled, Martin Fowler: Safari
Interaction Overview Diagram
1818
Partnership for Performance
Advanced UML – 4
Ref: http://www.agilemodeling.com/style/activityDiagram.htmSwimlanes
1919
Partnership for Performance
Package Diagram (Package == Namespace)
Ref: UML Distilled, Martin Fowler: Safari
2020
Partnership for Performance
Deployment Diagram
Ref: UML Distilled, Martin Fowler: Safari
College of EngineeringThe Ohio State University
Analysis
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
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
College of EngineeringThe Ohio State University
Analysis Using Structured Processes
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
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
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
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
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
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
3131
Partnership for Performance
Domain Model - Example
Ref: Applying UML and Patterns, Craig Larman, Safari
3232
Partnership for Performance
Notes on CRC Cards - Template
Ref: A Laboratory For Teaching Object-Oriented Thinking Kent Beck, Ward Cunningham – electronic reference
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
College of EngineeringThe Ohio State University
Agile Analysis
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
3636
Partnership for Performance
Agile UML Modelling – Use Case Sketch
3737
Partnership for Performance
Thank you!
Top Related