0% found this document useful (0 votes)
56 views13 pages

UML State Diagrams Reading

This document discusses UML state diagrams, which depict the data and behavior of a single object throughout its lifetime. Key points include: - State diagrams show states (including an initial start state), transitions between states, and are drawn from the object's perspective. - Similar to finite state machines. Good for modeling large, complex domain objects with long lifespans. - States represent conceptual descriptions of an object's data, transitions represent state changes, and activities represent behaviors during transitions. - Internal activities, entry/exit activities, and substates are also discussed. Examples of state diagrams for user accounts, ATMs, and threads are provided. Implementing states through various coding approaches is also covered.

Uploaded by

Justyne Maglapuz
Copyright
© © All Rights Reserved
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)
56 views13 pages

UML State Diagrams Reading

This document discusses UML state diagrams, which depict the data and behavior of a single object throughout its lifetime. Key points include: - State diagrams show states (including an initial start state), transitions between states, and are drawn from the object's perspective. - Similar to finite state machines. Good for modeling large, complex domain objects with long lifespans. - States represent conceptual descriptions of an object's data, transitions represent state changes, and activities represent behaviors during transitions. - Internal activities, entry/exit activities, and substates are also discussed. Examples of state diagrams for user accounts, ATMs, and threads are provided. Implementing states through various coding approaches is also covered.

Uploaded by

Justyne Maglapuz
Copyright
© © All Rights Reserved
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/ 13

CSE 403

Lecture 9
UML State Diagrams

Reading:
UML Distilled, Ch. 10, M. Fowler

slides created by Marty Stepp


http://www.cs.washington.edu/403/
UML state diagrams
• state diagram: Depicts data and behavior of a single object
throughout its lifetime.
– set of states (including an initial start state)
– transitions between states
– entire diagram is drawn from that object's perspective

• similar to finite state machines (DFA, NFA, PDA, etc.)

• What objects are best used with state diagrams?


– large, complex objects with a long lifespan
– domain ("model") objects
– not useful to do state diagrams for every class in the system!

2
State diagram example

3
States
• state: conceptual description of the data in the object
– represented by object's field values

• entire diagram is drawn from the


central object's perspective
– only include states / concepts that
this object can see and influence
– don't include every possible value
for the fields; only ones that are
conceptually different

4
Transitions
• transition: movement from one state to another

• signature [guard] / activity


– signature: event that triggers (potential) state change
– guard: boolean condition that must be true
– activity: any behavior executed during transition (optional)

• transitions must be mutually exclusive (deterministic)


– must be clear what transition to take for an event
– most transitions are instantaneous,
except "do" activities
5
Internal activities
• internal activity: actions that the
central object takes on itself
– sometimes drawn as self-transitions
(events that stay in same state)

• entry/exit activities
– reasons to start/stop being in that state

6
User account management
State diagram example

7
Super/substates
• When one state is complex, you can include substates in it.
– drawn as nested rounded rectangles within the larger state

• Caution: Don't over-use this feature.


– easy to confuse separate states for sub-states within one state

8
ATM software states at a bank
State diagram example

9
Java thread states State diagram example

10
Implementing states
• What are some ways to write
code to match a state diagram?
– state tables (pseudo-code)
– nested if/else
– switch statements
– state enums
– State design pattern

11
State pattern
• state pattern: An object whose sole purpose is to represent
the current "state" or configuration of another larger object.
– A behavioral pattern.
– Often implemented with an enum type for the states.
– Each object represents one specific state for the larger object.
– The larger object sets its state in response to various mutations.
– Allows various observers and interested parties to quickly and
accurately know what is going on with the larger object's status.

• Analogous to the notion of finite state machines.


– Set of states (nodes)
– Set of edges (mutations that cause state changes)
12
State enum example
/** Represents states for a poker game. */
public enum GameState {
NOT_STARTED, IN_PROGRESS, WAITING_FOR_BETS,
DEALING, GAME_OVER;
}

/** Poker game model class. */


public class PokerGame {
private GameState state;

public GameState getState() { return state; }

public void ante(int amount) {


...
state = WAITING_FOR_BETS; // change state
setChanged();
notifyObservers(state);
}
}
13

You might also like