Issue 6090: Variable and Pin multiplicity (uml2-superstructure-ftf) Source: NIST (Dr. Conrad Bock, conrad.bock(at)nist.gov) Nature: Revision Severity: Significant Summary: The text refers to multiplicity of Variable and Pin, but they do not inherit from MultiplicityElement Resolution: see above Revised Text: Actions taken: August 30, 2003: received issue March 8, 2005: closed issue Discussion: The text refers to multiplicity of Variable and Pin, but they do not inherit from MultiplicityElement Discussion: Variables should have multiplicity, this was inadvertantly removed when Multiplicity was separated from TypedElement during the submission process. Answering issue 6107, lower multiplicity on pins tells how many values are needed as input to start the action, and how many are needed as output to complete the action. Upper multiplicity tells how many values are consumed from the input at the start of an execution, and how many will be produced on output. This is similar to parameter multiplicity on behaviors when called with invocation actions. It is not the same as upperBound on object nodes, which is a maximum buffer size. isUnique is false for pins, because because multiple tokens can have the same value in an object node. Changes listed below. ?? In Figure 192, add MultiplicityEle ment (from Kernel) as a parent of Variable. ?? In Figure 176, add MultiplicityElement (from Kernel) as a parent of Pin. ?? In Pin class, Constraints, add new constraint: “isUnique = false” In Semantics, at the end in its own paragraph, add: "Pin multiplicity controls action execution, not the number of tokens in the pin (see upperBound on ObjectNode). See InputPin and OutputPin for semantics of multiplicity. ?? In the InputPin class, add Semantics section and insert: "An action cannot start execution if an input pin has fewer values than the lower multiplicity. The upper multiplicity determines how many values are consumed by a single execution of the action." ?? In the OutputPin class, add Semantics section and insert: "An action cannot terminate itself if an output pin has fewer values than the lower multiplicity. An action may not put more values than the upper multiplicity in a single execution." Disposition: Resolved End of Annotations:===== Reply-To: From: "Conrad Bock" To: Subject: UML 2 Superstructure issues Date: Sat, 30 Aug 2003 18:01:01 -0400 X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) Importance: Normal Hi Juergen, Do you mind if I file the UML 2 Superstructure issues below as a batch? Some of them are from other people, so each has Name, Company, and mailFrom fields to indicate the reporter. I put the typos all in one issue. Wasn't sure if they need to be filed. Conrad ******************************************************************** Name: Jim Frank Company: IBM mailFrom: joachim_frank@us.ibm.com Nature: Revision Severity: Significant Subject: Variable and Pin multiplicity The text refers to multiplicity of Variable and Pin, but they do not inherit from MultiplicityElement. ******************************************************************** Reply-To: From: "Conrad Bock" To: "uml2ftf" Subject: RE: ,av,,ac, Proposals for ballot 12 (April 14) Date: Tue, 13 Apr 2004 17:14:09 -0400 X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) Importance: Normal Bran, > Concerning issues 7113, 7114, 7116, and 7120: you are proposing > to handle all of these distinct issues as part of the resolution > to issue 6090. Issue 6090 is written very generally, referring to "the text". All text about pin multiplicity must be addressed, including the parts referred to above. The duplicate issues propose solutions to the inconsistency stated in 6090, and these solutions may not be the ones adopted. See attached update with a rewording to clarify. > Concerning the resolution to 6365 in which you recommend that the > activity execution itself is the context object for the > ReadSelfAction: I seem to recall that there was some controversy > about this in the U2P. There was, but it was agreed in the end. > But, even if we agree to this solution, it sounds as if this requires > some additional explanation about the notion of 'activity execution > object". If this is the only mention of such a beast, it will > undoubtedly raise further questions. It is referred to as a "reflective object" in the semantics of activity. See if the attached version is better. If there is a need to clarify behavior-as-class, etc, it can be taken as a separate issue. Conrad issueresolution-cb-51.doc OMG Issue No: 6090 Title: Variable and Pin multiplicity Source: Kabira Technologies, Inc. (Mr. Conrad Bock, conrad.bock@nist.gov) Summary: The text refers to multiplicity of Variable and Pin, but they do not inherit from MultiplicityElement Discussion: Variables should have multiplicity, this was inadvertantly removed when Multiplicity was separated from TypedElement during the submission process. Answering issue 6107, lower multiplicity on pins tells how many values are needed as input to start the action, and how many are needed as output to complete the action. Upper multiplicity tells how many values are consumed from the input at the start of an execution, and how many will be produced on output. This is similar to parameter multiplicity on behaviors when called with invocation actions. It is not the same as upperBound on object nodes, which is a maximum buffer size. isUnique is false for pins, because because multiple tokens can have the same value in an object node. Changes listed below. In Figure 192, add Kernel:MultiplicityElement as a parent of Variable. In Figure 176, add Kernel:MultiplicityElement as a parent of Pin. In the Pin class, In the Constraints, add this constraint: [2] isUnique = false In the semantics section, at the end in its own paragraph, add: "Pin multiplicity controls action execution, not the number of tokens in the pin (see upperBound on ObjectNode). See InputPin and OutputPin for semantics of multiplicity. Pin multiplicity is not unique, because multiple tokens with the same value can reside in an object node." In the InputPin class, introduce a Semantics section with this in it: "An action cannot start execution if an input pin has fewer values than the lower multiplicity. The upper multiplicity determines how many values are consumed by a single execution of the action." In the OutputPin class, introduce a Semantics section with this in it: "An action cannot terminate itself if an output pin has fewer values than the lower multiplicity. Disposition: Resolved OMG Issue No: 6090 Title: Variable and Pin multiplicity Source: Kabira Technologies, Inc. (Mr. Conrad Bock, conrad.bock@nist.gov) Summary: The text refers to multiplicity of Variable and Pin, but they do not inherit from MultiplicityElement Discussion: Variables should have multiplicity, this was inadvertantly removed when Multiplicity was separated from TypedElement during the submission process. Answering issue 6107, lower multiplicity on pins tells how many values are needed as input to start the action, and how many are needed as output to complete the action. Upper multiplicity tells how many values are consumed from the input at the start of an execution, and how many will be produced on output. This is similar to parameter multiplicity on behaviors when called with invocation actions. It is not the same as upperBound on object nodes, which is a maximum buffer size. isUnique is false for pins, because because multiple tokens can have the same value in an object node. Changes listed below. In Figure 192, add MultiplicityElement (from Kernel) as a parent of Variable. In Figure 176, add MultiplicityElement (from Kernel) as a parent of Pin. In Pin class, Constraints, add new constraint: .isUnique = false. In Semantics, at the end in its own paragraph, add: "Pin multiplicity controls action execution, not the number of tokens in the pin (see upperBound on ObjectNode). See InputPin and OutputPin for semantics of multiplicity. In the InputPin class, add Semantics section and insert: "An action cannot start execution if an input pin has fewer values than the lower multiplicity. The upper multiplicity determines how many values are consumed by a single execution of the action." In the OutputPin class, add Semantics section and insert: "An action cannot terminate itself if an output pin has fewer values than the lower multiplicity. An action may not put more values than the upper multiplicity in a single execution." Disposition: Resolved :wq OMG Issue No: 6090 Title: Variable and Pin multiplicity Source: Kabira Technologies, Inc. (Mr. Conrad Bock, conrad.bock@nist.gov) Summary: The text refers to multiplicity of Variable and Pin, but they do not inherit from MultiplicityElement Discussion: Variables should have multiplicity, this was inadvertantly removed when Multiplicity was separated from TypedElement during the submission process. Answering issue 6107, lower multiplicity on pins tells how many values are needed as input to start the action, and how many are needed as output to complete the action. Upper multiplicity tells how many values are consumed from the input at the start of an execution, and how many will be produced on output. This is similar to parameter multiplicity on behaviors when called with invocation actions. It is not the same as upperBound on object nodes, which is a maximum buffer size. isUnique is false for pins, because because multiple tokens can have the same value in an object node. Changes listed below. In Figure 192, add MultiplicityElement (from Kernel) as a parent of Variable. In Figure 176, add MultiplicityElement (from Kernel) as a parent of Pin. In Pin class, Constraints, add new constraint: .isUnique = false. In Semantics, at the end in its own paragraph, add: "Pin multiplicity controls action execution, not the number of tokens in the pin (see upperBound on ObjectNode). See InputPin and OutputPin for semantics of multiplicity. In the InputPin class, add Semantics section and insert: "An action cannot start execution if an input pin has fewer values than the lower multiplicity. The upper multiplicity determines how many values are consumed by a single execution of the action." In the OutputPin class, add Semantics section and insert: "An action cannot terminate itself if an output pin has fewer values than the lower multiplicity. An action may not put more values than the upper multiplicity in a single execution." Disposition: Resolved