Subject: Graphical grammar for connections
From: Rick Reed TSE (rickreed#tseng.co.uk)
Date: Tue Dec 19 2000 - 17:24:56 GMT
See Z.100 10.2 Connection
Concrete Graphical Grammar
"Graphically, the connect construct is represented by the graphical
connection of a <channel symbol> in a <channel definition area> to an
<external channel identifiers>in a <gate on diagram>."
But <gate on diagram> does not contain <external channel identifiers>.
The syntax is now:
<gate on diagram> ::=
<graphical gate definition> | <graphical interface gate definition>
It seems that <external channel identifiers> was moved to:
<block diagram> ::=
<frame symbol> contains {<block heading> <agent diagram content> }
is connected to { {<gate on diagram>}*
<external channel identifiers> }set
[ is associated with <package use area> ]
<process diagram> ::=
<frame symbol> contains {<process heading> <agent diagram content> }
is connected to { {<gate on diagram>}*
<external channel identifiers> }set
[ is associated with <package use area> ]
So the text in 10.2 should read:
"Graphically, the connect construct is represented by the graphical
connection of a <channel symbol> in a <channel definition area> to an
<external channel identifiers> of the enclosing."
However, there are are further issues. In <block diagram> and <process
diagram> exactly one one <external channel identifiers> is required. The
syntax for <external channel identifiers> is
<external channel identifiers>::=
<channel identifier> { , <channel identifier>}*
so at least one channel identifier is required. This should not be the case
- it should be possible to omit channel names entirely and it could be that
the process is connected only by gates, in which case there should no no
channel names.
Moreover, there should be a set of channel identifiers for each connection
as in the textual grammar, not just one set for all connection points. The
syntax for block diagram> and <process diagram> should therefore be:
<block diagram> ::=
<frame symbol> contains {<block heading> <agent diagram content> }
is connected to { {<gate on diagram>}*
<external channel identifiers>* }set
[ is associated with <package use area> ]
<process diagram> ::=
<frame symbol> contains {<process heading> <agent diagram content> }
is connected to { {<gate on diagram>}*
<external channel identifiers>* }set
[ is associated with <package use area> ]
Furthermore, it is not allowed to have a <external channel identifiers>
outside a <composite state graph area> or <state aggregation area> though
both of these have connected <gate on diagram>*, and channels can (at least
in the textual grammar) connect to a state identifier. So for consistency in
my opinion the syntax should be:
11.11.1 Concrete graphical grammar
<composite state graph area> ::=
<frame symbol> contains {
<composite state heading>
{ <composite state text area>*
<entity in composite state area>*
<composite state body area> } set }
is associated with {<graphical state connection point>* } set
is connected to
{ {<gate on diagram>}* <external channel identifiers>* }set
[ is associated with <package use area> ]
11.11.2 Concrete graphical grammar
<state aggregation area> ::=
<frame symbol> contains {
<state aggregation heading>
{ <composite state text area>*
<entity in composite state area>*
<state aggregation body area> } set }
is associated with {<graphical state connection point>* } set
is connected to
{ {<gate on diagram>}* <external channel identifiers>* }set
[ is associated with <package use area> ]
The sentence in 8.1.1.3 Concrete graphical grammar
"The <gate on diagram> in a <block type diagram> may not include <external
channel identifiers>."
should be deleted because this construct is not allowed by the syntax.
Similarly for the sentence in 8.1.1.4 Concrete graphical grammar
"The <gate on diagram> in a <process type diagram> may not include <external
channel identifiers>."
Similarly for the sentence in 8.1.1.5 Concrete graphical grammar
"The <gate on diagram> in a <composite state type diagram> may not include
<external channel identifiers>."
Lastly, it is obvious to me that when a block diagram or process diagram (or
composite state area if we add the changes above) is nested directly in the
surrounding diagram (that is: it is not a referenced diagram), the <external
channel identifiers> are omitted because these are derived from the
connecting channels. However, I could not find this described anywhere in
Z.100, so I think we need to add some text for that.
-- Rick Reed - rickreed#tseng.co.uk Tel:+44 1455 55 96 55 Fax:+44 1455 55 96 58 Mob.:+44 7970 50 96 50
This archive was generated by hypermail 2a23 : Mon May 05 2008 - 20:30:55 GMT