ГОСТ Р 55346—2012
(* The data specifies the Datajnstance object in the interface. ’)
data : datajnstance:
(* The port_of specifies the Functional_state_context object for which the Formal_data_interaction_port provides part of
the interface. *)
port_of: functional_state_context;
END_ENTITY:
(’ A Formai_io_port is a type of lo_port and the definition of an element of the interface to a GeneralJunction_definition.
<note number=»1»>lf a GeneralJunction_definition has an interface one or more formalJo_port objects will specify the
interface.</note> <note number=»2»>Flow ports are classified according to three criteria in the data model:</note> <ol>
<li>Whether the port is formal (attached to a GeneralJunction_definitk>n) or actual (attached to a Functionjnstance.
Fsm_model. Persistent_storage or lo_splitJoin).</li> <6>Whether the port is an input or output port.<Ai> <li>Whether
the port is a flow or control port (a flow port carries data whereas control port carries triggering information such as start
stop, suspend, resume). <li> </o4> From this classification the role the port plays with regard to the FunctionaIJink ob
jects connected to the port can be derived. A port can «consume» flows (the data on the flow is delivered to the port) or it
can produce flows (the data on the flow is delivered from the port). For instance, a formaljo_port object whose direction
attribute is «output» produces data, while anActual Jo_port whose direction attribute is «input» consumes data. <p>ln
the data model we capture this information in the derived role attribute. This attribute is used to ensure that Function
aIJink objects are connected correctly (a FunctionaIJink object must have one producer and one consumer), and that
lo_port_binding objects are applied only to ports where the actual_port in the binding is a producer of information and the
formal_port in the binding is a consumer or vice versa.</p> <note number=»3»>When a Functionjnstance of the Gener-
al_function_definition is created an ActualJo_port object corresponding toeach formalJo_port is created if (and only if)
there is a flow connected to the actual port (and the actual port is related to the corresponding formalJo_portobject via a
lo_portJ>inding object).</note> ’ )
ENTITY formalJo_port
SUBTYPE OF (io_port);
(* The port_of specifies the GeneralJunction_definition for which this is a port. This attribute is reinforced by the inverse
relationship which indicates that a port_of can only point at a definition but a definition can be referred to by several
ports. *)
port_of: generalJunction_definition:
DERIVE
SELF\io_port.role : port_data_relation := determineformalportrole(SELF);
UNIQUE
UR1: port_of. SELF\io_port.io_port_number. SELF\io_port.portJype;
END_ENTlTY:
(*A Formal_physical_port is a type of Physical_port and represents either an input and an output or an input or an output
of a General_physical_defmition. *)
ENTITY formal_physical_port
SUBTYPE OF (physical_port);
(* The port_of specifies the General_physical_defintion object for which the Formal_physical_port provides part of the
interface. *)
port_of: general_physical_definition:
END_ENT!TY;
(*A Formal_port_position is a type of Visual_element and the representation of the graphical position of a Formal port, a
FormalJo_port. or a Formal_physical_port object. *)
ENTITY formal_port_position
SUBTYPE OF (visual_element);
(* The position specifies the position of the port. *)
position : graphics_point;
(‘ The positioned_port specifies the formal port that is positioned by the Formal_port_position. *)
positioned_port: port_position_select;
END_ENTITY:
(’ An Fsm_and_state is a type of Fsm_state and the representation of a decomposed state in a finite state machine
where all child Fsm_state objects are active concurrently.An And_state is composed of a minimum of two child Fsm_
states.’)
ENTITY fsm_and_state
SUBTYPE OF (fsm_state);
INVERSE
335