4 Modèles et langages Les statecharts.

Slides:



Advertisements
Présentations similaires
Analyse et définition des besoins
Advertisements

Tests et Validation du logiciel
Machines séquentielles
« Systèmes électroniques »
Génie Logiciel 2 Julie Dugdale
Julie Dugdale Génie Logiciel 2 Julie Dugdale
AVANCEMENT DES TRAVAUX DE THESE
Automatismes.
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
Module d’Enseignement à Distance pour l’Architecture Logicielle
ANALYSE DES TRAITEMENTS
Module 6 : Gestion et analyse du système DNS
Le GRAFCET.
"Recherche de scénarios redoutés à partir d'un modèle réseau de Petri"
RDP à prédicats estPèreDe : {(André, Paul), (Paul, Jean), (Claude, Jules)} Jean Jean Paul x x y est le père de x y est le père de x y y André RDP à prédicats.
INTRODUCTION.
Système de gestion de bases de données. Modélisation des traitements
Langage SysML.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
INITIATION AU GRAFCET E. HELLOT lycée P. Duez.
Présentation SysML (Systems Modeling Language ) est basé sur UML et remplace la modélisation de classes et d'objets par la modélisation de blocs pour un.
Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel
GRAFCET.
MACHINE DE MOORE SYNCHRONE SIMPLIFIÉE Professeur à l'UHP / ESIAL
Diagrammes d’activités
UML : DIAGRAMME D’ACTIVITES
Module 1 : Préparation de l'administration d'un serveur
Analyse et Conception des Systèmes d’Informations
Les Systèmes Multi-Agents pour la Gestion de Production
Caroline Chopinaud Amal El Fallah Seghrouchni Patrick Taillibert
Aide à la décision et à la négociation dans un problème de gestion de production distribuée Jean-Pierre Camalot et Patrick Esquirol LAAS-CNRS 7, avenue.
Réalisée par :Samira RAHALI
(ref : Bray section pages 283 à 290)
Techniques de test Boulanger Jean-Louis.
Structures de données IFT-2000
IFT 2251 Génie Logiciel Spécification de Processus Concurrents
Statecharts Décrit les changements d’état d’un objet en réponse à des événements Point focal : l’objet et ses changements d’états Inventeur: David Harel.
Module 2 : Préparation de l'analyse des performances du serveur
Initiation à la conception des systèmes d'informations
Introduction Evolution technologique –Puissance des machines –Réseau rapides (ADSL : 30 euros/mois) –Manipulation digitale de l'audio et de la vidéo Applications.
Le diagramme d’activités
Sensibilisation a la modelisation
Le GRAFCET linéaire à séquence unique
Programmation procédurale Les différents schémas
ISI1 MIAG-Modélisation des traitements
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Le langage Basic LOTOS ● g : ensemble des portes .
Amélioration de la simulation stochastique
Modèle Conceptuel de Traitement
Le diagramme d’états-transitions
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Structures de contrôle
J. Cardoso — C. Sibertin-Blanc — C
Modèle Conceptuel des Traitements (MCT)
Nouvelles Technologies Internet & Mobile
Initiation à la conception des systèmes d'informations
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev.
ENSTA : cours IN204 Introduction à JAVA et UML
2.4 Le langage SFC - Un langage de description de systèmes séquentiels
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Machines à états finis.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Nouvelles Technologies Internet & Mobile
TP D’UML Groupe N° 3.
Le modèle conceptuel des traitements
Réseaux de Petri et suivi du joueur
Transcription de la présentation:

4 Modèles et langages Les statecharts

Les diagrammes Etat/Transition Les diagrammes Etat/Transition (général) le modèle ensemble d'états S nœuds du graphe ensemble de transitions T : S x I  S arcs du graphe ensemble d'inputs I (ou événements) étiquette de arcs un état initial s0  S la sémantique ensemble de toutes les suites possibles de inputs => ensemble de toutes les suites possibles d'événements scénarios possibles comportements possibles Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Les diagrammes Etat/Transition - Exemple - 1 Etat_C événement_1 événement_1 événement_2 Etat_A événement_1 événement_2 événement_3 Etat_B Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Les diagrammes Etat/Transition - Exemple - 2 Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Les diagrammes Etat/Transition - Exemple - 3 produce read P1 P2 C1 C2 write consume producteur consommateur write write 1 2 read read tampon Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Les diagrammes Etat/Transition - Exemple - 3 (bis) Ingénierie du Logiciel : Spécification

Les diagrammes Etat/Transition Les diagrammes Etat/Transition : caractéristiques modélisation du contrôle (de la dynamique) modélisation exhaustive : tous les scénarios modélisation simple et lisible (et formel) modélisation opérationnelle équivaut à une grammaire  interprétation / simulation possible pas de concurrence, pas de // , pas de temps réel besoin de structuration états hiérarchiques et/ou complémentaires) besoin de distinction des statuts des arcs conditions / événements - externes / internes - ... besoin d'outils de simulation Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification les statecharts Les "statechart"s Sur base des diagrammes d'états classiques avec transitions déclenchées par des triggers qui sont des événements et/ou des conditions, externes ou internes à une transition on associe un concept d'action : si la transition a lieu l'action est exécutée mécanisme de structuration hiérarchique : (les petits états dans les grands (composition XOR) mécanisme de composition orthogonale : (composition AND) accent sur le langage graphique (des constructeurs syntaxiques utiles) Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification les statecharts : notation d'un diagramme d'état conventionnel Etat_A Etat_C Etat_B événement_1 événement_3/Action_Y événement_2/Action_X trigger : event[condition]/action Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Exemple complet le système est un moniteur qui reçoit le signal d'un senseur externe si le senseur est connecté le moniteur traite le signal, si la valeur du signal est en dehors d'une intervalle définie, le système affiche un message et lance une alarme, si l'opérateur ne répond pas à l'alarme dans un délai fixé le système arrête le monitoring et envoie un message. l'opérateur peut ajuster l'intervalle des valeurs acceptables après un arrêt dû à la détection d'une anomalie ou après un autre arrêt volontaire de l'opérateur. Ingénierie du Logiciel : Spécification

Exemple : première analyse du moniteur Etats en attente en marche pour traiter le signal en réglage alarme déclenchée Evénements externes : démarrer le traitement du signal : lancer démarrer le réglage : début_réglage revenir à l'état d'attente : reset internes : fin_réglage : provient d'une horloge interne si pas de commande de réglage pendant plus de x secondes time_out : provient d'une horloge interne si l'alarme est déclenchée depuis plus de y secondes sans réaction valeur_anormale : provient de la comparaison de la valeur captée par le senseur avec les limites fixées par l'utilisateur Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (1) lancer Attente de commande Traitement du signal reset début_réglage fin_réglage time_out valeur_anormale reset Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification les conditions un trigger de transition = event[cond] / action condition seule : cond la condition est testée tant qu'on est dans l'état du départ de la transition, si elle est vraie la transition a lieu immédiatement événement seul : event la transition a lieu immédiatement quand l'événement a lieu événement conditionnel : event[cond] la condition est testée à l'instant où l'événement a lieu, si elle est vraie la transition a lieu sinon pas de transition Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (2) lancer[signal_capté] Attente de commande Traitement du signal reset début_réglage fin_réglage time_out valeur_anormale reset Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (2.bis) lancer Attente de commande Traitement du signal [signal_non_capté] reset début_réglage fin_réglage time_out valeur_anormale reset Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (2ter) [signal_non_capté] lancer [signal_capté] Attente de commande C Traitement du signal reset début_réglage fin_réglage valeur_anormale time_out reset Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification les connecteurs - 1 un connecteur sur une transition peut être vu comme un faux état (état sans durée) il permet de scinder une partie de l'expression du trigger event[cond] en deux (ou plus) équivalent à deux transitions (ou plus) il permet de factoriser une partie commune de l'expression d'un trigger event[cond] un connecteur "condition" = factorisation de la partie event Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Les actions un trigger de transition = event[cond] / action l'action est lancée immédiatement quand la transition a lieu (si cette transition a lieu) une action génère un événement ailleurs dans la description modifie une condition modifie une donnée décrit un autre effet ... une transition peut déclencher plusieurs actions simultanées : event[cond] / action1 ; action2 ; action3 Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Exemple.3 exemple (3) lancer[signal_capté] Attente de commande Traitement du signal reset début_réglage fin_réglage valeur_anormale time_out/message_1 reset Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Exemple.3bis exemple (3bis) [signal_non_capté]/message_2 lancer [signal_capté] Attente de commande C Traitement du signal reset début_réglage fin_réglage valeur_anormale time_out/message_1 reset Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

La décomposition hiérarchique des états problème : la complexité des diagrammes à partir d'un certain nombre d'états idée : un diagramme d'état peut être vu comme un état simple (clustering) et il sera intégré dans un diagramme de plus haut niveau qui, à son tour, peut être vu comme un état simple... principe : on sait qu'à un moment donné le système se trouve dans un seul état : au niveau cluster : on voit tout un diagramme comme un état ---> on ne voit pas dans quel état élémentaire il se trouve au niveau diagramme détaillant cet état cluster : --> on voit les transitions internes dans ce cluster questions : gérer la dépendance entrer dans un cluster / entrer dans ses composantes sortir du cluster / sortir des composantes Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (4) lancé lancer[signal_capté] Attente de commande Traitement du signal reset début_réglage fin_réglage valeur_anormale time_out/message_1 Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (4bis) allumer Off On éteindre lancer[signal_capté] Attente de commande Traitement du signal reset début_réglage fin_réglage valeur_anormale time_out/message_1 reset Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (4ter) On lancer[signal_capté] Attente de commande Traitement du signal reset allumer Off début_réglage fin_réglage valeur_anormale time_out/message_1 reset éteindre Réglage des valeurs Alarme déclenchée Ingénierie du Logiciel : Spécification

Entrer et sortir d'un état cluster Une entrée à la bordure d'un état cluster équivaut à une entrée à l'état marqué "entrée par défaut" parmi ses états composants (ses descendants) ; une entrée directe à un état descendant est toujours possible Une sortie de la bordure du cluster provoque la sortie de l'état descendant dans lequel il se trouve quelque soit cet état ; une sortie directe d'un état descendant est toujours possible Ingénierie du Logiciel : Spécification

La décomposition des états en état orthogonaux décomposition des états en états orthogonaux problème : l'explosion combinatoire du nombre d'états à partir d'une certaine complexité du comportement à décrire. idée : identifier des parties d'un comportement comme des comportements (quasi-)autonomes et les décrire séparément par des diagrammes "orthogonaux" principe : à tout moment le système se trouve à un état précis de chacun de ses diagrammes orthogonaux questions : gérer la dépendance actions d'un diagramme / événements d'un diagramme orthogonal événement des différents diagrammes orthogonaux ==> (synchronisation) ... Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification états orthogonaux : décomposition AND événement_4 Etat_D Etat_E Etat_X événement_3 Etat_C événement_1 événement_1 événement_2/Action_X Etat_Y Etat_A événement_1 événement_2/Action_X événement_3/Action_Y Etat_B Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (5) senseur moniteur (on) [signal_non_capté]/message_2 Déconnecté lancer [signal_capté] Attente de commande C Traitement du signal connecter déconnecter reset Connecté valeur_anormale début_réglage fin_réglage time_out/message_1 reset en attente go stop Réglage des valeurs Alarme déclenchée en marche Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (5) senseur moniteur (on) [signal_non_capté]/message_2 Déconnecté lancer [signal_capté]/go Attente de commande C Traitement du signal connecter déconnecter reset / stop Connecté valeur_anormale/ stop début_réglage fin_réglage time_out/message_1 reset en attente go stop Réglage des valeurs Alarme déclenchée en marche Ingénierie du Logiciel : Spécification

Synchronisation entre états orthogonaux (1) actions / événements : Une action générée dans un état peut être (peut provoquer) un événement dans dans un état orthogonal Une action générée dans un état peut être "captée" dans tous les états orthogonaux Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (5bis) senseur1 senseur2 ... moniteur Déconnecté Attente de commande Traitement du signal Réglage des valeurs Alarme déclenchée lancer stop valeur_anormale/ stop début_réglage fin_réglage _1 [_capté]/go [signal_ C connecter déconnecter Connecté en attente go stop en marche Ingénierie du Logiciel : Spécification

synchronisation d'états orthogonaux Synchronisation entre états orthogonaux (2) états / conditions être ou ne pas être dans un état peut être vu et utilisé comme condition dans un état orthogonal in (state) / not in (state) si le système est dans un état ; il est dans tous ses sous-états Ingénierie du Logiciel : Spécification

synchronisation d'états orthogonaux Synchronisation entre états orthogonaux (3) états / événements l'entrée et la sortie d'un état peuvent être vues et utilisées comme événements dans un état orthogonal en(state) = entered (state) / ex(state) = exited (state) si le système entre dans un état S, il déclenche en(S) mais aussi en(AS) pour tout état AS qui est ancêtre de A dans lequel il ne se trouvait pas quand S est rentré si le système sort d'un état S, il déclenche ex(S) mais aussi ex(AS) pour tout état AS qui est ancêtre de A dans lequel il ne se trouve pas après la transition S Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Exemple.6 exemple (6) senseur moniteur (on) Déconnecté [in(Déconnecté)]/message_2 [in(Connecté)]/go connecter lancer déconnecter Attente de commande C Traitement du signal reset / stop Connecté en attente valeur_anormale/ stop début_réglage fin_réglage en(Traitement) time_out/message_1 reset ex(Traitement) Réglage des valeurs Alarme déclenchée en marche Ingénierie du Logiciel : Spécification

l'orthogonalité multi niveaux la découpe (AND) peut s'effectuer à plusieurs niveaux imbriqués Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Exemple.6bis exemple (6bis) senseur moniteur (on) Déconnecté [in(Déconnecté)]/message_2 connecter lancer [in(Connecté)]/go déconnecter Attente de commande C Traitement du signal reset / stop Connecté en attente valeur_anormale/ stop début_réglage fin_réglage in(Traitement) time_out/message_1 reset ex(Traitement) en marche Réglage des valeurs Alarme déclenchée calcul échantillonnage Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification Factorisation et connecteurs C-connecteurs : conditions conditions mutuellement exclusives (sinon non-déterminisme) Attente de commande Traitement du signal lancer C [signal_capté] [signal_non_capté] Ev[c1] Et2 Et2 [c1] Ev Et1 Et1 C [c2] Ev[c2] Et3 Et3 Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et connecteurs S-connecteurs : switch connectors (factorisation des événements) démarrer_une_commande Attente de commande Traitement du signal lancer reset S début_réglage Réglage des valeurs Revient à nommer un nouveau événement pour l'utiliser plus tard Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et connecteurs généralisation : les connecteurs de jonctions principe répartir les événements/condition et actions sur un graphe un seul chemin est parcouru le temps de parcours est toujours nul E1/A1 E2/A2 E1 & E2 /A1;A2 Et1 Et2 Et1 Et2 Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et connecteurs Attente de commande Traitement du signal reset reset Alarme déclenchée Attente de commande Traitement du signal reset Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et connecteurs Attente de commande Traitement du signal reset/stop valeur_anormale/ stop Attente de commande reset /stop Traitement du signal Alarme déclenchée valeur_anormale Alarme déclenchée Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et orthogonalité Et E1/A1 Et2 Et4 E Et1 Et3 Et5 E2/A2 le déclencheur est E1 et E2 et E3 Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et orthogonalité Et Et1 Et2 Et4 Et3 Et5 entrée en Et1 mais aussi Et3 Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et orthogonalité Et2 Et3 Et4 Et5 Et E Et1 je sors si je suis en Et4 et Et5 et que E arrive Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification factorisation et orthogonalité Et2 Et3 Et4 Et5 Et Et1 je sors aussi de Et3 ou de Et5 Ingénierie du Logiciel : Spécification

Entrée et sauvegarde de l'histoire l'histoire et sa sauvegarde problème : quand un état "cluster" est quitté on oublie tout ce qui s'est passé ; si on re-rentre on doit prendre l'état initial. Or, on souhaite parfois retrouver un état "cluster" là ou l'a quitté idée : indiquer à un état "cluster" de se rappeler le dernier état visité une notation supplémentaire pour une entrée 'avec souvenance' question : gestion d'une entrée standard et d'une entrée avec souvenance quid des états imbriqués ? ==> distinction historique superficielle à une couche H historique profond à tous les niveaux H* Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (7) senseur Déconnecté connecter déconnecter Connecté H en attente in(Traitement) ex(Traitement) en marche Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification exemple (8) senseur Déconnecté connecter déconnecter Connecté H* en attente en marche rapide lent Ingénierie du Logiciel : Spécification

Ingénierie du Logiciel : Spécification les réseaux de Petri Réseaux de Petri modélisation principalement du contrôle - modélisation asynchrone et non déterministe concurrence - inter-blocage (deadlock) - famine (starvation) le modèle ensemble de places P (premier type de nœuds) ensemble de transitions T (second type de nœuds) ensemble d'arcs reliant places à transition ou l'inverse A : {P x T} U {T x P} un marquage des places M: M : P  Int un entier (nombre de jetons) associé à chaque place : règles une transition t peut avoir lieu (enabled) si le nombre de jetons de chaque place entrante est > 0 si une transition est effectuée un jeton est retiré de chaque place entrante et un jeton est ajouté à chaque place sortante Ingénierie du Logiciel : Spécification

Réseau de Petri : processus concurrents parallèles 1 t0 cobegin t1 t2 t3 coend Ingénierie du Logiciel : Spécification

Réseau de Petri : exemple ? t1 1 t2 deadlock Ingénierie du Logiciel : Spécification

Réseau de Petri : exemple ? 1 t1 t2 exclusion mutuelle Ingénierie du Logiciel : Spécification

Réseau de Petri : exemple producteur/consommateur/buffer 1 t1 p1 p2 N p7 p5 t4 1 t3 p3 p4 1 p6 Ingénierie du Logiciel : Spécification