Issue 4933: Action for starting procedure (action-semantics-ftf) Source: NIST (Mr. Conrad Bock, conrad.bock@nist.gov conradb@cme.nist.gov) Nature: Uncategorized Issue Severity: Summary: Conrad Bock] Add action for starting procedure (StartProcedureAction) [Jim Rumbaugh] FinishProcedureAction, ReturnFromCallAction. Resolution: accept Revised Text: In Other Actions metamodel figure in Read Write chaper, added CallProcedureAction as kind of PrimitiveAction, with 0..* input and output pins, a 1..1 Procedure, and an isSynchronous boolean attribute. Added this sentence at the end of the Other Actions ovrview section of Read Write chapter: CallProcedureAction starts a procedure passing inputs, and waiting for outputs if it is synchronous. Added class entry for CallProcedureAction as follows: This action starts a statically-specified procedure, passing inputs, and waiting for outputs if it is synchronous. Associations procedure: Procedure [1..1] Procedure to be started. input: InputPin [0..*] (Derived from Action:inputPin) Gives the input pin from which is obtained the inputs for starting the procedure. output: OutputPin [0..*] (Derived from Action:outputPin) Gives the output pin from which is obtained the outputs of a synchronously started procedure. Inputs input: T [0..*], where T matches the order and types of the procedure inputs. Outputs output: T [0..*], where T matches the order and types of the procedure outputs. Well-formedness rules [1] Asynchronous calls can have no ouput pins. self.isSynchronous = #false implies self.output->size() = 0 [2] The number, type, and order of the input and output pins must be the same as the number, type, and order of the procedure inputs and outputs. self.input->size( ) = self.procedure.argument->size( ) and Sequence {1..self.input->size( )} -> forAll (i:Integer | let inputi = self.input->at(i) in let argi = self.procedure.argument->at(i) in inputi.type = argi.type) and self.output->size( ) = self.procedure.result->size( ) and Sequence {1..self.procedure.result->size( )} - > forAll (i:Integer | let outputi = self.output->at(i) in let resulti = self.procedure.result>at(i) in outputi.type = resulti.type) Actions taken: March 5, 2002: received issue December 11, 2002: closed issue Discussion: Accept, but name it CallProcedureAction. Decline FinishProcedureAction, ReturnFromCallAction End of Annotations:===== Summary: Action for starting procedure Text: [Conrad Bock] Add action for starting procedure (StartProcedureAction) [Jim Rumbaugh] FinishProcedureAction, ReturnFromCallAction.