Cours UML (Tous Les Chapitres) [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Cours : Modélisation Orientée Objet (MOO avec UML)

Responsable : Achraf MTIBAA

1

Introduction : Rappel sur les concepts orientés objet

Responsable : Achraf MTIBAA

2

1-Approches de conception

Approche Fonctionnelle (60-70) - Décomposition du système en des fonctions Approche Systémique (70-8x) - Dichotomie Données / Traitement Approche Objet (8x- ….) - Se base sur les concepts Objets 3

2-Concepts des Objets

Le monde est composé d’entités qui « collaborent » chauffeur

Feu direction

Boîte de vitesse roue

moteur roue Freins

• L’approche objet consiste à résoudre un problème en termes d’objets qui collaborent. • Ces objets sont des abstractions des objets réels

4

2-Concepts orientés objet L’OBJET Est un élément du réel à modéliser : Posséde sa propre identité : OID (Object Identifier) : OID : est une valeur indépendante des valeurs des prorpriétés de l’objet Attribuée par le système et elle est totalement transparante à l’utilisateur Peut avoir plusieurs états durant son cycle de vie : Etat d’un objet : situation significative que peut prendre un objet, déterminée en fonction des valeurs des différents attributs et liens de l’objet Cycle de vie : les états que peut prendre un objet, entre sa création et sa suppression (et les conditions de passage d’un état à un autre). Exemples : La facture 100567 : {100567, 27/1/2005, ...} Les états que peut prendre la facture : {saisie, livrée, en attente de livraison, soldée, …} 5

2-Concepts orientés objet La CLASSE Regroupe un ensemble d'objets semblables : les mêmes propriétés structurelles (attributs); le même comportement (opérations, méthodes); les mêmes liens avec les autres objets; et ayant un intérêt pour l'application. Encapsule les données et les traitements : La classe Facture : {NumFacture, DateFacture, …, Imprimer(), Solder(), ...}

6

2-Concepts orientés objet L’ENCAPSULATION Est un principe qui consiste à : cacher les données et les détails d'implantation (algorithmes) et laisser visible la partie interface (signatures des opérations publiques) des classes Approche classique

Approche objets Inte rfac e

Encapsulation

Inte rfac e

Inte rfac e

Données

Traitements

Echange de messages

7

2-Concepts orientés objet L’HERITAGE Est un mécanisme permettant le partage des caractéristiques d’une classe (généralisation) par une ou plusieurs autres classes (spécialisations).

Personne

Nom, Prénom, Adresse, ...

Héritage simple Cours, Diplôme, ...

Enseignant

Etudiant

Année, ...

Héritage multiple

Etudiant_Enseignant Numéro, TD, ...

8

3-Démarche Orientée objet Principales étapes de conception objet Le cycle de vie du logiciel suivant une approche objet est Itératif et Incrémental. Itératif : l’architecture subit plusieurs cycles d’analyse, de conception et d’implémentation. Incrémental : les décisions sont raffinées à chaque cycle d’analyse / conception / implémentation, menant à un système qui répond plus aux exigences. Dans chaque itération, on s’intéresse aux activités suivantes : Identifier les classes et les objets à un niveau donné d’abstraction Identifier les relations entre classes Spécifier l’interface des classes. Phase Conception

9

4-Démarche Orientée objet Analyse : Modéliser le domaine d’activité du client. Conception : Choisir l’architecture du système et définir la responsabilité de chaque composant. Implémentation : Définir l’algorithme de chaque programme

10

4-Démarche Orientée objet Les différents points de perception d’un système : La vision statique : Description des entités représentant l’univers de discours et de leurs relations. De quoi est fait le système ? La vision dynamique : Description des évolutions, dans le temps, des entités représentant l’univers de discours. Comment il peut évoluer ? La vision fonctionnelle : Description du fonctionnement (des différentes fonctionnalités) du système. Comment il fonctionne ?

11

4-Démarche Orientée objet Modèle statique Décrire les objets : . structures de données . opérations . liens entre les classes

Modèle fonctionnel

Contrôler les évolutions, dans le temps, des objets du système Modèle dynamique

Décrire le fonctionnement du système 12

5-UML - Le langage Objet unifié Unified Modeling Language UML est un langage formel (ou pseudo-formel) basé sur un métamodèle. Le métamodèle permet de définir : • les concepts et éléments de modélisation • la sémantique de ces éléments

UML se base sur une notation graphique UML propose neuf types de diagrammes • représentent les aspects statiques et dynamique • couvrent l’ensemble des phases de développement

UML est ouvert et extensible

13

6-UML - Le langage Objet unifié Historique UML est un langage de modélisation objet et non une méthode 2005

UML 2.0 UML 1.4

01/ 99

révision 1.3

UML 1.3

11/ 97

Adoption par l ’OMG

UML 1.1

01/ 97

Soumission à l ’OMG

UML 1.0

10/ 96

UML 0.91

06/ 96

UML 0.9 Unified Method 0.8 Booch 93

OMT-2

Booch 91

OMT-1

OOSE 14

7-Les différents diagrammes du langage UML

Spécifications de besoins - Diagramme de cas d’utilisation, - Diagramme d’activités. Le modèle structurel - Le diagramme de classes, - Le diagramme d’objets.

15

7-Les différents diagrammes du langage UML Le modèle dynamique - Le diagramme de cas d’utilisation, - Le diagramme d’interaction (collaboration, séquence), - Le diagramme d’états. Architecture - le diagramme de composants, - le diagramme de déploiement. 16

8-Ateliers UML Critères de sélection • Nombre de diagrammes supportés • Génération automatique de diagrammes • Génération de code - langages supportés • Rétro ingénierie (reverse engineering) • Prototypage • Synchronisation du code avec modifications extérieures • API • Echanges avec d’autres AGL UML ou IDE • Utilisation pratique (schémas de qualité, convivialité, générer des images, ... ) • Patterns de conception - et création de patterns • ...

17

8-Ateliers UML

Quelques AGL : • StarUML : http://staruml.io/

•Together ( Togethersoft) http://www.togethersoft.com • Rational ROSE (Rational corp.) http://www.rational.com • Paradigm (Platinium) http://www.platinium.com • Magic Draw UML (NoMagic) http://www.nomagic.com • DOM (ObjetDirect) http://www.objetdirect.com • Objecteering (SoftTeam) http://www.objecteering.com • Aonix Life Cycle Desktop (Aonix) http://www.aonix.com, .fr • UML Studio (Pragsoft) http://www.pragsoft.com

18

Bibliographie Livres : Modélisation objet avec UML JA Muller, N. Gaertner. Editions Eyrolles. UML par la pratique UML en action De Merise à UML, … Cours : MM : F.Gargouri & K.Haddar

Sur le Web : http://www.omg.org/uml/ http:// www.rational.com http://www.uml.free Sous google : UML

Français

19

MOO (UML) Chapitre 1: Le diagramme de cas d’utilisation

Responsable : Achraf MTIBAA

20

Chapitre 1: Le diagramme de cas d’utilisation Les cas d’utilisation (use cases) ont été formalisés par Ivar Jacobson. Les cas d’utilisation décrivent, sous la forme d’actions et de réactions, le comportement d’un système du point de vue d’un utilisateur. Un cas d’utilisation est une manière spécifique d’utiliser un système. C’est l’image d’une fonctionnalité du système, déclenchée en réponse à la stimulation d’un acteur externe.

21

1-Définitions Définition 1: Un cas d’utilisation (use case) modélise une interaction entre le système informatique à développer et un utilisateur ou acteur interagissant avec le système. Définition 2: Un cas d’utilisation décrit un ensemble d’actions réalisées par le système qui produit un résultat observable pour un acteur.

Spécifications

Use Cases

Analyse

Tests 22

Définitions Les cas d’utilisation : servent de base à la traçabilité des exigences d'un système dans un processus de développement intégrant UML. se limitent aux préoccupations "réelles" des utilisateurs : ne présentent pas de solutions d'implémentation et ne forment pas un inventaire fonctionnel du système. Un cas d’utilisation avec UML : est la solution pour représenter au niveau conceptuel, les besoins des utilisateurs (Merise ne permet pas cette modélisation). permet de structurer les besoins des utilisateurs et les objectifs (fonctionnalités) correspondants d'un système. identifie les utilisateurs du système (acteurs) et leurs interactions avec le système. permet de classer les acteurs et structurer les objectifs du système. 23

Définitions Les cas d’utilisation : Recentrent l’expression des besoins sur les utilisateurs ne doivent pas chercher l'exhaustivité, mais clarifier, filtrer et organiser les besoins Partitionnent l’ensemble des besoins d’un système. Les besoins: définissent le contour du système à modéliser ils précisent le but à atteindre, permettent d'identifier les fonctionnalités principales (critiques) du système.

24

2-Intérêt des cas d’utilisation Utilisateur C

Ensemble des besoins

Utilisateur A

Utilisateur B

Les cas d’utilisation partitionnent l’ensemble des besoins d’un système

Cahier des charges

25

3-Concepts de base : les acteurs Définition 1 : Représente un rôle joué par une entité externe (utilisateur humain, dispositif matériel, ou autre système) qui interagit directement avec le système étudié Définition 2 : Une entité externe agissant sur le système qui peut : Échanger de l’information avec ce système consulter ou modifier l'état du système, Les acteurs sont : Déterminés en examinant les : Utilisateurs directs du système Responsables de l’exploitation et/ou de la maintenance Autres systèmes interagissant avec le système Représentés sous forme de petits personnages ou sous forme de rectangle avec le mot clé 26

4-Grandes catégories d’acteurs Les acteurs principaux…les personnes qui utilisent les fonctions principales du système. Les acteurs secondaires…les personnes qui effectuent des tâches administratives ou de maintenance. Le matériel externe…les dispositifs matériels incontournables qui font partie du domaine de l’application et qui doivent être utilisés. Les autres systèmes… les systèmes avec lesquels le système doit interagir.

27

5-Concepts de base : les cas d’utilisation Définition 1 : Un ensemble d'actions réalisées par le système, en réponse à une action d'un acteur Définition 2 : Modélise une fonctionnalité d’un système ou d’une classe Les cas d’utilisation : sont représentés par des ellipses Peuvent être contenus dans un rectangle (représentant le système) Sont déterminés en observant et en précisant Acteur par acteur les scénarios du point de vue utilisateur Sont décrits en termes : d’informations échangées et d’étapes d’utilisation du système.

28

Concepts de base : les cas d’utilisation Un cas d’utilisation : Regroupe une famille de scénarios d’utilisation Est une abstraction du dialogue système/utilisateurs Quand un acteur interagit avec le système: Le cas d’utilisation instancie un scénario L'ensemble des cas d’utilisation décrit les objectifs du système Utilité des cas d’utilisation pour : les utilisateurs : exprimer les besoins Les analystes : comprendre Les programmeurs : réaliser Les testeurs : vérifier 29

Concepts de base : les cas d’utilisation Une fois identifiés, les acteurs doivent être décrits d’une manière claire et concise, en trois ou quatre lignes maximum. Lorsqu’il y a beaucoup d’acteurs dans un système, il est conseillé de les regrouper par catégories afin de faciliter la navigation dans le modèle des cas d’utilisation Les cas d’utilisation doivent être vus comme des classes dont les instances sont les scénarios. Un scénario correspond au flot de messages échangés par les objets. 30

Concepts de base : relations entre cas d’utilisation Association (relation de communication): Relation entre un acteur et un cas d’utilisation Un acteur déclenche un cas d’utilisation : Acteur

CasUtilisation

Relation d’inclusion : Entre cas d'utilisation CasUtilisation1 L’instance du CU source contient aussi le comportement décrit par le CU destination.

CasUtilisation2

31

Concepts de base : relations entre cas d’utilisation

Relation d’inclusion (suite) : La relation d’inclusion a un caractère obligatoire: La source doit indiquer à quel endroit le CU cible doit être inclus Permet de : Décomposer les comportements et Définir des comportements partageables entre plusieurs CU. Relation d’extension : Entre cas d'utilisation L’instance du CU source ajoute son comportement au CU destination (si la condition est réalisée). Le CU destination étend son comportement par l’ajout de celui du CU source, si la condition est vérifiée.

[condition d'extension]

CasUtilisation1

CasUtilisation2

32

Concepts de base : relations entre cas d’utilisation Relation d’extension (suite) : Peut être soumise à une condition : Le comportement ajouté est inséré au niveau d’un point d’extension Ce point d’extension est défini dans le CU destination Permet de modéliser des variantes de comportement d’un CU Selon les interactions des acteurs et l’environnement du système la condition d’extension peut être spécifiée à côté du mot-clés Point d’extension : Possède un nom Décrit : Un emplacement dans le CU destination où le comportement du CU source sera inséré. UML ne définit aucun format de description de point d’extension 33

Concepts de base : relations entre cas d’utilisation Relation de généralisation : Entre cas d'utilisation Le cas d’utilisation Fils est une spécialisation du cas d’utilisation Parent

CasUtilisationParent Virement

CasUtilsationEnfant

VirementParInternet

Exemple : On désire représenter par un diagramme de CU les virements bancaires effectués par des clients: Un client peut être local ou distant Un client peut effectuer un virement via Internet ou direct (banque) Dans tous les cas, on doit procéder à une identification du client Dans le cas d’un virement dont le montant dépasse 500, on procède à une vérification du solde du compte du client. 34

Exemple Client Local

Virement Client Distant

Montant > 500

VirementInternet

Identification

Vérification solde compte 35

Exemple

Et voici le point d’extension : Virement Points d’extension

• Vérification supplémentaire: après identification

36

MOO (UML) Description des cas d’utilisation (Suite Chapitre I)

Responsable : Achraf MTIBAA

37

Description des cas d’utilisation Il n’existe pas de norme (UML) établie pour la description textuelle des cas d’utilisation. Généralement, on y trouve pour chaque cas d’utilisation : son nom, un bref résumé de son déroulement, le contexte dans lequel il s’applique, les acteurs qu’il met en jeu, une description détaillée : le déroulement nominal de toutes les interactions, les cas nécessitant des traitements d’exception, les effets du déroulement sur l’ensemble du système, etc. 38

Description des cas d’utilisation Sommaire d’identification Titre : ……………….. Type : ………………… Résumé :……………………………………………………………………………… Acteurs : Date de création : Date de mise à jour :………………………………… Version : Auteur(s) : Description des Enchaînements : Pré conditions : Scénario nominal : 1. 2. … Enchaînements alternatifs : A1… A2… Contraintes …. 39

Exemple de Cas d’utilisation Sommaire d’identification Titre : Traiter le passage en caisse Résumé : un client arrive à une caisse avec des articles à acheter. Le caissier enregistre les achats et récupère le paiement. A la fin de l’opération, le client part avec les articles. Acteurs : Caissier (P), Client (S), Gestion des stock (S) Date de création : Date de mise à jour :………………………………… Version : 1 Auteur(s) : Etudiants 2ème année Description des Enchaînements : Pré conditions : La caisse est en service : un caissier y est connecté Scénario nominal : Représente le déroulement normal d’un cas d’utilisation : les différentes interactions utilisateur / système permettant l’exécution réussie du traitement (voir suite)

40

Exemple de Cas d’utilisation 1. Ce CU commence quand un client arrive à la caisse avec des articles qu’il veut acheter. 2. Le caissier enregistre chaque article. S’il y a plus d’un exemplaire par article, le caissier indique également la quantité.

3. La caisse détermine le prix de l’article et ajoute des informations sur l’article à la vente en cours. La caisse affiche la description et le prix de l’article en question.

4. Après avoir enregistré tous les articles, le caissier indique que la vente est terminée.

5. La caisse calcule et affiche le montant total de la vente.

6. Le caissier annonce le montant total au client. 7. Le client choisit le type de paiement : a. En cas de paiement … b. En cas de … c. En cas … 8. La caisse enregistre la vente et imprime … 9. Le caissier donne le ticket de caisse au client.

41

Exemple de Cas d’utilisation Enchaînement alternatif : Quand l’enchaînement précisé par le scénario nominal ne peut pas se dérouler comme prévu : Le cas d’utilisation converge tout de même. Exemple: Numéro d’identification d’un article est inconnu l’enchaînement démarre au point 2 du scénario nominal. 3. La caisse indique que le numéro d’identification de l’article est inconnu. L’article ne peut alors pas être pris en compte dans la vente encours. Le scénario reprend au point 2.

42

Exemple de Cas d’utilisation Enchaînement d’erreur : Quand l’enchaînement précisé par le scénario nominal ne peut pas se dérouler : Le cas d’utilisation se termine par un échec. Exemple: Client ne pouvant payer (ou le centre d’autorisation refuse le payement) l’enchaînement démarre au point 6 du scénario nominal. 7. Le client ne peut pas payer le total avec aucun des moyens autorisés. 8. Le caissier annule l’ensemble de la vente et le cas d’utilisation se termine en échec : la vente ne peut pas avoir lieu

43

Fonctionnement des caisses enregistreuses d’un super marché : Un client arrive à la caisse avec des articles à payer. Le caissier enregistre le numéro d’identification de chaque article, ainsi que la quantité si elle est > 1. La caisse affiche le prix de chaque article et son libellé. Quand tous les achats sont enregistrés, le caissier signale la fin de la vente. La caisse affiche alors la fin des achats et le prix total à payer. Après la saisie des articles, le client peut présenter des coupons de réduction pour certains articles Le client choisit son mode de paiement : Liquide : le caissier encaisse l’argent reçu, la caisse indique le montant à rendre au client. Chèque : le caissier vérifie la solvabilité du client en transmettant une requête à un centre d’autorisation via la caisse. Carte de crédit : un terminal bancaire fait partie de la caisse et transmet une demande d’autorisation en fonction du type de la carte. La caisse enregistre la vente et imprime le ticket. Le caissier donne le ticket au client. Quand le paiement est terminé, la caisse transmet l’information sur le nombre d’articles vendus au système de gestion des stocks. chaque matin, le responsable du magasin initialise les caisses pour la 44 journée.

Exemple de Cas d’utilisation

Initialier la caisse

Responsable Magasin

Caissier

Traiter le passage en caisse

Prendre en compte coupons

Gestion des stocks



Centre autorisation cartes

Client Traiter le Paiement

Paiement Liquide

Paiement Chèque

Paiement Carte

Centre autorisation chèques 45

MOO (UML) Chapitre II: Diagramme de classes

Responsable : Achraf MTIBAA

46

Chapitre 2 : Les diagrammes de classes Les diagrammes de classes expriment la structure statique d’un système en termes : De classes et de relations entre elles et Un ensemble d’interfaces et de paquetages ainsi que leurs relations. Une classe décrit un ensemble d’objets, une association décrit un ensemble de liens Les objets sont instances des classes et les liens sont instances des associations Un diagramme de classes décrit de manière abstraite les liens potentiels

d’un objet vers d’autres objets.

Lien

1,N Objet 1, N

Est une instance de Relation

0,N Classe 1, N

Est une instance de 47

1- Concepts de base AVEC UML, UNE CLASSE : est un type abstrait avec des caractéristiques communes à un ensemble d'objets. permet de créer des objets ayant ces caractéristiques Est représentée par un rectangle avec: Nom de Classe Propriétés Méthodes et Propriétés Exceptions / Conditions.

Méthodes

Classe = propriétés + méthodes + instanciation 48

Concepts de base LES ATTRIBUTS ET LES OPÉRATIONS : Sont décrits dans le deuxième et troisième compartiments Peuvent être précisés par : attributs et opérations Nom de Classe NomAttribut [: type = valeur initiale] Opération ()

Remarques : L’ordre opération / attribut = attribut / opération Opération = méthode = fonction-membre, … Attribut = propriété = donnée-membre, …

49

Concepts de base La syntaxe de description des attributs est : Visibilité NomAttribut [[Multiplicité] : Type [=ValeurInitiale] [{Propriété}]] Visibilité = type d'accessibilité : Public : visible et modifiable par tout objet du même paquetage Private : seulement visible et modifiable par les opérations de l'objet auquel il appartient. Protected : seulement accessible et modifiable par les opérations des classes descendantes Multiplicité : intervalle ou nombre Propriété : mutabilité (gelé, variable, ajout Uniquement, …) 50

2- Les relations entre classes Association Agrégation Composition Remarque : par rapport au modèle E/A de base Héritage RC UML + riches sémantiquement et + proches de la réalité Les associations : Une association exprime une connexion sémantique bidirectionnelle entre n classes (n>=1). Une association est instanciable dans un diagramme d'objets ou de collaboration sous forme de liens entre objets issus des classes associées. ADHERENT Nom Prénom Adresse

emprunter

EXEMPLAIRE

51

2- Les relations entre classes LES ASSOCIATIONS : représentent des relations statiques/conceptuelles entre objets et à longue durée de vie (n’est pas un lien instantané ni passager). Relient une ou plusieurs classes : arité 1 ou plus Par rapport au modèle Entité / Association : Entité 1

Diag. Entité / Association Diag. De classes

Card1

P11, P12 …

CEntité1

Card2

Ass

Card2

Entité 2 P21, P22 …

Card1

CEntité2 52

2- Les relations entre classes Arités des associations : Une association peut être binaire ou naire. Exemple : on désire représenter le fait suivant : un Professeur enseigne dans une salle des étudiants. PROFESSEUR Enseigner

SALLE

ETUDIANT

Si on veut matérialiser le cours

COURS Association porteuse de données 53

2- Les relations entre classes Les associations : Nommage Une association peut être nommée

Classe1

[ Nom Association ]

Classe2

Comment justifier la non obligation du nom de l’association : Aux niveaux conception et implantation Sens de lecture d’une association : Association en forme verbale active (ou passive) : précise le sens principal de lecture d'une association (> ou

HÔTEL

héberge>

PERSONNE

Association en forme verbale active

PERSONNE

SOCIÉTÉ

Association en forme verbale Passive 54

2- Les relations entre classes Association à navigabilité restreinte : Par défaut, une association est navigable dans les deux sens. On peut la limiter à un seul sens dans un modèle (et non lors de d'implémentation). indique que les instances d'une classe ne "connaissent" pas les instances d'une autre.

ELECTEUR

vote

ETUDIANT

Connaître

CANDIDAT

ENSEIGNANT

Les associations : Notion de rôle Rôle des associations (utilisé pour les associations ambiguës) : spécifie la fonction d'une classe pour une association donnée

Client HÔTEL

PERSONNE Directeur

PERSONNE

Parents

Enfants 55

2- Les relations entre classes La notion de rôle :

Classe1

[ Nom Association ]

[Rôle1]

Classe2

[Rôle2]

Rôle 1 : le rôle joué par Classe 1 dans l’association Rôle 2 : le rôle joué par Classe 2 dans l’association

Etudiant

Professeur

Enseigne

Est Enseigné 56

2- Les relations entre classes LES ASSOCIATIONS : CARDINALITÉS précisent le nombre d'instances qui participent à une relation. Combien d’objets de la classe considérée peuvent être liés à un objet de l’autre classe? 1

Un et un seul

0 .. 1

Zéro ou un

N

N (entier naturel)

M .. N

De M à N (entiers naturels)

*

De 0 à plusieurs

0 .. *

De 0 à plusieurs

1 .. *

De 1 à plusieurs 57

Un exemple illustratif

58

2- Les relations entre classes L’agrégation : Est une association non symétrique, Exprime un couplage fort et une relation de subordination. Représente une relation de type "ensemble/élément". Peut notamment (mais pas nécessairement) exprimer : qu'une classe (un "élément") fait partie d'une autre ("l'agrégat"), qu'un changement d'état d'une classe, entraîne un changement d'état d'une autre, qu'une action sur une classe, entraîne une action sur une autre. Une instance d'élément agrégé peut : être liée à plusieurs instances d'autres classes : l'élément agrégé peut être partagé (dans le temps) exister sans agrégat (et inversement) les CV de l'agrégat et de ses éléments agrégés peuvent être indépendants : La création de l’un n’implique pas celle de l’autre 59

2- Les relations entre classes Composition : La composition est une agrégation forte. Les cycles de vie des éléments (les "composants") et du composé coïncident : si le composé est détruit (ou copié), ses composants le sont aussi. une instance de composant ne peut être liée qu'à un seul composé. Les "objets composites" sont des instances de classes composées. LIVRE

COUVERTURE

Agrégation

CHAPITRE

Composition

Remarque : toutes les conventions relatives aux cardinalités restent valables pour les Agrégations et les compositions

60

Propriétés de la composition La composition implique une contrainte sur la valeur de la multiplicité du côté de l’agrégat : elle ne peut prendre que les valeurs 0 ou 1. La composition et les attributs sont sémantiquement équivalents.

Cylindre

Voiture

Immeuble

Moteur

Chambre

Cercle Carburateur

Point Rectangle

61

2- Les relations entre classes LA GÉNÉRALISATION : L’héritage, avec UML, est désigné par GENERALISATION Elle représente une relation de classification entre élément plus général et un élément plus spécifique. Elle peut être appliquée aux classes, aux paquetages et aux cas d’utilisations La généralisation peut être Simple ou GENARALISATION

SPECIALISATION

Remarque : une classe généralisée peut être spécialisée selon ≠ critères

Multiple : La spécialisation a plus qu’une généralisation 62

2- Les relations entre classes Contraintes et propriétés de la généralisation : Les attributs, les opérations, les relations et les contraintes définies dans les super-classes sont hérités dans les sous-classes La contrainte exprimée par le mot-clé {disjoint} Tout objet est au plus instance d’une seule sous-classe La généralisation, par défaut, symbolise une décomposition exclusive. La contrainte exprimée par le mot-clé {chevauchement} Une classe descendante au produit cartésien de ses classes généralisées VEHICULE

Premier critère

Motorisation

Milieu

Deuxième critère

{chevauchement} A VOILE

A MOTEUR

TERRSETRE

LES DEUX

MARIN 63

2- Les relations entre classes Contraintes et propriétés de la généralisation : La contrainte exprimée par le mot-clé {complet} Indique que la généralisation est terminée : Il n’est pas possible d’ajouter d’autres sous-classes La contrainte exprimée par le mot-clé {incomplet} Indique que la généralisation est extensible : elle peut avoir d’autres spécialisations COURS

{incomplet} COOSI

IA

GL

BDA

64

2- Les relations entre classes LES ASSOCIATIONS : CONTRAINTES La multiplicité représente un exemple de contrainte sur le nombre de liens qui peuvent exister entre deux objets. permettent d'étendre ou de préciser la sémantique permettent de restreindre le nombre d'instances visées

peuvent s'exprimer en : Langage Naturel ou graphiquement avec un {texte} ou

En OCL (Object Constraint Language) Les types de contraintes exprimables sur les associations : Ordonné; Sous-ensemble;

Ou-exclusif, … 65

2- Les relations entre classes Les associations : Contraintes Ordonné : PERSONNE

1

0..*

COMPTE

{ordonné}

La collection des comptes d’une personne est triée

Sous-ensemble : SERVICE

1

Numéro_S Nom_S ...

affecter

1..*

Numéro Nom

{sous-ensemble}

0..1

diriger

EMPLOYE

1

....

66

2- Les relations entre classes Les associations : Contraintes Ou-exclusif : Indique que pour un objet donné, une seule association est valide BATTERIE

PORTABLE

{Ou-exclusif} SECTEUR

Alimenter

Cette contrainte permet d’éviter l’introduction de classes artificielles

PORTABLE

Alimenter

ENERGIE

SECTEUR

BATTERIE 67

2- Les relations entre classes Classe d'association : est une classe qui réalise la navigation entre les instances d'autres classes. représente les associations porteuses de données. Passe >

ETUDIANT

EXAMEN

NOTE Remarque : classe d’association (Cde, Client, Facture)& attribut de lien (Cde, produit, QteCdée) Qualification : permet de sélectionner un sous-{} d'objets, parmi ceux participant à une association. est définie par une clé, qui permet de sélectionner les objets ciblés.

Personne 0..1

E-mail

Réseau 68

Grammaire OCL : Object Constraint Language

Langage formel pour l’expression de contraintes, standardisé par l’OMG. Supprimer des ambiguïtés en se basant sur une grammaire précise. OCL permet l’expression des contraintes suivantes : - Les invariants au sein d’une classe ou d’un type, - Les contraintes au sein d’une opération, - les pré- et post-conditions d’opération Chaque contrainte OCL est liée à un contexte définissant le type auquel la contrainte se rapporte. Exemple : Context Classe d’école : : ajouter (unElève : Personne) pre classeD’écoleNonSurchargée : nbr_élèves 0..*

CIN{unique } ...

Adhésion Date Type

Bibliothèque Nom …

Personne (CIN, …) Bibliothèque(Id_bib, …) Adhésion(CIN#, Id_bib#, Date, Type)

Table Adhésion

Colonne Clé primaire OiD de Bibliothèque

CIN Id_bib Date Type

Domaine String(13) Identifiant Date String(13)

Non Null Oui Oui Oui Oui

Transformation de l’héritage Héritage Personne CIN Nom Prénom

Etudiant NumEtudiant AnnéeEtude

Les sous classes ont la même clé primaire que la superclasse Remarque: Un attribut « type » est ajouté à la superclasse dans le cas d’une spécialisation complète Il existe trois choix : •

Aplatir vers le haut



Aplatir vers le bas



Conserver les niveaux

Enseignant Grade Spécialité

Transformation de l’héritage Aplatir vers le haut Personne (CIN, Nom, Prénom, NumEt, AnnéeEtude, Grade, Spécialité, T) Dom(T)={Étudiant, Enseignant, Autre} Contraintes: SI Type = Autre ALORS NumEt=AnnéeEtude= Grade=Spécialité=Null SI Type = Étudiant ALORS Grade=Spécialité=Null SI Type = Enseignant ALORS NumEt=AnnéeEtude= Null

Aplatir vers le bas Personne (CIN, Nom, Prénom) Étudiant (CIN, Nom, Prénom, NumEt, AnnéeEtude) Enseignant (CIN, Nom, Prénom, Grade, Spécialité) Contraintes: La classe Personne est concrète.

Transformation de l’héritage

Conserver les niveaux: Personne (CIN, Nom, Prénom) Étudiant (CIN, NumEt, AnnéeEtude) Enseignant (CIN, Grade, Spécialité) Contraintes: Projection(Etudiant, CIN) incluse Projection(Personne, CIN) Projection(Enseignant, CIN) incluse Projection(Personne, CIN)

MOO (UML) Chapitre III: Diagramme d’Objets

Responsable : Achraf MTIBAA

83

CHAPITRE 4 : DIAGRAMME D’OBJETS

Servent durant la phase exploratoire de l’analyse Représentent la structure statique du système modélisé. Montrent : des objets (instances de classes) dans un état particulier et des liens (relations sémantiques) entre ces objets. Position des diagrammes objets dans un processus de modélisation : Use Cases

Spécifications Diag. objet

Conception

Modèles dynamiques

84

Concepts de base Un diagramme d’objets: est une instance d’un diagramme de classes Montre un contexte particulier (objet + lien) facilite la compréhension des structures de données complexes. Représentation des objets : Un objet est représenté par un rectangle qui contient : le nom de l'objet ou, le nom et la classe de l'objet ou la classe de l'objet. Le nom de la classe peut contenir le chemin complet, composé à partir des noms différents paquetages englobants repérés par deux points Nom Objet Mohamed

Nom Objet : Classe

Mohamed : PERSONNE

:Classe :PERSONNE

85

1- Concepts de base Représentation des objets : Un groupe d’objets :

:Personne

Le rectangle représentant un objet peut comporter une partie contenant les valeurs des attributs de l’objet : Ahmed : ADHERENT Nom = Mohamed Prénom = Ahmed Adresse = Sfax

: VOITURE Couleur = rouge Puissance = 4 Marque = Peugeot

86

Concepts de base

Représentation des liens entre objets : Les liens entre objets sont : Des instances des associations entre les classes des objets participants Permettent une représentation plus concrète que celle produite par les diagrammes de classes. Exemple : V1:Voiture

:Moteur

Voiture

1

1

Moteur

1

4 R1:Roue

R3:Roue R2:Roue Diagramme d’objets

R4:Roue

Roue Diagramme de Classes 87

Concepts de base Représentation des liens entre objets : Les liens entre objets peuvent être naires. Exemple :

: Professeur

: Salle

: Etudiant

On peut indiquer les noms des objets et des liens :

Ahmed : ADHERENT Nom = Mohamed Prénom = Ahmed Adresse = Sfax

emprunter

UML en Action : EXEMPLAIRE

88

1- Concepts de base Représentation des objets composites : Un objet composite est composé d’autres objets (sous-objets) Le nombre d’instances du composant peut être spécifié

Un Composite Exemple:

:Partie1

:Partie2 : Fenêtre

: Zone de dessin : ascHorizontal

Remarque : Ces diagrammes ne sont utiles que durant la phase exploratoire d’un domaine. Ils deviennent vite compliqués et illisibles 89

MOO (UML) Chapitre IV: Diagramme de Collaboration

Responsable : Achraf MTIBAA

90

CHAPITRE 4: DIAGRAMME DE COLLABORATION (DCO) Les diagrammes de collaboration : représentent : Une extension des diagrammes d’objets le contexte d'une interaction en y précisant les états des objets en collaboration (interaction). présentent : des rôles joués par des objets dans un contexte particulier et les liens entre ces objets. montrent : des interactions entre objets (instances de classes et acteurs). les interactions entre ces objets par des envois de messages

91

1-Sémantique Les diagrammes de collaboration : permettent : une représentation (structure) spatiale des objets, des liens et des interactions (graphe dont les nœuds = intervenants et les arcs = les interactions). Une dimension temporelle (ordre de déclenchement) par l’ajout de numéros de séquence des messages échangés (on ne représente pas le t de déclenchement ni la durée). L’objectif est de construire un modèle expliquant la coopération entre les objets utilisés pour la réalisation d’une fonctionnalité. Autrement : Décrire le comportement collectif d’un ensemble d’objets En vue de réaliser une opération en décrivant leurs interactions modélisées par des envois (éventuellement numérotés) de messages

92

Sémantique Dans un diagramme de collaboration : les interactions sont représentées par les échanges de messages. l’ordre des messages peut être indiqué par leur énumération. Plusieurs types de messages existent : simples, synchrones, asynchrones et minutés. Conventions graphiques : les objets sont représentés par un rectangle dont le nom et la classe sont soulignés.

Nom Objet

Nom Objet : Classe

:Classe 93

Sémantique Représentation Générale : 3: opération (paramètre) 2 : opération

1 : événement

Objet1 : nom classe

Objet 2

4 : opération 5 : opération (paramètres)

Nom acteur : Nom de la classe

Objet 3

:nom de la classe Flux de données 94

2-Concepts de base

Une collaboration : Est la réalisation d’une opération ou d’un cas d’utilisation dans un contexte particulier. Possède deux types de descriptions : Une description générale au niveau spécification, donnant: Les rôles joués par les intervenants et les rôles des associations Une interaction : une séquence de messages partiellement ordonnés échangés entre les rôles des intervenants Une description spécifique au niveau instance, représentant : Une instance particulière d’une interaction avec les objets et les liens respectant les rôles définis au niveau spécification, et les stimulus (instances des messages) échangés entre ces objets.

PA Muller, N. Gaertner

95

Concepts de base La notion de rôle : Les objets et les associations jouent des rôles particuliers dans une collaboration. Exemples :

:C

/R:C /R

Un rôle anonyme de la C Un rôle R de la classe C Un rôle R

:C

Objet anonyme, instance de C

/R:C O. anonyme de C jouant le rôle R

/R

O. anonyme jouant le rôle R

O/R:C Objet O, instance de la classe C, jouant le rôle R 96

Concepts de base Représentation au niveau spécification: Forme un graphe de rôles des intervenants (nœuds) liés à des rôles d’association (arcs) Exemple : Collaboration représentant le fait qu’une maison peut être louée à un ou plusieurs locataires pour un loyer donné.

/Locataire : Personne

*

+habitant

1

+habitation

/Maison : Logement

1 1

*

1 + adresse

:Lieu

1 +loyer :Coût

1

+loueur

/Propriétaire : Personne

97

Concepts de base Représentation au niveau instance : Forme un graphe d’instances qui se conforment aux rôles des intervenants et des associations définis au niveau spécification On peut y ajouter des instances de messages échangés Les objets et les liens utiles pour réaliser une action sont ajoutés Exemple : Une instance du diagramme précédent avec : Un acteur qui déclenche l’opération et des Stimuli (communication entre objets) 1: revenuDeLocation(pourLesMaisons) Loueur / Propriétaire : Personne :Client

:Coût

1.1 *[i:=1..n]:loyer() 1.1.i : valeur()

/Maison:Logement

98

Concepts de base Représentation au niveau instance : Généralement : Les rôles ne sont pas indiqués Les objets, les liens et les stimuli sont représentés Exemple :

1:total:=valeurStock()

:Entreprise :Client

1.1.1 : Créer(0,0) 1.1.2.i : ajout(p)

2:afficher(total) 1.1 : calculValeur()

:Afficheur

:Stock

:SRéel

:Produit 1.1.2 * [i:=1..n]:p:=ValeurP() 99

Concepts de base Les messages : Le terme Stimulus désigne : Une communication entre objets invoquant une opération ou L’émission d’un signal ou la création et destruction d’un objet Le terme message : Un message est la spécification d’un stimulus définissant : Le rôle des objets émetteur et récepteur L’action qui envoie un stimulus quand elle s’exécute. Un message est l’avènement d’une communication permettant : La transmission de certaines informations et Éventuellement avoir des résultats. Un envoi de message entre un émetteur et un récepteur nécessite que le dernier puisse réaliser l’activité définie par le message. 100

3.2 : afficher (liste) 2.3 : afficher ("prêt accordé") 1.3 : afficher("autorisé") 4 : retrait des cassettes obtenues 1.2 : afficher ("refus", raison) 2. référence_film(titre_film) 1 : emprunter des cassettes

:F.Gestion des prêts

3 :rep := demande de réservation : Adhérent

1.1 : res, raison := vérifier droits (adhérent)

Contrôleur des droits

2.2 : dispo, cass_id := recherche_cassettes(id_film, boutiq_id)

3.3 rep, boutique :=choix_boutique 3.1 : liste := liste_boutique_dispo

3.5 : rep := recherche étendue

2.1 : existe, id_film := recherche_film(titre) 2.4 : réserver(adh_id, boutiq_id) 3.6 : recherche_film(titre)

Film

3.4 : réserver (adh_id, boutique) Ens Films

2.2.1 :*[i=mes_cassettes] dispo : = dispo(boutiq_id)

: Catalogue général :Empr unt

Ens Cassette 2.4.1 : créer (adh_id, cass_id, bouti_id) 3.4.1 : créer (adh_id, cass_id, boutique)

Diagramme de collaboration emprunt – club vidéo

101

Remarques Les acteurs du diagramme de cas d’utilisation sont aussi présents au niveau du diagramme de collaboration Les cas d’utilisation se transforment en un ou plusieurs messages échangés entre les intervenants du diagramme de collaboration Il y a plus d’intervenants et de liens au niveau du diagramme de collaboration qu’au niveau du diagramme de cas d’utilisation

102

MOO (UML) Chapitre V: Diagramme de Séquences

Responsable : Achraf MTIBAA

103

CHAPITRE 5 :DIAGRAMME DE SEQUENCES (DES) Les diagrammes de cas d’utilisation ont permis : aux utilisateurs d’exprimer leurs besoins. De dresser une première liste des objets et des acteurs constituant le système. Les diagrammes de collaboration ont permis de : détailler les diagrammes de cas d’utilisation. Préciser comment les objets et les acteurs doivent collaborer ensemble pour réaliser chacun de ces cas d’utilisation. Les diagrammes de séquence : Ajoutent une dimension temporelle aux diagrammes de collaboration. Se concentrent sur la séquence des interactions selon un point de vue temporel (durée, arrivée, séquencement, …)

104

1-Formalisme DSE est une version plus complète du diagramme « trace d’événements » de la méthode (OO) OMT. Permet de présenter les scénarios d’un cas d’utilisation donné. Un message reçu par un objet déclenche l’exécution d’une opération et en général renvoie un message qui correspond au résultat de l’opération.

105

2-Sémantique Les diagrammes de séquence : permettent de représenter des collaborations entre objets selon un point de vue temporel : on s’occupe de la chronologie des envois de messages (durée et instant). on n'y décrit pas le contexte ou l'état des objets : la représentation se concentre sur l'expression des interactions servent à illustrer un cas d'utilisation. Représentent les aspects dynamiques d’un système. Représentation Générale : Objet 2 : classe de l’objet

Objet 1 Annotations While Y loop

Evt 1

Objet 3

[x] Opération 1

: classe de l’objet

Opération 2 (paramètres)

End loop

[non x] opération 3

106

3-Concepts de base Remarques : Les objets étudiés sont placés sur la première ligne Tout objet a une ligne de vie : une barre verticale en pointillée L’axe temps, dans chaque diagramme, est représenté (implicitement) de haut vers le bas L'ordre d'envoi d'un message est déterminé par sa position sur l'axe vertical du diagramme Les messages sont représentés par des flèches orientées : émetteur – destinataire. La disposition des objets sur l'axe horizontal n'a pas de conséquence pour la sémantique du diagramme. Les branchements conditionnels sont indiqués par un pseudocode ou par [ ] On peut aussi placer en pseudo –code les boucles d’itération. 107

Exemple Appelant

Ligne Téléphonique décrocher

Appelé

tonalité Numérotation Indication de sonnerie Sonnerie

décroche allô

108

4- Les activations et envois de messages

Une période d’activité correspond au temps pendant lequel un objet effectue une action. Un Objet

Activation Durée d’activation

On distingue trois grandes catégories d’envois de message 1- Flot de contrôle à plat : est utilisé pour indiquer la progression vers la prochaine étape d’une séquence

109

Envois de messages Objet émetteur

Objet destinataire

Flot de contrôle à plat

2- Appel de procédure ou flot de contrôle emboîté : la séquence emboîtées doit se terminer pour que la séquence englobante reprenne le contrôle A

B

C

procédure

B récupère le contrôle après que C a fini sa tâche

une sous-procédure

A récupère le contrôle après que B a fini sa tâche

110

envois de messages 3- Retour d’un appel de procédure : le retour de message est explicite à la fin de l’exécution d’une sous-procédure et le retour éventuel de paramètres. A

B

retour explicite

Dans un DSE, deux types de messages peuvent être distingués Message synchrone : dans ce cas l’émetteur reste en attente de la réponse à son message. La flèche standard symbolise ce type de message. Le message retour peut ne peut être représenté, il est en fait inclus dans la fin d’exécution de l’opération déclenchée dans l’objet destinataire du message

111

5- Message synchrone et asynchrone -

Message asynchrone : dans ce cas, l’émetteur n’attend pas la réponse à son message, il poursuit l’éxecution de ses opérations. C’est la demi-flèche qui symbolise ce type de message. A

B

Message synchrone

Message asynchrone

Un objet peut également s’envoyer un message. Cette situation se représente par une flèche qui boucle sur la Un Objet ligne de vie de l’objet. Message réflexif

112

6-Complément sur le DSE Création et destruction d’objet Si un objet est crée au cours de l’exécution d’un scénario, celui-ci n’apparaît qu’au moment où il est créé. Si l’objet est détruit dans un scénario, la destruction se présente par X. Objet 1 Objet 2

113

6-Complément sur le DSE Contrainte temporelle Des contraintes de chronologie entre les messages peuvent être spécifiés. De plus lorsque l’émission d’un message a besoin d’une certaine durée, il se représente sous la forme d’un trait oblique.

objet1:classe1

Objet2 : classe2

Un message

114

6-Complément sur le DSE Lorsque le diagramme de séquence est utilisé pour représenter un sous-ensemble du logiciel à réaliser, il est possible d’indiquer le pseudo-code exécuté par un objet pendant le déroulement d’une opération. Le diagramme de séquence est dit diagramme de séquence système quand il met en jeu acteurs et système. Le système reste une boîte noire (voir exemple (Nouvelle entrée).

Système

: Magasinier nouvelleEntrée(prod,qté)

vérifier_référence(prod) entréeEnregistrée entréeRefusée

si référence(prod) alors sinon finsi

115

7- Exemple : Diagramme de séquence retour – club vidéo F.Gestion des prêts

: Adhérent retour de cassettes(adh_id)

Cassette

Ens. Statistiques

Emprunt

afficher ("numéro cassette") Pour chaque cassette rendue afficher(mnt saisie(cass_id)

vérifier_réservation(adh_id)

réservé_pour(adh_id)

^(existe) ^(confirme) si confirme alors date_emprunt_et_tarif calcul(date_e,tarif_j)

calculer_prix_à_payer() stat:=créer (cass_id, adh_id,ma_boutiq, durée)

Statistique

[non_nul(stat)]ajouter(stat) supprimer()

disponible(ma_boutiq, aujourd'hui) finsi

fin_saisie mt:=calculer_prix_total() afficher(mt)

116

MOO (UML) Chapitre VI: Diagramme d’états transitions

Responsable : Achraf MTIBAA

117

Chapitre 7- Diagramme d’états transitions (DET) Les objets d’une classe ne sont pas figés : Ils peuvent évoluer et changer d’états au cours de leur CV. CV : cycle de vie = durée de vie : depuis sa création jusqu’à sa suppression Un DET d’une classe est une description des évolutions possibles de ses objets donnant : la liste des états que peut prendre l’objet durant son CV ; les événements déclenchant les changements d’états; les éventuelles conditions qu’il doit vérifier avant de changer d’états et les opérations qui le font passer d'un état à un autre. Un DET est une description des changements d'états d'un objet (ou d'un composant) : en réponse aux interactions avec d'autres objets/composants ou avec des acteurs. 118

1 Etat-transition et événement

L’état d’un objet est défini, à un instant donné, par l’ensemble des valeurs de ses propriétés. Seuls, certains états caractéristiques du domaine étudié sont considérés. Le passage d’un état à un autre état s’appelle transition Un événement est un fait survenu qui déclenche une transition. 119

Etat-transition et événement Un objet reste dans un état pendant une certaine durée. La durée d’un état correspond au temps qui s’écoule entre le début d’un état déclenché par une transition i et à la fin de l’état déclenché par la transition i+1. Une condition, appelée garde, peut être associée à une transition. Le formalisme de représentation d’état-transition est le suivant :

Etat i

Evt([Att]) [Condition(s)]/Action

Etat j 120

Etat d’un objet Un état : se caractérise par sa durée et sa stabilité, est une conjonction instantanée des valeurs des caractéristiques d'un objet. Dans un DET, on distingue trois états : - L’état initial :état avant la création de l’objet et - L’état final :état après la destruction de l’objet.

- L’état intermédiaire

Etat intermédiaire

121

2- Action et activité Une action est une opération instantanée qui ne peut pas être interrompue; elle est associée à une transition. Une activité est une opération d’une certaine durée qui peut être interrompue, elle est associée à un état d’un objet. Etat 1 do/ activité 1

transition [condition]/action

Etat 2 entry/ activité 2

122

3- Émission d’événement Après exécution d’une opération déclenchée par l’arrivée d’un événement, un nouvel résultat peut être émis vers un objet cible. Le formalisme de représentation de l’émission d’un événement est le suivant : Etat 1 do/ activité 1

transition [condition]/action ^cible.événement

Etat 2 entry/ activité 2

123

4-Représentation du diagramme étattransition d’un objet L’enchaînement de tous les états caractéristiques d’un objet constitue le digramme d’états. Un diagramme d’états débute toujours par un état initial et se termine par un ou plusieurs états finaux sauf dans le cas où le diagramme d’états représente une boucle. A un événement peut être associé un message composé d’attributs. 124

Exemple paiement Client prospect

passer 1ere commande

Client actif

Client douteux non paiement

limite financière dépassée Client en contentieux

Client inactif

une année sans commande

Client supprimé

Fin du contentieux

125

5- Super-Etat (ou généralisation d’états) état composite Dans le cas où une succession d’états peut se répéter plusieurs fois dans un même diagramme, il est possible de considérer cette succession d’états comme un super-état qui ne sera décrit qu’une seule fois dans le détail et utilisé dans sa globalité plusieurs fois. Un état composite est décomposé en sous-états, chaque sous-état peut également être un composite.

Super-état état 1

état 2 état 3

126

6- Exemple ordre de récrutement d'un personnel [date prévisionnelle > date du jour] crée()

En prévision d'arrivée

prise en fonction

En activité do/ renseigner la date d'arrivée à l'agence

départ de l'agence

Parti do/ renseigner la date de départ de la personne

127

Chapitre VII:

Diagrammes d’activités

Enseignant responsable : Achraf Mtibaa

Introduction Un diagramme d’activités (DA) représente le flot d’une activité à l’autre. Les activités : sont des opérations non atomiques. Elles finissent par exécuter une action composée de calculs atomiques qui aboutissent à un changement de l’état du système ou au retour d’une valeur.

129

Introduction Le DA est une variante du DET : Les DA utilisent beaucoup d’éléments du DET. Dans le DET, les états et les transitions sont mis en avant alors que dans le DA se sont les activités et les transitions qui sont mises en avant. Un DA correspond à un diagramme d’états vu sous forme « procédurale » avec une mise en évidence des actions/activités (d’où son nom).

130

Introduction Un diagramme d’activités peut être rattaché à un CU, à la réalisation d’une opération, ou à un processus impliquant l’utilisation d’un ou de plusieurs objets. 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 (faisant intervenir plusieurs objets, créant ou modifiant divers objets, …). Une activité : plusieurs opérations DA : représente l’enchaînement des différentes opérations

La fin d’une opération engendre le début d’une autre 131

Les états d’action (et d’activités) Un état d’action modélise une étape dans l’exécution d’un algorithme ou d’un flot. C’est un état simplifié dans lequel figure une action d’entrée et duquel part au moins une transition automatique vers un autre état, déclenchée par la fin de l’action. Etudier devis

Index = recherche(e)+7

Exemples d’états d’action 132

Les transitions Une transition peut être automatique ou gardée. Une transition automatique est : franchie quand l’activité précédente est finie. Une transition gardée est franchie : quand l’activité précédente est finie et si la condition est vérifiée. Activité

Autre Activité

Transitions automatiques

133

Les transitions Demande dossier Recevoir dossier

Compléter dossier Enregistrer Transitions automatiques

134

Les transitions Transitions gardées

Examen candidature

/i=0 Afficher(i)

[rejetée]

[i