Chapter 3
Chapter 3
Background
What is UML for?
Building blocks of UML
1
UML History
OO languages appear mid 70’s to late 80’s (cf. Budd: communication and complexity)
2
Unified Modeling Language (UML)
An effort by IBM (Rational) – OMG to standardize OOA&D notation
Fulfill Order
Item
Business Process
via
Ships the Item
Rivers
Oceans
have
UML 1.x
Structural — nouns/static of UML models (irrespective of time).
Main
Behavioral — verbs/dynamic parts of UML models.
6
Structural Things in UML- 7 Kinds (Classifiers)
Nouns.
Conceptual or physical elements.
setGrade()
getGrade()
State Machine
specifies the sequence of states an object or an interaction goes through during its
lifetime in response to events.
received-an-A/
inStudy buy-beer inParty
8
sober/turn-on-PC
Grouping Things in UML: Packages
- For organizing elements (structural/behavioral) into groups.
- Purely conceptual; only exists at development time.
- Can be nested.
- Variations of packages are: Frameworks, models, & subsystems.
University Administration
-Student
+Department
Student Person
2. Generalization
a specialized element (the child) is more specific the generalized element.
Student
3. Realization IGrade
one element guarantees to carry out what is expected by the other element.
(e.g, interfaces and classes/components; use cases and collaborations)
Maintain
Curriculum
Registrar
Register
for Courses
Billing System
Student
Manage
Seminar
Request
Course Roster
<<uses>>
<<extends>>
Register for courses
<<uses>>
Maintain curriculum
Create course
<<uses>>
16
Maintain Schedule
Diagrams in UML – Flow of Events for each use case:
Typical contents:
How the use case starts and ends
Normal flow of events (focus on the normal first!)
Alternate/Exceptional flow of events
This use case begins after the Registrar logs onto the Registration System
with a valid password.
The registrar fills in the course form with the appropriate semester and
course related info.
18
Diagrams in UML - Sequence Diagram
A sequence diagram displays object interactions arranged in a time
sequence
Traceability! 19
Diagrams in UML – Collaboration (Communication)
Displays object interactions organized around objects and their direct
links to one another.
Emphasizes the structural organization of objects that send and receive
messages.
course form:
theManager : 1: set course info CourseForm
course form : 2: request processing
: Registrar CourseForm CurriculumManager
2: request processing
: Registrar 3: add course
3: add course
4: <<create>> aCourse:
Course
theManager :
aCourse: CurriculumManager
Course
4: <<create>>
Traceability!
20
Diagrams in UML – Collaboration (Communication)
What would be the corresponding collaboration diagram?
1: fill in info
2: submit
22
Sequence Diagrams & Some Programming
:Selection :Purchase
purchase
buyMajor
buyMinor
create(cashTender)
:Payment
c : Client 1
p : PlanningAgent
<<create>> : TicketAgent
actual parameter
setItenerary( i )
calculateRoute()
loop return
route return value
call on self
destroy: e.g., in C++ manual garbage collection; in Java/C#, unnecessary natural death/
self destruction
24
Sequence Diagrams – Generic vs. Instance
2 forms of sd:
Instance sd: describes a specific scenario in detail; no conditions, branches or loops.
Generic sd: a use case description with alternative courses.
op1
ob1:C1
[x>0] foo(x)
conditional ob2:C2 concurrent lifelines
- for conditionals
[x<0] bar(x) do(z) - for concurrency
do(w)
[z=0] jar(z) [z=0] jar(z)
recurse()
Here, conditional or concurrency?
recursion
25
Interaction Diagram: sequence vs communication
objects
object
p : StockQuotePublisher s1 : StockQuoteSubscriber s2 : StockQuoteSubscriber role:ClassName
classifiers or their in
use cases or actors
attach(s1)
attach(s2) Procedure call, RMI, JDBC, …
Observer
design
Time notify() pattern
update()
{update < 1 minutes} Activations
getState()
- Show duration of execution
update() - Shows call stack
- Return message
getState() Implicit at end of activation
Explicit with a dashed arrow
3 : notify() 4 : update()
s1 : StockQuoteSubscriber
1 : attach(s1)
6 : getState()
p : StockQuotePublisher 5 : update()
2 : attach(s2) s2 : StockQuoteSubscriber
7 : getState() 26
Deployment Diagrams
Deployment diagram shows physical
components of a new system
Node is a physical component
Artifact is an executable module
Artifacts are components after they have been
compiled into executables
27
Sample Deployment Diagram
of an Internet System
28
Skip end: resume
29
Diagrams in UML - Class Diagrams
A class diagram shows the existence of classes and their relationships
Recall: A class is a collection of objects with common structure, common
behavior, common relationships and common semantics
Some classes are shown through the objects in sequence/collaboration
diagram
4: <<create>> aCourse :
Course
Traceability!
ScheduleAlgorithm 1
RegistrationForm
0..*
1 RegistrationManager 0..*
addStudent(student, course)
1 Course
name
0..* numberCredits
User
name Student
open()
addStudent(StudentInfo)
major
1
1..10
Professor 1..*
4 CourseOffering
tenureStatus location
1
0..4
Reading? open()
addStudent(StudentInfo)
31
Diagrams in UML – Object Diagrams
Shows a set of objects and their relationships.
As a static snapshot.
harry: Student ooad06S: Course
name = “OOAD”
name = “Harry Kid”
Anything wrong?
arch06F: Course
tom: Student
name = “Sw Architecture”
harry1: Professor
name = “Tom Cruise”
name = “Harry William”
alg06F: Course
surie: Professor arch: CourseOffering name = “Adv Algorithms”
name = “Surie Holmes” location = “UTD”
32
Diagrams in UML – State Transition Diagram (Statechart Diagram)
• The life history (often of a given class: from class to object behavior)
• States, transitions, events that cause a transition from one state to another
• Actions that result from a state change
initial (internal)
condition
event/action Add student [count < 10]
Add Student /
state Set count = 0
Initialization
State name Open
do: Initialize course
entry: Register student
activity exit: Increment count
Cancel
Cancel [ count = 10 ]
Canceled
do: Notify registered students
Closed
Cancel do: Finalize course
final
What life history/class is this for? Anything wrong? 33
…until the drop date?
Diagrams in UML – Activity Diagrams
• A special kind of statechart diagram that shows the flow from activity to activity.
initial
Add student
fork/spawn
User
Course
People.dll
Course.dll
Student Professor
Course Course
Offering
Student Professor
35
Diagrams in UML – Deployment Diagram
• shows the configuration of run-time processing elements and the
software processes living on them.
• visualizes the distribution of components across the enterprise.
wireless
Library Server Main Building Solaris
People.dll Billing.exe
Dorm PC
People Database
Student
Professor
36
Identifying Object Behaviour—
The State Machine Diagram (SMD)
SSDs give external view of object behaviour – messages passed
around but do not show, what an object does when it gets a message
There is a need to specify internal logic for each object, i.e., a
description of the actions that the objects perform themselves
State machine diagram is UML a 2.0 diagram that models object
internal behaviour, states and transitions
Complex problem domain classes can be modeled
37
Identifying Object Behaviour—
The State Machine Diagram
State of an object
A condition that occurs during its life when it satisfies some criterion,
performs some action, or waits for an event
Each state has unique name (e.g., “on”, “working”, “loading equipment”,
etc.) and is a semipermanent condition or status (because external
events can interrupt them)
Action is an activity performed by an object in a particular state
A state is represented by a rectangle with rounded corners (with the name of
the state inside)
Any actions that must be performed during the period of the state are placed
below the state name in the rectangle
Transition - movement of an object from one state to another state
Considered to be short in duration and cannot be interrupted
Once started, a transition runs to completion by taking the object to the
new state (called destination state)
38
Simple SMD for a Printer
39
State Machine Terminology
41
Concurrent Paths for Printer in the On
State
42
Relationships among OO models
43
State Machine Diagram and SSD
•Each column is labelled with the name of a class (the columns identify all
of the classes in the system); each row is for one sequence diagram; the Xs
in the cells show which classes are involved in which sequence diagram).
• An SMD for a class is based on the entire column for that class
• Every cell with X provides information about the messages to and from the
class
44
Rules for Developing State Machine
Diagram
Review domain class diagram, select important ones, and
list all state and exit conditions
Begin building state machine diagram fragments for each
class
Sequence fragments in correct order and review for
independent and concurrent paths
Expand each transition with message event, guard-
condition, and action-expression
Review and test each state machine diagram
45
States and Exit Transitions for OrderItem
46
Partial State Machine for OrderItem
47
Final State Machine for OrderItem
48
Order Domain Class for RMO—
States and Exit Transitions
49
First-Cut State Machine Diagram for
Order
50
Second-Cut State Machine Diagram for
Order
51
3 basic building blocks of UML - Diagrams
Here, UML 1.x first Using UML Concepts in a Nutshell
(UML 2.0 later)
Display the boundary of a system & its
Use case major functions using use cases and actors
Background
53