Termes et concepts (1) Diagramme d activités (DAC) Action. Termes et concepts (2)

Documents pareils
Cours de Génie Logiciel

Les diagrammes de modélisation

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

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

Générer du code à partir d une description de haut niveau

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

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

données en connaissance et en actions?

Programmer en JAVA. par Tama

GeoGebra & Microsoft Office 631

UML (Paquetage) Unified Modeling Language

La gestion des exceptions

GOL502 Industries de services

IFT2255 : Génie logiciel

Conception, architecture et urbanisation des systèmes d information

Cours STIM P8 TD 1 Génie Logiciel

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Nom de l application

ACQUISITION ANALYSE PRÉSENTATION

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Paiement sécurisé sur Internet. Tableau de bord Commerçant

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Initiation à la programmation en Python

Analyse de performance, monitoring

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Chapitre I : le langage UML et le processus unifié

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

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

MEGA ITSM Accelerator. Guide de démarrage

Initiation à LabView : Les exemples d applications :

Projet Active Object

Table des matières Sources

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Documentation RBS Change E-Commerce Core

Publication dans le Back Office

Manuel d utilisation Enregistreur autonome de poche. Version 1.1 TRO-TR-BADL100C-03-F

31 Loc : Contrôle d accès. Manuel utilisateur

MultiPlayer Lecteur Audio et vidéo MODE D'EMPLOI

M1 : Ingénierie du Logiciel

1 è r e étape : créer sa base de d o n n é e s

MEGA ITSM Accelerator. Guide de Démarrage

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

Merise. Introduction

Bases de données. Chapitre 1. Introduction

2. Activités et Modèles de développement en Génie Logiciel

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE. Manuel de formation. Achats

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Ingénierie des Modèles. Méta-modélisation

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Bases de programmation. Cours 5. Structurer les données

INTERCONNEXION ENT / BCDI / E - SIDOC

Créer le schéma relationnel d une base de données ACCESS

Méthodes d évolution de modèle produit dans les systèmes du type PLM

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Activités professionnelle N 2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Modules ICI relais & EXAPAQ Predict v4.0

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Introduction à la B.I. Avec SQL Server 2008

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Le langage SQL Rappels

Conception de circuits numériques et architecture des ordinateurs

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Ne pas diffuser aux Etats-Unis, au Canada ni au Japon EMISSION D OBLIGATIONS À BONS DE SOUSCRIPTION D ACTIONS REMBOURSABLES

Documentation Technique du programme HYDRONDE_LN

Présentation du PL/SQL

Le modèle conceptuel des traitements

Systèmes d information et bases de données (niveau 1)

Programmation graphique des applications de contrôle-commande

Introduction aux algorithmes répartis

Java Licence Professionnelle CISII,

Plateforme AnaXagora. Guide d utilisation

Business Process Execution Language

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

UML et les Bases de Données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Business Process Modeling (BPM)


MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Figure 3.1- Lancement du Gambit

Chap III : Les tableaux

Initiation à l algorithmique

UML (Diagramme de classes) Unified Modeling Language

TP1. Outils Java Eléments de correction

CNAM - CRA Nancy 2000/2001. Génie Logiciel. Jacques Lonchamp DEUXIEME PARTIE. Les techniques de spécification.

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

GUIDE DE PRISE EN MAIN

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Qualité du logiciel: Méthodes de test

Transcription:

Termes et concepts (1) Diagramme d activités (DAC)! Les diagrammes d'activité offrent une manière graphique et non ambiguë pour modéliser les traitements.! Comportement d'une méthode! Déroulement d'un cas d'utilisation Dr. I. Sarr UCAD/FST/DMI Idrissa.sarr@ucad.edu.sn! En théorie, tous les mécanismes dynamiques pourraient être décrits par un diagramme d'activités, mais seuls les mécanismes complexes ou intéressants méritent d'être représentés.! Les DACs offrent une vision proche des langages de programmation impératifs comme C++ ou Java.! Les états représentent des calculs! Il n'y a pas d'événements externes mais des attentes de fins de calculs! Il peut y avoir de la concurrence entre activités 2 Termes et concepts (2)! Diagramme d interaction décrit l interaction des objets pour effectuer un traitement, mais s intéresse uniquement aux messages échangés.! Diagramme d activités décrit les traitements en s affranchissant partiellement de la structuration de l application.! vision transversale découplée de la vision structurelle classe/composant! Modélise le flot de contrôle des traitements! Curseur d exécution (program counter)! Composants fondamentaux d un DAC! Activités! Transitions! Objets Action! Une action est le plus petit traitement qui puisse être exprimé en UML. Elle a une incidence sur l état du système ou en extrait une information.! Les actions sont des étapes discrètes à partir desquelles se construisent les comportements.! Une action peut être, par exemple :! une affectation de valeur à des attributs ;! un accès à la valeur d une propriété structurelle ;! la création/suppression d un objet ou de pointeur ;! un calcul arithmétique simple ;! l émission d un signal ;! la réception d un signal ;! 3 4

Action! Une action peut être définie en langage naturel, en pseudo code ou avec un langage de programmation! Exemples Activités (1)! Une activité est un comportement qui décrit un séquencement organisé d actions.! Actions de base, boucles, et conditionnelles, appel de méthodes,...! Le flot d exécution est modélisé par des noeuds reliés par des arcs (transitions). Ouvrir porte Dossier.ouvrir(fichier) i:=i+1! Le flot de contrôle reste dans l activité jusqu à la fin de l exécution des traitements 5 6 Activités (2)! On peut définir des variables locales à une activité et manipuler les variables accessibles depuis le contexte de l'activité.! Les activités peuvent être imbriquées hiérarchiquement : on parle alors d'activités composites.! Il existe trois familles de noeuds d activités! les noeuds exécutables (nœud d exécution);! les noeuds objets ;! et les noeuds de contrôle Transition! Les transitions matérialisent le passage d une activité vers une autre. Elles sont représentées par des flèches en traits pleins qui connectent les activités entre elles.! Les transitions peuvent être automatiques! Elles sont déclenchées dès que l activité source est terminée et provoquent automatiquement et immédiatement le début de la prochaine activité à déclencher (l activité cible).! Elles ne possèdent pas de signature d événement! Les transitions peuvent inclure des actions telles que définies dans les automates d états (DET)! Les transitions peuvent prendre des conditions de garde booléennes, mutuellement exclusives appelées décisions 7 8

Transition :Exemples mettre monnaie mesurer température Nœuds exécutables (1)! Un noeud exécutable est un noeud d activité qu on peut exécuter (i.e. une activité).! 2 types de nœuds choisir boisson Transition automatique [trop froid] [trop chaud] chauffer refroidir Transition conditionnelle! Noeud d actions! Unité fondamentale de fonctionnalités exécutables dans une activité.! L exécution d une action représente une transformation ou un calcul quelconque dans le système modélisé.! Les actions sont généralement liées à des opérations qui sont directement invoquées.! Un noeud d action doit avoir au moins un arc entrant. Saisir code 9 10 Nœuds exécutables: Activités structurées! Les activités structurées utilisent les structures de contrôle usuelles (conditionnelles et boucle) à travers une syntaxe.! La syntaxe précise de ces annotations n est pas définie dans la norme UML: on utilise du pseudo-code ou la syntaxe d un langage de programmation.! Dans une activité structurée, on définit les arguments d'entrée et de sorties par des flèches encadrées. Nœuds de contrôle! Un noeud de contrôle est un noeud d activité abstrait utilisé pour coordonner les flots entre les nœuds d une activité.! Il existe plusieurs types de noeuds de contrôle :! nœud initial ;! noeud de fin d activité ;! noeud de fin de flot ;! noeud de décision ;! noeud de fusion ;! noeud de bifurcation ou de débranchement ;! noeud d union ou de jointure. 11 Ce type d activité est fourni par commodité, mais son utilisation rend peu visible le cheminement du flot de contrôle. 12

Nœuds de contrôle! Noeud initial! noeud de contrôle à partir duquel le flot débute lorsque l activité enveloppante est invoquée. Il est représenté par un petit cercle plein.! Noeud de fin d activité! Lorsqu un flot d exécution atteint un noeud de fin d activité, l exécution de l activité enveloppante s achève et tout noeud ou flot actif au sein de l activité enveloppante est abandonné.! Si l activité a été invoquée par un appel synchrone, un message contenant les valeurs sortantes est transmis en retour à l appelant.! Noeud de fin de flot (flow final)! Lorsqu un flot d exécution un atteint noeud de fin de flot, il se termine, mais cette fin de flot n a aucune incidence sur les autres flots actifs de l activité enveloppante.! Noeud de décision! permet de faire un choix entre plusieurs flots sortants. Il possède un arc entrant et plusieurs arcs sortants. Il est représenté par un losange Exemple Fournir PiËce Monter PiËce. Emballer [montage fini] [Manque PiËce].. [else] [else] Les pièces nécessaires à l emballage sont produites séquentiellement par l activité Fournir Pièce. Si une pièce est prête, elle peut être montée Si la barre fork est franchie, 2 jetons de contrôle sont produits: l un réalise l activité monter pièce et l autre de fournir la pièce suivante. Quand il ne reste plus de pièce à fournir, le flot se termine. 13 14 Nœuds de contrôle! Noeud de fusion! sert à accepter un seul flot (sortant) parmi plusieurs flots (entrants)! Il est représenté par un losange et il est possible de fusionner un noeud de fusion et un noeud de décision. Nœuds de contrôle: illustration! Noeud de débranchement (fourche): transition de type fork! sépare un flot en plusieurs flots concurrents. Il possède donc un arc entrant et plusieurs arcs sortants. Il est représenté par un trait plein! Noeud d union ou de jointure! synchronise des flots multiples. Il possède donc plusieurs arcs entrants et un seul arc sortant. Il est représenté par un trait plein! Il est possible de fusionner un noeud de bifurcation et un noeud de union 15 16

Nœuds d objets! Un noeud d objet permet de définir un flot de données dans un diagramme d activités.! Il représente l existence d un objet généré par une action dans une activité et utilisé par d autres actions.! On peut montrer, le rôle de l objet, et comment sont état et ses valeurs sont modifiés Exemple Commander produit Expédier commande Traiter commande C:Commande [en cours] C: Commande [Traitée] 17 18 Arguments et valeurs retournées! Si une activité est bien adaptée à la description d'une opération d'un classeur, il faut un moyen de spécifier les arguments et valeurs de retour de l'opération.! C'est un rôle que peut jouer les pins Partitions (Travées) (1)! Utilisée lors de la modélisation des workflows des processus métier afin de diviser les états d activités en groupe de diagrammes d activités.! Un pin représente un point de connexion pour une action.! L'action ne peut débuter que si l'on affecte une valeur à chacun de ses pins d'entrée.! Les valeurs sont passées par copie.! Quand l'activité se termine, une valeur doit être affectée à chacun des pins de sortie! Chaque groupe ou partition représente le département responsable des activités.! Chaque travée possède un nom, unique dans le diagramme.! Chaque activité appartient à une seule travée. 19 20

Partitions (2)! Les partitions permettent d'attribuer les activités à des éléments particuliers du modèle.! Une partition peut elle-même être décomposée en sous-partitions. Exemple 21 22 Partitions multidimensionnelles Exceptions! Concept important en programmation orientée objet! permettent d interrompre un traitement quand une circonstance qui dévie de la spécification normale advienne! assurent une gestion plus élaborée des erreurs au cours du traitement! Exemple:! Division par zéro! Si on a float diviser (float dividende, float diviseur)! Comment signaler à l appelant que si le diviseur est égal à zéro, une erreur se produit?! Solution! Recourir à une exception qui ne correspond pas à une valeur de retour de la signature normale de l opération.! L appelant a le choix de traiter l exception ou de la laisser remonter à son propre appelant. Attention!!! Une exception qui n est traitée à aucun niveau correspond à une faute de programme, et induit la fin du processus 23 24

Gestion des exceptions (1)! Toute activité peut avoir plusieurs pins d exceptions (représenté par un triangle).! Une levée de l exception se matérialise par:! une transition qui vise le pin d exception! annotation textuelle, dans le cas d activité structurée (throw par exemple)! Lors de la levée, l exécution de l activité en cours est interrompue sans générer des valeurs de sorties.! Par contre un jeton de données représentant l exception est généré.! Le mécanisme d exécution recherche alors un gestionnaire d exception susceptible de traiter ce type d exception ou une classe de ses classes parentes.! Le gestionnaire d exception (clause catch des langages de programmation) protège une activité. Gestion des exceptions (2)! Un gestionnaire d exception est représenté par une activité ordinaire avec! un pin d entrée du type de l exception gérée! et liée avec le bloc activité qu il protège, par un arc en zigzag! Il doit avoir les même pins de sortie, en nombre et en type, que le bloc qu il protège! Quand l exécution du gestionnaire se termine, l exécution se poursuit comme si l activité protégée s était terminé normalement.! Avec les valeurs de sortie du gestionnaire en lieu et place de celles du bloc protégé. 25 26 Exemple Notation graphique du fait qu une activité peut soulever une exception Région interruptible et interruption! Mécanisme analogue à la gestion des exceptions, mais moins précis! gestion des interruptions ou régions interruptibles.! Adapté aux phases de modélisation conceptuelle ou de modélisation métier qui ne nécessitent pas une grande précision.! Objectif! Représenter graphiquement un enchainement nominal et une alternative qui interrompt le cours du traitement 27 28

Représentation d une région interruptible! Si l évènement d interruption survient, toutes les activités en cours dans la région interruptible sont stoppées et le flot de contrôle suit la flèche en zigzag qui quitte la région.! Aucune contrainte sur la suite du traitement n est imposée.! Exemple! après réception d un ordre d annulation, et durant l activité annuler dossier, l activité traiter paiement peut continuer à s exécuter. Cependant, quand l activité annuler dossier a fini, on passe au nœud de fin d activité, ce qui interrompt tous les flots de l activité. Exercices pratiques! Élaborez une activité swap qui prend trois arguments, un tableau tab et deux indices a et b, et échange le contenu de la case tab[a] et tab[b] Ordre d annuler annuler dossier Commande crèer dossier prèparer commande clùturer dossie 29 traiter paiement client 30 Exercices pratiques (suite) Un site de vente en ligne propose des produits qui peuvent être placés dans un panier virtuel tandis que l utilisateur navigue. Pour valider ses achats, il clique sur le bouton Sortir du magasin. On lui propose alors de se connecter à un compte existant, ou d en créer un s il n en a pas encore. Pour créer un nouveau compte, l utilisateur doit fournir une adresse de messagerie, qui sert également de login, son nom et son adresse, éventuellement une adresse de livraison, et ses coordonnées bancaires. On prévoit le cas où l adresse de messagerie est déjà associée à un compte. Si la validation de ces informations réussit, on crée un nouveau compte et l on propose l utilisateur de s y connecter. On passe ensuite à la confirmation de l achat. Modélisez cette procédure à l aide d un diagramme d activités. Indication: Se concentrer sur la partie authentification et création de compte le cas échéant. 31