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 lexemple 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 sarrête et revient à la position initiale pour recommencer un nouveau cycle.
Le cycle démarre dès lenclenchement de linterrupteur marche. Cette commande efface les alarmes.
Larrêt ne peut se faire que si le malaxeur est en position initiale et vide.
Une alarme est détectée si lapprovisionnement du malaxeur ne peut être fait dans un délai de 50 secondes. Dans ce cas le malaxeur effectue un cycle de « vidage », sarrê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 lexploitation visuelle
Autorise une analyse hiérarchique descendante
Encapsulation de linformation
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 lapplication
Est cohérent du fait de sa structure hiérarchique
Sautoréférence du fait de lanalyse 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 dun processus unique de plus niveau effectuant le traitement de linformation 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 limplémentation
Les terminaisons : représentation des entités avec le quel le système doit sinterfacer
Matérialise les entités externes
Sépare ce qui est externe au système de ce quil intègre
Les entrées et les sorties du système : représentation de léchange dinformations entre les entités et le processus
Identifie les informations échangées (dans le dictionnaire des besoins)
Matérialise le sens de léchange dinformation
Les diagrammes de flots de données
Tout DFD dun niveau est une décomposition dun processus de niveau supérieur
Un DFD est appelé « Fils » du processus quil 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 à laction sous entendu par son identification
Un DFD contient
Des processus de niveau inférieur
Produire des sorties à partir de ses entrées conformément à laction sous-tendue par identification
Identifier par un verbe plus un complément dobjet
Identifier par une numérotation descendante des processus
Des flots de données reliant ces processus
Matérialiser les échanges dinformations 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 deffectuer un traitement différencié en fonction dune condition
Nécessite une CSPEC de contrôle au niveau du DFC associé
Exemple : affecter à un signal discret une des différentes valeur quil 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 dun élément, dun 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 quelle nest 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 dentrée
Ecriture seule : dans ce cas, un processus producteur génère linformation. 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 sil 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 linformation subsiste (cf. Hatley et Pirbhai)
Ceux ou elle est consommée à la lecture
Les spécifications de processus
La décomposition du processus sarrê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 dambiguïté
Construit exclusivement avec
Les mots clés du langage : verbe daction 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 dun 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 nest pas une représentation de limplémentation système
En labsence de modèle de contrôle
Les processus sont déclenchés par les données dentré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 dentrée sont disponibles
Synthèse
Le diagramme de contexte de données (DCD)
Partitionne le monde en 2 parties : une interne au système ; lautre 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 dinformations
Un DFD donné représente le développement de son processus père
affinement du processus
Les entrées sorties dun 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 jusquaux processus terminaux
Un système de numérotation va de paire avec cette décomposition et permet au modèle de sauto-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 limplé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 limplémentation
Les terminaisons : représentation des entités avec le quel le système doit sinterfacer
Matérialise les entités externes
Sépare ce qui est externe au système de ce quil intègre
Les entrées et les sorties du système : représentation de léchange dinformations entre les entités et le processus
Identifie les informations échangées (dans le dictionnaire des besoins)
Matérialise le sens de léchange dinformation
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 dactivation ou de désactivation de processus
Réalisé par les activateurs en sortie de CSPEC
Les DFC servent à matérialiser lacheminement des flots de contrôle entre les différents processus dun même DFC ou entre père et fils
Traités par les CSPEC
Les DFC terminent leur décomposition avec une CSPEC
Pas dassociation 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 laspect 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 dune 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 dune 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 quil nest pas remplacé par un autre contrôle
Utilisation des stockages par les DFC
Lecture seule : dans ce cas, le stockage peut ne pas avoir dentrée
Ecriture seule : dans ce cas, une CSPEC producteur génère linformation. 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é napparaît que sur un DFC mais peut apparaître plusieurs fois sur ce diagramme
Les spécifications de contrôle
But dune 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 à lintérieur et/ou à lextérieure du système
Existence dune 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 dorganiser 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 lactivation / 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 nest 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, lautre 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 dune 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 dentrées
Définition de la valeur des signaux de sorties correspondant à chacune des combinaisons
Principe essentiel : toutes les combinaisons des valeurs dentrées sont couvertes dans la table
Nota : Possibilité dutiliser des arbres de décision ou des diagrammes de Vetch et dEuler
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 dentré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 quaucun é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 quassocié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 dActivation 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 lordre dactivation 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 dentré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 sagit dune donnée élémentaire
Composé : il sagit dun 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 dapparition 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 dinstabilité 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 dapparition ou de traitement
Le nombre et le nom des valeurs possible
Utilisateurs concernés
Priorité de traitement
NomDéfinitionAttributsNb valeursNom de la valeurFréquenceEn_lAirles 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 dapparition 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 dapparition 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 dune 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 laspect « 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 ny 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
Nhé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
Lanalyse part des hauts niveaux du modèle
Ils doivent être parfaitement définis pour réaliser le projet surtout si
Le nombre dintervenants est important
Le projet est complexe
Constatation : on ne passe jamais assez de temps sur lanalyse 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 limportance 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 sil 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 (sil existe)
Documents divers
Observer lexistant
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 dinterface
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 dusage, le but du système)
Les flots dentré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 dun objet externe provenant dune terminaison
Un changement de mode de fonctionnement
Un signal de changement détat du système
Une condition sur des données issue dun processus terminal
Un événement résultant dune combinatoire dautres signaux de contrôle
Un contrôle est responsable dun 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 quun seul diagramme DCD + DCC pour faciliter la compréhension totale du système
Penser à regrouper les flots pour améliorer laspect 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 dobjet)
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 dune fonction de haut niveau ( le faire arriver sur la CSPEC0
Dans le cas contraire, laffecter à 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 nest 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
Ny a-t-il pas trop (trop peu) de processus à ce niveau ? ; lidéal de 3 à 9 processus par diagramme
Les processus dun 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 dabstraction, 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 dactiver 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 dun processus si :
Le processus existe déjà à un autre niveau (réutilisation)
La décomposition relève dune décision de conception (on sort du QUOI pour rentrer dans le COMMENT)
On considère quune 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 daffectation : « := »
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 quils 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 dactivation 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 dun é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 dautres événements
Si les événements sont simples (ne résultant pas dune 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 à laide dun 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