OOAD With UML and The UP - Session 4 - Elaboration
OOAD With UML and The UP - Session 4 - Elaboration
OOAD With UML and The UP - Session 4 - Elaboration
OOAD Training
Trainers:
Pierre LE FEVERE DE TEN HOVE
1 Richard WALKER
Objectives
Agenda
Elaboration objectives
Architecture introduction
Analysis packages
Iteration evaluation
Course organisation
BPM
UC
Domain
Model
Kick-off
Priorit. UC
Kick-off
OOAD Training
OOAD Training
Refine requirements
Detail use cases to 80% of the func. req.
OOAD Training
OOAD Training
Objectives
Agenda
Elaboration objectives
Architecture introduction
Analysis packages
Iteration evaluation
Analysis
Discipline overview
What the system needs to do
(how is for design)
OOAD Training
Analysis
RUP Workflow
Analysis & Design
Analyze behavior
OOAD Training
10
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation
Analysis
Finding analysis classes
OOAD Training
12
OOAD Training
!!!
13
Feature
Property
Operation
Association
Attribute
OOAD Training
14
Properties
Identity : reference
State : attributes and values
Behavior : operations & methods
1254868
"Bill
Gates"
315.00
withdraw()
getOwner()
setOwner()
an Account object
The structure and behavior of similar Objects are defined in their common
Class
OOAD Training
>>
15
A specification
A template for objects
An abstract type
There is an infinite number of ways of classifying objects
OOAD Training
>>
16
OOAD Training
>>>
17
Syntax:
Visibilities
+
#
public
visible to all
private
not visible to callers outside the class
protected only visible to children of the class
Multiplicities
[n]
a collection of n items
[n..m] between n and m items (0 = can be null, * = unlimited)
18
LoanOfficer
OOAD Training
Shape
Name
Identification number
!!!
19
Syntax: visibility name (dir parameterName : type = default value, ... ) : returnType
Parameter directions: in, out, inout or return
Only name is mandatory in Analysis
20
OOAD Training
21
ag
an
e
+deposit()
e
nc
la
ba
1254868 +withdraw()
"Bill
Gates"
315.00 +getOwner()
an
ag
+setOwner()
ow
ne
r
3 levels of encapsulation:
OOAD Training
!!!
22
Name
Role
Multiplicity
OOAD Training
>>
23
OOAD Training
>>
24
>>
25
!!!
26
Generalization
B
erlin
eC
ar
S
p
o
rtC
ar
A
ile
ro
n
Generalization
Specialization
OOAD Training
>>
27
class)
All instances of the child class are also instances of the parent class
Children inherit properties of the parent
Children are able to extend and override the inherited structure
Multiple inheritance is allowed in UML
Generalization is transitive
OOAD Training
28
Multiple classification
An object may be belong to several types that are not connected by inheritance
(allowed during analysis)
Usage of generalization sets and names
OOAD Training
29
OOAD Training
30
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation
OOAD Training
>>
32
Domain model
Noun/verb extraction from use cases and other req. documents
Categories checklist
Conceptual class categories
OOAD Training
Examples
Descriptions of things
Flight description
Places
Airports
Interactions
Transactions
Reservation
Roles
Containers
Store
Organizations
Sales Department
33
OOAD Training
34
35
36
Examples
A physical part of B
Wheel Car
A logical part of B
FlightPath FlightRoute
A is a description for B
FlightDescription Flight
A is a transaction item of B
SalesItem Sales
A is a member of B
Pilot Airline
A uses B
Pilot Plane
A communication with B
ReservationAgent Passenger
A is an event related to B
Departure Flight
OOAD Training
37
OOAD Training
>>
38
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation
Interaction diagrams
Introduction (1/2)
Objectives
OOAD Training
40
Interaction modeling
Introduction (2/2)
Artefacts
Sequence Diagram
Presenting the interaction between objects
Focusing on the sequence of message describing the scenario
Communication Diagram
Presenting the interaction between objects
Focusing on the behaviour of objects created to perform the scenario
OOAD Training
41
Interaction modeling
Interaction diagrams
Interaction diagrams
Primary focus
Either on time Sequence Diagram
Either on messages Communication Diagram
OOAD Training
42
Interaction modeling
Interaction diagrams
Uses and aspects
Main uses of interaction diagrams
OOAD Training
43
Interaction modeling
Sequence diagrams
Introduction
Sequence diagrams
OOAD Training
44
Interaction modeling
Sequence diagrams
Introductive example
Introductive example
Two dimensions
Vertical axis shows the time
Horizontal axis shows a group of objects
OOAD Training
45
Interaction modeling
Sequence diagrams
UML Components (1/9)
The lifelines
axis)
Syntax
46
Interaction modeling
Sequence diagrams
UML Components (2/9)
Messages
OOAD Training
47
Interaction modeling
Sequence diagrams
UML Components (3/9)
Messages
Synchronous message (Call): solid line with solid arrowhead (reply omitted)
Asynchronous message (Signal): solid line with stick arrowhead
Reply message (optional): dotted line with arrowhead back to originating lifeline
Recursive message: recursive call of a method calling another method on the same
object
OOAD Training
48
Interaction modeling
Sequence diagrams
UML Components (4/9)
Lifeline Start and End
Diagram
Object Creation
Symbol head of created object at a lower level than the creating object
From creator object message passed to created symbol head
Object Deletion
Lifeline is stopped
Cross below lifeline
Execution occurrence
Active instance
Region of control
OOAD Training
49
Interaction modeling
Sequence diagrams
UML Components (5/9)
Combined fragments
50
Interaction modeling
Sequence diagrams
UML Components (6/9)
Combined fragments
Interaction operator
Guard conditions
Interaction operand
OOAD Training
51
Interaction modeling
Sequence diagrams
UML Components (7/9)
Combined fragments
OOAD Training
52
Interaction modeling
Sequence diagrams
UML Components (8/9)
Gates
outside a fragment
To pass information between
It forms the interface between the combined fragment and its surroundings.
Simple graphical element with no implementation
OOAD Training
53
Interaction modeling
Sequence diagrams
UML Components (9/9)
Time constraints
OOAD Training
54
Interaction modeling
Sequence diagrams
Forms and Format
Instance Form
Sequence diagram
Collaboration: Use case realization
OOAD Training
55
Interaction modeling
Sequence diagrams
Withdraw Money from ATM
Draws attention to time sequence
OOAD Training
56
Interaction modeling
Communication diagrams
Introduction
Communication diagrams
OOAD Training
57
Interaction modeling
Communication diagrams
Introductive example
Introductive example
OOAD Training
58
Interaction modeling
Communication diagrams
Sequence vs Communication
OOAD Training
59
Interaction modeling
Communication diagrams
Sequence vs Communication
OOAD Training
60
Interaction Modeling
Interaction Diagrams
Conclusions
Main advantages
Very useful
to modelise graphically a scenario (input and output events related to the system)
to provide inputs to Specification Class Diagrams (invoked operations)
to discover what external events (called system events) are coming into the system
under study
To illustrate collaboration between systems
Main disadvantages
OOAD Training
61
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation
Analyze behavior
OOAD Training
63
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation
Software Architecture
Introduction
Architecture is many things to many different interested parties
OOAD Training
65
Software Architecture
4+1 views
Overview
RUP presents the Software Architecture in the 4+1 views
Logical View
Analysts/Designers
Structure
Implementation View
Programmers
Software management
End-user
Functionality
Use-Case View
Process View
System integrators
Performance
Scalability
Synchronisation and concurrency
OOAD Training
Deployment View
System engineering
System topology
Delivery, installation
Communication
66
Software Architecture
4+1 views
Detailed views (1/5)
Logical View
High level view focused on design object-oriented model that supports the
functional requirements
OOAD Training
67
Software Architecture
4+1 views
Detailed views (2/5)
Implementation view (also called development view)
A low level view focused on realization of the logical view and on the software
components organization
Components organisation
OOAD Training
68
Software Architecture
4+1 views
Detailed views (3/5)
Process view
Focus on processes
Decomposition of the System in tasks (processes) focusing mainly on non-functional
requirements such as performances, availability, etc.
Each task is a separate thread of control is scheduled individually on a processing
node
Map the operations of an object to the threads of control
Address issues of concurrency, system integrity, fault-tolerance, etc.
Process interactions
Synchronization and communication of parallelized tasks
Optimisation of CPUs usage
Prioritisation of tasks
69
Software Architecture
4+1 views
Detailed views (4/5)
Deployment view (also called physical view)
Important view for distributed environments and both testing and production
environments
OOAD Training
70
Software Architecture
4+1 views
Detailed views (5/5)
Use Case View
This view describes the behaviours of the system from the end-user point of
view
OOAD Training
71
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation
Software Architecture
Package Diagrams
What is a package?
A package
Represents a namespace
Abstract container providing context for items
The same identifier may be defined in multiple namespaces independently
All the element in a package share the same namespace and must have unique names
OOAD Training
73
Software Architecture
Package Diagrams
A package diagram
OOAD Training
74
Software Architecture
Package Diagrams
Class Package Diagram
A class package diagram
OOAD Training
75
Software Architecture
Package Diagrams
Class Package Diagram
1..*
1
1..*
1
0..*
OOAD Training
Held
at
76
Software Architecture
Package Diagrams
Use-case Package Diagram
A use-case package diagram
OOAD Training
77
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation
Course organisation
OOAD Training
79
Evalutation
Core metrics
End of elaboration iteration
Maturity
Test coverage and adequacy; robustness for use, failure counts
OOAD Training
80
Evalutation
About Fixed-price projects
Recommendation: two contract phases
First phase:
Choose
Short fixed-time and fixed-price with insured margin
Short time-based phase
Completing a few iterations (2 or 3 max)
3 requirements work shops (max 75%)
Core architecture 60% build
10 % final software
Merely producing code
Second phase:
From outputs of the first phase
Fixed-price on better bases
Requirement convergence
OOAD Training
81
Objectives
Agenda
Elaboration objectives
Analysis discipline overview
Finding analysis classes
Architecture introduction
Analysis packages
Iteration evaluation