Issue 15394: Ambiguous constraints for transitions (uml2-rtf) Source: (, ) Nature: Clarification Severity: Minor Summary: Current UML specification use the two following constraints: 15.3.8 Pseudostate (from BehaviorStateMachines) Constraint [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()) 15.3.14 Transition (from BehaviorStateMachines) Constraint [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() These constraints are not really contradictory but it is not clear to know if an initial pseudostate can or cannot have a trigger. Resolution: Revised Text: Actions taken: August 3, 2010: received issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 03 Aug 2010 11:10:58 -0400 To: Subject: Issue/Bug Report ******************************************************************************* Name: Samuel Rochet Employer: Safran Engineering Services mailFrom: samuel.rochet@airbus.com Terms_Agreement: I agree Specification: OMG Unified Modeling LanguageTM (OMG UML), Section: 15.3.8 and 15.3.14 FormalNumber: formal/2010-05-05 Version: 2.3 Doc_Year: 2009 Doc_Month: February Doc_Day: 02 Page: 555 and 587 Title: Ambiguous constraints for transitions Nature: Clarification Severity: Minor CODE: 3TMw8 B1: Report Issue Description: Current UML specification use the two following constraints: 15.3.8 Pseudostate (from BehaviorStateMachines) Constraint [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()) 15.3.14 Transition (from BehaviorStateMachines) Constraint [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() These constraints are not really contradictory but it is not clear to know if an initial pseudostate can or cannot have a trigger.