Specification SART
Specification SART
Specification SART
27
2 • Spécification 2.1 Introduction générale
selon la méthode SA-RT à la méthode SA-RT
données. Cette méthode très générale de description d’un système a été adaptée à
la spécification de logiciels avec la méthode très connue SA (Structured Analysis)
(figure 2.1).
Spécification
Structured Analysis
statique SA (E. Yourdon, T. Demarco, 1979)
d’un logiciel
Spécification
Structured Analysis Real Time
dynamique SA-RT (Ward/Mellor, 1985 ; Hatley/Pirbhai, 1986)
d’un logiciel
L’analyse structurée SA, définie par E. Yourdon et T. Demarco, est une méthode
descendante par affinages successifs des traitements, appelés « process ». Les différents
diagrammes sont donc ordonnés hiérarchiquement en faisant apparaître pour les
derniers niveaux des fonctions élémentaires, appelées primitives élémentaires ou
« process » primitifs. Les différents outils composant cette méthode sont :
– diagrammes de transformations de données ou diagramme de flots de données
(DFD) ;
– dictionnaire de données ;
– spécifications des « process » primitifs.
Les diagrammes de flots de données sont construits à partir de quatre éléments
graphiques : traitement (cercle), flot de données (flèche), unité de stockage (traits
parallèles) et entité externe (rectangle) (tableau 2.1). À partir de ces éléments de base,
il est possible de décrire l’aspect fonctionnel d’une application par un diagramme flots
de données. Un exemple, présenté sur la figure 2.2, montre l’analyse d’une applica-
tion très simple de régulation de température avec trois entités externes, deux process
et une unité de stockage.
Remarque
Il est intéressant de noter que cette description graphique fonctionnelle d’une application à l’aide
de la méthode SA sera presque entièrement reprise dans la méthode SA-RT, montrant bien ainsi sa
dépendance chronologique.
28
2 • Spécification 2.1 Introduction générale
selon la méthode SA-RT à la méthode SA-RT
Témoin
de chauffage
Température_consigne Commande_chauffage
de représentation : d’une part, la méthode établie par Ward et Mellor en 1985 qui
associe le fonctionnel et le contrôle dans un même diagramme et, d’autre part, la
méthode proposée par Hatley et Pirbhai en 1986 qui sépare le fonctionnel et le
contrôle. Mais ces deux vues de la même méthode restent très similaires en termes de
capacité d’expression de la spécification. Nous présentons dans cet ouvrage la
méthode SA-RT établie par Ward et Mellor en 1985.
Comme le montre la figure 2.1, la méthode SA-RT a continué à évoluer au sein
des entreprises en intégrant des besoins spécifiques à un domaine d’applications.
Ainsi, nous trouvons une méthode SA-RT, appelée ESML et utilisée dans l’avionique,
qui a été enrichie d’un point de vue flot de contrôle.
29
2 • Spécification 2.2 Présentation de la syntaxe graphique
selon la méthode SA-RT de la méthode SA-RT
La méthode SA-RT intègre les trois aspects fondamentaux d’une méthode de spéci-
fication en mettant l’accent sur les deux premiers qui sont des points essentiels dans
les applications de contrôle-commande :
– aspect fonctionnel (ou transformation de données) : représentation de la trans-
formation que le système opère sur les données et spécification des processus qui
transforment les données ;
– aspect événementiel (piloté par les événements) : représentation des événements
qui conditionnent l’évolution d’un système et spécification de la logique de
contrôle qui produit des actions et des événements en fonction d’événements en
entrée et fait changer le système d’état ;
– aspect informationnel (données) : spécification des données sur les flots ou dans
les stockages. Ce dernier aspect qui est en général assez négligé dans ce type d’appli-
cation peut faire l’objet d’une description spécifique choisie au sein d’une entre-
prise.
30
2 • Spécification 2.2 Présentation de la syntaxe graphique
selon la méthode SA-RT de la méthode SA-RT
Lecture Écriture
de données de données
Étiquette
Processus
N
Transformation
de données
Exemples
Signal Température
température Mesurer mesurée
température
1
Signal Allumage
interrupteur Commander lampe
lampe
2
Distance
parcourue
Affichage
Calculer vitesse
vitesse
3
Top horloge
31
2 • Spécification 2.2 Présentation de la syntaxe graphique
selon la méthode SA-RT de la méthode SA-RT
_2
ée
Décomposition
nn
Do
Donné e Donné e Do Donné e Do
nn nn
ée ée
_1 _1
ée
Donné e Donné e _2 Donné e
_1
_1
ée
nn
ée
nn
Do
Do
Le flot Donné e s ’est enrichi Le flot Donné e est construit avec
Création alternative de Donné e les flots Donn é e _ 1 et Donné e _ 2
de Donné e _ 1
Ces flots de données peuvent se décomposer ou au contraire se regrouper lors des liai-
sons entre les processus fonctionnels dans le diagramme flot de données (figure 2.5).
Pression
Température
Paramètres_moteur Paramètres_moteur
32
2 • Spécification 2.2 Présentation de la syntaxe graphique
selon la méthode SA-RT de la méthode SA-RT
Température_consigne*
Température_mesurée
Afficher Affichage
température
3
Température_consigne*
Remarque
Pour des besoins de clarté graphique, un stockage de données peut être visualisé plusieurs fois sur
un diagramme flot de données en notant cette duplication par une « * ».
33
2 • Spécification 2.2 Présentation de la syntaxe graphique
selon la méthode SA-RT de la méthode SA-RT
Signal Production
Capteur de données
Commande Consommation
Actionneur de données
Pilotage de l’exécution
Événement
Pilotage de l’exécution
Donnée_1 Donnée_1
Processus Processus
1 Donnée_3 1 Donnée_3
Donnée_2 Donnée_2
(a) (b)
34
2 • Spécification 2.2 Présentation de la syntaxe graphique
selon la méthode SA-RT de la méthode SA-RT
Température
Déclenchement
Vérifier Contrôler
température chauffage
1 2
Trop_chaud
Température_consigne
Les deux premiers événements sont utilisés ensemble « E/D » pour piloter un processus
fonctionnel de type « boucle sans fin » ou périodique, c’est-à-dire que le processus
de contrôle doit lancer l’exécution de ce processus avec l’événement « E » et ensuite
peut l’arrêter avec l’événement « D ». L’événement « T » est utilisé pour activer un
processus fonctionnel de type « début-fin » ou sporadique, c’est-à-dire que le pro-
cessus de contrôle doit lancer l’exécution de ce processus avec l’événement « T » et
ensuite le processus s’arrête à la fin de son exécution sans intervention du contrôle.
35
2 • Spécification 2.3 Les diagrammes flot de données
selon la méthode SA-RT
36
2 • Spécification 2.3 Les diagrammes flot de données
selon la méthode SA-RT
Opérateur 1
Consigne_1
Capteur 1 Donnée_E_1 Donnée_S_1 Actionneur 1
Écran
Conducteur
© Dunod – La photocopie non autorisée est un délit.
Commande_freinage
Système de freinage
Contrôler
Bouton activation ABS système
Activation_ABS freinage
0 Voyant ABS
Affichage_ABS
37
2 • Spécification 2.3 Les diagrammes flot de données
selon la méthode SA-RT
Donnée_lue
Capteur_1
Actionneur_1
Acquérir Traiter Donnée_calculée Commander
donnée donnée actionneur
1 2 3
Autre_Donnée_2
Le passage des données entre les processus fonctionnels peut être réalisé selon les
besoins avec les deux méthodes de base : flots de données direct (exemple entre les
processus 2 et 3) ou unité de stockage (cas des processus 1 et 2).
Ainsi, dans l’exemple simple d’un système de freinage automobile (§ 2.3.1), le dia-
gramme préliminaire est constitué de cinq processus fonctionnels (figure 2.15). Au
niveau de cet exemple simple, nous n’avons pas une décomposition fonctionnelle
aussi complexe que l’exemple générique présenté précédemment : seules les parties
38
2 • Spécification 2.3 Les diagrammes flot de données
selon la méthode SA-RT
Acquérir
demande Niveau_freinage
Demande_freinage freinage
1
Commande_freinage
Commander
Détecter État_glissement freinage
glissement 3
Glissement_roue de roue
2
Lire Afficher
État_bouton_ABS
bouton état bouton
ABS Affichage_ABS
Activation_ABS ABS
4
39
2 • Spécification 2.3 Les diagrammes flot de données
selon la méthode SA-RT
Diagramme de contexte
Capteur1 a
Contrôler c
système Actionneur
0
Capteur2 b
Diagramme préliminaire
Processus
c
a Processus 3 Légende
1 d e
Processus
2
: Processus
Processus
Stockage b à décomposer
a Processus
1.1 f d
Processus
1.2
Stockage
2.3.4 Conclusion
La décomposition hiérarchique fonctionnelle, explicitée dans ce paragraphe, est la
base de la méthode d’analyse SA-RT. Mais l’aspect temporel ou plus exactement le
contrôle de l’enchaînement dans l’exécution de ces différents processus fonctionnels
n’est pas décrit au travers de ces diagrammes flots de données. Ceci va donc faire
l’objet d’un complément au niveau de ces diagrammes par l’aspect « contrôle ».
40
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
Nous pouvons souligner qu’il ne peut pas exister de processus de contrôle au niveau
du diagramme de contexte puisqu’un seul diagramme fonctionnel est représenté.
En revanche, il est tout à fait possible d’avoir des flots de contrôle au niveau de ce
diagramme de contexte entre les terminaisons et le processus fonctionnel. Ces flots
de contrôle, correspondant à des signaux tout ou rien, doivent être réservés à des
signaux particuliers ne nécessitant aucun processus fonctionnel particulier (acqui-
sition, mise en forme…). Ainsi, nous pouvons citer les événements externes tels
que « frappe clavier », « click souris », « interrupteur de mise sous tension », etc.
Pour préciser de façon plus complète ces notions de signaux et d’événements, nous
pouvons considérer qu’un signal nécessite une acquisition (scrutation périodique
par exemple) et une mise en forme minimum. Le résultat de ce « prétraitement »
peut alors effectivement devenir un événement. La figure 2.17a illustre cette diffé-
rence signal/événement en considérant l’exemple d’un interrupteur. Le signal élec-
trique fourni par l’interrupteur tout ou rien peut être considéré comme un événement
Processus fonctionnel
Bord de modèle
Signal_interrupteur
Événement_interrupteur
Figure 2.17 – Méthodes de prise en compte d’un signal électrique afin de réaliser une trans-
formation données-événements : (a) processus fonctionnel dans le diagramme préliminaire,
(b) circuit électronique visualisé au niveau du diagramme de contexte.
41
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
Conducteur
Commande_freinage
Système de freinage
Contrôler
Bouton activation ABS système
Activation_ABS freinage
0 Voyant ABS
Affichage_ABS
Rappelons que l’ensemble des flots entrants et sortants de l’unique processus fonc-
tionnel du diagramme de contexte doit se retrouver dans le diagramme préliminaire
y compris les flots de contrôle s’ils existent.
42
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
Autre_Donnée_2
Traiter
donnée
Donnée_lue 2
Donnée_calculée
Traitement_terminé T
Capteur_1 Actionneur_1
T E/D
Acquérir Contrôler Commander
donnée application actionneur
1 6 3
Capteur_2
Actionneur_2
Acquisition_terminée
Mise_en_marche
minaire, représenté sur la figure 2.15, va être modifié pour intégrer un processus de
contrôle. En particulier, les deux flots de données « Etat_glissement » et « Etat_
bouton_ABS » de type booléen deviennent des événements envoyés respectivement
par les processus fonctionnels « Détecter glissement roue » et « Lire boutons ABS ».
Nous obtenons alors le diagramme préliminaire complet de la figure 2.20.
Cet exemple de diagramme préliminaire, présenté sur la figure 2.20, doit faire
l’objet de plusieurs remarques qui sont généralisables à la réalisation d’un diagramme
préliminaire quelconque. Ainsi, nous pouvons noter :
– Tous les différents processus fonctionnels sont liés au processus de contrôle par
des flots de contrôle de type « E/D » ou « T ». Le choix de l’un ou l’autre de ces
43
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
Acquérir
demande
Demande_freinage freinage Pa Niveau_freinage
s_
1 de
_f
re
in
Fr
ag Commande_freinage
e
ein
Commander
ag
freinage
e
3
E/D
E/D
e_
Pas_d ent
m
Détecter glisse
glissement E/D Contrôler
Glissement_ de roue application
roue 2 G li s s 6
em ent E/D
vé
T Afficher
acti
état bouton
S_
vé ABS
AB
cti Affichage_ABS
n _a 5
no
Lire S_
AB
bouton
Activation_ABS ABS Mise_en_marche
4
événements est fait, comme nous l’avons déjà vu, en fonction de la structure de
fonctionnement interne du processus fonctionnel : processus de type « boucle
sans fin » ou de type « début-fin ».
– Certains processus fonctionnels possèdent des retours d’exécution vers le processus
de contrôle. Dans ce cas, il est souhaitable d’expliciter les événements indiquant
le résultat du traitement, par exemple « ABS_activé ». Ces événements pour-
raient être caractérisés par des variables de type booléen ; ainsi l’absence d’occur-
rence de l’événement « ABS_activé » pourrait être interprétée comme NON
(« ABS_activé ») – NON étant l’opération booléenne. Mais, dans beaucoup de
cas, il est préférable pour des raisons de clarté opérationnelle, de faire apparaître
les deux événements possibles : « ABS_activé » et « ABS_non_activé ».
– Il ne faut pas oublier de connecter les flots de contrôle du diagramme précédent
réalisé dans l’analyse descendante, par exemple l’événement « Mise_en_marche »
du diagramme de contexte.
La mise en place du processus de contrôle au niveau d’un diagramme préliminaire
ou d’un diagramme de décomposition avait pour but d’exprimer l’exécution ou
l’enchaînement des processus fonctionnels. L’objectif n’est pas complètement atteint
puisque le diagramme flot de données ainsi complété ne reflète pas cette exécution.
Il est nécessaire d’ajouter cette information supplémentaire décrivant le fonction-
nement du processus de contrôle, cela se traduit généralement par un diagramme
état/transition que nous allons décrire dans le paragraphe suivant.
44
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
État courant
événement
action
État suivant
Pour illustrer cette description du processus de contrôle avec un exemple très géné-
rique, reprenons le diagramme préliminaire de la figure 2.19 qui représente la
© Dunod – La photocopie non autorisée est un délit.
45
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
État repos
Mise_en_marche
<E> 3
<T> 1
Phase d’acquisition
Acquisition_terminée
<T> 3
Phase de traitement
Traitement_terminé
<T> 1
– Les actions du processus de contrôle sur les processus fonctionnels sont notées
par « < E ou D ou T > + numéro ou nom du processus fonctionnel ». Il peut y avoir
plusieurs actions de ce type associées à une seule transition.
Mise en marche
<E> 1
<D> 5
Pas de freinage
demandé
Freinage
<T> 4
<E> 3
Test
Pas de freinage Pas de freinage Pas de freinage
ABS
<D> 3 <D> 3 <D> 3
<D> 2 <D> 2 ABS_activé ABS_non_activé
<E> 5 <D> 5
<E> 2
Freinage Freinage
avec ABS sans ABS
Pas de freinage
(ABS)
46
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
47
2 • Spécification 2.4 L’aspect contrôle de la méthode SA-RT
selon la méthode SA-RT
Mise en marche
<E> 1, <E> 4, <D> 5
État initial
et test ABS
ABS_activé ABS_non_activé
<E> 5 <D> 5
ABS_non_activé
<D> 5
ABS activé ABS non activé
pas de freinage pas de freinage
ABS_activé
<E> 5
Freinage Pas de freinage Freinage Pas de freinage
<E> 3, <E> 2 <D> 3, <D> 2 <E> 3 <D> 3
Freinage Freinage
avec ABS sans ABS
Pas de freinage
(ABS)
Contrôler Contrôler
Application Application
6 6
e
T E/D
vé
é
tiv
cti
ac
_a
ée ée
S_
S
v v
cti cti
AB
AB
_a _a
on on
S_n S_n
Lire AB Lire AB
bouton bouton
ABS ABS
4 4
Activation_ABS Activation_ABS
48
2 • Spécification 2.5 Spécification des processus primitifs
selon la méthode SA-RT
État 1
e1 ET e2 NON (e3)
<E> 3 <D> 1
État 2
e3 OU e4 e5 ET (e1 OU e3)
<E> 6 <D> 1
État 3
décline en 6 mots-clés :
– « E/ données : Nom_flots_de_données… » : liste des flots de données en entrée
du processus fonctionnel ;
– « E/ événements : Nom_flots_d’événements… » : liste des flots d’événements en
entrée du processus fonctionnel, c’est-à-dire en général « E/D » ou « T », ou
éventuellement les événements produits directement par les bords de modèle ;
– « S/ données : Nom_flots_de_données… » : liste des flots de données en sortie du
processus fonctionnel ;
– « S/ événements : Nom_flots_d’événements… » : liste des flots d’événements en
sortie du processus fonctionnel ;
49
2 • Spécification 2.5 Spécification des processus primitifs
selon la méthode SA-RT
Il est aussi possible de faire une spécification de type pré et postcondition sur le
modèle suivant :
– « Précondition : » : liste des flots de données ou d’événements en entrée du pro-
cessus fonctionnel ave les conditions associées.
– « Postcondition » : liste des flots de données ou d’événements en sortie du pro-
cessus fonctionnel ave les conditions associées.
Donc, dans le cas de l’exemple simple « système de freinage automobile », nous avons
le processus fonctionnel 1 « Acquérir demande de freinage » spécifié de la façon
suivante :
50
2 • Spécification 2.6 Spécification des données
selon la méthode SA-RT
Symbole Signification
=… Composé de…
*……* Commentaire
n{……}p Itération de n à p
(……) Optionnel
© Dunod – La photocopie non autorisée est un délit.
51
2 • Spécification 2.6 Spécification des données
selon la méthode SA-RT
52
2 • Spécification 2.6 Spécification des données
selon la méthode SA-RT
Séquence Ou exclusif
Pression Pression
Itération Itération
Pression avec bornes Pression
53
2 • Spécification 2.7 Organisation générale de la méthode SA-RT
selon la méthode SA-RT
54
2 • Spécification 2.7 Organisation générale de la méthode SA-RT
selon la méthode SA-RT
Diagramme de contexte
Diagramme X a
de contexte Système c
de Z
b contrôle
X
Diagramme préliminaire
Diagramme a h 4 g
préliminaire 1 3 c
d e
2 Diagramme E-T du 4
Diagramme E-T du 4
Spécification
b f des processus
de contrôle
Diagramme de décomposition
h
Diagramme de a k 1.4
décomposition 1.1
Spécif du 2
i 1.2 Spécif du 3
j d
1.3 Spécif du 1.1
Spécif du 1.2
Spécif du 1.3 Spécification
des processus
onna
ire des d
onné primitifs
Dicti es
Dictionnaire a = ..
...
des données
b = ..
...
55
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Tableau 2.3 – Liaisons flots de données entre les entités du modèle SA-RT.
Tableau 2.4 – Liaisons flots de contrôle entre les entités du modèle SA-RT.
2.8 Exemples
Nous allons mettre en œuvre cette méthodologie d’analyse SA-RT pour quelques
exemples plus complexes que l’exemple décrit jusqu’à présent « système de freinage
automobile ». Toutefois, nous nous limitons à la description principale, c’est-à-dire :
diagramme de contexte, diagramme préliminaire avec un processus de contrôle et
diagramme état/transition du processus de contrôle.
En plus de la gestion automatisée d’une mine, l’aspect sécurité est le point essentiel
de la gestion d’une zone d’extraction de minerai, située en sous-sol, avec une pré-
sence humaine. Nous allons limiter notre étude au système de gestion de la sécurité
qui concerne principalement le contrôle des deux fluides :
– Eau : les eaux de ruissellement sont évacuées par un ensemble de conduites vers
un lieu unique, appelé puisard. Le niveau de ce puisard, qui récupère toutes les
56
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
eaux, est contrôlé en permanence avec une évacuation à l’aide de pompes afin
de la maintenir entre deux valeurs de niveaux.
– Air : la ventilation des galeries de la mine est effectuée en permanence. Lors de
l’extraction, il peut se produire un accès accidentel à une poche de gaz comme
du méthane. Fortement toxique, la meilleure protection consiste à procéder à
l’évacuation de la zone ou de la mine entière sachant que le volume de méthane
n’est, a priori, pas connu. D’autre part si le niveau de méthane est élevé, il faut
éviter toutes les productions d’étincelles (moteur…).
Nous allons considérer un système simple de gestion de la sécurité de la mine vis-
à-vis de ces deux facteurs. Le pilotage de cet ensemble comprend donc les éléments
suivants (figure 2.30) :
– un capteur analogique de niveau d’eau, appelé LS (Level Sensor), pour détecter
les deux niveaux limites de régulation, soit le niveau bas (LLS, Low Level Sensor)
et le niveau haut (HLS, High Level Sensor) ;
– une pompe à eau à débit réglable permettant l’évacuation du puisard ;
– un capteur analogique du taux de méthane contenu dans l’air, appelé MS
(Methane Sensor) ;
– une interface vers l’opérateur pour affichage de l’alarme.
Console
opérateur
Système
Commande de contrôle
pompe
MS LS
Pompe
© Dunod – La photocopie non autorisée est un délit.
HLS
Puisard LLS
57
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
La mine doit donc fonctionner tant que la sécurité maximale peut être maintenue.
Ainsi, les indications générales ou règles de fonctionnement sont les suivantes :
– Règle 1 : La pompe doit être mise en route si le niveau d’eau dépasse le niveau
maximum (LS > HLS). La pompe s’arrête dès que le niveau descend en dessous
de la valeur inférieure (LS < LLS).
– Règle 2 : Une alarme doit être lancée vers la console de l’opérateur dès que le
niveau limite du capteur MS est franchi afin de pouvoir opérer une évacuation
de la mine. Cette valeur limite est appelée MS_L1 (Methane Sensor Level 1).
– Règle 3 : La pompe ne doit pas fonctionner quand le niveau du capteur de
méthane (MS) est supérieur à une limite fixée MS_L2 (Methane Sensor Level 2)
avec la condition MS_L2 > MS_L1 afin d’éviter les risques d’explosion.
Dans cet exemple d’application simple, nous sommes donc en présence de deux lignes
de régulation : le contrôle du niveau de l’eau dans le puisard (règle 1) et le contrôle
du taux de méthane dans l’air (règle 2). L’interaction entre ces deux régulations se
situe au niveau de la commande de la pompe pour l’évacuation de l’eau du puisard
dont le fonctionnement est lié non seulement au niveau d’eau, mais aussi au taux
de méthane (règle 3).
m Analyse SA-RT
M Diagramme de contexte
Interrupteur
Console Mise_sous_tension
opérateur
Pompe
MS
Commande_pompe
Gérer
sécurité
mine
0
Capteur LS Alarme Console
niveau eau
opérateur
Figure 2.31 – Analyse SA-RT de l’application de la gestion de l’aspect sécurité d’une mine :
Diagramme de contexte.
58
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Mise_sous_tension
MS_L1 dépassée
Afficher Alarme
Acquérir
MS alarme
capteur Consig
ne_resp E/D 4
ectée
méthane
1
E/D Contrôler
mine
5
Niveaux_ MS_L2 dépassée
Consignes_méthane
E/D
Niveaux_ Niveau_LLS
Consignes_eau E/D
Niveau_HLS Commande_pompe
Commander
pompe
3
LS Acquérir
capteur eau Vitesse_pompe
2
© Dunod – La photocopie non autorisée est un délit.
Figure 2.32 – Analyse SA-RT de l’application de la gestion de l’aspect sécurité d’une mine :
Diagramme préliminaire.
59
60
Mise_sous_tension
<E> Acquérir capteurs air
<E> Acquérir capteurs eau
Consigne respectée
<D> Afficher alarme
Fonctionnement
nominal
de la mine
selon la méthode SA-RT
2 • Spécification
État alerte
(consignes dépassées) Pompe
en marche
Niveau HLS ET NON (MS L2 dépasser) Chauffage_terminé Niveau HLS ET NON (MS L1 dépasser)
<E> Commander pompe <T> Analyser température <E> Commander pompe
<E> Afficher alarme
Figure 2.33 – Analyse SA-RT de l’application de la gestion de l’aspect sécurité d’une mine :
Diagramme état/transition.
2.8 Exemples
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Le processus de contrôle est lié aux différents processus fonctionnels par des événe-
ments qui sont mis en place en même temps que la réalisation du diagramme état/
transition de la figure 2.33. Ce diagramme état/transition, description du fonc-
tionnement du processus de contrôle 5 (Contrôler mine), comprend quatre états :
– fonctionnement nominal de la mine (niveau d’eau inférieur à HLS et taux de
méthane inférieur à MS_L1) ;
– pompe en marche (niveau d’eau supérieur à LLS) ;
– état alerte (consigne MS_L1 dépassée et niveau d’eau inférieur à HLS, ou consigne
MS_L2 dépassée et niveau d’eau quelconque) ;
– état alerte (consigne MS_L1 dépassée) et pompe en marche.
Nous pouvons remarquer que, dans ce diagramme état/transition complexe, nous
avons utilisé dans certains cas des combinaisons logiques de deux événements pour
passer d’un état à l’autre, par exemple « MS_L2_dépassée OU Niveau_LLS » pour
passer de l’état « État alerte et pompe en marche » à l’état « État alerte ».
D’autre part, ce diagramme état/transition fait l’hypothèse pour la surveillance du
taux de méthane que les événements « MS_L1_dépassée » et « MS_L2_dépassée » se
produisent toujours dans l’ordre cité et, lors du retour à la situation normale, l’évé-
nement « Consigne_respectée » est émis.
61
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Capteur
détection sable
Capteur de niveau
Commande sable du four
d’approvisionnement
Capteur
de température
Chauffage
verre
du four
m Analyse SA-RT
M Diagramme de contexte
La première étape d’analyse consiste à élaborer le diagramme de contexte de l’appli-
cation. Ce diagramme, représenté sur la figure 2.35, intègre les six bords de modèles
correspondant aux trois entrées ou capteurs (capteur de température – thermocouple,
capteur de niveau de sable, capteur tout ou rien de détection d’arrivée du sable) et
aux deux sorties ou actionneurs (approvisionnement en sable, commande du four de
chauffage). Le dernier bord de modèle correspond à la console opérateur qui fournit
les deux événements : « Arrêt » et « Marche ». Ces événements ne sont utilisés que
pour le démarrage de l’application et éventuellement son arrêt. Le processus fonc-
tionnel initial 0 « Piloter four à verre » constitue l’application à étudier. En résumé,
en plus des deux événements précédemment cités, nous avons cinq flots de données :
trois flots entrants (Température, Niveau_sable, Arrivée_sable) et deux flots sortants
(Sable, Chauffage). L’ensemble de ces flots doit se retrouver dans le diagramme pré-
liminaire : premier niveau d’analyse du processus fonctionnel 0.
62
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Console opérateur
Capteur de température
Arrêt Marche
Commande approvisionnement
Température
Sable
Piloter
Capteur de niveau four à verre
Niveau_sable 0
Chauffage
Arrivée_sable
Capteur Commande chauffage
de détection arrivée sable
Le diagramme préliminaire, présenté sur la figure 2.36, donne une analyse ou décom-
position fonctionnelle du processus fonctionnel initial 0 « Piloter four à verre ».
Cette analyse fait apparaître six processus fonctionnels de base et un processus de
contrôle permettant de séquencer l’ensemble. Nous pouvons vérifier la cohérence des
flots de données ou d’événements entrants ou sortants par rapport au diagramme de
contexte.
Les différents processus fonctionnels correspondent aux deux chaînes de régulation :
température (processus fonctionnels 1 à 3) et approvisionnement en sable (processus
fonctionnels 4 à 6). La régulation de la température suit exactement la décomposi-
tion fonctionnelle générique que nous avons vue (figure 2.14). Ainsi, les trois pro-
cessus fonctionnels de base existent : acquisition (1 – Acquérir température), traite-
ment (2 – Analyser température) et commande (3 – Chauffer four). Les deux unités
de stockage sont utilisées dans les deux cas classiques : soit pour la mémorisation
d’une constante (Température_consigne) soit pour une donnée partagée (Température_
© Dunod – La photocopie non autorisée est un délit.
mesurée). Dans ce dernier cas, nous pouvons noter que l’unité de stockage est utilisée
deux fois dans le diagramme et donc comporte une « * ».
Dans le cas de la régulation du niveau du sable, les trois processus fonctionnels mis
en œuvre ne correspondent pas exactement au modèle de décomposition générique
précédent ; mais nous avons uniquement deux processus fonctionnels : acquisition
(5 – Acquérir niveau), traitement et commande (6 – Analyser besoin sable). Nous
pouvons remarquer que ce dernier processus utilise pour élaborer la décision de
commande trois données : Niveau_consigne (constante placée dans une unité de
stockage), Niveau_mesurée (donnée fournie directement par le processus 5) et
Température_mesurée (unité de stockage partagée avec la chaîne de régulation de la
63
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Température_*
mesurée Niveau_
Température
Marche consigne
Arrêt
Aquérir
température
1 Analyser sable
E/D
E/D besoin
Température_* sable
Réguler 6
mesurée four
T 7
Niveau_mesuré
Analyser T
température
2 Trop_froid
Sable_
T E/D tombé Analyser Niveau_sable
Commande_ niveau
5
chauffage
Chauffage_
Température_ terminé Détecter
consigne Chauffer arrivée
four sable
3 4
Chauffage Arrivée_sable
64
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
État repos
Marche Arrêt
<E> Acqérir température <D> Acqérir température
<T> Analyser température <D> Détecter arrivée sable
<E> Détecter arrivée sable
Fonctionnement
nominal
Régulation
Chauffage
niveau
du four
sable
65
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
niquent entre eux par un bus de terrain comme CAN (voir chapitre 4) afin de par-
tager des informations et gérer ainsi le véhicule de façon cohérente.
Cette application de commande d’un moteur à combustion est représentée schéma-
tiquement sur la figure 2.38. Le contrôle-commande de cette application est fait par
l’intermédiaire de sept capteurs (pédale accélérateur, température air, pression air,
température eau, rotation vilebrequin et deux capteurs de pollution) et de quatre
actionneurs (injection essence, allumage, admission air, réinjection gaz échappement
ou brulés). Le calculateur est donc aussi relié au bus de communication CAN.
Bus CAN
Commande de réinjection Capteur pression
Calculateur
gaz échappement collecteur air Communication
avec les autres
calculateurs
Commande
admission air (papillon)
Capteur pédale
accélérateur
Capteur
Commande
pollution
injecteur
en amont Capteur
pollution
en aval
Commande allumage
Excepté les deux capteurs de pollution amont et aval, la loi de régulation du moteur
à combustion prend en compte l’ensemble des données d’entrée et élabore les dif-
férentes sorties de commande. Nous n’analyserons pas cette loi de commande qui
présente une relative complexité et correspond à une spécificité constructeur pour
un type de moteur donné. Ainsi, l’élaboration de la loi de commande du moteur à
combustion est considérée comme une « boîte noire » fonctionnelle qui utilise un
ensemble de données en entrée (Paramètres_moteur_entrée) et qui fournit des don-
nées en sortie (Paramètres_moteur_sortie). Les données sur la pollution ne sont pas
utilisées dans ce calculateur ; mais elles sont fournies par l’intermédiaire du réseau
de communications à un autre calculateur, par exemple, pour affichage.
66
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
m Analyse SA-RT
M Diagramme de contexte
Le diagramme de contexte de l’application est représenté sur la figure 2.39. Il donne
les 11 bords de modèles correspondant aux sept entrées ou capteurs et aux quatre
sorties ou actionneurs, énumérés précédemment. Nous avons ajouté un bord de
modèle correspondant à la connexion au bus CAN et un bord de modèle représentant
l’action du conducteur. Le dernier bord de modèle fournit les deux événements :
« Arrêt » et « Marche ». Pour le bord de modèle du bus CAN, nous supposons que
les communications bidirectionnelles sont identifiées : en sortie (Com_S) et en entrée
(Com_E).
Capteur accélérateur
Conducteur
Ac
Bus CAN
cé
_S _E
ai
r
ge
u ma
Capteur température eau T_eau All
Piloter
moteur Commande injecteur
sse Injecteur
Vite 0
Capteur vitesse
E En
n_ tré
io e_a
ll ut En ir
S
tré
tio
z_
Po
67
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Accélérateur
Com_S
Arrêt
Marche
Paramètres_* Com_E
moteur_entrée Acquérir
accélérateur
1 Communiquer
P_air bus CAN
E/D 9
T_air Acquérir
Messages*
paramères E/D E/D
moteur Contrôler
T_eau moteur
2 T Allumage
10 Commande
Paramètres_* E/D allumage
Moteur en entrée T 8
Acquérir
Paramètres_*
vitesse T moteur_sortie
E/D Commande_ T
3 Commander
s se prête
Vite
injection
Messages* 7
Lire Élaborer Injecteur
capteur commande
pollution moteur Commander
_E 4 5 Entrées gaz Entrée_air
on
lluti 6
Po
_S
moteur_entrée moteur_sortie
ut
ll
Po
68
2 • Spécification 2.8 Exemples
selon la méthode SA-RT
Une autre unité de stockage est dédiée aux messages (Messages). Cette unité de stoc-
kage est un peu particulière par rapport aux autres unités de stockage. En effet, en
entrée, nous avons une file gérée de façon FIFO ou à priorité et, en sortie, la file
est gérée de manière FIFO.
Remarquons que toutes ces unités de stockages sont dupliquées au niveau de ce
diagramme et donc notées avec une « * ».
Le processus de contrôle (10 – Contrôler moteur) est lié aux différents processus
fonctionnels par des événements qui sont mis en place en même temps que la
réalisation du diagramme état/transition de la figure 2.41. Nous avons simplifié le
fonctionnement de ce processus de contrôle en supposant que les processus fonc-
tionnels d’acquisition étaient lancés au début de l’exécution (1, 2, 3 et 4) et four-
nissaient les données de façon périodique ; en particulier le processus fonctionnel
« 1 – Acquérir accélérateur » fournit régulièrement l’événement État_accélérateur
qui déclenche l’élaboration de la loi de commande à partir de toutes les données
d’entrée acquises. Lorsque la commande est prête, le processus « 5 – Élaborer com-
mande moteur » déclenche l’ensemble des processus fonctionnels de commande
(6, 7 et 8). Enfin, le processus fonctionnel 9 de communication gère périodique-
ment les messages au niveau réception et émission.
État repos
marche arrêt
<E> 1 <D> 1
<E> 2 <D> 2
<E> 3 <D> 3
<E> 4 <D> 4
<E> 9 <D> 9
État attente
État_accélérateur Commande_prête
<T> 5 <T> 6
<T> 7
<T> 8
Élaboration
contrôle
moteur
Diagramme état/transition.
Nous pouvons remarquer que, dans ce diagramme état/transition très simple, nous
avons utilisé uniquement deux états actifs en plus de l’état repos : Un état attente
qui est périodiquement interrompu par l’événement « État_accélérateur » et un état
correspondant à l’élaboration de la loi de commande du moteur à combustion.
69
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
Une syntaxe graphique plus complète permet de préciser les flots de données discrets
ou continus. Ainsi, l’analyse des flots de données permet et, donc oblige, de distin-
guer un flot de données discret (arc orienté simple comme précédemment) et un flot
de données continu (arc orienté avec une double flèche). Mais, dans ce cas, où la
richesse d’expression des données véhiculées par ces flots est augmentée, il est
nécessaire de préciser la sémantique attachée à cette nouvelle description. Or deux
types de sémantique peuvent être attachés aux flots de données (figure 2.42) :
– Sémantique 1 :
• Flot de donnée discret : valeur discrète de donnée (type booléen) ;
• Flot de donnée continu : valeur continue de la donnée (type entier ou réel).
– Sémantique 2 :
• Flot de donnée discret : donnée consommable ou lisible une fois (existence de
la donnée à des temps discrets) ;
Utilisateur
Distance_parcourue
Top_horloge Entrée_nom
Sémantique 1 Sémantique 2
70
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
Comme pour les flots de données, une syntaxe graphique plus complète permet de
préciser les flots d’événements discrets ou continus. Ainsi, l’analyse des flots d’évé-
nements permet et, donc oblige, de distinguer un flot d’événements discret (arc
orienté simple comme précédemment) qui concerne des événements consommables
ou lisibles une seule fois (existence à des temps discrets). De même un flot d’évé-
nements continu (arc orienté avec une double flèche) décrit un événement conti-
nuellement disponible (existence permanente).
Il est important de noter que les événements prédéfinis « E, D, T » sont des événe-
ments discrets, envoyés à chaque fois pour activer ou arrêter un processus fonctionnel.
En revanche, un flot d’événements continu permet au processus de contrôle de tester
en permanence le résultat d’un processus fonctionnel qui est indépendant du pro-
cessus de contrôle (figure 2.43).
Température
T_consigne
71
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
La méthode SA-RT, qui vient d’être présentée dans les sections précédentes, est
une méthode de spécification simple avec un langage graphique très compréhensible
par un utilisateur. Cette facilité d’expression a un inconvénient majeur, celui de
pouvoir conduire à des ambiguïtés. En effet, lors de l’analyse d’une application,
basée sur la méthode SA-RT, la réalisation des différents diagrammes flots de données
reflète l’idée du concepteur au travers d’un langage simple, limité et très abstrait.
Ainsi, deux utilisateurs peuvent avoir exprimé deux analyses différentes sous la
forme d’un même diagramme flots de données SA-RT. Pour lever cette ambiguïté,
il est nécessaire de disposer d’un outil formel qui offre un moyen d’expression précis
et qui peut être validé.
Ainsi, il est possible d’utiliser en complément ou en parallèle de cette méthodologie
SA-RT, un modèle formel comme des automates à états finis ou des réseaux de
Petri. Ces modèles présentent l’avantage d’être rigoureux au niveau de l’expression
et d’être analysable mathématiquement. En revanche, ces modèles sont en général
complexes et d’une lisibilité faible. Aussi le projet européen IPTES (Incremental
Prototyping Technology for Embedded Real-Time Systems), dont les résultats ont été
présentés en 1998, a voulu donner une sémantique à la méthode SA-RT basée sur les
réseaux de Petri. Nous pouvons schématiser cette association par le graphique de la
figure 2.45. Ainsi, la méthode SA-RT peut être vue comme l’interface de la méthode
d’analyse globale avec un langage graphique de haut niveau pour exprimer la spé-
cification, c’est l’interface utilisateur. Directement liée à ce modèle graphique, nous
trouvons la correspondance dans le modèle formel apporté par les réseaux de Petri
qui constituent le noyau fonctionnel, c’est-à-dire la partie permettant d’exécuter
ce modèle graphique représentant la spécification.
L’utilisateur décrit sa spécification avec la syntaxe graphique SA-RT et, de façon
automatique, le modèle formel, basé sur les réseaux de Petri, se construit. Cela permet
ensuite une analyse mathématique de la spécification : simulation et vérification.
Pour atteindre ce but, il est nécessaire d’avoir une traduction unique d’un modèle
vers l’autre.
Langage graphique
Langage machine
de haut niveau
pour l'analyse
pour la spécification
72
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
m Principes généraux
Écrire_donnée_vide Vide
Écrire_donnée Lire_donnée
73
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
Écrire_donnée_vide Vide
Écrire_donnée Lire_donnée
(cas flot continue) ou qui a été consommée (cas du flot discret). Cette place possède
un jeton à l’initialisation. Dans le cas du flot de données continu, à la première écri-
ture de la donnée la place « Vide » perd son jeton et la place « Valeur » sera ensuite
toujours marquée. En revanche, dans le cas du flot de données discret, le franchis-
sement de la transition « Lire_donnée » fait passer le jeton de la place « Valeur » à la
place « Vide ».
La modélisation de l’unité de stockage, représentée sur la figure 2.48, est plus simple
d’un point de vue réseau de Petri. Ainsi, nous avons une place « Stockage », intégrant
un jeton représentant la donnée, et les deux transitions correspondant à l’écriture
et à la lecture (Écrire_donnée et Lire_donnée). En revanche, dans le but d’obtenir
un modèle formel précis, une sémantique particulière est associée au jeton décrivant
l’état de la donnée selon la lecture ou non de cette donnée. L’enregistrement dans
l’unité de stockage comprend deux champs : la donnée elle-même et son état
(tableau 2.5). Après chaque écriture, la donnée a un état déclaré nouveau qui peut
donc être utilisé par le processus fonctionnel qui lit cette donnée.
Donnée État
74
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
Do
nn _2
ée _d
_d ée
_1 nn
Do 3
e_d_
Donnée_c_1 onné
Processus D
Donnée_c_2 A
1 Donnée_c_3
Donnée_s_1
Donnée_s_2 Donnée_s_3
Donnée_d_1
Donnée_d_2
Suppression
Exécution Donnée_d_3
Donnée_c_1 Fin
Donnée_c_3
Oisif
Donnée_c_2
© Dunod – La photocopie non autorisée est un délit.
Donnée_s_3
Lancement
Donnée_s_1
Donnée_s_2
75
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
m Exemple simple
La difficulté de ce genre de modélisation par élément est le recollement des différents
modèles lors de l’analyse d’une application complète. Il n’est pas possible d’ajouter
ou de juxtaposer les modèles de chaque élément d’une application sans analyser
l’ajustement de deux modèles l’un à la suite de l’autre. En effet, dans notre cas, les
transitions ou les places situées aux limites des modèles doivent se lier avec le modèle
précédent ou suivant.
Nous allons étudier cet aspect sur un exemple simple composé de deux processus
fonctionnels (Processus A et Processus B) et d’une unité de stockage, appelée
« Donnée_s » (figure 2.50). Ces éléments sont liés par des flots de données discrets.
D’autre part des flots de données discrets arrivent sur les deux processus fonctionnels
(Donnée_a et Donnée_b) et un flot de données discret est émis (Donnée_c).
Donnée_s
76
© Dunod – La photocopie non autorisée est un délit.
T_3 Donnée_s
selon la méthode SA-RT
2 • Spécification
A_Oisif B_Oisif
Donnée_b_valeur
Figure 2.51 – Traduction du diagramme flots de données de la figure 2.50 en réseaux de Petri.
2.9 Extensions de la méthode SA-RT
77
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
sus B. L’unité de stockage est modélisée par une seule place « Donnée_s » comme
le montre le modèle initial de la figure 2.48. En se basant sur le modèle générique
de la figure 2.46, les trois flots de données discrets sont représentés chacun par deux
places, soit, par exemple pour le flot de données « Donnée_a » du modèle SA-RT :
« Donnée_a_vide » et « Donnée_a_valeur ». En résumé nous pouvons noter que,
lors de la traduction d’un diagramme flots de données de SA-RT en un réseau de
Petri, il y aura toujours un nombre de places égal à la somme des places des modèles
génériques des différents éléments du diagramme SA-RT.
En revanche, nous pouvons constater que les transitions sont partagées entre les
différents éléments modélisés. Considérons le cas du raccordement du flot de don-
nées « Donnée_a » au processus fonctionnel A. La transition T_2 représente à la fois
la transition « Lire_donnée » du modèle du flot de données discret et la transition
« Exécution » du modèle d’un processus fonctionnel. De même la transition T_1
représente à la fois la transition « Écrire_donnée » du modèle du flot de données
discret et la transition « Suppression » du modèle d’un processus fonctionnel. La
dernière transition T_3, attachée à la modélisation du processus fonctionnel « Proces-
sus A », correspond en même temps à la transition « Fin » du modèle générique
d’un processus fonctionnel et à la transition « Écrire_donnée » du modèle de l’unité
de stockage « Donnée_s ». Nous pouvons répéter cette constatation pour l’ensemble
du réseau de Petri.
Le réseau de Petri, qui est l’exact modèle du diagramme flots de données SA-RT,
peut être utilisé pour vérifier certaines propriétés de la spécification comme la non
occurrence de l’exécution simultanée de deux processus fonctionnels, le chemine-
ment des données, etc. Une fonction de simulation peut être réalisée à l’aide du
modèle formel réseau de Petri sous-jacent aux diagrammes SA-RT. Dans ce cadre,
le réseau de Petri est analysé en traçant le graphe de marquages dans le cas de tran-
sition immédiate (modèle [0,0] de Merlin et Farber), c’est-à-dire l’évolution de la
position des jetons dans le réseau. Si le modèle des transitions temporisées est pris
compte l’analyse est réalisée à l’aide d’un graphe des classes. En parallèle avec cette
évolution des jetons correspondant à l’activation ou non de l’action associée à la place,
il est alors possible de visualiser l’activité au niveau du diagramme flots de données
SA-RT. Prenons l’exemple précédent, le marquage présenté sur la figure 2.51 cor-
respond à un moment de l’exécution où nous avons les éléments suivants :
– pas de donnée sur le flot de données discret « Donnée_a » entrant ;
– le processus fonctionnel « Processus A » en exécution ;
– une donnée présente dans l’unité de stockage « Donnée_s » ;
– une donnée présente sur le flot de données discret « Donnée_b » entrant ;
– le processus fonctionnel « Processus B » en arrêt ;
– pas de donnée sur le flot de données discret « Donnée_c » sortant.
Par conséquent, il est possible de visualiser ces différents états sur le diagramme
flots de données initial, représenté sur la figure 2.50. Cette visualisation peut être
animée et donc ainsi permettre au concepteur de voir le déroulement de l’exécution
de diagramme flots de données SA-RT. Cette visualisation est schématisée sur la
78
2 • Spécification 2.9 Extensions de la méthode SA-RT
selon la méthode SA-RT
figure 2.52 qui reprend la figure 2.50 avec une marque symbolisant l’activité d’un
processus fonctionnel ou la présence d’une donnée.
Donnée_s
79