Statecharts Décrit les changements d’état d’un objet en réponse à des evénements Point focal : l’objet et ses changements d’états Permet un hiérarchisation.

Slides:



Advertisements
Présentations similaires
MOT Éditeur de modèles de connaissances par objets typés
Advertisements

Langage de modélisation objet unifié
Génie Logiciel 2 Julie Dugdale
Julie Dugdale Génie Logiciel 2 Julie Dugdale
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Les cas d’utilisation (use cases)
ANALYSE DES TRAITEMENTS
ANALYSE DES TRAITEMENTS
Langage de Modélisation Objet Unifié Cours HEI
UML (2) Rappel sur le modèle statique : classe / objet
UML (Unified Modeling Langage)
Système de gestion de bases de données. Modélisation des traitements
Diagramme d’activité.
Modélisation orientée objet UML
Langage SysML.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
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
UML : GENERALITES Rappel Diagrammes Niveaux de visions
Diagrammes d’activités
UML : DIAGRAMME D’ACTIVITES
Analyse et Conception des Systèmes d’Informations
UML Etude de cas.
Algorithmique et Programmation
Modélisation des bases de données avec UML
1 Introduction : Management des systèmes dinformation version 1.1 du 13 Novembre 2001 Introduction : Management des systèmes dinformation ENSGI Cours MSI.
Algorithmique et Programmation
Vers la conception objet
Modèle, Méthode et Conception
Outils pour la modélisation des systèmes distribués
Complément Le diagramme des classes
Département de génie logiciel et des TI Université du Québec École de technologie supérieure Systèmes dinformation dans les entreprises Systèmes dinformation.
Etude globale de système.
Les structure d’un programme :
MOT Éditeur de modèles de connaissances par objets typés
Unified Modeling Langage
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Diagramme d’interaction
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.
Initiation à la conception des systèmes d'informations
Le diagramme de séquences
Le diagramme d’activités
Le diagramme de collaboration
UML (2) Modèle dynamique le diagramme de séquence
UML Séquence 3 : (Diagramme d’activités)
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Rappel sur les diagrammes de collaboration
Le diagramme d’états-transitions
Algorithmique et programmation (1)‏
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Unified Modeling Langage
Nouvelles Technologies Internet & Mobile
ENSTA : cours IN204 Introduction à JAVA et UML
Formation Affelnet 6ème
2.4 Le langage SFC - Un langage de description de systèmes séquentiels
Diagrammes des « cas d’utilisation » ou « Use Case »
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Modélisation orientée objet UML
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Nouvelles Technologies Internet & Mobile
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Dreamweaver le retour Avec Les Formulaires Les Calques
DREAMWEAVER MX2 - Séance 2 Les calques Les comportements Les scénarios Les formulaires Les feuilles de style Les modèles Les cadres Mise en ligne Jérôme.
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
USE CASE Présentation. Technique importante ● Pilotage par cas d'utilisation (use case) ● Spécifications des besoins fonctionnels des acteurs ● Unité.
Transcription de la présentation:

Statecharts Décrit les changements d’état d’un objet en réponse à des evénements Point focal : l’objet et ses changements d’états Permet un hiérarchisation des états afin d’éviter une explosion combinatoire d’états

Concepts Etats (simples ou composites) Transitions Actions Evénements

Etat et transitions nom Activités Etat Sous-état Start/Etat initial Stop/Etat final NomEvénement [Garde] / Action

Evénements et gardes nomEvénement (param1:type, param2:type,…) Ex: allumedLed() [Garde] : expression Booléene Ex: [ageCapitaine>50] Action Pseudo code Ex. solde = solde – débit Action interne à un état ActionLabel/Action Action Label : entry, do, exit Ex. : do/calculateAverage(x:array)

Exemple de statechart EnLivraison Vérification EnAttente Livré Annulé [resteArticleàVérifier] [tousArticlesVérifiés&& tousArticlesDisponibles] EnLivraison Vérification do/démarrer livraison do/ vérifier article [tousArticlesVérifiés&& ArticlesManquants] ArticleReçu() [tousArticlesDisponibles] livraison() EnAttente annulation() Livré ArticleReçu() [ResteArticlePasdeStock] annulation() Annulé

Etats Imbriqués Concurence et syncronisation EnCommande EnAttente Verification Livraison VérifClient VérifTerminée

Exercice 1 : formation d’un contrat Dessinez un diagrammes d’état/transition résumant les états possibles d’un objet “contrat” tel que décrit dans l’énnoncé suivant. Un ensemble de personnes décident d’établir un contrat. Pour ce faire elles rédigent un projet par itération successive. Le contrat est ensuite informellement accepté par les parties, et devient ce que l’on appelle un pré-accord. A ce stade il peut toujours être l’objet de modification et revenir à l’état de projet. Une fois le pré-accord définitivement établi, le contrat est signé par les parties. Dès ce moment les partenaires sont liés. Une fois signé le contrat peut être rendu exécutoire par une décision d’une des parties. Un contrat en execution peut faire l’objet de discussions qui sont réglées par un arbitre désigné à cet effet. Le contrat une fois exécuté prend fin.

Proposition Solution 1

Exercice 2 : montre digitale Ma montre affiche l’heure, si j’appuie 2X sur le boutton 1, la montre passe en mode “modification”. Chaque pression sur le boutton 2, incrémente l’heure d’une unité. Si j’appuie encore un fois sur le boutton 1, je peux régler les minutes de la même façon que les heures. Si j’appuie une quatrième fois sur le boutton 1, la montre affiche à nouveau l’heure courante. Button1 Button2

Proposition Solution 2

Exercice 3 : montre digitale plus avancée Lors du réglage de l’heure ou des minutes lorsque j’appuie sur le boutton 1 plus de deux secondes, les heures ou les secondes avancent très rapidement jusqu’à ce que je relâche la pression On ajoute un bouton 3 qui permet de rétro-éclairer l’écran LCD Button1 Button2 Button3

Proposition Solution 3

Exercice 4 : cabine téléphonique Modélisez le fonctionnement d’une cabine téléphonique

Proposition de Solution 5

Resumé Use case Diagramme d’activités Diagramme de classes Diagramme d’interactions Statecharts

Use cases: concepts Acteur : entités externes au système qui dialoguent avec lui Use case : description de la fonctionnalité du système du point de vue d’utilisateur Diagramme de cas d’utilisation : illustre les liens entre les acteurs et les différents cas d’utilisation.

Structurer les use cases Les relations “extend” et “include” “Extend” : un cas d’utilisation X étend un cas d’utilisation Y lorsque le cas d’utilisation X peut être appelé au cours de l’exécution du cas d’utilisation Y “Include” : un use case est constitué de “sous” use cases. La généralisation Crée une hiérarchie entre acteurs ou use cases

Le but du diagramme d’activité Diagramme d’activité est utilisé pour: Modéliser un workflow dans un use case ou entre plusieurs use cases. Spécifier une opération (décrire la logique d’une opération) Le diagramme d’activité est le plus approprié pour modéliser la dynamique d’une une tâche, d’un use case lorsque le diagramme de classe n’est pas encore stabilisé.

Notion du diagramme d’activité ensemble d’activités liés par: Transition (sequentielle) Transitions alternatives (conditionnelle) Synchronisation (disjonction et conjonctions d’activités) Itération + 2 états: état de départ et état de terminaison Swimlanes: represente le lieu, le responsable des activités.

Notion du diagramme d’activité Etat de départ Etat de terminaison Transition Transition Alternative [ ] [ ]

Notion du diagramme d’activité Synchronisation disjonctive et conjonctive

Notion du diagramme d’activité Itération

Notion du diagramme d’activité Swimlanes

Commander un Produit: Solution possible Nous proposons ci-après une classification pour dissocier clairement les objets propres au système à modéliser et les objets matériels ou réels qu’il peut être intéressant de faire apparaître dans un workflow (diagramme d’activité). Pour notre proposition nous nous inspirons de l’exemple de la gestion commerciale présenté en page 289 de [BRJ-00]. Nous avons ajouté, à notre système, une responsabilité « Caisse » qui traitera du paiement en liquide des clients. Ce premier diagramme ne montre volontairement que les activités pour bien fixer le cadre du workflow. Pour éviter de surcharger notre modèle, nous avons retiré les mécanismes de synchronisation et pour des questions de réalisation du support de cours nous avons mis la responsabilité « Caisse » à gauche de l’acteur externe « Client » alors que nous devrions la mettre à droite également.

Diagramme de classes Classe Attribut Méthode (CRUD : create, read, update, delete Ex : DB schemas) Association Généralisation, aggrégation, composition Ad Hoc Rôle-Cardinalité

Diagramme de classe - Exemple ENREGISTREUR 1..* 0..1 CASSETTE +Code:String +Marque:String +Modèle:String +Prix:Real +Année de construction:String +Longueur:String +Hauteur:String +Largeur:String +Couleurs:String +Position:Int +Volume:Int +Poids:Real +Enregistrer() +Ecouter() +Stopper() +MarquerPause() +Avancer(Vitesse) +Rembobiner(Vitesse) +AfficherPosition() +Ejecter() +RéglerVolume(Volume) +Etiquette:String +MarqueCass:String +ModèleCass:String +LongCass: type=hh:mm +TypeCass:String +PositionCass:Int est utilisable sur utilise est contenu dans 0..1 contient * ENREGISTREMENT MESSAGE +DateEnr:Date +HeureEnr:type=hh:mm:ss +LongEnr:Int +AuteurMess:String +NoTelAuteurMess:String +SujetMess:String

Diagramme d’interaction Modéliser comment les objets communiquent entre eux Deux types de diagrammes sémantiquement équivalents: Diagramme de Séquence Diagramme de Collaboration

Diagramme de séquence La message1() est envoyé seulement si la condition specifiée dans la guard (entre brackets) est vraie. Une branche. Le sender envoie soit le message2() soit le message3(). Les conditions de ‘guard’ sont exclusives. L’Itération. Le sender envoie la message4() tant que la condition est vraie. “Pour chaque“. Si le receiver est une collection d’objets, envoyer le message à tous ces objets. Grouping. Les activités dans la boîte ont lieu seulement si le test est vrai. L’asterisque indique l’itération.

Simple Watch A partir du diagramme de classe ci-dessus Button 1 Button 2 A partir du diagramme de classe ci-dessus Rédigez un diagramme de séquence pour modéliser un scénario où un utilisateur voudrait régler l’heure (particulièrement les minutes) sur sa montre. En appuyant 2X sur le bouton 1 il accède au réglage des minutes (heure clignote puis minute clignote). Ensuite avec le bouton 2 (sans relâcher le bouton) il incrémente les minutes, le LCD display est rafraîchi. En appuyant sur le bouton 1 un autre fois l’heure est enregistrée et l’affichage s’arrête de clignoter. 2. Rédigez un diagramme de collaboration à partir du diagramme de séquence obtenu

Simple watch: Diagramme de Séquence *[B2..state = Pushed]

Diagramme de collaboration Deuxième forme du diagramme d’interaction Différence avec diagramme de séquence: Pas de dimension explicite du temps (vue plus structurelle que procédurale) Montrer les liens entre des objets de façon plus explicite

Simple Watch: Diagramme de Collaboration