www.pudn.com > use-2.3.0.zip   To Read all the content


[file head]:
-- $ProjectHeader: use 2-3-0-release.1 Mon, 12 Sep 2005 20:18:33 +0200 green $

-- This file is intended to specify the actionsemantics model as defined in
-- in Response to OMG RFP ad/98-11-01
-- U. of York. October 2000
-- Jose Alvarez


-- $Id: actionsemantics.use 1.10 Fri, 01 Jul 2005 12:52:05 +0200 hanna $

-- issues to resolve:
-- - can't specify navigavibility

-- minor changes:

-- - all associations have a name

-- - renamed identifiers which are keywords in USE (e.g., association,
-- aggregate). Appended an underscore to these names.

-- - calls of additional (user-defined) operations with no arguments
-- contain parentheses '()'

-- - replaced occurrences of Boolean enumeration types by the real
-- Boolean type.


-- error categories:
-- MM-ERR: error in class diagram of UML metamodel

-- E0: not yet available in USE
-- E0.1: association class not available
-- E0.2: 0..1 association end as set
-- E1: Typo/Notation

-- E2: Inconsisteny
-- E2
... ...

[file tail]:
... ...
d/98-11-01
-- U. of York. October 2000
-- Jose Alvarez
--------------------------------------------------------------
-- constraints
--------------------------------------------------------------

context ApplyFunctionAction
-- Well-formedness rules
-- [1] The number and types of the input argument and output result pins
-- must be compatible with the number and types of the parameters of the function.
inv compatible_pins:
self.argument->size() = self.function.inputType->size()

-- Sequence {1..self.input_argument()->size( )} -> forAll (i:Integer |
-- let argumenti = self.input_argument (i)
-- let inparameteri = self.function.inputType->at(i)
-- argumenti.type.isCompatibleWith (inparameteri.type))
-- self.output_result()->size( ) = self.function.outputType->size( )
-- Sequence {1..self.output_result()->size( )} -> forAll (i:Integer |
-- let resulti = self.output_result (i)
-- let outparameteri = self.function.outputType->at(i)
-- outparameteri.type.isCompatibleWith (resulti.type))