Unified Modeling Language Langage unifi pour la modlisation

  • Slides: 93
Download presentation
Unified Modeling Language Langage unifié pour la modélisation objet

Unified Modeling Language Langage unifié pour la modélisation objet

Historique Standardisation par l’OMG 1997, Soumission à l’OMG UML 2. 0 UML 1. 0

Historique Standardisation par l’OMG 1997, Soumission à l’OMG UML 2. 0 UML 1. 0 Livres: Guide de l’utilisateur Manuel de référence Guide du processus Spécification disponible sur internet OOPSLA’ 96 OOPSLA’ 95 UML 0. 9 Méthode unifiée 0. 8 Booch’ 93 OMT-2 Autres méthodes UML Booch’ 91 OMT-1 Rumbaugh’ 91 OOSE Partenaires Jacobson’ 92 Rational

Principales influences r Booch - catégories et sous-systèmes r Embley - classes singletons et

Principales influences r Booch - catégories et sous-systèmes r Embley - classes singletons et objets composites r Fusion - description des opérations, numérotation des messages r Gamma - frameworks, patterns et notes r Harel - automates (statecharts) r Jacobson - cas d’utilisation (use cases) r Meyer - pré et post conditions r Odell - classification dynamique, éclairage sur les événements r OMT - associations r Shlear-Mellor - cycle de vie des objets r Wirfs-Brock - responsabilités (CRC)

Objectifs d’UML r Proposer un langage visuel de modélisation Ø Utilisable par toutes les

Objectifs d’UML r Proposer un langage visuel de modélisation Ø Utilisable par toutes les méthodes Ø Adapté à toutes les phases du développement Ø Compatible avec toutes les techniques de réalisation r Proposer des mécanismes d’extension et de spécialisation pour r r pouvoir étendre les concepts de base Être indépendant des langages particuliers de programmation Proposer une base formelle pour comprendre le langage de modélisation Encourager l’application des outils OO Supporter les concepts de développement de haut-niveau tels que les frameworks, les patterns et les composants Intégrer les résultats de la pratique

Diagrammes Cas d’utilisation Classes Déploiement / Composants Activités Diagrammes Collaboration Etats Transitions Séquence UML

Diagrammes Cas d’utilisation Classes Déploiement / Composants Activités Diagrammes Collaboration Etats Transitions Séquence UML Objets

Processus d'ingénierie sous-jacent Modèle des cas d’utilisation spécialisé par Modèle réalisé par d’Analyse Modèle

Processus d'ingénierie sous-jacent Modèle des cas d’utilisation spécialisé par Modèle réalisé par d’Analyse Modèle de Conception distribué par réalisé par Modèle de Déploiement Modèle de Réalisation vérifié par Modèle de Test

Relations entre diagrammes et étapes du processus Découverte des besoins : r Diagramme de

Relations entre diagrammes et étapes du processus Découverte des besoins : r Diagramme de cas d’utilisation: décrit les fonctions du système selon le point de vue de ses utilisateurs futurs r Diagramme de séquence: représentation des interactions temporelles entre objets dans la réalisation d'une interaction homme-système Analyse : r Diagramme de classes : structure des données du système définie comme un ensemble de relations entre classes r Diagramme d’objets : illustration des objets et de leurs relations r Diagramme de collaboration : représentation des interactions entre objets r Diagramme d’états-transitions : représentation du comportement des objets d'une classe en termes d’états et de transitions d'états r Diagramme d’activités : structure d'une opération en actions 7

Relations entre diagrammes et étapes du processus Conception : r Diagramme de séquence: représentation

Relations entre diagrammes et étapes du processus Conception : r Diagramme de séquence: représentation des interactions temporelles entre objets dans la réalisation d'une opération Diagramme de déploiement : description du déploiement des composants sur les dispositifs matériels r Diagrammes de composants : architecture des composants physiques d'une application

Diagrammes de classes et diagrammes d'objets

Diagrammes de classes et diagrammes d'objets

Diagrammes de classes et d'objets Un diagramme de classes représente la structure du système

Diagrammes de classes et d'objets Un diagramme de classes représente la structure du système en termes de classes et de relations entre ces classes; Un diagramme d'objets illustre les objets et leurs relations * Classe Instance de Relation Diagramme de classes * Relie * Objet Instance de Lien * Diagramme d’objets 10

Classe Une classe est une description abstraite d’un ensemble d’objets ayant des propriétés similaires,

Classe Une classe est une description abstraite d’un ensemble d’objets ayant des propriétés similaires, un comportement commun, des relations communes avec d’autres objets et des sémantiques communes attributs Exemples: Nom de classe opérations Personne Poste de travail Nom Prénom Date naissance Département Age() 11

Attributs de classe Un attribut définit une propriété commune aux objets d’une classe Nom

Attributs de classe Un attribut définit une propriété commune aux objets d’une classe Nom d’attribut: type = valeur initiale Personne nom : string prénom : string date_naiss : date Film titre : string réalisateur : string date_production : date_sortie : date Personne Id_pers : integer nom : string prénom : string date_naiss : date Ø Les noms d'attributs d' une classe sont uniques Ø Chaque objet, instance d'une classe a sa propre identité indépendante des valeurs de ses attributs. L'identification d'un objet est donc facultative 12

Opérations de classe Une opération définit une fonction appliquée à des objets d’une classe

Opérations de classe Une opération définit une fonction appliquée à des objets d’une classe Nom d’opération( liste_arguments) : type_retour Personne nom : string adresse : string date_naiss : date age () change_adresse () Objet Géométrique couleur : string position : integer déplacer (deltat: Vecteur) sélectionner (p: Point): Booléen La syntaxe de description d'une opération est la suivante: Nom_opération (Nom_Argument : Type_Argument = Valeur_Par_Défaut, …): Type_Retourné

Attributs dérivés Les attributs dérivés ont des valeurs calculées à partir de celles d’autres

Attributs dérivés Les attributs dérivés ont des valeurs calculées à partir de celles d’autres propriétés Exemple: Rectangle Longueur Largeur /Surface Analyse Rectangle En conception Longueur Largeur Surface( )

Association Une association représente une classe de relations structurelles entre classes d’objets Classe A

Association Une association représente une classe de relations structurelles entre classes d’objets Classe A Classe B Société Personne Voiture Personne 15

Classe association r Une association peut être représentée ( réifiée) par une classe appelée

Classe association r Une association peut être représentée ( réifiée) par une classe appelée classe associative ou classe-association. Utile par exemple, lorsuqe l'association a des attributs ou bien qu'on souhaite lui attacher des opérations. La notation utilise une ligne pointillée pour attacher une classe à une association A B C attributs D opérations() 16

Association n-aire Salle Étudiant Enseignant Cours Début Fin L' association ternaire entre salle, étudiant

Association n-aire Salle Étudiant Enseignant Cours Début Fin L' association ternaire entre salle, étudiant et enseignant est réifiée comme une classe cours ayant deux attributs, Début et Fin 17

Nommage des associations r Le nom d’une association apparaît en Italique au milieu de

Nommage des associations r Le nom d’une association apparaît en Italique au milieu de la ligne qui symbolise l’association r L’usage recommande de nommer les associations par une forme verbale, soit active, soit passive A Nom B Personne Travaille pour > Société Personne Est employée par > Société 18

Nommage des rôles r Chaque association binaire possède 2 rôles r Le rôle décrit

Nommage des rôles r Chaque association binaire possède 2 rôles r Le rôle décrit comment une classe intervient dans une association r Le nommage des associations et le nommage des rôles ne sont pas exclusifs l’un de l’autre Personne Employé Société Employeur 19

Nommage des rôles r Le nommage des rôles prend tout son intérêt lorsque il

Nommage des rôles r Le nommage des rôles prend tout son intérêt lorsque il y a plusieurs associations entre les deux mêmes classes. Pilote Avion Personne Passagers r La présence d’un grand nombre d’associations entre 2 classes est suspecte. Est souvent le signe d’une mauvaise modélisation Exemple : Personne Conduire Démarrer Laver Arrêter Voiture 20

* Association réflexive Personne Parents 2 * Enfants Le nommage des rôles est indispensable

* Association réflexive Personne Parents 2 * Enfants Le nommage des rôles est indispensable à la clarté du diagramme 21

Multiplicité des associations r La multiplicité est une information portée par le rôle, qui

Multiplicité des associations r La multiplicité est une information portée par le rôle, qui quantifie le nombre de fois où un objet participe à une instance de relation 1 Un et un seul 0. . 1 Zéro ou un M. . N De M à N (entiers naturels) * De zéro à plusieurs 0. . * De zéro à plusieurs 1. . * De un à plusieurs 22

Multiplicité des associations r Les valeurs de multiplicité expriment des contraintes à un instant

Multiplicité des associations r Les valeurs de multiplicité expriment des contraintes à un instant donné Personne Employé 0. . * 1 Employeur Société Chaque personne travaille pour une seule société, chaque société emploie zéro ou plusieurs personnes 23

Contraintes sur les associations r Les contraintes sont représentées sur les diagrammes par des

Contraintes sur les associations r Les contraintes sont représentées sur les diagrammes par des expressions placées entre accolades r La contrainte {ordonnée} placée sur le rôle définit une relation d’ordre sur les objets de la collection Personne 1 0. . * Compte {Ordonnée} 24

Contraintes sur les associations r La contrainte {Sous-ensemble} indique qu’une collection est incluse dans

Contraintes sur les associations r La contrainte {Sous-ensemble} indique qu’une collection est incluse dans une autre collection Classe Parents d’élèves {Sous-ensemble} Délégués Personne * * r La contrainte {Ou-exclusif} précise que, pour un objet donné, une seule association parmi un groupe d’associations est valide Université Enseignants Personne {Ou-exclusif} Étudiants 25

Restriction des associations r La restriction (qualification pour UML) d’une association consiste à sélectionner

Restriction des associations r La restriction (qualification pour UML) d’une association consiste à sélectionner un sous-ensemble d’objets parmi l’ensemble des objets qui participent à une association r Réalisée au moyen d’une clé, ensemble d’attributs particuliers et utilisé avec un objet de la classe de départ. La clé appartient à l’association et non aux classes associées r Chaque instance de la classe A accompagnée de la valeur de la clé, identifie un sous-ensemble des instances de B qui participent à l’association A Clé Université N°Etudiant B Etudiant 26

Restriction des associations : B r Une restriction réduit le nombre d’instances qui participent

Restriction des associations : B r Une restriction réduit le nombre d’instances qui participent à une association : B : B Sans clé : B Avec clé : A r La restriction peut être opérée en combinant les valeurs des différents attributs qui forment la Échiquier clé Ligne Colonne Case 1 27

Agrégation Une agrégation représente une association non symétrique dans laquelle une des extrémités joue

Agrégation Une agrégation représente une association non symétrique dans laquelle une des extrémités joue un rôle prédominant par rapport à l’autre r Les propriétés suivantes suggèrent une agrégation: Ø une classe B 'fait partie' d’une classe A Ø les valeurs d’attributs de la classe B se propagent dans les valeurs d’attributs de la classe A Ø une action sur la classe A implique une action sur une la classe B; Ø les objets de la classe B sont subordonnés aux objets de la classe A A Une agrégation B 28

Agrégation r L’agrégation peut être multiple, comme l’association Personne 1. . * Propriétaire Immeuble

Agrégation r L’agrégation peut être multiple, comme l’association Personne 1. . * Propriétaire Immeuble 0. . * En tant que 'propriétaire' une personne est un agrégat d'immeubles! Les immeubles dont elle est propriétaire font 'partie de' la description d'une personne 29

Composition La composition est une forme particulière d'agrégation Le composant est physiquement contenu dans

Composition La composition est une forme particulière d'agrégation Le composant est physiquement contenu dans l’agrégat r 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 r La valeur 0 du côté du composant correspond à un attribut non renseigné Agrégat 0. . 1 Composant *

Composition r La composition peut être modélisée au moyen d' attributs r La notation

Composition r La composition peut être modélisée au moyen d' attributs r La notation par composition doit être retenue lorsqu’un attribut participe à d’autres relations dans le modèle Voiture Moteur Û Voiture Cylindre Moteur . . . Carburateur 31

Généralisation r Dans le cas des classes, la relation de généralisation signifie est un

Généralisation r Dans le cas des classes, la relation de généralisation signifie est un ou est une sorte de X Animal A Chat Chien B C Raton laveur 32

Généralisation multiple Véhicule Tapis Terrestre Aérien Tapis volant 33

Généralisation multiple Véhicule Tapis Terrestre Aérien Tapis volant 33

Généralisation r Une classe peut être spécialisée selon plusieurs critères r Différentes contraintes peuvent

Généralisation r Une classe peut être spécialisée selon plusieurs critères r Différentes contraintes peuvent être appliquées aux relations de généralisation r Par défaut, la généralisation symbolise une décomposition exclusive Véhicule Milieu Motorisation A voile A moteur Terrestre Marin 34

Contraintes de généralisation r La contrainte {Disjoint} ou {Exclusif} indique la participation exclusive d'un

Contraintes de généralisation r La contrainte {Disjoint} ou {Exclusif} indique la participation exclusive d'un objet à l'une des collections spécialisées Champignon {Exclusif} Agaricus Pied bleu Boletus Bolet de loup 35

Contraintes de généralisation r La contrainte {Chevauchement} ou {Inclusif} indique qu'un objet peut appartenir

Contraintes de généralisation r La contrainte {Chevauchement} ou {Inclusif} indique qu'un objet peut appartenir à plusieurs collections spécialisées. Véhicule A voile A moteur Terrestre Marin {Inclusif} Mobylette 36

Contraintes de généralisation r La contrainte {Complète} indique la généralisation est terminée et qu'il

Contraintes de généralisation r La contrainte {Complète} indique la généralisation est terminée et qu'il n'est pas possible de rajouter des sous-classes. Inversement, la contrainte {Incomplète} désigne une généralisation extensible Cours {Incomplète} Maths Français Géographie 37

Diagramme d'objets r Permet de visualiser la structure du système au niveau des instances

Diagramme d'objets r Permet de visualiser la structure du système au niveau des instances r Facilite la compréhension des structures de données complexes r Trois possibilités de représentation : Nom de l'objet : Classe 38

Diagramme d'objets r On peut faire apparaître des valeurs d'attributs dans un objet r

Diagramme d'objets r On peut faire apparaître des valeurs d'attributs dans un objet r ainsi que les liens entre objets : Voiture Couleur = rouge Voiture 1 1 Moteur : Voiture : Moteur : Roue 1 4 : Roue 39

Liens entre les objets r Les liens instances des associations réflexives peuvent relier un

Liens entre les objets r Les liens instances des associations réflexives peuvent relier un objet à lui-même Collaborateur Personne * Jean-Luc: Personne Patron 1 Pierre: Personne Patron Denis: Personne 40

Liens entre les objets r On peut illustrer les liens d'arité supérieure à 2

Liens entre les objets r On peut illustrer les liens d'arité supérieure à 2 et la muliplicité * Professeur 1. . * Salle 1. . * Etudiant : Professeur : Salle : Etudiant 41

Objet composite r Les objets composés de sous-objets peuvent être visualisés Un composite :

Objet composite r Les objets composés de sous-objets peuvent être visualisés Un composite : Partie r Les objets composites sont instances de classes composites: Ascenseur Fenêtre 1 1 1 Zone de dessin : Fenêtre 2 : Zone de dessin : Ascenseur

Illustration de structures complexes r Les diagrammes d'objets facilitent la compréhension des diagrammes de

Illustration de structures complexes r Les diagrammes d'objets facilitent la compréhension des diagrammes de classes Passagers * Passagers Personne Bus : Bus Conducteur 1 Conducteur : Personne 1 Destination : Personne : Destination 43

Illustration de structures complexes Prénom Personne Parent 1 Mère/Père Enfant 0. . 1 Jonathan

Illustration de structures complexes Prénom Personne Parent 1 Mère/Père Enfant 0. . 1 Jonathan Lara Mère Père Anne Mère Père Roxane Mère Pierre-Alain Père

Diagramme des cas d’utilisation

Diagramme des cas d’utilisation

Objectif Un diagramme de cas d’utilisation définit les fonctionnalités du système et les interactions

Objectif Un diagramme de cas d’utilisation définit les fonctionnalités du système et les interactions entre le système et les acteurs du monde extérieur qui utilisent ces fonctionnalités Un diagramme de cas d’utilisation contient : r Des acteurs r Un ensemble de cas d’utilisation et r Des associations entre les acteurs et les cas d’utilisation

Cas d’utilisation Un cas d’utilisation permet de modéliser le comportement d’un système du point

Cas d’utilisation Un cas d’utilisation permet de modéliser le comportement d’un système du point de vue d’un acteur externe. Il traduit comment un acteur externe souhaite utiliser le système Notation : une ellipse Exemple : dispenser un cours UML Diagramme de cas d’utilisation Concepts de base

Descriptions d’un cas d’utilisation Il existe plusieurs façons de décrire un use case. Description

Descriptions d’un cas d’utilisation Il existe plusieurs façons de décrire un use case. Description textuelle (scénario): Exemple : • Use case : “ Retrait en espèce ” : • Le guichetier saisit le n° de compte du client. • L’application valide le compte auprès du système central. • L’application demande le type d’opération au guichetier. • Le guichetier sélectionne un retrait d’espèces de 200 F. • Le système “ guichetier ” interroge le système central pour s’assurer que le compte est suffisamment approvisionné. • Le système central effectue le débit du compte. • Le système notifie au guichetier qu’il peut délivrer le montant demandé UML Diagramme de cas d’utilisation

Descriptions d’un cas d’utilisation • Diagramme de séquence Saisie compte Demande type d’opération Retrait

Descriptions d’un cas d’utilisation • Diagramme de séquence Saisie compte Demande type d’opération Retrait liquide (220 F) Validation compte Vérification solde compte Autorisation délivrance t Guichetier Système guichet • Diagramme de collaboration Guichetier (3) Demande type d’opération (1) Saisie compte (4) Retrait espèces (200 F) (7) Autorisation délivrance Débit compte Système central (6) Débit compte Système Central (5) vérification solde compte (2) Validation compte Système guichetier UML Diagramme de cas d’utilisation Concept de base

Acteur Un acteur est une entité externe au système qui interagit avec une partie

Acteur Un acteur est une entité externe au système qui interagit avec une partie de celui-ci à travers des cas d’utilisation Notation : Acteur Exemple: Une personne physique ou morale, un autre système On distingue : les acteurs primaires : ceux sont les utilisateurs du système les acteurs secondaires : ceux qui contribuent au fonctionnement du le système UML Diagramme de cas d’utilisation Concept de base

Relations entre acteurs et cas d’utilisation : communique Dénote la participation d’un acteur à

Relations entre acteurs et cas d’utilisation : communique Dénote la participation d’un acteur à un cas d’utilisation Seule relation possible entre un acteur et un cas d ’utilisation Notation : utilisation du stéréotype <<communique>> Prendre. Rendez. Vous commercial UML Diagramme de cas d’utilisation Relation entre les diagramme de cas d’utilisation

Relations entre cas d’utilisation étend • B est une partie alternative, optionnelle ou exceptionnelle

Relations entre cas d’utilisation étend • B est une partie alternative, optionnelle ou exceptionnelle de A • Une instance de A engendre une instance de B et l’exécute sous certaines conditions. B sait où s’insérer dans A • B connaît A et non l’inverse. B dépend de A • B n’existe pas tout seul et A existe sans B Notation : Utilisation du stéréotype <<etend>> A <<etend>> prise_RDV UML Diagramme de cas d’utilisation B deplacer. RDV Relation entre les diagramme de cas d’utilisation

Relations entre cas d’utilisation utilise • B est sous-ensemble commun à plusieurs cas d’utilisation

Relations entre cas d’utilisation utilise • B est sous-ensemble commun à plusieurs cas d’utilisation • Une instance de A va engendrer une instance de B et l’exécuter • A connaît B et B ne connaît pas A • B n’existe pas tout seul et A n’existe pas sans B Notation : • utilisation du stéréotype <<utilise>> A UML préparation Diagramme de cas d’utilisation RDV B consul Info Relation entre Client les diagramme de cas d’utilisation

Exemple Un exemple d’un diagramme de cas d’utilisation <<Communique>> Ingénieur commercial <<Communique>> Dépôt Gérer

Exemple Un exemple d’un diagramme de cas d’utilisation <<Communique>> Ingénieur commercial <<Communique>> Dépôt Gérer commande <<Utilise>> <<Etend>> Livrer marchandise Facturer Gérer litige Expert qualité Contrôleur marchandise UML Diagramme de cas d’utilisation

Diagrammes de collaboration d'objets

Diagrammes de collaboration d'objets

Diagramme de collaboration Il décrit le comportement collectif d'un ensemble d'objets dans le cadre

Diagramme de collaboration Il décrit le comportement collectif d'un ensemble d'objets dans le cadre d'une opération en illustrant leurs interactions par des envois de messages Collaboration * Représente Opération 0. . 1 * Modèle : Booléen Résultat Ordre Contrainte Message Interaction Objet

Envoi de message dans un diagramme de collaboration r Une interaction est réalisée par

Envoi de message dans un diagramme de collaboration r Une interaction est réalisée par un groupe d'objets qui collaborent en échangeant des messages r Extension des diagrammes d'objets r Un message est représenté par une flèche labellée par le nom de l'opération Ouvrir Message : Classe. A : Classe. B : Cabine : Porte 57

Le temps dans un diagramme de collaboration r Le temps peut être introduit par

Le temps dans un diagramme de collaboration r Le temps peut être introduit par le biais de la numérotation des envois de messages (ordre) : Ascenseur 1: Monter : Cabine 3: Fermer 2: Mettre en marche : Porte : Cabine 58

Contraintes associées aux envois de messages r Les objets et les liens créés ou

Contraintes associées aux envois de messages r Les objets et les liens créés ou détruits au cours d'une interaction peuvent respectivement porter les contraintes {nouveau} ou {détruit} r Les objets créés, puis détruits au sein de la même interaction, sont associés à la contrainte {transitoire} Créer A B {nouveau}) Maj Détruire D {détruit} C {transitoire} 59

Itération dans un diagramme de collaboration r La notation permet d'introduire un envoi répétitif

Itération dans un diagramme de collaboration r La notation permet d'introduire un envoi répétitif de messages (événtuellement en parallèle) sur une collection d'objets d'une classe Instituteur 1 Élève * : Instituteur *[tous] : Debout : Élève * [tous] : Debout : Élève 60

Introduction d'un acteur extérieur dans un diagramme de collaboration r La notation permet de

Introduction d'un acteur extérieur dans un diagramme de collaboration r La notation permet de faire figurer un acteur dans un diagramme de collaboration afin de représenter le déclenchement des interactions par un élément externe au système 1: Appeler : Ascenseur : Personne 2: Selectionner l'étage : Cabine

Objets actifs r Les objets qui contôlent le flot sont dits actifs. Un objet

Objets actifs r Les objets qui contôlent le flot sont dits actifs. Un objet actif peut activer un objet passif en lui envoyant un message. Une fois le message traité, le flot de contrôle est restitué à l'objet actif 2: Écrire : Imprimante : Traitement de texte 1: Lire : Scanner 62

Envois conditionnels de messages r L'envoi d'un message peut être assorti d'une condition [condition]

Envois conditionnels de messages r L'envoi d'un message peut être assorti d'une condition [condition] : Message A B [poids>=300] : Sonner : Cabine : Alarme * || [âge>=18] : Voter : Mairie : Personne 63

Envoi de message avec résultat r Le résultat d’un message peut être visualisé sous

Envoi de message avec résultat r Le résultat d’un message peut être visualisé sous la forme d'une liste de valeurs retournées par le message. Message A B valeurs retournées Afficher âge : Université : Etudiant âge 64

Exemple Demande d’une boisson disponible avec introduction du montant exact de la boisson :

Exemple Demande d’une boisson disponible avec introduction du montant exact de la boisson : Utilisateur 1: Introduire 2: boisson : = Choisir : Pièce Café : Boisson 1. 1: Comptabiliser(valeur) 2. 3: Fin. Opération 1. 1. 1: Afficher Somme. Versée : Gestionnaire de pièces 2. 1: réponse: = Vérifier. Prix(prix) 2. 2: réponse: = Disponibilité 2. 2. 1: gobelet : Gobelet

Diagrammes d'états-transitions

Diagrammes d'états-transitions

Diagramme d'états-transitions r Décrit le comportement des objets d'une classe au moyen d'un automate

Diagramme d'états-transitions r Décrit le comportement des objets d'une classe au moyen d'un automate d'états associé à la classe r Le comportement est modélisé dans un graphe dont les nœuds sont les états possibles des objets de la classe et les arcs sont les transitions d'état à état. Chaque transition résulte de l'exécution d'une action et représente la réaction des objets aux événements qui surviennent r Les objets qui n'ont pas un comportement réactif très important peuvent être considérés comme des objets qui restent toujours dans le même état: leurs classes ne possèdent alors pas d'automate 1 Classe 0. . 1 Automate 67

La notion d'état r Un état est un étape dans le cycle de vie

La notion d'état r Un état est un étape dans le cycle de vie d’un objet durant lequel l’objet satisfait certaines conditions, réalise certaines actions ou attend certains évènements r Chaque objet est à un moment donné, dans un état particulier r Chaque état possède un nom qui l'identifie r Un état est stable et durable Société Personne 0. . 1 1. . * Age A la retraite En activité Au chômage

Notion d'état r Un état est l'image de la conjonction instantanée des valeurs des

Notion d'état r Un état est l'image de la conjonction instantanée des valeurs des attributs de l'objet, et de la présence ou non de ses liens à d'autres objets Exemple: L'état d'une personne résulte de la conjonction suivante : Ø âge de la personne, Ø présence d'un lien vers une société Laurent Au chômage Age: 30 ans : Société Bruno Age: 40 ans En activité André Age: 75 ans A la retraite 69

Notion d'état r Chaque diagramme d’états-transition contient un état initial r Pour un niveau

Notion d'état r Chaque diagramme d’états-transition contient un état initial r Pour un niveau hiérarchique donné, il y a un et un seul état initial mais il est possible qu'il y ait plusieurs états finaux qui correspondent chacun à une fin de vie d'objet différente r Il est également possible de n'avoir aucun état final (par exemple, un système qui ne s'arrête jamais) État intermédiaire État initial État final 70

Notion de transition r Lorsque des événements se produisent, les objets changent d'état en

Notion de transition r Lorsque des événements se produisent, les objets changent d'état en respectant les règles décrites dans l'automate associé à leur classe r Les diagrammes d'états-transitions sont des graphes dirigés r Les états sont reliés par des connexions unidirectionnelles, appelées transitions Etat A Disponible Etat B Emprunté Classe : Exemplaire Acheté Réservé Classe : Article

Notion d'événement r Un événement correspond à l'occurrence d'une situation donnée dans le domaine

Notion d'événement r Un événement correspond à l'occurrence d'une situation donnée dans le domaine du problème r Un événement est par nature une information instantanée qui doit être traitée sans plus attendre. r L'événement est le déclencheur de la transition d' état à état Un objet, placé dans un état donné, attend l'occurrence d'un événement pour passer dans un autre état Etat A Événement Emprunt Etat B Disponible Emprunté Classe : Exemplaire 72

Notion d'événément r La syntaxe générale d'un événement est la suivante: Nom de l’événement

Notion d'événément r La syntaxe générale d'un événement est la suivante: Nom de l’événement (Nom de paramètre : Type, …) r La spécification complète d'un événement comprend: Ø Ø Ø le nom de l'événement la liste des paramètres l'objet expéditeur l'objet destinataire sa description En activité Perte d'emploi Plus de 60 ans A la retraite Embauche Au chômage Plus de 60 ans 73

Communication entre objets par événement r La communication par événement est de type asynchrone,

Communication entre objets par événement r La communication par événement est de type asynchrone, atomique, et unidirectionnelle. Un objet peut envoyer un événement à un autre objet qui doit toujours être à même de l'interpréter Un événement Un objet Un autre objet r Les besoins de communication par événements synchrones ou les échanges bidirectionnels peuvent se représenter au moyen de deux échanges asynchrones de directions opposées Une question Un objet Un autre objet La réponse 74

Communication entre objets par événement r L'objet émetteur de la requête se met en

Communication entre objets par événement r L'objet émetteur de la requête se met en attente de la réponse de l’objet récepteur de la requête A Question posée à l’objet X Attente réponse Réponse reçue de la part de l’objet X B 75

Notion de garde r Une garde est une condition booléenne qui permet ou non

Notion de garde r Une garde est une condition booléenne qui permet ou non le déclenchement d'une transition lors de l'occurrence d'un événement A Événement [Condition] B r Les gardes permettent de maintenir l'aspect déterministe d'un automate d'états finis. Lorsque l'événement a lieu, les gardes qui doivent être mutuellement exclusives - sont évaluées et une transition est validée puis déclenchée Exemple : Livre Retour [bon état] Disponible Emprunté Retour [mauvais état] En réparation 76

Notions d'opération et d'action r Le lien entre les opérations définies dans la spécification

Notions d'opération et d'action r Le lien entre les opérations définies dans la spécification d'une classe et les événements apparaissant dans le diagramme d'états-transitions de cette classe est assuré par le biais des actions et des activités r Chaque transition peut avoir une action à exécuter lorsque la transition est déclenchée par un événement r L'action est considérée comme instantanée et atomique A Événement / Action B r L'action correspond à une des opérations déclarées dans la classe de l'objet destinataire de l'événement. L'action a accès aux paramètres de l'événement, ainsi qu'aux attributs de l'objet 77

Actions dans un état r Les états peuvent également contenir des actions; elles sont

Actions dans un état r Les états peuvent également contenir des actions; elles sont exécutées à l'entrée ou à la sortie de l'état ou lors de l'occurrence d'un événement pendant que l'objet est dans l'état : Ø L'action d'entrée (entry: ) est exécutée de manière instantanée et atomique dès l'entrée dans l'état Ø L'action de sortie (exit: ) est exécutée à la sortie de l'état Ø L'action sur événement interne (on: ) est exécutée lors de l'occurrence d'un événement qui ne conduit pas un à un autre état Nom d’un état entry : Action d'entrée on Nom d’un événement : Action exit : Action de sortie 78

Opération, activité r Un événement interne n’entraîne pas l’exécution des actions de sortie et

Opération, activité r Un événement interne n’entraîne pas l’exécution des actions de sortie et d’entrée, contrairement au déclenchement d’une transition réflexive A entry: Action d'entrée on E 1: Action exit: Action de sortie E 1 / Action B entry: Action d'entrée exit: Action de sortie r Les actions correspondent à des opérations dont le temps d'exécution est négligeable. Une opération qui prend du temps correspond à un état plutôt qu'à une action (sic!!)

Opération et activité r Une opération qui prend un temps non négligeable et qui

Opération et activité r Une opération qui prend un temps non négligeable et qui est exécutée pendant que l'objet est dans un état donné est appelée une activité r Le mot-clé do: indique une activité r Contrairement aux actions, les activités peuvent être interrompues à tout moment, dès qu'une transition de sortie de l'état est déclenchée Ø Activité cyclique: elle ne s'arrête que lorsqu'une transition de sortie est déclenchée Ø Activité séquentielle: elle démarre à l'entrée dans l'état Lorsqu'elle parvient à son terme, l'état peut être quitté si une des transitions est franchissable. C'est une transition automatique Etat A Do: Une opération 80

Notion d'activité r Lorsque l'activité se termine, les transitions automatiques, sans événements, mais éventuellement

Notion d'activité r Lorsque l'activité se termine, les transitions automatiques, sans événements, mais éventuellement protégées par des gardes, sont déclenchées A B Do: Activité séquentielle A [X] Do: Activité séquentielle B [ not X ] C 81

Points d’exécution des opérations 6 façons d'associer une opération à une transition: Ø l'action

Points d’exécution des opérations 6 façons d'associer une opération à une transition: Ø l'action associée à la transition d'entrée (Op 1) Ø l'action d'entrée de l'état (Op 2) Ø l'activité dans l'état (Op 3) Ø l'action de sortie de l'état (Op 4) Ø l'action associée aux événements internes (Op 5) Ø l'action associée à la transition de sortie de l'état (Op 6) / Op 1 Un état entry: Op 2 do: Op 3 exit: Op 4 on Un. Evénement: Op 5 / Op 6

Diagramme d’états-transitions du distributeur automatique des boissons Pièces insérées (montant) / régler montant Encaissement

Diagramme d’états-transitions du distributeur automatique des boissons Pièces insérées (montant) / régler montant Encaissement d’argent En attente do : augmenter le montant [article vide] Article sélectionné [montant < prix article] Test d’article do : tester article et calculer la monnaie à rendre [montant = prix article] Distribution do : distribuer article [montant > prix article] Encaissement do : rendre monnaie

Généralisation d’états r Un état peut être décomposé en plusieurs sous-états disjoints; les sous-états

Généralisation d’états r Un état peut être décomposé en plusieurs sous-états disjoints; les sous-états héritent des caractéristiques de leur super-état r Décomposition disjonctive: l'objet doit être dans un seul sous-état à la fois A E 1 E 2 AB B A E 1 B E 2 C AB est un super état dont A et B sont des sous-états Cette généralisation permet de factoriser la transition E 2 C 84

Généralisation d’états r Les transitions d'entrée ne sont pas héritées par tous les états,

Généralisation d’états r Les transitions d'entrée ne sont pas héritées par tous les états, seul un état peut être cible de la transition B B 1 A B 2 L'état B est divisé en deux sous-états B 1 et B 2. La transition d'entrée dans l'état B doit être reportée directement sur un des sous états. 85

Généralisation d’états r Il est préférable de limiter les liens entre niveaux hiérarchiques d'un

Généralisation d’états r Il est préférable de limiter les liens entre niveaux hiérarchiques d'un automate en définissant systématiquement en état initial pour chaque niveau B A B 1 B 2 86

Généralisation d’états Exemple: boîte automatique de transmission passer à M Point mort Marche arrière

Généralisation d’états Exemple: boîte automatique de transmission passer à M Point mort Marche arrière passer à P passer à Avant Marche Avant stop passer à Point mort augmentation vitesse Première augmentation vitesse Troisième Deuxième réduction vitesse La généralisation d'état permet de mettre en facteur les deux transitions 'passer à Avant' et 'passer à Point mort'

Agrégation d’états r L'agrégation d'états est la composition d'un état à partir de plusieurs

Agrégation d’états r L'agrégation d'états est la composition d'un état à partir de plusieurs autres états indépendants r La composition est de type conjonctive ce qui implique l'objet doit être simultanément dans tous les états composant l'agrégation d'états r Forme de parallélisme entre automates S T X U E 1 A Y E 3 Z E 2 E 4[ in Z ] E 1 B 88

Agrégation d’états Exemple: activité d’émission des billets Emission Préparation prêt do : distribuer billets

Agrégation d’états Exemple: activité d’émission des billets Emission Préparation prêt do : distribuer billets pris Accueille do : éjecter carte prise

Conclusion Avantages : r standard en modélisation objet, universellement reconnu. r polyvalent Inconvénients :

Conclusion Avantages : r standard en modélisation objet, universellement reconnu. r polyvalent Inconvénients : r lourdeur (relative) de mise en place au sein de n'importe quel processus d’ingénierie r longueur de l’ apprentissage qui peut être un frein à son utilisation. UML

Références r Livres : l UML en action : Un livre construit autour d’une

Références r Livres : l UML en action : Un livre construit autour d’une étude de cas, qui offre une vision complète d’un processus de développement unifié (par Pascal Roques, Franck Vallée , ISBN 2 -212 -09127 -3 , Editions Eyrolles ) l Modélisation objet avec UML : Très pédagogique et richement illustré. Convient aux débutants, tout comme aux personnes qui connaissent déjà UML. ( par Pierre-Alain Muller , ISBN 2 -212 -08966 -X , Editions Eyrolles ) r Sites web : l http: //www. uml. free. fr : très intéressant et complet.

Références l http: //www. cetus-links. org/ (The CETUS links) : Plus de 15 000

Références l http: //www. cetus-links. org/ (The CETUS links) : Plus de 15 000 références de sites sur l'OO , Exhaustif et bien organisé. l http: //www. stm. tj/objet/ (La boîte à objets) Site francophone qui aborde de nombreux sujets. l http: //www. essaim. univ-mulhouse. fr/uml (site de l'ESSAIM) , propose de nombreuses informations sur UML. l http: //jeffsutherland. org/ (Jeff Sutherland) l http: //www. isg. de/people/marc/Uml. Doc. Collection/UMLDoc. Collection. ht ml Collection de liens (annotés), vers des documents traitant d'UML. l http: //www. krumbach. de/home/jeckle/unified. htm (Jeckle UML publications available online) l http: //www. objectnews. com/ l http: //www. rational. com/uml (Les pages UML de Rational Software)

Références r Groupe de discussions : l l Les groupes de discussion d'UML. FREE.

Références r Groupe de discussions : l l Les groupes de discussion d'UML. FREE. FR ! news: fr. comp. objet news: comp. software-eng