3 Concepts structurels dans le SDL
3.2 Subdivision
3.2.2 Subdivision des blocs
Block-substructure-definition :: Block-substructure-name
Sub-block-definition-set
Channel-connection-set
Channel-definition-set
Signal-definition-set
Data-type-definition
Syntype-definition-set
Block-substructure-name = Name
Sub-block-definition = Block-definition Channel-connection :: Channel-identifier-set
Sub-channel-identifier-set
Sub-channel-identifier = Channel-identifier Channel-identifier = Identifier
La définition Block-substructure-definition doit contenir au moins une définition Sub-block-definition. Sauf indication contraire, on suppose dans la suite que la définition Block-substructure-definition contient un terme de syntaxe abstraite.
Un identificateur Block-identifier contenu dans une définition Channel-definition doit indiquer une définition Sub-block-definition. Une définition Channel-definition reliant une définition Sub-block-definition à la frontière de la définition Block-substructure-definition est appelée définition de sous-canal.
Chaque définition Channel-definition dans le bloc englobant rattachée à la définition Block-substructure-definition doit être membre d'exactement une connexion Channel-connection. Les identificateurs Channel-identifiers dans la connexion
Channel-connection doivent identifier les définitions Channel-definition dans la définition du bloc englobant. Chaque identificateur Sub-channel-identifier doit apparaître dans une connexion Channel-connection exactement.
Pour les signaux qui sortent de la définition Block-substructure-definition, l'union des ensembles Signal-identifier-sets associés à l'ensemble Sub-channel-identifier-set contenu dans une connexion Channel-connection doit être identique à l'union des ensembles Signal-identifier-sets associés à l'ensemble Channel-identifier-set contenu dans la connexion Channel-connection. La même règle s'applique aux signaux qui pénètrent dans la définition Block-substructure-definition. Toutefois, cette règle est modifiée en cas d'affinement du signal, voir 3.3.
Etant donné qu'une définition Sub-block-definition est une définition Block-definition, elle peut être subdivisée; cette opération peut être répétée un nombre quelconque de fois, et donne une structure hiérarchique en arbre de définitions Block-definitions et leurs définitions Sub-block-definitions. On dit que les définitions Sub-block-definitions d'une définition Block-definition existent au niveau inférieur suivant de l'arbre de blocs, voir aussi la Figure 3.2.2.
A
A1 A2
A21 A22
T1007190-92/d14 Level n – 1
Level n
Level n + 1
FIGURE 3.2.2/Z.100 Diagramme d’arbre de blocs FIGURE 3.2.2/Z.100...[D14] = 9 CM
Le diagramme d’arbre de blocs est un diagramme auxiliaire.
Grammaire textuelle concrète
<block substructure definition> ::=
substructure
{[<block substructure name> ]
| <block substructure identifier> } <end>
{ <entity in system> | <channel connection> }+
endsubstructure
[{ <block substructure name> | <block substructure identifier>}] <end>
Si le nom <block substructure name> après le mot clé substructure est omis, il est le même que le nom de la définition
<block definition> ou <block type definition> englobante.
<textual block substructure reference> ::=
substructure <block substructure name> referenced <end>
<channel connection> ::=
connect <channel identifiers>
and <subchannel identifiers> <end>
<subchannel identifiers> ::=
<channel identifiers>
Si une définition <block substructure definition> contient des définitions <channel definition> et <textual typebased block definition>, alors chaque accès des définitions <block type definition> des définitions <textual typebased block definition> doit être connecté à un canal.
S'agissant d'une définition <block substructure definition> dans une définition <block type definition>, les connexions
<channel connection> ne peuvent pas être données. Elles sont dérivées pour les définitions <textual typebased block definition> résultantes selon la définition donnée en 6.1.4.
Grammaire graphique concrète
<block substructure diagram> ::=
<frame symbol>
contains {<block substructure heading>
{ {<block substructure text area>}*
{<macro diagram>}*
<block interaction area>
{<type in system area> }*}set } is associated with {<channel identifiers>}*
Les identificateurs <channel identifiers> identifient des canaux reliés à des sous-canaux dans le diagramme <block substructure diagram>. Ils sont placés à l'extérieur du symbole <frame symbol>, à proximité du point d'extrémité des sous-canaux, sur le symbole <frame symbol>.
Un symbole <channel symbol> à l'intérieur du symbole <frame symbol> et relié à ce dernier, désigne un sous-canal.
<block substructure heading> ::=
substructure
{<block substructure name> | <block substructure identifier>}
<block substructure text area> ::=
<system text area>
<block substructure area> ::=
<graphical block substructure reference>
| <block substructure diagram>
| <open block substructure diagram>
<graphical block substructure reference> ::=
<block substructure symbol> contains <block substructure name>
<block substructure symbol> ::=
<block symbol>
<open block substructure diagram> ::=
{ {<block substructure text area>}*
{<macro diagram>}*
<block interaction area>} set
Lorsqu'une zone <block substructure area> est un diagramme <open block substructure diagram>, le diagramme <block diagram> ou <block type diagram> englobant ne doit pas contenir d'autres définitions que celles des paramètres de contexte formel, des accès et de la sous-structure.
Sémantique Voir 3.2.1.
Modèle
Un diagramme <open block substructure diagram> est transformé en un diagramme <block substructure diagram> de manière telle que dans l'en-tête <block substructure heading>, le nom <block substructure name> soit le même que nom
<name> du diagramme <block diagram> ou <block type diagram> englobant.
Exemple
La Figure 3.3.1 illustre un exemple de diagramme <open block substructure diagram>.
Un exemple de définition <block substructure definition> est donné ci-après.
substructure A ;
signal s5(nat), s6, s8, s9(min);
block a1 referenced;
block a2 referenced;
block a3 referenced;
channel c1 from a2 to env with s1, s2; endchannel c1;
channel c2 from env to a1 with s3;
from a1 to env with s1; endchannel c2;
channel d1 from a2 to env with s7; endchannel d1;
channel d2 from a3 to env with s10; endchannel d2;
channel e1 from a1 to a2 with s5, s6; endchannel e1;
channel e2 from a3 to a1 with s8; endchannel e2;
channel e3 from a2 to a3 with s9; endchannel e3;
connect c and c1, c2 ; connect d and d1, d2 ; endsubstructure A;
Le diagramme <block substructure diagram> du même exemple est représenté par la Figure 3.2.3.
T1007790-93/d15
c1 [s1,s2]
e1 [s5,s6]
e3 [s9]
e2 [s8]
a1 a2
a3
c d
c2 [s3] [s1]
d2 [s10]
d1 [s7]
substructure A
signal s5(nat), s6, s8, s9(min);
FIGURE 3.2.3/Z.100
Diagramme de sous-structure de bloc pour le bloc A FIGURE 3.2.3/Z.100...[D15] = 10 CM