hendrikus
hendrikus

Reputation: 11

UML state diagram: cross-orthogonal region triggers

I'm in the process of getting my head around UML state digrams while analysing the states that one of our customers can have. I'm attempting to use a composite state with orthogonal regions in which one state in one reason is the trigger for at least one state change in another orthogonal reason.

I realise that I might be trying to use the wrong paradigm to model this, so feel free to correct me on that basis, but there is a simplified but slightly more detailed explanation of the situation for the purposes of this question:

The change in R3 from "cash-only" to "credit" can only occur once R1 is in "withdrawal enabled" state and R2 is in "ID verified" state - plus another trigger.

When drawing the state diagram, is there a valid way to make one state transition in one orthogonal region (at least partially) dependent on a set of states in other orthogonal regions? If not, what other ways could I represent this?

(By the way, I had thought of modelling the account states separately but the discussions in the domain is such here that it feels more useful to integrate that as part of a customer's state)

Thanks in advance for your help.

Upvotes: 1

Views: 169

Answers (1)

qwerty_so
qwerty_so

Reputation: 36323

I'd use a guard like this

enter image description here

assuming that R1 and R2 are state machines on their own.

Maybe there is a more formally correct way to describe the guard. But I guess a reader can grasp the idea behind it.

Upvotes: 1

Related Questions