0% found this document useful (0 votes)
106 views53 pages

Unified Modeling Language

UML is a modeling language used to specify, visualize, and document object-oriented systems. It includes various diagram types such as use case diagrams, class diagrams, sequence diagrams, and state diagrams. Use case diagrams describe system functionality from the user's perspective, class diagrams show system structure through objects and relationships, and sequence diagrams depict object interactions over time.

Uploaded by

jayashree108
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
106 views53 pages

Unified Modeling Language

UML is a modeling language used to specify, visualize, and document object-oriented systems. It includes various diagram types such as use case diagrams, class diagrams, sequence diagrams, and state diagrams. Use case diagrams describe system functionality from the user's perspective, class diagrams show system structure through objects and relationships, and sequence diagrams depict object interactions over time.

Uploaded by

jayashree108
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 53

UML

[Unified Modeling Language]


UML-Introduction
• This object-oriented system of notation has
evolved from the work of Grady Booch, James
Rumbaugh, Ivar Jacobson, and the Rational
Software Corporation.
• Today, UML is accepted by the Object
Management Group (OMG) as the standard
for modeling object oriented programs
• UML is a modeling language for Specifying,
Visualizing, Constructing and documenting
Object oriented Software
UML Diagrams
• Classified based on Characteristics
– Static
• Usecase diagram[Scenario Based Element]
• Class diagram[Class Based Element]
– Dynamic
• Object diagram
• State diagram[Behavioral Element]
• Activity diagram[Scenario Based Element]
• Sequence diagram[Behavioral Element]
• Collaboration diagram[Class Based Element]
– Implementation
• Component diagram
• Deployment diagram
UML Diagrams
• Use case diagrams
– Describe the functional behavior of the system as seen by the
user.
• Class diagrams
– Describe the static structure of the system: Objects, Attributes,
and Associations.
• Sequence diagrams
– Describe the dynamic behavior between actors and the system
and between objects of the system.
• Statechart diagrams
– Describe the dynamic behavior of an individual object as a
finite state machine.
• Activity diagrams
– Model the dynamic behavior of a system, in particular the
workflow, i.e. a flowchart. 4
Use Case Diagram
Package
SimpleWatch

Actor
ReadTime

SetTime
WatchUser WatchRepairPerson

Use case
ChangeBattery

Use case diagrams represent the functionality of the system


from user’s point of view

5
Class Diagram

Class

Multiplicity SimpleWatch Association


1 1 1 1
2 1 2 1
PushButton LCDDisplay Battery Time
state blinkIdx load() now()
push() blinkSeconds()
release() blinkMinutes()
blinkHours()
stopBlinking()
Attributes
referesh()

Operations

Class diagrams represent the structure of the system

6
UML Core Conventions
• Rectangles are classes or instances
• Ovals are functions or use cases
• Instances are denoted with an underlined
names
– myWatch:SimpleWatch
– Joe:Firefighter

9
UML Core Conventions
• Types are denoted with nonunderlined
names
– SimpleWatch
– Firefighter
• Diagrams are graphs
– Nodes are entities
– Arcs are relationships between entities

10
Use Case Diagram

• Used during requirements elicitation to


represent external behavior
• Actors represent roles, that is, a type of user
of the system
• Use cases represent a sequence of
interaction for a type of functionality
• The use case model is the set of all use
cases. It is a complete description of the
functionality of the system & its environment

11
A Use Case Diagram

Passenger

PurchaseTicket

12
Actor

• An actor models an external entity which communicates


with the system:
– User
– External system
– Physical environment
• An actor has a unique name and an optional description.
• Examples:
– Passenger: A person in the train
– GPS satellite: Provides the system with GPS coordinates

13
An Actor

Passenger

14
Use Case
• A use case represents a class of functionality
provided by the system as an event flow.
• A use case consists of:
– Unique name
– Participating actors
– Entry conditions
– Flow of events
– Exit conditions
– Special requirements

15
A Use Case

PurchaseTicket

16
Use Case Example
Name: Purchase Ticket Event flow:
Participating actor: Passenger 1. Passenger selects the number
Entry condition: of zones to be traveled.
• Passenger standing in front of 2. Distributor displays the
ticket distributor. amount due.
• Passenger has sufficient 3. Passenger inserts money, of at
money to purchase ticket. least the amount due.
4. Distributor returns change.
Exit condition: 5. Distributor issues ticket.
• Passenger has ticket.

17
The <<extend>> Relationship

• <<extend>> relationships represent exceptional or


seldom invoked cases.
• The exceptional event flows are factored out of
the main event flow for clarity.
• Use cases representing exceptional flows can
extend more than one use case.
• The direction of a <<extend>> relationship is to the
extended use case

18
<<extend>> Relationships

Passenger

PurchaseTicket

<<extend>> <<extend>>

<<extend>> <<extend>>

OutOfOrder TimeOut

Cancel NoChange
19
The <<include>> Relationship

• An <<include>> relationship represents


behavior that is factored out of the use case.
• An <<include>> represents behavior that is
factored out for reuse, not because it is an
exception.
• The direction of a <<include>> relationship is to
the using use case (unlike <<extend>>
relationships).

20
<<include>> Relationships

Passenger

PurchaseMultiCard

<<include>> PurchaseSingleTicket

<<include>>

CollectMoney
<<extend>>

<<extend>>
NoChange
Cancel
21
Class Diagram

• Class diagrams represent the structure


of the system.
• Class diagrams are used
– during requirements analysis to model
problem domain concepts
– during system design to model subsystems
and interfaces
– during object design to model classes.

22
A Class Diagram
TariffSchedule Trip
zone:Zone
Enumeration getZones() * price:Price
*
Price getPrice(Zone)

23
Class
• A class represent a concept.
• A class encapsulates state (attributes)
& behavior (operations).
• Each attribute has a type.
• Each operation has a signature.
• The class name is the only mandatory
information.

24
A Class

Name
TariffSchedule TariffSchedule
zone2price Table zone2price
Attributes
getZones() Enumeration getZones()
getPrice() Price getPrice(Zone)

Operations
Signature

25
Instance

• An instance represents a phenomenon.


• The name of an instance is underlined
and can contain the class of the
instance.
• The attributes are represented with their
values.

26
An Instance

tariff_1974:TarifSchedule
zone2price = {
{‘1’, .20},
{‘2’, .40},
{‘3’, .60}}

27
Actor, Class, & Instance

• Actor:
– An entity outside the system to be modeled,
interacting with the system (“Pilot”)
• Class:
– An abstraction modeling an entity in the problem
domain, inside the system to be modeled (“Cockpit”)
• Object:
– A specific instance of a class (“Joe, the inspector”).

28
Association

• Associations denote relationships between


classes.
• The multiplicity of an association end
denotes how many objects the source
object can legitimately reference.

29
An Association
TarifSchedule TripLeg

Enumeration getZones() price


* *
Price getPrice(Zone) zone

30
Associations
Has-capital
Country City
1 1
name:String name:String

1-to-1 association

Polygon 1 * Point
x:Integer
y:Integer
draw()

1-to-many association

31
Aggregation

• An aggregation is a special case of


association denoting a “consists of”
hierarchy.
• The aggregate is the parent class, the
components are the children class.

32
Aggregations

Exhaust System

1 0..2
Muffler Tailpipe

33
Composition

• A solid diamond denote composition,


• A strong form of aggregation
• Components cannot exist without the
aggregate.

34
Composition

TicketMachine

3
ZoneButton

35
Generalization

• Generalization relationships denote


inheritance between classes.
• The children classes inherit the
attributes and operations of the parent
class.
• Generalization simplifies the model by
eliminating redundancy.
36
Generalization

Button

CancelButton ZoneButton

37
From Problem Statement to
Code

Problem Statement

A stock exchange lists many companies. Each company is identified by a


ticker symbol

38
From Problem Statement to
Code
Problem Statement:
A stock exchange lists many companies.
Each company is identified by a ticker
symbol

39
From Problem Statement
to Code
Class Diagram

lists
StockExchange * * Company
tickerSymbol

Java Code
public class StockExchange {
public Vector m_Company = new Vector();
};
public class Company {
public int m_tickerSymbol;
public Vector m_StockExchange = new Vector();
};
40
UML Sequence Diagram
• Used during requirements analysis
– To refine use case descriptions
– to find additional objects (“participating objects”)
• Used during system design
– to refine subsystem interfaces
• Classes are represented by columns
• Messages are represented by arrows
• Activations are represented by narrow
rectangles
• Lifelines are represented by dashed lines
41
A UML Sequence Diagram

TicketMachine
Passenger
selectZone()

insertCoins()

pickupChange()

pickUpTicket()

42
UML Sequence Diagram
with Nested Messages

• The source of an arrow indicates the


activation which sent the message
• An activation is as long as all nested
activations

43
A UML Sequence Diagram
with Nested Messages
selectZone()

price

ZoneButton TarifSchedule Display


Passenger

lookupPrice(selection)

displayPrice(price)
Dataflow

…to be continued...

44
Sequence Diagram
Observations
• UML sequence diagram represent
behavior in terms of interactions.
• Complement the class diagrams which
represent structure.
• Useful to find participating objects.
• Time consuming to build but worth the
investment.

45
Activity Diagram
• An activity diagram shows flow control within a system
• An activity diagram is a special case of a state chart
diagram in which states are activities (“functions”)
• Two types of states:
– Action state:
• Cannot be decomposed any further
• Happens “instantaneously” with respect to the level of abstraction
used in the model
– Activity state:
• Can be decomposed further
• The activity is modeled by another activity diagram

46
An Activity Diagram

Handle Document Archive


Incident Incident Incident

47
Activity Diagram:
Modeling Decisions

[lowPriority]
Open Allocate
Incident Resources

[fire & highPriority]

[not fire & highPriority]


Notify
Fire Chief

Notify
Police Chief

48
Activity Diagram:
Modeling Concurrency

• Synchronization of multiple activities


• Splitting the flow of control into multiple
threads

49
Activity Diagram:
Modeling Concurrency

Splitting Synchronization

Allocate
Resources

Open Coordinate Archive


Incident Resources Incident

Document
Incident

50
Activity Diagrams: Swimlanes
• Actions may be grouped into swimlanes
• Denote the object or subsystem that
implements the actions.

51
Activity Diagrams: Swimlanes

Dispatcher
Allocate
Resources

Open Coordinate Archive


Incident Resources Incident

FieldOfficer
Document
Incident

52
Summary
• UML provides a wide variety of notations for
representing many aspects of software
development
– Powerful, but complex language
– Can be misused to generate unreadable models
– Can be misunderstood when using too many exotic
features
• We concentrate only on a few notations:
– Functional model: use case diagram
– Object model: class diagram
– Dynamic model: sequence diagrams, statechart and
activity diagrams
53
References
• M. Fowler, UML Distilled, 2nd edition, Addison
Wesley, 2000.
• G. Booch, J. Rumbaugh, and I. Jacobson, The
Unified Modeling Language User Guide,
Addison Wesley, 1999.
• B. Bruegge and A. Dutoit, Object-Oriented
Software Engineering Using UML, Patterns, and
Java, 2nd edition, Prentice Hall, 2004

54

You might also like