Issue 6348: Control pins (uml2-superstructure-ftf) Source: (Dr. Guus Ramackers, Guus.Ramackers(at)gmail.com) Nature: Revision Severity: Significant Summary: There should be a special kind of pin for control tokens. This will allow parameter sets to be used with control, for example. Also resolves issue of where control is bufferred when it is direceted at a join. Can be implemented as a pin that has no parameter, by making them the last in the ordering of pins, so no parameter corresponds to them. This is also a request of the SysML team. Resolution: see above Revised Text: Actions taken: October 20, 2003: received issue March 8, 2005: closed issue Discussion: Using control with parameter sets requires a user-level type for control, which could be used with parameters. Since UML does not standardize a user-level model library, the resolution below allows it to be indicated on ObjectNode. To address the other half of the issue requires that pins be marked as control for the action, rather than data. Figure 187 of the FAS, ObjectNode, add the attribute isControlType : Boolean = false In ObjectNode class: Description, second paragraph: Remove “and”. At end of sentence, add “, and carrying control values.” Attributes (CompleteActivities) add entry: isControlType : Boolean = false Tells whether the type of the object node is to be treated as control. Semantics (CompleteActivities), add new paragraph at end: An object node may indicate that its type is to be treated as a control value, even if no type is specified for the node. Control edges may be used with the object node having control type. Notation Under Figure 275 of the FAS, paragraph beginning "(CompleteActivities)", third sentence, replace "and ordering" with ", ordering, and control type". After Figure 187, add new figure with caption: Control pins In Pin class, Change title of "Attributes" section to "Attributes (CompleteActivities)", and add new entry: isControl : Boolean = false Tells whether the pins provides data to the actions, or just controls when it executes it. Add new section "Constraints (CompleteActivities), with new constraint: [1] Control pins have a control type. isControl implies isControlType Semantics, add new paragraph at end: "(CompleteActivities) Control pins always have a control type, so they can be used with control edges. Control pins are ignored in the constraints that actions place on pins, including matching to behavior parameters for actions that invoke behaviors. Tokens arriving at control input pins have the same semantics as control arriving at an action, except that control tokens can queue up in control pins. Tokens are placed on control output pins according to the same semantics as tokens placed on control edges coming out of actions." Notation Just before the last sentence of the section, in its own paragraph, add "(CompleteActivities) Control pins are shown with a text annotation placed near the pin symbol {control}.". In ControlFlow class, Constraints, change first constraint to: [1] Control flows may not have object nodes at either end, except for object nodes with control type. End of Annotations:===== me: Guus Ramackers Company: Oracle mailFrom: guus.ramackers@oracle.com Nature: Revision Severity: Significant Subject: Control pins There should be a special kind of pin for control tokens. This will allow parameter sets to be used with control, for example. Also resolves issue of where control is bufferred when it is direceted at a join. Can be implemented as a pin that has no parameter, by making them the last in the ordering of pins, so no parameter corresponds to them. This is also a request of the SysML team.