Td corrigé Titre 1 - Free pdf

Titre 1 - Free

Connexité : parcours d'un graphe, calcul des composantes connexes, k- connexité et ... Les séances de TD permettent de comprendre le fonctionnement des ..... Objectif : On s'intéresse aux bases de la théorie de la complexité et à la ...... par le responsable du sujet (feuille d'appréciation à remplir par les responsables du ...




part of the document










SA-RT

Troisième Partie





Christian GARNIER
septembre 2002

SA-RT : Le modèle des besoins
Définition de l’exemple analysé dans la suite du document

Mode de fonctionnement :
Il faut verser dans le malaxeur une dose de produit A (10 g), une dose de produit B (20 g) et 2 briquettes.
Ensuite, le malaxeur doit mélanger les produits pendant une minute. Une fois le temps écoulé, le malaxeur doit pivoter sur la droite jusqu’à la position basse pour être vidé tout en continuant le malaxage. Une fois vide (temporisation de 10 secondes) le malaxeur s’arrête et revient à la position initiale pour recommencer un nouveau cycle.
Le cycle démarre dès l’enclenchement de l’interrupteur marche. Cette commande efface les alarmes.
L’arrêt ne peut se faire que si le malaxeur est en position initiale et vide.
Une alarme est détectée si l’approvisionnement du malaxeur ne peut être fait dans un délai de 50 secondes. Dans ce cas le malaxeur effectue un cycle de « vidage », s’arrête en position initiale et signale le type du produit manquant.
Présentation


La constitution du modèle des besoins

Diagramme de contexte des données
Diagramme de flots de données
Spécification des processus

Diagramme de contexte de contrôle
Diagramme de flots de contrôle
Spécification des contrôles

Spécification temporelle

Dictionnaire des besoins















Modèle qui :
Est purement abstrait : le QUOI et non pas le COMMENT
Est opposé au modèle physique : le besoin et non pas la conception
Définit des exigences et non pas des implémentations
Précise : Le système sert à … ; Il est fait pour …
Est basé sur des diagrammes pour faciliter l’exploitation visuelle
Autorise une analyse hiérarchique descendante
Encapsulation de l’information
Affinement progressif du besoin
Abstraction du système
Vision globale de haut niveau et allant vers le détail le plus compliqué
Dissocie le traitement procédural du contrôle de l’application
Est cohérent du fait de sa structure hiérarchique
S’autoréférence du fait de l’analyse structurée


Modèle abstrait
Dont les propriétés sont fortement idéalisées
Qui ne prend pas en compte les contraintes physiques
Pour ne traiter que du BESOIN



Le modèle des processus
Le diagramme de contexte des données

But
Identifier les entités externes : utilisateurs, opérateurs, canaux de communication, capteurs, actionneurs, …
Exposer le but principal du système à réaliser sous la forme d’un processus unique de plus niveau effectuant le traitement de l’information système
Définir les flots de communication entre les terminaisons et le système

Le processus de contexte : pure fonction logique du système
Matérialise les besoins fonctionnels
Ignore la conception et l’implémentation

Les terminaisons : représentation des entités avec le quel le système doit s’interfacer
Matérialise les entités externes
Sépare ce qui est externe au système de ce qu’il intègre

Les entrées et les sorties du système : représentation de l’échange d’informations entre les entités et le processus
Identifie les informations échangées (dans le dictionnaire des besoins)
Matérialise le sens de l’échange d’information


Les diagrammes de flots de données
Tout DFD d’un niveau est une décomposition d’un processus de niveau supérieur

Un DFD est appelé « Fils » du processus qu’il décompose en processus de niveau inférieur. Inversement, il est appelé « Père » du DFD de niveau inférieur

Un processus est une décomposition en sous processus du niveau supérieur.

Un processus donne naissance à des sous flots de données et des processus

Son but : produire des sorties à partir des entrées conformément à l’action sous entendu par son identification

Un DFD contient
Des processus de niveau inférieur
Produire des sorties à partir de ses entrées conformément à l’action sous-tendue par identification
Identifier par un verbe plus un complément d’objet
Identifier par une numérotation descendante des processus
Des flots de données reliant ces processus
Matérialiser les échanges d’informations entre les processus de même niveau ou de niveau supérieur
Identifier par des noms ne contenant jamais de verbe
Des réservoirs
Permettant la mémorisation de données






Les centres de transaction

Permet d’effectuer un traitement différencié en fonction d’une condition

Nécessite une CSPEC de contrôle au niveau du DFC associé

Exemple : affecter à un signal discret une des différentes valeur qu’il peut prendre
























Décomposition en niveaux et vérification de cohérence


Cohérence entre processus « Père » et DFD « Fils »

E/S identiques

Vérification de cohérence entre les niveaux



Décomposition en niveaux

















Le système de numérotation


Numérotation arborescente ( Autoréférence du modèle
Convention : Le processus « 0 » est affecté au DCD ( Le DFD de niveau 1 est appelé « 0 »
Les flots de données

Représentatif d’un élément, d’un groupe d’éléments en conformité avec le dictionnaire


Convention :

Un flot de donnée est présent tant que le processus producteur est actif.

Un flot de donnée peut lu et relu autant de fois que les processus consommateur en ont besoin



Division de flots entre les niveaux































Le stockage des données

But : mémoriser les données

Convention
Un stockage a toujours une sortie
Une donnée contenue dans un stockage peut être lue et relue de façon non destructive
Une donnée reste présente dans un stockage tant qu’elle n’est pas remplacée par une autre donnée

Utilisation des stockages par les processus
Lecture seule : dans ce cas, le stockage peut ne pas avoir d’entrée
Ecriture seule : dans ce cas, un processus producteur génère l’information. Il existe au moins un processus consommateur pour lire la donnée
Lecture Ecriture : dans ce cas, un flot de données bidirectionnel est autorisé entre le processus et le stockage

Règles
Un stockage est situé entre deux processus s’il a au moins une entrée
Un stockage apparaît dans un DFD au plus bas niveau possible (lien direct entre processus)

Différence avec la méthode Ward et Mellor : deux types de stockages sont prévus
Ceux ou l’information subsiste (cf. Hatley et Pirbhai)
Ceux ou elle est consommée à la lecture

Les spécifications de processus
La décomposition du processus s’arrête quand
Plus devient de la conception (on commence à se poser les questions « comment »)
On atteint la limite de décomposition graphique
On estime atteindre le « BON NIVEAU » de spécification
Description concise du processus

On passe alors de la décomposition de processus à la réalisation de PSPEC

Une PSPEC
Est une description : claire, complète et concise du processus
Partage les mêmes entrées sorties que son processus terminal
Montre comment les sorties sont générées à partir des entrées
Contient toutes les informations nécessaires pour spécifier le processus. A savoir :
Savoir quoi faire sans dire comment le faire

Une PSPEC
Sa taille ne doit pas dépasser (en règle générale) une page de spécification
Son contenu
Des diagrammes ou des schémas
Des équations
Des tables ou des arbres de décision, des diagrammes
Du Langage Naturel Structuré
Du texte libre (éviter les 7 péchés capitaux des spécifications)
Le LNS
Rigueur, lisibilité et absence d’ambiguïté

Construit exclusivement avec
Les mots clés du langage : verbe d’action appliqué à un objet (transitif, impératif) ; prépositions et conjonctions nécessaires pour montrer les relations logiques ; termes mathématiques, physiques et techniques communément compris par tous
Les termes du dictionnaire de données

Les constructions utilisables sont
Concurrence : plusieurs activités se déroulent simultanément
Calculer « Différence_Altitude » = « Altitude_Avion » - « Altitude_Navigation »
Mettre « Fréquence_Radio » à « Fréquence_Balise »
Séquence : les activités se déroulent suivant un ordonnancement séquentiel spécifié
Calculer « Intérêt_Du » = « Taux » * « Durée » * « Montant »
Ensuite, soustraire « Intérêt_Du » à « Compte »
Sélection : un branchement est réalisé sur le résultat d’un test sur les données
Si « Niveau_Eau » plus grand que « Niveau_Référence »
Alors Mettre « Niveau_Suffisant » à "Vrai"
SiNon Mettre « Niveau_Suffisant » à "Faux"
FinSi
Itération : une même activité est répétée jusqu’à une limite ou une atteinte de résultat
Pour chaque élément de « Balises_Sélectionnées »
Calculer « Différence_Altitude » = « Altitude_Avion » - « Altitude_Navigation »
FinPour
Interprétation du modèle des processus


Le modèle fonctionnel des besoins est un modèle ABSTRAIT et IDEALISE.
Ce n’est pas une représentation de l’implémentation système



En l’absence de modèle de contrôle
Les processus sont déclenchés par les données d’entrée
Les données sont instantanément présentes en sortie



Les processus ne gère pas : le parallélisme, les aspects séquentiels
Les processus sont libres de fonctionner en parallèle aussi longtemps que leur données d’entrée sont disponibles





Synthèse
Le diagramme de contexte de données (DCD)
Partitionne le monde en 2 parties : une interne au système ; l’autre externe
Montre les flots de données entre les 2 mondes
Les diagrammes de flots de données (DFD) montrent les traitements et les flots d’informations
Un DFD donné représente le développement de son processus père
affinement du processus
Les entrées sorties d’un processus et de son DFD fils doivent correspondre
vérification de cohérence du modèle
La décomposition en niveaux assure un affinement progressif du système jusqu’aux processus terminaux
Un système de numérotation va de paire avec cette décomposition et permet au modèle de s’auto-référencer
Les flots de données représentent
Les informations qui entrent et sortent du système
Les informations échangées entre les processus
Les stockages de données
Conservent les données même après désactivation du processus
Peuvent être lus autant de fois que voulu
Les spécifications de processus terminaux sont brèves et concises
Le modèle des processus est un modèle abstrait, idéalisé, déclenché par les données et infiniment rapide. Il représente le besoin pas la conception ni l’implémentation

Le modèle de contrôle
Déterminer ce que le modèle des processus doit faire en fonctions de conditions internes ou externes, ou en fonction de modes opératoires
Similitude avec le modèle des données
Le diagramme de contexte de contrôle
But
Identifier les entités externes : utilisateurs, opérateurs, canaux de communication, capteurs, actionneurs, …
Gérer le comportement dynamique du système
Définir les flots de communication entre les terminaisons et le système

Le processus de contexte
Matérialise les aspects dynamiques du système
Ignore la conception et l’implémentation

Les terminaisons : représentation des entités avec le quel le système doit s’interfacer
Matérialise les entités externes
Sépare ce qui est externe au système de ce qu’il intègre

Les entrées et les sorties du système : représentation de l’échange d’informations entre les entités et le processus
Identifie les informations échangées (dans le dictionnaire des besoins)
Matérialise le sens de l’échange d’information


Les diagrammes de flots de contrôle

Homogénéité avec les DFD

Partage des noms, de la numérotation, des niveaux, des propriétés de cohérence et des relations parents/enfants

Les processus dans un DFC ne font AUCUNE transformation
Réalisé par les CSPEC

Les processus ne gèrent pas les états du système
Réalisé par les CSPEC
Les diagrammes « états transition » sont contenus dans les CSPEC

Les entrées de flots de contrôle ne provoquent pas d’activation ou de désactivation de processus
Réalisé par les activateurs en sortie de CSPEC

Les DFC servent à matérialiser l’acheminement des flots de contrôle entre les différents processus d’un même DFC ou entre père et fils
Traités par les CSPEC

Les DFC terminent leur décomposition avec une CSPEC
Pas d’association avec une PSPEC






Les barres : matérialisation des flots échangés avec la CSPEC


Les flots de contrôle (suivent les mêmes règles que les flots de données)


Les réservoirs de contrôle (rôle identique à ceux de données)


Les flots de contrôle

Suit les mêmes règles que les flots de données

Les signaux véhiculés par les flots de contrôle sont toujours des signaux discrets

La différentiation des signaux
Signal continu
Toute grandeur physique
Peut prendre un nombre arbitrairement grand de valeurs numériques ordonnées
( Un signal de donnée

Signal discret
Tout événement externe
Tout état ou changement d’état provenant ou aboutissant aux terminaisons externes
Tout mode de fonctionnement ou changement de mode de fonctionnement
Toute condition sur les données (interne au système)
Tout signal qui in fine aboutit à la gestion des processus
Peut prendre un nombre fini de valeurs connus dans un ordre indifférent
( Un signal de donnée
( Un signal de contrôle
( Un signal de donnée et de contrôle




Notion « continu ( discret » se rapporte au domaine de variation qui comporte un nombre fini ou infini de valeurs

Ward et Mellor tiennent compte de l’aspect continu ou discontinu dans le temps
Hatley et Pirbhai considèrent que les informations sont toujours disponibles dans le temps
Les conditions sur les données
Résultat d’une condition sur un flot de donnée ; traité dans une PSPEC

Seul lien entre DFD et DFC

Impact sur la vérification de cohérence d’une PSPEC





























Le stockage des signaux de contrôle

But : mémoriser les contrôles

Un réservoir de contrôle peut être unique à un DFD, à un DFC ou utilisé dans les deux

Convention
Un stockage a toujours une sortie
Un contrôle contenu dans un stockage peut être lu et relu de façon non destructive
Un contrôle reste présent dans un stockage tant qu’il n’est pas remplacé par un autre contrôle

Utilisation des stockages par les DFC
Lecture seule : dans ce cas, le stockage peut ne pas avoir d’entrée
Ecriture seule : dans ce cas, une CSPEC producteur génère l’information. Il existe au moins une CSPEC ou une terminaison pour lire le contrôle
Lecture Ecriture : dans ce cas, un flot de contrôle bidirectionnel est autorisé entre la CSPEC et le stockage

Règles
Un réservoir donné n’apparaît que sur un DFC mais peut apparaître plusieurs fois sur ce diagramme

Les spécifications de contrôle

But d’une CSPEC
Gérer le comportement dynamique du système
Modifier la réponse du système en accord avec les conditions passées ou présentes à l’intérieur et/ou à l’extérieure du système

Existence d’une CSPEC si :
Un contrôle des processus est requis pour le DFD associé
Un signal de contrôle doit être « traité » par une machine à états finis pour générer un nouveau signal de contrôle

Les CSPEC comme boucle de contre réaction






Intégration des machines à états finis dans les CSPEC pour :
Gérer le comportement dynamique du système (activation/désactivation des processus
Générer les signaux de contrôle

Le contenu des CSPEC
Combinatoire : matrice de décision
Séquentiel : diagramme de transition, matrice état-transition, table état-transition
Diagramme états transition

La relation entre DFD et DFC permet d’organiser une spécification complexe en un ensemble d’éléments simples

Adaptation à la structure de sous-ensemble du modèle

La cohérence du modèle du fait de la numérotation


Le contrôle des processus

Activation de processus
Les sorties issues de CSPEC gèrent l’activation / désactivation de processus
Elles prennent deux valeurs :
On (« 1 ») ( activation du processus et de ses sorties
Off (« 0 ») ( désactivation du processus et de ses sorties
En cas de non-gestion du processus, alors le processus est toujours validé (data triggered)
Un processus n’est actif que si et seulement si tous ses ancêtres sont actifs
























Gestion des centres de transaction

Effectuer le contrôle des divers processus





























Fusionner le centre de transaction dans un seul processus et activer les branches à partir de la CSEPC
Synthèse
Le diagramme de contexte de contrôle (DCC)
Partionne le monde en 2 parties : une interne au système, l’autre externe
Montre les flots de contrôle entre les mondes

Les diagrammes de flots de contrôle sont couplés aux DFD et calquent leurs processus
Les entrées sorties d’une CSPEC sont matérialisées par une barre dans le DFC
Les signaux de contrôle sont TOUJOURS des signaux discrets

Les conditions sur les données
Ils sont générés par les PSPEC
Ils permettent de passer du modèle de données au modèle de contrôle

Les CSPEC
Elles contiennent les machines à états finis
Les entrées sont issues soit de flots de contrôles soit de conditions sur les données
Les sorties sont soit des activateurs de processus soit des signaux de contrôle
Le contrôle des processus est géré par la logique interne aux CSPEC
Héritage pour tous les niveaux de la numérotation et des propriétés de cohérence


Les machines à états finis

Catégories
Machines combinatoires : les sorties dépendent de la combinatoire des entrées
Machines séquentielles : les sorties dépendent des entrées courantes en fonction des entrées et sorties passées

Machines combinatoires

Une machine combinatoire est définie comme une machine à états finis dont les sorties dépendent uniquement de ses entrées courantes

Yi = f Xj

Exemple : les valises à codes

Matérialisée au niveau de la CSPEC par des tables de décision (table de vérité)
Présentation tabulaire de toutes les combinaisons des valeurs des signaux d’entrées
Définition de la valeur des signaux de sorties correspondant à chacune des combinaisons

Principe essentiel : toutes les combinaisons des valeurs d’entrées sont couvertes dans la table



Nota : Possibilité d’utiliser des arbres de décision ou des diagrammes de Vetch et d’Euler

Machines séquentielles

Une machine séquentielle est définie comme une machine à états finis dont les sorties dépendent des entrées courantes et passées

La machine possède une mémoire représentée par ses états

Une machine séquentielle est TOUJOURS dans un de ses états spécifiés

{Yi}n = f {Xj}n, qn
qn+1 = g[{Xi}n, qn]
avec
{Yi}n est le Nième ensemble de sorties
{Xj}n est le Nième ensemble d’entrées
qn est le Nième état de la machine
« f » et « g » sont des fonctions logiques combinées


Une machine séquentielle peut (doit) être initialisée dans un état de départ
L’état de départ est étiqueté
Une transition, venant de nul part, permet de positionner la machine à l’état de départ

La machine reste dans un état donné tant qu’aucun événement ne la fait changer


Diagramme Etats Transitions


Un DET comprend 4 éléments :
Les états : matérialisés par des boites rectangulaires
Les arcs de transition relient deux états entre eux
Les événements : le déclenchement de la transition si l’état associé est actif
Les actions : elles sont associées à l’événement


Les différents modèles
Mealy : les actions sont associées aux transitions
Moore : les actions sont fonction de l’état courant de la machine


Règles : les actions, bien qu’associées aux transitions restent actives jusqu’à la transition suivante





Table Etats / Transitions


EtatEvénementActionEtat suivantDépartInitialisationArrêtArrêtMalaxeur Positionné
& M/A = « Vrai »Remplir MalaxeurRemplissageMalaxeur Non Positionné
& M/A = « Vrai »Positionner MalaxeurMalaxeur en position initialeRemplissageFin RemplissageMélangerMalaxageMalaxageFin MalaxageVides MalaxeurVidageVidageFin Vidage
& M/A = « Vrai »Remplir MalaxeurRemplissageFin Vidage
& M/A = « Faux »ArrêtMalaxeur en position initialeMalaxeur Positionné
& M/A = « Vrai »Remplir MalaxeurRemplissageMalaxeur Positionné
& M/A « Faux »Arrêt

Matrice Etats / Transitions


EtatEvénementInitialisationMalaxeur Positionné
& M/A= « Vrai »Malaxeur Non Positionné
& M/A= « Vrai »Fin RemplissageFin MalaxageFin Vidage
& M/A = « Vrai »Fin Vidage
& M/A = « Faux »Malaxeur Non Positionné
& M/A = « Faux »ArrêtArrêt Remplir MalaxeurPositionner MalaxeurRemplissageMalaxeur en position initialeRemplissageMélangerMalaxageMalaxageVider MalaxeurVidageVidageRemplir MalaxeurRemplissageArrêtMalaxeur en position initialeRemplir MalaxeurRemplissageArrêt





Matrice Etats / Etats (forme alternative)




De l’étatA l’étatArrêtRemplissageMalaxageVidageMalaxeur en position initialeDépartInitialisationArrêtMalaxeur Positionné & M/A = « Vrai »Malaxeur Positionné & M/A = « Faux »Remplir MalaxeurPositionner MalaxeurRemplissageFin RemplissageMélangerMalaxageFin MalaxageVider MalaxeurVidageFin Vidage
& M/A = « Faux »Fin Vidage
& M/A = « Vrai »Remplir MalaxeurMalaxeur en position initialeMalaxeur Positionné & M/A = « Faux »Malaxeur Positionné & M/A = « Vrai »Remplir Malaxeur


Intégration des machines à états finis dans les CSPEC

Les machines à états finis font parties des CSPEC


Les entrées sorties sont en fait les entrées sorties de la machine à états finis


Dans un DFC, tous les signaux sont des signaux discrets


Les sorties des CSPEC sont toujours des signaux discrets


Les tables utilisées pour la gestion des processus et des sorties sont appelées Tables d’Activation des Processus (TAP)

Ses sorties ont deux états :
« vrai » ( le processus est activé ou le signal de contrôle est à l’état vrai
« faux » ( le processus est désactivé ou le signal de contrôle est à l’état faux

Elle permet une gestion de l’ordre d’activation des processus

Les actions issues de la TAP sont gérées de façon combinatoire par rapport à ses entrées

Spécifications de contrôle combinatoire



































Spécifications de contrôle séquentiel





































Une CSPEC composite

Utilisation combinée de machines combinatoires et séquentielles



Une CSEPC multi-feuillets


Les conventions (nom et numérotation de l'analyse structurée) sont repris pour le DFC et le CSPEC


Les principes de découpage par niveau sont étendus à toutes les structures
Une seule CSPEC pour un DFD
La taille peut être importante ( multi-feuillets


C'est le seul composant ayant cette propriété
Dans une CSPEC multi-feuillets, les feuillets devront pouvoir communiquer les uns avec les autres
Possibilité d'utiliser des variables internes


Conventions
Chaque feuillet porte le nom et le numéro de la CSPEC avec la convention "feuillet m de n"
Si la CSPEC est composite, les diagrammes sont rangés dans l'ordre de la figure
Si une CSPEC est supérieure à 3 ou 4 feuillets, un guide de l'utilisateur est alors inclus pour décrire le découpage général ainsi qu'un répertoire des signaux






































Bilan

Les machines peuvent être divisées en 2 types
Les machines continues
Les machines à états finis
Les machines à états finis ne peuvent traiter que des informations discrètes
Machines combinatoires
Caractérisées par un ensemble d'entrées, une fonction de transfert, un ensemble de sorties
Représentées par des équations booléennes
Machines séquentielles
Caractérisées par un ensemble d'entrées, un ensemble d'états, une fonction de transfert, définissant un ensemble de sorties
Représentées par des DET (diagramme état transition) des tables ou des matrices
Les diagrammes état transition consistent en des états, des transitions, des événements d'entrées et des actions sur les sorties. Les tables et les matrices état transition ont exactement les mêmes informations mais avec un format différent
Les CSPEC contiennent des machines à états finis. En pratique une CSPEC peut contenir plusieurs des objets cités; typiquement les entrées et les sorties d'une machine séquentielle passent par des machines combinées
La CSPEC est la seule composante du modèle qui peut être réparti sur plusieurs feuillets. Les feuillets sont numérotés et un guide utilisateur de la CSPEC est inclus


Exercice : corriger la CSPEC du malaxeur



Prise en compte de la gestion des alarmes



Spécifications des contraintes de temps

Temps : aspect critique des systèmes temps réel


Temps de réponse ( capacité de traitement du système


Modèle des besoins : comment spécifier fidèlement et sans ambiguïté ce que le système doit faire


Propriétés idéalisées du modèle permettent d'ignorer les temps de traitement internes


Les problèmes du concepteur
Les spécifications fonctionnelles des besoins à fournir
Les contraintes du matériel et du langage de programmation
Le respect des contraintes temporelles Entrées ( Sorties


L'aspect simplifié du problème temps
Le taux de répétition
Le temps de traitement des E/S

Fréquence de répétition


C'est le taux de re-calcul des sorties des primitives externes
Spécifiée dans le dictionnaire des besoins


Le taux de calcul interne est laissé à la discrétion du concepteur



Exemple du jet commercial
Fréquence calcul : 200 ms
Fréquence de transmission : 100 ms

( Faire passer 2 fois le même résultat


Temps de réponse « entrée ( sortie »

Signaux d'entrées externesEvénementSignaux de sorties externesEvénementTemps de réponseRotation_ArbreChangement de vitesse ou d'accélérationPosition_PapillonChangement correspondant2,0 sec max
Cet exemple permet de spécifier le temps boucle complet d'une voiture



Les différentes informations
Temps de réponse maximum entre le signal d’entrée et le signal de sortie
Les événements entrant sont extérieurs au système
Les événements sortant sont extérieurs au système
Toutes les informations sont spécifiées dans le dictionnaire des besoins



Tout signal externe comporte une spécification de temps de réponse



Possibilité d'insérer des diagrammes de temps dans le dictionnaire des besoins





























Bilan


Prise en compte des contraintes de temps dans le modèle des besoins



Les contraintes internes sont différées à la phase de conception



Les contraintes de temps sont définies dans le dictionnaire des besoins Elles recouvrent les deux aspects

Le taux de répétition est spécifié pour des signaux primitifs externes

Le temps de réponse entre entrée et sortie (liste les événements d'entrée et les événements de sortie correspondant et leurs contraintes de temps associées)

Dictionnaire des besoins


Composant MAJEUR du modèle de besoins (troisième axe de la modélisation)




Il comporte la définition exacte

Des flots de données et de contrôle : leur composition et leurs attributs

Des réservoirs : leur structure et leurs attributs


Attributs des données
Attributs de structure : ils indiquent la composition de la donnée
Primitive : il s’agit d’une donnée élémentaire
Composé : il s’agit d’un groupe de données

Attributs de nature (pour une donnée primitive seulement)
Préciser sa place dans le système : interne ou externe

Pour une donnée continue
Fréquence d’apparition ou de traitement
Taux de transfert (le débit)
Unité de mesure
Précision, résolution
Domaine de variation
Valeur par défaut (en cas d’instabilité prévisible du système)
Utilisateurs concernés
Priorité des traitements


NomDéfinitionAttributsUnitésDomaineRésolutionFréquenceAlt_BaroAltitude BarométriquePieds0-70 00011 par 100 ms

Pour une donnée discrète
Fréquence d’apparition ou de traitement
Le nombre et le nom des valeurs possible
Utilisateurs concernés
Priorité de traitement


NomDéfinitionAttributsNb valeursNom de la valeurFréquenceEn_l’Airles roues perdent le contact2On, Off1 par 500 msPhase_de_Vol Phase de profil de vol vertical4décollage
montée
croisière
descente1 par 200 ms
Définition d'un signal discret

Attributs de détail (pour une donnée primitive ou composée) : fréquence d’apparition ou de traitement, taux de transfert, volume, taille, …

Structure de groupes

Permet de grouper des informations

Par affinement successif, aller du global au détail

Tous les éléments sont définis dans le dictionnaire des besoins

Description
Décrire sa nature en utilisant les opérateurs de composition
Lui donner une définition (en utilisant les symboles commentaires)
Préciser sa place dans le système (interne ou externe)
Rajouter ses attributs de détail
Fréquence d’apparition ou de traitement
Volume et taille des informations
Le nombre et le nom des valeurs possible
Utilisateurs concernés
Priorité de traitement




Bases de données du dictionnaire

Ajout d'informations extérieures pour la gestion du dictionnaire
Identification du responsable de l'entrée ou de la modification d'un flot, la date associée, l’événement ayant occasionné cet ajout ou cette modification
Liste des flots de plus haut niveau dont le flot est membre (« membre de »)
Liste des diagrammes de flots ou le flot apparaît (utilisé dans « )
Commentaires


SymboleSignificationDescription=composé deCe symbole indique que le flot nommé sur sa gauche est composé des flots nommés sur sa droite+ensemble avecCe symbole rassemble les membres d'un groupe, mais n'implique pas d'ordre.
Si un ordre est requis, il est spécifié par un commentaire dans le dictionnaire ou dans une PSPEC{}occurrence deUne expression encadrée par des accolades peut survenir un nombre quelconque de fois pour une occurrence donnée de flot.
Les accolades peuvent être indicées : M{}N ( un nombre quelconque d'itération compris entre M et N
{}2 : signifie 0,1 ou 2 itérations
2{} : signifie 2 itérations au plus
2{}2 : signifie 2 itérations[ | ]sélection d'un parmiLes crochets encadrent deux ou plusieurs éléments séparés par des barres verticales. Toute occurrence donnée de flots contiendra exactement un des éléments()optionnelL'expression encadrée par des parenthèses peut ou ne peut pas apparaître dans une occurrence de flots" "littéralLes symboles encadrés par des guillemets sont le flot de données réelles* *commentaireLes astérisques encadrent un énoncé qui n'est pas une partie formelle de la définition mais qui donne des informations complémentaires pour la compréhension\ \primitiveDans certains formats de dictionnaire, les backslash permettent d'identifier les définitions des primitives

Bilan


SA-RT : La construction du modèle des besoins
Exemple : la gestion d’une barrière de parking

Une barrière de parking
Contrôle un accès bidirectionnel (entrée sortie de véhicule)
Est pilotée par carte magnétique.

Aspect géographique
A l'entrée du parking se trouve un détecteur de carte magnétique (DE).
A l'intérieur se trouve également un détecteur de carte magnétique (DS).
A l'aplomb de la barrière se trouve une cellule d'urgence (CU)

La barrière est commandée par un ensemble de capteurs actionneurs comprenant :
Un moteur qui peut se décomposer sous la forme de 2 actionneurs élémentaires chacun piloté par un signal : M/A et sens ; le changement de sens du moteur ne peut se faire que moteur arrêté
Deux capteurs de position :
Une cellule d'urgence est positionnée à l'aplomb de la barrière
Deux détecteurs de carte magnétique :



Fonctionnement
Lorsque l'on détecte la présence d'une carte magnétique en entrée ou en sortie, on doit ouvrir la barrière.
Pour cela on doit commander le moteur jusqu'à ce que la barrière soit complètement ouverte. On arrête alors le moteur.
Au retrait de la carte on lance une temporisation de :
15 secondes nécessaires au franchissement de la barrière pour une demande extérieure
35 secondes nécessaires au franchissement de la barrière pour une demande intérieure
Au bout de 15 secondes, on ferme la barrière sauf si entre temps une autre carte magnétique a été introduite obligeant à relancer le cycle de l'automatisme
Pour refermer la barrière, il faut commander le moteur jusqu'à ce que la barrière soit complètement fermée.
En cas de détection d'un obstacle alors que la barrière n'est pas fermée, on doit réouvrir la barrière jusqu'à la disparition de l'obstacle. On relance alors le cycle de l'automatisme.
Si une carte magnétique est détectée alors que la barrière est entrain de descendre, il faut ré-initialiser le cycle d'ouverture de la porte.
La présence d'un obstacle barrière fermée pendant un temps supérieur à 45 secondes entraîne l'ouverture de la barrière.


Présentation

But du modèle :

Permettre de vérifier que la présentation des besoins est correcte
Exacte
Pertinente
Cohérente
Complète

Servir de point de départ à la conception et à l »implémentation du système




Utilisateurs et réalisateurs du modèle


Utilisateur de type 1 :
Client et utilisateurs
Ils veulent comprendre et pouvoir valider le besoin
Ils sont intéressés par l’aspect « fonctionnalités opérationnelles »
Il est fondamental de communiquer avec eux


Utilisateur de type 2 :
Concepteur : Connaissance du processus industriel ;
Réalisateur : Connaissance système
Ils ne connaissent pas forcément le domaine de l’étude
Pour eux le modèle doit être clair précis et concis
Ils sont intéressés par les aspects cohérence logique et faisabilité du modèle


Mise en place d'un dialogue
En interne dans chaque groupe
Entre les groupes


Les sources des besoins

Expert connaissant le processus industriel
Source d'informations variables d'un projet à un autre
Réalisateur du modèle doit prendre en compte l'ensemble des informations, les assembler et vérifier leur cohérence


Le processus de construction du modèle

Organiser les énoncés en grandes fonctions
Identifier les entités externes
Identifier les groupes d'informations importants entre le système et les terminaisons
Commencer par construire un diagramme de flots
Analyser le diagramme résultant
Le champ du modèle est-il bon ?
Les terminaisons n'appartiennent-elles pas au système ?
Les processus prennent-ils en compte les besoins utilisateurs ?
Un nouveau découpage ne rend-il pas la spécification plus claire?
Les flots s'échangent-ils entre les bons éléments ?
Le schéma serait-il plus clair en regroupant certains flots ?
Les Sorties peuvent-elles être calculées à partir des Entrées ?
Faire toutes les évolutions, modifications
Dessiner un diagramme de contexte
Condenser les flots en groupe plus réduit
Faire un diagramme de niveau 1
Examiner les principales spécifications de besoins et analyser les activations désactivations
Identifier les flots de modes et de conditions
En déduire les flots de contrôle
Construire une CSPEC de niveau 1
Ne peut-on faire autrement ?
Analyse descendante DFD, DFC
Vérifier la cohérence par rapport au dictionnaire
Etudier, analyser le besoin de l'utilisateur et vérifier son portage dans le modèle
Faire des itérations
Définir des PSPEC si et seulement il s'agit de fonctions simples
Remarques
Champ ouvert à l'investigation analyse et réflexion
Ce n'est pas une science exacte
Il n’y a pas de recette miracle


Analyse initiale

Il faut 4 étapes de construction

Expression du besoin des utilisateurs


Pas de règles spécifiques :
de pas d'informations
à plein de détails


Dans tous les cas, c'est à vous de penser pour créer le modèle

Séparation des données et des contrôles

Données / Contrôles
Vous devez en faire la séparation
Les signaux de données et les processus ; classés comme donnée
Les signaux discrets qui agissent sur eux ; classés comme contrôle
Les termes « Verbes d'action » comme activer, allumer, engager sont des contrôles (en principe)

Les signaux de contrôle
Classé comme contrôle quand il joue sur CSPEC de haut niveau
Classé comme donnée quand il joue sur des PSPEC pour des traitements conditionnels de bas niveau (sauf si vous réalisé une machine à contrôle intensif)
Frontière floue entre données et contrôles

Remarque
Si un signal est classé comme donnée et contrôle, il doit apparaître dans les 2 flots (un signal de contrôle qui est affiché)
Par contre une seule définition dictionnaire et son double rôle noté

Règles : Garder le modèle simple
Approche DFD
Identification des processus à contrôler
Le DFC dépend du DFD
Processus de données = une boite noire
La structure du modèle de contrôle est le domaine ou le besoin utilisateur est vite dépassé (prendre garde à l'implémentation du logiciel)
Chercher toujours à minimiser le modèle de contrôle

« Classification »

Type de signal :Classé comme :Signal représentant une quantité physique continueSignal de donnéSignal discret multi-valeursDépend de son utilisation
S'il sert au contrôle (activer) des processus
S'il sert avec des signaux de données, alors c'est une donnée
Il peut être utilisé selon les 2 types dans des parties différentes du systèmeSignal binaireGénéralement signal de contrôle
La règle du signal discret multi-valeurs peut s'appliquerType de processus :Classé comme :Processus avec des entrées et des sorties continues ou avec des entrées ou des sorties mixtes continues et discrètesProcessus de donnéesProcessus avec des E/S discrètesContrôle mais, pourrait être des processus de données si tous ces signaux étaient définis en signaux de données et s'il ne contrôle pas d'autres processusProcessus à états séquentielsProcessus de contrôle utilisant une représentation sous forme de machine séquentielleMise en place du contexte du système


Prendre en compte le besoin réel de l'utilisateur par des phases de discussion


Toujours partir du pire puis simplifier
Présumer le pire : toutes les fonctions inimaginables incluses
Réduire le nombre de fonctions après vérification du champ du système


Travailler
1 sur les processus
2 sur le contrôle


Analyser le besoin chapitre par chapitre, phase par phase et en déduire le besoin


Positionner les CSPEC le plus haut possible dans le modèle


N’hésiter pas à jeter des idées sur le papier



Partition des niveaux supérieurs

Découpage du projet
il s'agit d'un sujet délicat


Circulation des signaux de haut en bas
Un signal issu d'un CSPEC ne peut pas gérer un PSPEC de niveau supérieur ( oscillation


Une CSPEC de haut niveau peut gérer un PSPEC de bas niveau
Utilisation des DFC comme conducteur


L’analyse part des hauts niveaux du modèle
Ils doivent être parfaitement définis pour réaliser le projet surtout si
Le nombre d’intervenants est important
Le projet est complexe


Constatation : on ne passe jamais assez de temps sur l’analyse initiale
Le défaut du détail








































Bilan

L'expression de besoin : formes variées


Commencer par inclure tout élément du contexte, puis partitionner pour exclure tout ce qui ne sert à rien (en accord avec l'utilisateur)


Travailler avec les termes et de façon familière à l'utilisateur


Construire le processus avant le contrôle


Garder la structure de contrôle au plus haut niveau


Les flots et les processus ( dans le modèle des processus


Les DCTs et la supervision ( dans le modèle de contrôle


Ils peuvent exister dans les 2 modèles


Toujours travailler par rapport au besoin

Exemple de la barrière de parking

Définir le diagramme de contexte de données (DFC)



Réaliser les diagrammes de flots de données (DFD)


Développement de la structure du modèle

La structure du diagramme de flots de données est le coeur du système

Abstraction et décomposition

Du global vers le détail

DCD, DCC les flots et la séparation des 2 mondes

DFD0, DFC0 (diagramme de niveau 1)

Vision générale du modèle
Exclusion
Les sous-ensembles de processus ont la propriété d’être mutuellement exclusifs ; deux processus ne doivent pas partager un même sous processus
Un besoin particulier à un certain niveau de détail n'est inclus qu'à un seul point du modèle
Regroupement des fonctions qui ont un lien étroit ensemble


Le principe du sept plus ou moins deux

G.A. Miller montre que les capacités humaines sont optimum quand nous avons à faire à un nombre de fait déterminé 5 < N < 9

Prendre en compte la complexité du modèle


Regroupement et décomposition de processus

Représentation descendante et structurée "agréable" des spécifications

Prendre en compte le résultat après itérations

Démarche abstraite
Minimiser le nombre de flots : groupement des processus et des flots
Distribution répartie des flots entre les différents processus
Commencer par un dessin et le modifier
Un flot ou un processus pour lequel vous avez des difficultés à donner une dénomination est un candidat à décomposition
Travailler par partie sur le modèle
Travailler avec itérations entre les différents niveaux

Vérifier les règles de cohérence avec le dictionnaire de besoin







































Regroupement et décomposition de flots

Description abstraite des flots de données

Regroupement des signaux élémentaires sur un même sous-groupe, sur un même groupe

Décomposition hiérarchique des groupes, des sous-groupes

L'ensemble est défini dans le dictionnaire des besoins
Remarque
Les PSPEC sont supposés avoir à disposition le temps universel
Les flots de données et de contrôle
Division et fusion des flots
Flots multiples
Arborescence des flots










Dénomination des processus et des flots

Choisir des noms concis et significatifs est primordial pour construire un bon modèle



Règles

Pas de verbe pour les flots

Verbe à l'infinitif + complément d'objet pour les processus



Abréviations

Y FAIRE TRES ATTENTION

Pour un nom donné toujours utiliser la même abréviation

Elle doit clairement identifier le signal ou le processus

Dans la mesure du possible, il vaut mieux utiliser des mots courts que des abréviations


Utilisation des stockages

Stockage pour une utilisation ultérieure des données ou des contrôles

Nom du stockage correspond au nom du flot

Un flot non nommé correspond à la totalité

Un sous flot doit être nommé

Les flots entrant et sortant doivent suivre la même règle



Types de stockage

Donnée

Contrôle

Donnée et contrôle

Processus fonctionnellement identiques

Un processus ne partage jamais un sous processus

Par contre deux processus peuvent être identique

N'utiliser ce principe que pour les processus de haut niveau






Limiter l’importance du modèle de contrôle

Eviter les détails de l'implémentation dans le modèle des besoins et éviter la tentation d'utiliser le modèle de contrôle pour les décrire



Il existe des systèmes qui sont naturellement à contrôle intensif

==> Propriété des machines à états finis avec peu ou pas de traitement sur les données

Décomposition en DFC et CSPEC
Décomposition standard et CSPEC multi-feuillets

Les systèmes à contrôle intensif

































Le dilemme du détail

Grande difficulté : Ou arrêter le modèle des besoins


Difficulté augmentée du fait que nous sommes dans une chaîne


Chacun réalise une partie du projet dans cette chaîne


Dans les gros projets, il faut calquer le modèle de besoins sur les structures mises en places (différentes équipes projet) ( découpage du projet en sous projets

Le produit final

Revoyez votre modèle avec l'œil d'un artiste


Il faut qu'il soit « beau et clair », qu'il permette une identification rapide des différentes fonctions contenues dans le besoin


Bilan final

Objectif
Spécifications claires et concises à chaque niveau
Partition des besoins en sous ensembles exclusifs
5à 9 processus par diagramme
Prendre en compte la complexité du modèle
Rendre les diagrammes simples par itérations successives
Décomposition des flots en même temps que les processus
Choisir des dénominations claires et précises
Utiliser les stockages de données
Définir, à un seul endroit, les processus de haut niveau fonctionnellement identiques
Utiliser la forme la plus simple du modèle
Utiliser la structure de contrôle de façon indépendante de la structure des processus
Si et seulement si le système est par nature un système à contrôle intensif
Définir clairement, au départ, le partage entre spécification et conception
Se baser sur les fonctions de l'organisation et le rôle des gens
Faire un beau et clair projet

Les spécifications de processus

Leur rôle

PSPEC + Interconnexion ( Définition de besoins


En fait le DTD ne sert à rien


PSPEC ( transformation S = f(E) ; c'est une fonction spécifique


Permet de vérifier la cohérence : Utilité des E/S ?


Existence d'un lien invisible entre PSPSEC et DFC (CSPEC); ce sont les fonctions d'activation et de désactivation


Les différents types

Langage Naturel Structuré
- Pas de code - Pas de Pseudo-Code -


Equation


Table


Diagramme
Trajectographie
Géométrie


Textuel


Les conventions

Signaux continus et intermittents
Signaux continus toujours présent; utilisation par défaut
Intermittents : présent à un instant donné; dans ce cas utilisation de la syntaxe "Résultat"
Analogie entre un échantillonneur bloqueur et un échantillonneur simple


Accès universel au temps
Temps : paramètre universel
Inclus de base dans le modèle ==> pas besoin de définir le flot
Par contre, définir ce paramètre temps dans le DB


Remarque
L'utilisation d'un paramètre temps relatif à un événement nécessite la déclaration de ce paramètre dans le flot et dans le DB


Le langage naturel structuré

Les types de mots
Verbes d'action appliqués à un objet (transitifs, impératifs)
Noms pour les flots de données
Préposition et conjonction pour montrer les relations logiques
Termes mathématiques, physiques et techniques compris par les intervenants
Autres mots nécessaires pour compléter la spécification


Les structures de contrôle à entrée unique, à sortie unique sont simples
Concurrence : plusieurs activités se déroulent simultanément
Séquence : les activités se déroulent suivant un ordonnancement séquentiel spécifié
Décision : un branchement dans le flot d'activités est fait en fonction des résultats d'un test sur une entrée
Répétition : la même activité est répétée jusqu'à ce qu'une limite ou un résultat soit atteint

Les annotations

Ne correspond pas à un complément de spécification mais à :
Des explications
Des compléments d'information
Des fonctions historiques

Bilan

Dernier niveau de détail


Description de la fonction S = f (E)


PSPEC : Texte (utilisation du langage naturel structuré), ..


Par défaut les Sorties des PSPEC sont continues. Si une sortie intermittente est demandée, elle est signalée par la syntaxe Résultat


PSPEC ont accès au temps universel


Utilisation de commentaires


Exemple : la barrière de parking

Définir les différents processus

Les spécifications de contrôle

Les éviter

Toujours se poser la question suivante : la CSPEC est-elle nécessaire ?
Activation / Désactivation des processus de haut niveau
Toujours prendre en compte la structure la plus simple
La combinatoire
Le séquentiel s’il existe un besoin de mémorisation ou si cela permet une simplification


But
Minimiser la structure de contrôle


Analyse des mots clé
Exemple 1 : Si le train a atteint sa vitesse maximum de croisière, alors les paramètres moteur de régime stabilisé seront sélectionnés
Exemple 2 : La régulation automatique de la vitesse du train sera sélectionnée si elle est actionnée au panneau de commande et si tous les états sont normaux

Contrôle de type combinatoire

Utilisation du langage naturel structuré

Si possible utiliser :
Les équations booléennes
Les tables de décision
Table complète
Simplification
Obtention d'une table réduite
Attention aux ambiguïtés : Une combinaison d'entrée ne doit générer qu'une combinaison de sortie

Table d'activation des processus
Equivalant à des tables de décision
Sortie binaire positive
vrai = activation
faux = désactivation
Notation de séquence si les processus doivent dialoguer par des réservoirs

Contrôle des centres de transaction
Permet le choix d'options
Ne fonctionne que pour des processus terminaux
- Choix multiple, structure répétitive
Contrôle de type séquentiel

Choix des états
- Dénomination correcte
- Choisir les états / aux besoins

Choix de la représentation
DET
- Pour un petit nombre d'états
MET / TET
Même résultat que le DET
Le choix dépend de vous
Par contre la forme état / état de la MET peut avoir quelques propriétés intéressantes : même format que le DET ; possibilité de vérification croisée

Conventions spéciales de la méthode
Par défaut, une machine à états finis garde ses sorties positionnées tant qu'un nouvel événement de la fait pas changer d'état
Si une machine est de type "one shoot", il faut la déclarer dans la CSPEC
Questions élémentaires à ce poser : déterminer si 2 automates sont équivalents ; développer une chaîne d'événement qui permet de forcer la machine dans son état de départ à partir de n'importe quel état inconnu (exemple : la MST) ; développer une chaîne d'événement qui permet de forcer la machine à retourner à son état courant (exemple : réinitialisation rapide)

Construction d'une machine séquentielle à partir du modèle
Réfléchir avant d'écrire
Déduire les différents états des besoins opérateur par l'analyse des mots clés
Faire un diagramme simplifié "d'enchaînement" des états
Analyser les conditions d'activation et de désactivation des processus
Faire des itérations
Formaliser le résultat
Prendre la méthode que l'on "sent" le mieux

Les CSPEC multi-feuillets

Diagramme composite

Une seule CSPEC par DFC

Adaptation des CSPEC

Arborescence des CSPEC


CSPEC flottante
Génération de signaux de contrôle qui vont piloter des CSPEC de plus bas niveaux. Ces CSPEC activent ou désactivent les processus
Utilisation du DFC pour acheminer les flots de contrôle

Le temps dans les CSPEC
Le temps est disponible dans l'ensemble des CSPEC
Ne pas inclure des contraintes temporelles spécifiques de l'implémentation dans les CSPEC

Les CSPEC dans la structure totale
Utilisation avec discernement des CSPEC, là où nécessaire et de préférence à haut niveau
Dans les bas niveaux, utiliser les PSPEC partout ou cela est possible
Partie centrale des spécifications du modèle de contrôle
Bilan

Evier d'utiliser les CSPEC partout ou cela est possible


Utiliser des machines combinées au-dessus des machines séquentielles


Minimiser les tables de décision et les tables d'activation des processus par combinaison et utiliser les conditions indifférentes


Utiliser les centres de transaction


Dénomination significatives pour l'utilisateurs


Utilisation du DET si le modèle est assez simple, sinon utiliser les MET; seules les machines les plus grandes doivent requérir les TET


Si le multi-feuillets est utilisé, il doit être fait de façon logique et facile à suivre


Insérer les CSPEC au bon endroit dans le modèle



Exemple : la barrière de parking


Définir le diagramme de contexte de contrôle


Définir les diagrammes de flots de contrôle


Définir les CSPEC

La définition des contraintes de temps

La problématique

Temps de réponse externe E( S


Temps de réponse interne du ressort de la conception


Définition de la fréquence des entrées


Définition de la fréquence des sorties (équivalent au temps de calcul)


Exception :
Temps de récurrence d'un processus (filtre par exemple)
Génération d'un signal externe qui a des relations temporelles avec un signal d'entrée









































La spécification du temps de réponse

Elle permet de voir le système comme un modèle orienté événement


Les contraintes de temps sont écrites en terme d'opérations externes au système


La spécification des contraintes de temps implique des itérations importantes pendant la phase de conception


Ne spécifier que des temps de réponse réalistes et cohérents avec le modèle de besoin



Bilan

Les spécifications des contraintes de temps ne sont reliées qu'au temps externe


Quatre contraintes temporelles sont spécifiées :
Temps de réponse externe
Fréquence de réception
Fréquence d'émission (fréquence de calcul)
Temps nécessaire demandé par l'utilisateur


Débuter très tôt la spécification du temps de réponse


La spécification du temps de réponse peut évoluer pendant la conception


Les temps de réponse peuvent être critiques
Stabilité
Sécurité
Interaction opérateur


La spécification du temps de réponse doit être cohérente avec le dictionnaire de besoins

La gestion du dictionnaire

Les types de flots

Type

Groupe/Primitif
Groupe = SYMBOL 83 \f "Symbol" Groupe et ou Primitif
Primitif = Flot indivisible

Interne/Externe
Interne : N'appartient pas au diagramme de contexte
Externe : Permet la communication avec le monde extérieur

Contrôle/Donnée

Discret/Continu



Attributs
Nom:
Identifiant du flot
Définition du groupe BNF
Définit la constitution du groupe
Unités
Unités physiques, obligatoires pour les signaux primitifs continus
Domaine
Limites à l'intérieur desquelles un signal primitif prend ces valeurs
Résolution
Valeur du LSB pour les signaux primitifs continus
Fréquence
Fréquence à laquelle le signal est remis à jour
Noms de valeur
Liste des noms des valeurs d'un signal discret primitif, obligatoire pour ces signaux
N° des valeurs
Le nombre de valeurs d'un signal discret primitif
Utilisé dans
Une liste de DCD, DCC, DFD, DFC, PSEC, CSPEC
Membre de
Liste d'entrées d'un autre dictionnaire
Permet le chaînage avec d'autre dictionnaire
Commentaires


Les symboles du dictionnaire

La définition BNF d'un flot couvre toutes les formes possibles de ce flot


A chaque instant, une occurrence particulière de ce flot apparaît




Construction du modèle des besoins : synthèse de la démarche SA-RT

Acquérir les informations sur le système
Cahier des charges (s’il existe)
Documents divers
Observer l’existant
Utiliser sa propre connaissance du sujet
Enquêter avec un questionnaire
Interroger le client, les utilisateurs et les « expert » du domaine


Préparer la formalisation
Liste des terminaisons
Liste des fonctions du système
Liste des données d’interface
Liste des contrôles (événements externes)


Définir le contexte : DCD et DCC
Terminaisons
Une bulle représentant tout le système (avec un nom significatif qui traduit la fonction d’usage, le but du système)
Les flots d’entrées et de sorties entre le système et les terminaisons ; renseigner le dictionnaire
Bien séparer les contrôles des données

Rappels
Un signal du domaine du continu est toujours une donnée
Un signal discret est souvent un contrôle
Un flot de contrôle est toujours discret, jamais continu
Un flot de donnée est souvent continu, parfois discret
Un contrôle peut-être
Un signal de type interruption (interne ou externe)
Un état d’un objet externe provenant d’une terminaison
Un changement de mode de fonctionnement
Un signal de changement d’état du système
Une condition sur des données issue d’un processus terminal
Un événement résultant d’une combinatoire d’autres signaux de contrôle
Un contrôle est responsable d’un changement d’état du système
Certains contrôles peuvent ne pas être nécessaires (intégré directement dans les PSPEC)
On a tendance à sur spécifier les contrôles

Proposition
Ne dessiner qu’un seul diagramme DCD + DCC pour faciliter la compréhension totale du système
Penser à regrouper les flots pour améliorer l’aspect visuel et ainsi la compréhension du modèle
Dessiner le premier niveau DFD0 et DFC0
Identifier les 3 à 7 fonctions principales de haut niveau du système ; les dessiner et les nommer de façon significative (verbe + complément d’objet)
Reprendre un à un tout les flots de données du DCD et les affecter aux processus ; prendre en compte la décomposition éventuelle des flots de données ; nommer les nouveaux flots de données avec un nom significatif ; renseigner le dictionnaire
Reprendre un à un tous les flots de contrôle du DCC
Si le contrôle contribue à la gestion directe d’une fonction de haut niveau ( le faire arriver sur la CSPEC0
Dans le cas contraire, l’affecter à un processus pour une consommation par des niveaux inférieurs
Il peut ne pas exister de CSPEC 0
Dessiner ensuite les flots de données internes au diagramme
Faire de même avec les flots de contrôle ; distinguer ceux qui sont utilisés ou qui proviennent de la CSPEC0 (si elle existe) de ceux qui seront consommé à des niveaux inférieurs
Rajouter les stockages nécessaires à la fonctionnalité du système
Un stockage se justifie si le résultat du traitement (données ou contrôle) doit être sauvegardé après la disparition du processus ou de la CSPEC producteur
Un stockage peut être lu « n » fois par « p » processus et dans un ordre quelconque
Un stockage n’est présent qu’à un seul niveau de décomposition
Un stockage doit être défini dans le dictionnaire
Reprendre les diagrammes de contexte (si besoin)

Proposition
Dessiner un diagramme composite (DFD0 et DFC0) pour faciliter la compréhension du système
Définir les contraintes temporelles applicables au système (E ( S)


Dessiner les niveaux inférieurs « DFDi et DFCi »
Appliquer la même démarche que pour le DFD0 et DFC0
Définir chaque donnée et chaque contrôle, chaque stockage dans le dictionnaire ; définir notamment la composition des groupes de données
Recevoir les diagrammes pères pour itération

Affiner les diagrammes : question à se poser sur chaque diagramme
N’y a-t-il pas trop (trop peu) de processus à ce niveau ? ; l’idéal de 3 à 9 processus par diagramme
Les processus d’un niveau donné représentent-ils bien la décomposition de la fonction correspondante de niveau supérieure ?
Chaque fonction est-elle bien au bon niveau(ne doit-elle pas être regroupée avec le niveau supérieur ou au contraire se décomposer en deux sous-fonctions à ce niveau) ?
Rappel des critères de regroupement ou de séparation des processus : même niveau d’abstraction, même complexité, cohérence interne
Chaque processus peut-il générer ses sorties à partir de ses entrées ?
Les labels sont-ils clairs ?
Ne faut-il pas regrouper ou éclater tel flot de données (ou contrôle) ?
Les contrôles arrivants sur la CSPEC permettent-ils d’activer les processus de ce niveau ?
Comment désactiver tel processus ? (( conditions à préciser ; ( éventuellement compléter les contrôles)
Le principe de conservation des données par rapport au niveau supérieur est-il respecté ?


Ecrire les PSPEC
Rappel
Un processus décrit par une PSPEC est par définition indécomposable
Chacun des processus terminaux doit être décrit par une PSEPC

On arrête la décomposition d’un processus si :
Le processus existe déjà à un autre niveau (réutilisation)
La décomposition relève d’une décision de conception (on sort du QUOI pour rentrer dans le COMMENT)
On considère qu’une PSPEC est suffisante pour décrire le processus

Une PSPEC décrit ce que doit faire le processus et quelle stratégie il utilise pour produire ses sorties à partir de ses entrées
Type de description des PSPEC
Processus procédural : Langage Naturel Structuré
Processus mathématique ou physique : Equations
Processus « de décision » : tables ou arbre
Processus autre : utilisation de diagramme de schéma ou tout autre moyen approprié
Nota : éviter toute description textuelle

Utiliser de préférence les mots clés suivants pour une description en LNS
Les boucles : « Répéter ….. Jusqu’à … » ; « Tant Que ….. Fin Tant Que » ; « Pour …. Fin Pour »
Les conditions : « SI …. Alors ….. SiNon …. FinSi »
Opérateurs d’affectation : « := »
Mots clés d’émission ou de réception : « Envoyer » ; « Recevoir »

Décrire dans les PSPEC
Les entrées
Les sorties
Ne pas oublier les commentaires dès lors qu’ils apportent un plus à la description de la PSPEC


Ecrire les CSPEC
A chaque niveau vérifier la nécessité de la CSPEC en répondant aux questions suivantes ?
Le niveau considéré ne peut-il être représenté uniquement par le modèle fonctionnel (dynamique implicite du modèle SA) ?
Les décisions à prendre ne peuvent-elles pas être incorporées dans les PSPEC ?
Une CSPEC se justifie si les décisions à prendre affectent le mode opératoire du niveau considéré et donc activent ou désactivent des processus de ce niveau
Choisir le type de CSPEC
Les sorties dépendent exclusivement des entrées courantes : CSPEC combinatoire
Les sorties dépendent des entrées courantes et passées :
Les états des entrées sont disponibles : Combinatoire
Les états des entrées ne sont pas disponibles : Machine séquentielles

Rappel : une table de décision dont les sorties activent/désactivent des processus est une table d’activation des processus (TAP)


Conseil pour réaliser une CSPEC séquentielle
Identifier les états, les événements, les actions
Décider de la forme à utiliser : diagramme, matrice ou table
Dessiner les principaux états
Envisager tous les événements pour chaque état
Essayer toutes les transitions d’un état à un autre
Déterminer les actions correspondantes aux transitions, aux nouveaux états
Si un diagramme devient trop complexe, utiliser
Soit une matrice état transition
Soit une matrice état événement

Une machine états-transitions « un automate » consomme des événements et produit des actions ou d’autres événements
Si les événements sont simples (ne résultant pas d’une combinatoire) utiliser directement les signaux de contrôle entrant dans la CSPEC
Si les événements sont complexes, utiliser une CSPEC composite (signaux combinatoires et états de la machine)
Si les actions sont simples, produire directement en sortie des activateurs
Si les actions sont complexes, utiliser une CSPEC composite (automate + TAP)

Au maximum une CSPEC est à trois niveaux :
Combinatoire
Automate consommant ces événements et produisant des actions
TAP consommant ces actions et produisant des activateurs de processus et des flots de contrôle en sortie


Renseigner les aspects temporels
Spécifier dans le dictionnaire pour chaque flot
Les taux de réception des entrées
Les taux d’émission des sorties

Spécifier les temps de réponse à l’aide d’un tableau (Entrée / Evénement / Sortie / Evénement / Temps de réponse) dont les données doivent être cohérentes avec le dictionnaire

Commencer cette spécification dès le premier niveau
Ré-examiner cette spécification en phase de conception








Christian GARNIER
 REF DateDocument \h  \* MERGEFORMAT  septembre 2002  REF TitreDocument \h  SA-RT Page  PAGE 7 sur  NUMPAGES 113

Un projet


Christian GARNIER
 REF DateDocument \h  septembre 2002  REF TitreDocument \h \* MERGEFORMAT  SA-RT Page  PAGE 12 sur  NUMPAGES 113

8 : SA-RT : Le modèle des besoins

9 : SA-RT : La construction du modèle des besoins



 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Diagramme composite de Haut Niveau.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Optimisation Processus.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Processus Identiques.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Diagramme composite Controle intensif.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Contrainte temporelle.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - DFD1.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Contexte Donnees.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Exemple du malaxeur.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Diagramme composite.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Symetrie du modele.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Modele de Controle comme contre reaction.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Ampli.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Condition sur Donnee.vsd.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Signaux continus et discrets.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Variaition CSPEC.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - DFC1.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Contexte Controle.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - CSPEC Multifeuillet.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Diagramme de CSPEC Composite.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\Bibliothèque\\Besoin - CSPEC Sequentielle.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\Bibliothèque\\Besoin - CSPEC Combinatoire.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - symboles.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Machine Sequentielle.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Controle Centre Transaction.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Reseau de processus terminaux.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Division de flots.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Flots de donnee.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Numerotation.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - les niveaux.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Centre de transaction.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Flots de donnees suite.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Controle Processus.vsd" \a \p 

 LINK "\\\\S1tr\\public\\Administratif\\Cours 2005-2006\\SA-RT\\Bibliothèque\\Besoin - Definition temps.vsd" \a \p