Slide INF205 RPL Pertemuan 8

UML: Unified Modeling
Language
 Story:
 What UML is for
 Some of the main diagrams are and what you
use them for





Class diagrams and class forms
Use Case Diagrams
Sequence (Event) Diagram
State Diagrams

 An example
 

 


UML: Unified Modeling
Language
 Developed by the “Three Amigos”: Grady
Booch, Jim Rumbaugh, Ivar Jacobson
 Each had their own development methodology
 More or less emphasis on notation and process

 UML is a notation and a process
 Diagrams and notation from UML 1.3 Definition
(http://www.rational.com)

 

 

Diagrams
 Class diagrams: Represents static structure
 Use case diagrams: Sequence of actions a
system performs to yield an observable
result to an actor

 Sequence diagrams:Shows how groups of
objects interact in some behavior
 State diagrams: Describes behavior of
system by describing states of an object
 

 

Class Diagrams
 Better name: “Static structure diagram”
 Doesn’t describe temporal aspects
 Doesn’t describe individual objects: Only the overall
structure of the system

 There are “object diagrams” where the boxes
represent instances
 But rarely used—other diagrams serve the role of
describing object interaction better
 When used, object diagrams describe static
structure, like a data structure

 

 

Different Levels of Specifying
Classes

 

 

Notation in Class Boxes
 Abstract classes (and operations) in italics
 + is public, - is private, # is protected
 Can also specify stereotypes or
compartments
 “constructors” or “query”
 “controller”

 


 

Other variations in Class
specifications
 Use of
templates,
interfaces, and
types
 Can even
specify body of
methods
 

 

Components of Class
Diagrams
 Multiplicities
 How many of

each?

 

 Labels to
indicate how
reference is
viewed
 Role and
Association
classes  

Navigability and
Aggregations
 Navigability
 Who owns/contains/has who?
 Arrows not strictly required

 Aggregation: Open diamond
 “Part-of” relationship, but disagreement


 Composition:
closed diamond
 Part can only
belong to whole
 

 

Qualifiers
 Serves to describe an instance variable
that partitions the relationship.

 

 

Use Case Diagrams
 Means of capturing requirements
 Document interactions between user(s)

and the system
 User (actor) is not part of the system itself
 But an actor can be another system

 An individual use case represents a task to
be done with support from the system (thus
it is a ‘coherent unit of functionality’)
 

 

Simple Use Case Diagram

Reserve book

Borrow book

Return book

 


 

Use Case Diagram with
Multiple Actors

 

 

Use Cases
 Are actually defined as text, including
descriptions of all of the normal and
exception behavior expected
 Do not reveal the structure of the system
 Collectively define the boundaries of the
system to be implemented
 Provide the basis for defining
development iterations
 


 

Example Use Case Diagram
(Advanced Features)

 

 

Sequence (Event) Diagrams
 Shows individual objects and how they
interact
 Describes
 Lifelines of objects
 Who sends what messages when
 Can also describe sending messages to self
("self-delegation")
 Can describe guards, notes, etc.
 


 

Example Sequence Diagram

 

 

State Diagrams
 Describe all the possible states a
particular object can get into, and the
events that lead to those changes
 Also called a "statechart"

 

 

Example State Diagram


 

 

Other Kinds of UML Diagrams
 Collaboration Diagrams
 An alternative to sequence diagrams for
describing the flow of messages between
objects

 

 

Other kinds of UML Diagrams
 Activity Diagrams
 Alternative to
statecharts

 

 

Other kinds of UML Diagrams
 Implementation
Diagrams
 Down at the detail
level
 What piece of code
goes where?
 How are they
connected?

 

 

UML in Real Practice
 You don't typically use all the diagrams
 You'll choose between them based on preference and
particular situation

 You typically use many diagrams
 A single use case may not capture all scenarios
 If you are going to use statecharts, there are probably
lots of objects with states
 Each sequence/collaboration diagram only shows one
interaction
 

 

Example: Student Registration
System
 Not going to do all the diagrams
 Not all types, not even all that completely
specify the system

 But this is an application you know, so the
examples may help make sense

 

 

Student Registration Class Diagram
Student
transcript
major
schedule
registrar

1

1
1

*

enrollInClass:
gradeInCourse:
takenCourse:
*

Registrar
Section
course
daysAndTime
roster
addStudent
removeStudent

1
1

Department
courses
requiredCourses

 

1..3

*

 

*

1

courses
sections

Transcript
courseGrades
gradeForCourse:
takenCourse:
1

getSectionsFor:
enrollInSection:
dropFromSection:
*

1

1*

*

Course

1
*

name
number
0..3
department
creditHours
prereqs
prerequisites

*

CourseGrade

*

course
grade
termEnrolled

Partial Use Case Diagram
Apply for
Admission

Enroll in
the University

Enroll in
a Course

Student

Withdraw
from a Course

 

 

Admissions

States of a Student
Apply [ Must be accepted first ]

Enrolled

EnrollInClass ( Add  a Transcript )

Withdraw

Registered

AddCourse

Graduate [ All courses must be completed ]

 

 

Sequence Diagram: Registering
for Course
aStudent

theRegistrar

aSection

theTranscript

getSectionsFor:
return sections
enrollInSection:
takenCourse: prerequisite
takenCourse: prerequisite

state of prereq

have prereq
addStudent:

enrolled

enrolled

 

 

Process to Representations
 OOA
 CRC Cards (but they’re not officially UML)
 Use Cases

 OOD
 Just about all of the rest
 But variations—some detail is later

 OOP
 Can actually go UML->code with some tools!
 

 

UML v1.3 Copyright Notice
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright
Copyright

 

©
©
©
©
©
©
©
©
©
©
©
©
©
©
©
©
©
©

1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,
1997,

1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,
1998,

1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999
1999

Object Management Group, Inc.
Hewlett-Packard Company
IBM Corporation
ICON Computing
i-Logix
IntelliCorp
Electronic Data Services Corporation
Microsoft Corporation
ObjecTime Limited
Oracle Corporation
Platinum Technology, Inc.
Ptech Inc.
Rational Software Corporation
Reich Technologies
Softeam
Sterling Software
Taskon A/S
Unisys Corporation