-
Key: UML22-315
-
Legacy Issue Number: 10959
-
Status: closed
-
Source: International Business Machines ( Mr. Adam Neal)
-
Summary:
On page 569 in section 15.3.4 (Transitions), constaint # 5 identifies which outgoing transitions, given their source pseudostates, may not have triggers: [5] Transitions outgoing pseudostates may not have a trigger. source.oclIsKindOf(Pseudostate) and ((source.kind <> #junction) and (source.kind <> #join) and (source.kind <> #initial)) implies trigger->isEmpty() This OCL is incorrect since transitions leaving either a Junction Point, Initial State or a Join should not have triggers. The given OCL specifies the inverse - that only those pseudostates may have triggers. One contradiction to the above OCL exists on page 537 in section 15.3.8 (Pseudostates), constraint #9: [9] The outgoing transition from an initial vertex may have a behavior, but not a trigger or guard. (self.kind = PseudostateKind::initial) implies (self.outgoing.guard->isEmpty() and self.outgoing.trigger->isEmpty()) Furthermore, transitions leaving a fork are also not allowed triggers (constraint #1), so this could also be contained in the transition's OCL constraint (#5). Therefore the OCL for constraint #5 should be written as: [5] Transitions outgoing pseudostates may not have a trigger. source.oclIsKindOf(Pseudostate) and ((source.kind = #junction) or (source.kind = #join) or (source.kind = #initial) or (source.kind = #fork)) implies trigger->isEmpty()
-
Reported: UML 2.1.1 — Wed, 18 Apr 2007 04:00 GMT
-
Disposition: Resolved — UML 2.2
-
Disposition Summary:
Text has already been fixed in the UML 2.2 specification to be
[5] Transitions outgoing pseudostates may not have a trigger (except for those coming out of the initial pseudostate).
(source.oclIsKindOf(Pseudostate) and
(source.kind <> #initial)) implies trigger->isEmpty()
which resolves the above issueRevised Text:
N/ADisposition: ClosedNoChange
-
Updated: Fri, 6 Mar 2015 20:58 GMT