IFT Génie logiciel

Documents pareils
Cours de Génie Logiciel

Les diagrammes de modélisation

Trucs et Astuces Outlook 2010 SIFA Faculté d Administration

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Initiation à LabView : Les exemples d applications :

Conditions d utilisation

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Table des matières Sources

Guide de l abonné KX-TVM50 KX-TVM200. Système de Messagerie vocale. Nº de modèle. Version du document /07

GUIDE DE L USAGER DE LA MESSAGERIE VOCALE

Manuel d utilisation du logiciel

UML : DIAGRAMME D ETATS

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

COMMUNAUTE ECONOMIQUE ET MONETAIRE DE L AFRIQUE CENTRALE LA COMMISSION

Stéphanie Lacerte. Document technique. Connextek. 31 mai Cloudtel

N Les procédures stimulus *# de l ancien système VoIP demeurent disponibles.

Stopack : logiciel pour l entrepôt

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

RESSOURCES MATÉRIELLES ET DOCUMENTAIRES CONSERVATION DES DOCUMENTS SEMI-ACTIFS. Guide

Modèle de procédure pour un. traitement efficace des retours

Traitement des cartes retenues ou oubliées et de l argent non retiré ou oublié au Bancomat

PROTOCOLE DE COLLABORATION COMMERCIALE TOUTES BRANCHES

Concilier mobilité et sécurité pour les postes nomades

VOCALYS LITE.

Je communique par

MESSAGERIE SANTE-LORRAINE Documentation utilisateurs Gestion des spams V1.2

NOTICE D UTILISATION

Guide de l utilisateur Mikogo Version Windows

FORMATION MULTIMÉDIA LVE

Politique de gestion documentaire


Réplication des données

IFT2255 : Génie logiciel

Pour commencer liste de vérification du service ECCnet Item Certification. Version 2.0

HA2000 RTC Transmetteur téléphonique

Espace Numérique Régional de Santé Formation sur la messagerie sécurisée. Version Auteur : Nathalie MEDA

Standard téléphonique PABX

I. Définitions et exigences

Le « Pass» : une réponse e-learning à l apprentissage de la messagerie électronique

CA 3000 CA 3000 PROGRAMMATION PAR MINITEL

CONTRAT DE PRÊT PRET5 ENTRE LES SOUSSIGNÉS :

Pourquoi archiver les s

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Projet. Politique de gestion des documents et archives. Service du greffe (Avril 2012)

Le gestionnaire de SMS

Vérification de la sécurité des données fiscales. Rapport final Approuvé par le Comité de vérification interne le 29 juin 2005

Partie 7 : Gestion de la mémoire

REPONSES ETUDES DE CAS

Infolettre #18 : Les graphiques avec Excel 2010

Tablette Pegasus PC Notes. Code : Conrad sur INTERNET Version 02/ Conditions du système.

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

DECOUVERTE DE LA MESSAGERIE GMAIL

M1 : Ingénierie du Logiciel

Initiation à la messagerie

CONDITIONS GENERALES DE SERVICE APRES VENTE (S.A.V.)

Cours STIM P8 TD 1 Génie Logiciel

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Plug-in Verizon Collaboration pour Microsoft Outlook Guide de l utilisateur

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Commencer avec Allplan Exchange. Nemetschek Allplan Systems GmbH, Munich. All rights reserved. Enregistrement

GUIDE DES BONNES PRATIQUES D ARCHIVAGE A L USAGE DES COMPOSANTES

Présentation... 2 Mise en place Fiche Article... 2 Commande Client... 3 Commande Fournisseur Gestion de la contremarque...

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Guide de la pratique sur les réserves aux traités 2011

Nouveau! Accédez directement à vos messages vocaux, sans mot de passe, en faisant le nouveau code 9 8 * à partir du téléphone

Numéros du rôle : 4381, 4425 et Arrêt n 137/2008 du 21 octobre 2008 A R R E T

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

LA TENUE DES ARCHIVES

(Mis à jour : 7 déc. 12)

FICHE METIER. «Chef de chaîne» Chef de chaîne APPELLATION(S) DU METIER DEFINITION DU METIER

EPFL TP n 3 Essai oedomètrique. Moncef Radi Sehaqui Hamza - Nguyen Ha-Phong - Ilias Nafaï Weil Florian

Initiation à la programmation en Python

Liste des FICHES PRATIQUES

Travail sur écran Conseils pour travailler confortablement sur ordinateur

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Atelier Formation Pages sur ipad Pages sur ipad

MEGA ITSM Accelerator. Guide de Démarrage

Manuel d utilisation DeveryLoc

Les Tutoriaux Utilisez Foxmail comme client de messagerie

Cours admin 200x serveur : DNS et Netbios

10. Envoyer, recevoir des mails

GUIDE DE L'ARCHIVAGE OCTOBRE 2012

Notice d utilisation

Messagerie asynchrone et Services Web

Notice d installation sur le véhicule

STI 3 Édition 4 / Mai 2005

CONTENU MISE EN PLACE. 1. Placez le plateau de jeu au centre de la table.

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Initiation Internet Module 2 : La Messagerie

opti-vm Serveur Vocal et Standard Automatique Siemens HiPath 11xx et Hipath 12xx Installation et Guide Utilisateur Version 1.0

Mise sur le marché des engrais en Europe. Paris, le 9 septembre Vincent Delvaux

Charte de bon Usage des Ressources Informatiques, de la Messagerie et de l Internet

Exemple de procédure

Transcription:

Cas d utilisation 2 IFT2255 - Génie logiciel Diagrammes de séquence Décrit les interactions du logiciel avec son environnement point de vue des utilisateurs (actions et réactions) Permet d identifier et de décrire les fonctionnalités d un logiciel qui sont significatives pour ses utilisateurs humains, matériels, logiciels Bruno Dufour, Houari Sahraoui, Julie Vachon {dufour,sahraouh,vachon}@iro.umontreal.ca Principaux concepts 3 Cas d utilisation - exemple 4 Acteur : représentation idéalisée d une personne, d un logiciel ou d un processus qui interagit (depuis l extérieur) avec le logiciel Scénario : une séquence spécifique d interactions entre les acteurs et le système Un cas d utilisation est composé d un ou plusieurs scénarios connexes 1. Le client introduit sa carte bancaire 2. Le logiciel lit la carte et vérifie que la carte est valide 3. Le logiciel demande au client de taper son code 4. Le client tape son code confidentiel 5. Le logiciel vérifie que le code correspond à la carte 6. Le client choisi une opération de retrait 7. Le logiciel demande le montant à retirer etc.

Diagramme de séquence 5 Dimensions 6 Un cas d utilisation est réalisé par une collaboration Ensemble d objets qui s échangent des messages et travaillent ensemble et pour accomplir une tâche Un diagramme de séquence permet décrire les cas d utilisation de façon à mettre en évidence les interactions entre les instances des classes (objets) du logiciel montre la séquence dans le temps des échanges de messages entre les objets participant à un scénario Dimension verticale : le temps L'ordre d'envoi d'un message est déterminé par sa position sur l'axe vertical du diagramme le temps s'écoule de haut en bas Dimension horizontale : les objets (et les acteurs) L ordre de disposition des objets sur l'axe horizontal est sans importance Éléments graphiques 7 Diagramme de séquence - exemple 8 Les objets qui interagissent dans le scénario Représentation graphique de la ligne de vie de chaque objet et de ses s Les différents types de messages envoyés simple, synchrone, asynchrone Les indications de contrôle branchement conditionnel et itération création et destruction d objets délais de transmission contraintes temporelles unmembre :EmprunteurDeLivre mb :MembreBiblio 1 emprunter (exemplaire) 1.1 okpouremprunter() message récursif 1.2 emprunter(mb) exemplaire :Exemplaire message lelivre:livre 1.2.1 estemprunté(self) ligne de vie

Modes d intéraction 9 Mode procédural (synchrone) Au plus un objet détient le contrôle à la fois Mode concurrent (asynchrone) Plusieurs peuvent être actifs à un instant donné Activation et contrôle Un objet obtient le contrôle quand il reçoit un message (une de ses méthodes est invoquées), ce moment détermine le début de son Un objet rend le contrôle à son destinateur lorsqu il lui renvoie sa réponse, ce moment détermine la fin de son Lorsqu un objet en a le contrôle, il peut Faire des calculs Envoyer des messages : dans ce cas, l objet demeure en mais cède à son tour le contrôle à son destinataire, il ne peut rien faire jusqu à ce qu il reçoive la réponse de son destinataire (message «bloquant») 10 Mode procédural 11 Mode procédural 12 Les objets sont dits «passifs», car on doit leur envoyer un message pour déclencher leur Un seul fil d exécution Dans ce mode, seul un acteur peut envoyer un message ou faire des calculs sans l intervention de qui que ce soit Son est constante La période d d un objet est représentée par une bande rectangulaire superposée à sa ligne de vie on dédouble la bande d dans le cas d appels récursifs L identité des objets en est gérée par une pile Dessus de la pile = objet en qui possède le contrôle On empile l identité d un objet qui débute une On dépile l identité d un objet qui termine une

Ordonnancement des messages 13 Mode concurrent 14 Les messages sont numérotés de façon à refléter l imbrication des envois de messages. ex: le message 2.2. est envoyé après que la réponse au message 2.1 ait été reçue ex: il faut attendre la réponse au message 2.2.3. avant de pouvoir répondre au message 2.2. Certains objets disposent d un propre fil d exécution Il ont leur propre contrôle et leur est constante Ces objets sont dits «actifs», car il peuvent faire des calculs et envoyer des messages sans l intervention de qui que ce soit Les objets actifs envoient deux types de messages Synchrones : ils attendent la réponse de leur destinataire avant de poursuivre Asynchrones : ils poursuivent leurs activités sans attendre la réponse à leur message, celle-ci leur sera signalée Messages synchrones 15 Messages asynchrones 16 Suite à l envoi de son message, l expéditeur (objet passif ou actif) perd le contrôle mais demeure en Il demeure bloqué jusqu à ce que le destinataire ait fini de traiter le message Il retrouve ensuite le contrôle avec la réponse à son message L expéditeur envoie un message au destinataire sans attendre de réponse Si l expéditeur est un objet passif (rare) l envoi du message équivaut à l envoi d un message simple (non synchrone) l expéditeur perd le contrôle et termine son après l envoi du message Si l expéditeur est un objet actif : cet envoi de message équivaut à l envoi d un message asynchrone suite à l envoi de son message, l expéditeur demeure en et conserve son flot de contrôle, son exécution n est pas interrompue, le message envoyé peut être pris en compte par le récepteur à tout moment ou ignoré (jamais traité), une réponse n est pas nécessairement attendue

Création et destruction d instance 17 Contraintes temporelles 18 Création : lorsqu une instance est créée, on place la boîte qui la représente légèrement en bas, à l endroit où elle est créée Destruction : la destruction d une instance est représentée par un X à la fin de sa ligne de vie, là où elle se termine Si l instance est détruite par une autre instance (non par elle-même), un message issu de l instance destructrice pointe sur le X c1:classea 1. new ClasseB(n) c2:classeb On peut spécifier le temps et des contraintes temporelles Les intervalles sur la ligne de vie des objets indiquent des intervalles de temps On peut attribuer une étiquette au moment d émission et de réception d un messages et spécifier des contraintes sur ces étiquettes L envoi d un message est généralement considéré comme instantané, pour marquer une durée significative, on incline la flèche du message vers le bas (au lieu de la laisser horizontale) 2. détruire() Contraintes temporelles 19 Contraintes temporelles 20 unmembre :EmprunteurDeLivre mb :MembreBiblio exemplaire :Exemplaire lelivre:livre appelant centrale téléphonique appelé A 1. emprunter(exemplaire) 1.1. okpouremprunter() {b-a < 1 sec.} a b 1. décrocher() 2. envoyer_signal() {C A< 8ms} 1.2. emprunter(mb) B 1.2.1. estemprunté(self) {c-b < 10 sec.} {e-d < 5 sec.} c d 3. composer_numéro() 4. chercher_destinataire() C {B B < 3ms} B e 5A. entendre_sonnerie() 5B. activer_sonnerie() 6. décrocher() 7A. arrêter_signal_sonnerie() 7B. arrêter_sonnerie()

Scénarios 21 Messages avec garde 22 On peut vouloir décrire les différents scénarios d un cas d utilisation sur un même diagramme de séquence Conditions (gardes) sur les messages Ligne de vie à branches multiples Itérations Interactions concurrentes Permet d exprimer les alternatives de comportement Message envoyé seulement si la garde est vraie Les gardes doivent être mutuellement exclusives pour signifier que l envoi est conditionnel (et non concurrent) o:obj [i=0] 1: foo() [i=1] 1: bar() VS o:obj [i=0] 1.1: foo() [i=1] 1.2: bar() Ligne de vie à branches multiples 23 Itération 24 Si deux messages, dont l envoi est conditionnel à l évaluation d une garde, sont destinés à un même objet, on doit pouvoir exprimer le comportement de l objet dans chaque cas On ajoute une clause d itération (introduite par un ) à côté du message pour spécifier le nombre d itérations ou l invariant de l itération [i:=1..10] m() Le message est envoyé 10 fois o1:obj1 o2:obj2 [x<10] m() [i=0] 3.1: foo() Le message est envoyé de façon répétée jusqu à ce que x soit plus grand ou égal à 10 [item not found] m() [i=1] 3.1: bar() Le message est envoyée de façon répétée jusqu à ce que l item soit trouvé

Itération 25 Interactions concurrentes 26 a:obja 3.1. [i:=1..2] a() b:objb 3.1.1. b() c:objc Il existe différente façon de créer de nouveaux fils de contrôle (threads) À la réception d un message, un objet peut découpler le fil d exécution en envoyant plusieurs messages simultanément (fork) o:obj 1.a. foo() 1.b. bar() Branchement : lorsque les messages n ont pas de garde mutuellement exclusive, ils sont concurrents Interactions concurrentes 27 Il existe différente façon de créer de nouveaux fils de contrôle (threads) Un acteur peut spontanément décider d envoyer un message et crée ainsi un nouveau fil d exécution. Un objet actif peut également découpler le fil d exécution en envoyant un message asynchrone. o1:obj o2:obj 1: foo() 2:bar()