Uml

257
[email protected] https://www.facebook.com/groups/ISP.2011/ UML Unified Modeling Language Réalisé par : Créé le : mercredi 11 mars 2009

description

cours uml avec des études de cas

Transcript of Uml

Page 1: Uml

[email protected]

https://www.facebook.com/groups/ISP.2011/

UML

Unified Modeling Language

Réalisé par :

Créé le : mercredi ‎11 ‎mars ‎2009

Page 2: Uml

UML offre une manière élégante de représenter le systèmeselon différentes vues complémentaires grâce aux diagrammes.Lorsqu'une entreprise désire un logiciel, elle le réalise parfoisen interne, mais le fait plus généralement réaliser par unesociété de services. Dans un cas comme dans l'autre il estnécessaire de définir l'ensemble des fonctionnalités que lelogiciel doit possèder. Le demandeur du logiciel n'a parfois pasde compétences particulières en informatique et exprime doncses souhaits sous forme d'un CdCF (Cahier des ChargesFonctionnelles), c'est-à-dire un document décrivant sous formetextuelle l'ensemble des particularités que le logiciel doitpossèder, les conditions qu'il doit remplir (système(s)d'exploitation visé(s)), les écueils à éviter, ainsi que les délaisimpartis, éventuellement des clauses sur le coût, les langages àutiliser, ...

UML : Introduction

Page 3: Uml

Le CdCF est ainsi distribué à différentes sociétés deservices (dans le cas d'une sous-traitance) sous formed'un appel d'offre, auquel les sociétés vont répondrepar un coût, un délai, ...Lorsqu'une société obtient le marché et qu'elle décide(si elle a le choix) d'opter pour un langage orientéobjet, il lui faut dans un premier temps créer unmodèle (c'est là qu'intervient UML) à fin:

• de présenter au client la façon de laquelle ellecompte développer le logiciel.

• d'accorder tous les acteurs du projet.

UML : Introduction (suite)

Page 4: Uml

UML : Historique

Page 5: Uml

UML (Unified Modeling Language, que l'on peut traduire par"langage de modélisation unifié) est une notation permettantde modéliser un problème de façon standard. Ce langage estné de la fusion de plusieurs méthodes existant auparavant,et est devenu désormais la référence en terme demodélisation objet, à un tel point que sa connaissance estsouvent nécessaire pour obtenir un poste de développeurobjet.

UML n‟est pas une méthode: UML est un langage qui permetde représenter des modèles, mais il ne définit pas leprocessus d'élaboration des modèles. Qualifier UML de"méthode objet" n'est donc pas tout à fait approprié.

UML : Caractéristiques

Page 6: Uml

UML est un support de communication: UML est avant toutun support de communication performant, qui facilite lareprésentation et la compréhension de solutions objet.

UML est basé sur un méta-modèle: UML est un moyend'exprimer des modèles objet en faisant abstraction deleur implémentation, c'est-à-dire que le modèle fourni parUML est valable pour n'importe quel langage deprogrammation. UML est un langage qui s'appuie sur unméta-modèle, un modèle de plus haut niveau qui définit leséléments d'UML (les concepts utilisables) et leursémantique (leur signification et leur mode d'utilisation).

UML : Caractéristiques (suite)

Page 7: Uml

Un diagramme UML est une représentation graphique, quis'intéresse à un aspect précis du modèle. C'est uneperspective du modèle, pas "le modèle".

Chaque type de diagramme UML possède une structure (lestypes des éléments de modélisation qui le composent sontprédéfinis).

Un type de diagramme UML véhicule une sémantique précise(un type de diagramme offre toujours la même vue d'unsystème).

Combinés, les différents types de diagrammes UML offrentune vue complète des aspects statiques et dynamiques d'unsystème.

Par extension et abus de langage, un diagramme UML estaussi un modèle (un diagramme modélise un aspect du modèleglobal).

UML : Diagrammes (définition)

Page 8: Uml

Il existe 2 types de vues du système qui comportent chacune leurs propres diagrammes :

- les vues statiques :

o diagrammes de cas d'utilisation

o diagrammes d'objets

o diagrammes de classes

o diagrammes de composants

o diagrammes de déploiement

- les vues dynamiques :

o diagrammes de collaboration

o diagrammes de séquence

o diagrammes d'états-transitions

o diagrammes d'activités

UML : Diagrammes (types)

Page 9: Uml

Diagramme

des cas d’utilisation

UML : Unified Modeling Language

Page 10: Uml

Les cas d‟utilisation(use cases)permettent de structurer les besoins des utilisateurs et les objectifs correspondants d'un système. Ils centrent l'expression des exigences du système sur ses utilisateurs : ils partent du principe que les objectifs du système sont tous motivés.

Description de l‟interaction entre l‟utilisateur et le système Une fois identifiés et structurés, ces 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.

Diagramme des cas d’utilisation: Définition

Page 11: Uml

L’acteur: Un acteur représente un rôle joué par une personne ou une chose qui interagit avec le système. (la même personne physique peut donc être représentée par plusieurs acteurs en fonction des rôles qu‟elle joue).un acteur n‟est pas nécessairement une personne physique : il peut être un service, une société, un système informatique …

Il existe 4 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.

Diagramme des cas d’utilisation: Acteur

Page 12: Uml

Un acteur se représente par un petit bonhomme avec son nom (son rôle) inscrit au dessous.

Il est également possible de représenter un acteur sous la forme d‟un classeur stéréotypé << actor >>

Diagramme des cas d’utilisation: Acteur (suite)

Page 13: Uml

Le cas d’utilisation: Le cas d‟utilisation (ou use case) correspond à un objectif du système, motivé par un besoin d‟un ou plusieurs acteurs. L'ensemble des use cases décrit les objectifs (le but) du système.Un cas d‟utilisation se représente par une ellipse contenant le nom (un verbe à l‟infinitif) et optionnellement, au dessous du nom un stéréotype .Dans le cas ou l‟on désire présenter les attributs ou les opérations du cas d‟utilisation,il est préférable de le représenter sous la forme d‟un classeur stéréotypé <<use case>>.Nous reviendrons sur les notions d‟attributs et d‟opérations lorsque nous traiterons les diagrammes de classes et d‟objets.

Diagramme des cas d’utilisation: Le cas d’utilisation

Page 14: Uml

Diagramme des cas d’utilisation: Exemples

Exemple 1 Exemple 2

Page 15: Uml

Diagramme des cas d’utilisation: Exemples

Exemple 3 Exemple 4

Page 16: Uml

Elle exprime l‟interaction existant entre un acteur et un cas d‟utilisation.

Il existe 3 types de relations entre cas d‟utilisation :- la relation de généralisation- la relation d‟extension- la relation d‟inclusion

1. La relation de généralisation:

Dans une relation de généralisation entre 2 cas d‟utilisation, le cas d‟utilisation enfant est une spécialisation du cas d‟utilisation parent.

Diagramme des cas d’utilisation: La relation

Page 17: Uml

NB : un acteur peut également participer à des relations de généralisation avec d‟autres acteurs. Les acteurs « enfant » seront alors capables de communiquer avec les mêmes casd‟utilisation que les acteurs « parents ».

Diagramme des cas d’utilisation: La relation (suite)

Page 18: Uml

2. La relation d’inclusion:

Elle indique que le cas d‟utilisation source contient aussi lecomportement décrit dans le cas d‟utilisation destination. Cetterelation permet ainsi de décomposer des comportements et dedéfinir des comportements partageables entre plusieurs casd‟utilisation.

Cette dépendance est symbolisée par le stéréotype <<include>>

Diagramme des cas d’utilisation: La relation (suite)

Pour réaliser l‟objectif <<virement», on utilise obligatoirement «identification ».

Page 19: Uml

3. La relation d’extension:Elle indique que le cas d‟utilisation source ajoute son comportement au cas d‟utilisation destination. L‟extension peut être soumise à condition. Le comportement ajouté est inséré au niveau d‟un point d‟extension défini dans le cas d‟utilisation destination. Cette relation permet de modéliser les variantes de comportement d‟un cas d‟utilisation (selon les interactions des acteurs et l‟environnement du système).Cette dépendance est symbolisée par le stéréotype <<extend>>

Diagramme des cas d’utilisation: La relation (suite)

Page 20: Uml

Exemple :

Diagramme des cas d’utilisation: La relation (suite)

Page 21: Uml

Un cas d‟utilisation est une abstraction de plusieurs chemins d‟exécution. Une instance de cas d‟utilisation est appelée : « scénario ».

Chaque fois qu‟une instance d‟un acteur déclenche un cas d‟utilisation, un scénario est créé (le cas d‟utilisation est instancié). Ce scénario suivra un chemin particulier dans le cas d‟utilisation.

Les scénarios peuvent être classés en :

- scénarios principaux : il correspond à l‟instance principal du cas d‟utilisation. C‟est souvent le chemin « normal » d‟exécution du cas d‟utilisation qui n‟implique pas d‟erreurs.

- Scénarios secondaires : il peut être un cas alternatif (un choix), un cas exceptionnel ou une erreur.

Diagramme des cas d’utilisation: Les scénarios

Page 22: Uml

Diagramme

de classes

UML : Unified Modeling Language

Page 23: Uml

Le diagramme de classes exprime la structure statique dusystème en termes de classes et de relations entre cesclasses.

L‟intérêt du diagramme de classe est de modéliser lesentités du système d‟information.

Maison

Adresse

Valeur

Date construction

CLASSE OBJETS

234 Des érables

$180 000

1986 50 Laurier

$150 000

1959 765 Bellevue

$210 000

1996

...

Diagramme de classes : Définition

Page 24: Uml

Diagramme de classes : La notion de classe

une classe est une description abstraite (condensée) d‟un ensembled‟objets du domaine de l‟application : elle définit leur structure,leur comportement et leurs relations.

Représentée par un rectangle comprenant 3 compartiments: lenom, les attributs et les opérations.

Les compartiments non pertinents peuvent ne pas être affichés

Nom de classeAttribut 1

Attribut 2

Opération 1

Opération 2

Nom de classeNom de classeAttribut 1

Attribut 2

Page 25: Uml

Diagramme de classes : Stéréotypes

UML définit les stéréotypes de classe suivants :

- « classe implémentation » : il s’agit de l’implémentation d’uneclasse dans un langage de programmation.- « énumération » : il s’agit d’une classe qui définit un ensembled’identificateurs formant le domaine de la valeur.- « métaclasse » : il s’agit de la classe d’une classe, comme enSmalltalk.- « powertype » : une classe est un métatype : ses instances sonttoutes des sous-types d’un type donné.- « processus » : il s’agit d’une classe active qui représente unflot de contrôles lourd.- « thread » : il s’agit d’une classe active qui représente un flotde contrôles léger.- « type » : il s’agit d’une classe qui définit un domaine d’objetset les opérations applicables à ces objets.- « utilitaire » : il s’agit d’une classe réduite au concept demodule et qui ne peut être instanciée.

Page 26: Uml

Diagramme de Classes : La notion d’attribut

Une classe correspond à un concept global d‟information et secompose d‟un ensemble d‟informations élémentaires, appeléesattributs de classe.

Un attribut représente la modélisation d‟une informationélémentaire représentée par son nom et son format.

Caractéristique d‟une classe d‟objets. Syntaxe: Visibilité Nom_attribut : Type_Attribut = Valeur_Initiale

Visibilité: définie en trois niveaux:+ :public, visible par toutes les classes;# :protégé, visible par les classes amies et classes dérivées;- :privé, visible seulement par les classes amies;

Dérivé (/): attribut obtenu par le traitement d‟autres attributs.

Rectangle

+ longueur :

entier

+ largeur: entier

+ /surface: entier

/Surface = longueur * largeur

Page 27: Uml

L‟opération représente un élément de comportement des objets, défini de manière globale dans la classe.

Une opération est une fonctionnalité assurée par une classe. La description des opérations peut préciser les paramètres d‟entrée et de sortie ainsi que les actions élémentaires à exécuter.

Syntaxe:Visibilité Nom_Opération.

La classe rectangle contient les

attributs longueur et largeur et

l’opération surface qui

encapsule le calcul de surface

obtenu avec la longueur et la

largeur du rectangle.

Rectangle

+ Longueur: entier

+ Largeur: entier

+ Surface

(longeur:entier * largeur:entier)

: entier

Diagramme de Classes : La notion d’opération

Page 28: Uml

Représente des relations structurelles entre classes d‟objets. Représentée par une forme verbale, active ou passive, en italique au milieu

de la ligne qui symbolise l‟association. Le sens de lecture du nom est indiqué par un petit triangle dirigé vers la

classe désignée par la forme verbale.

Diagramme de Classes : Association

Page 29: Uml

Peut être représentée par des traits rectilignes ou obliques.

Il peut y avoir deux ou plusieurs associations de nature différente entre les deux mêmes classes.

Peut être récursive, i.e. qui affecte une seule classe.

Maison Personne

< habite

< possède

est habitée par >

est possédée par >

Personne

est mariée à >< est mariée à

Page 30: Uml

Le rôle est l’extrémité d’une association qui décrit comment uneclasse en voit une autre à travers une association.

Il est placé à l’extrémité d’une association sans être en italique.

Personneparent

enfant

Maison Personne

< habite

est habitée par >habitation

habitant

Diagramme de Classes : Le rôle

Page 31: Uml

On ajoute une classe-association à une association lorsqu‟elle ades attributs ou des opérations.

Une classe de ce type est une classe comme les autres et peutparticiper à d‟autres relations dans le modèle.

Diagramme de Classes : Classe-association

Page 32: Uml

Diagramme de Classes : Association n-aire

•Relations entre plus de 2 classes (à éviter si possible)

Page 33: Uml

La multiplicité définit le nombre d‟instances de l‟association pour une instance de la classe. La multiplicité est définie par un nombre entier ou un intervalle de valeurs. La multiplicité est notée sur le rôle (elle est notée à l‟envers de la notation MERISE).

Indique le nombre minimum et maximum d‟objets de la classequi peuvent être liés à un objet de l‟autre classe.

Une association possède deux cardinalités.

Diagramme de Classes : La multiplicité des associations

Page 34: Uml

Une personne travaille pour 0 à plusieurs sociétés (*) et une société est employeur de 1 à plusieurs personnes (1..*).

Pour un emploi donné, un patron dirige de zéro à plusieurs travailleurs (0 ..*) et un travailleur est dirigé par zéro à un patron (0..1).

Société Personne< Travaille pour

employeur employé

Salaire

Emploi

* 1..*

patron

<Dirigetravailleur

0..1

0..*

Exemple:

Page 35: Uml

Peut affecter une relation ou un groupe de relations. Chaîne de caractères entre accolades { } positionnée sur

l‟association affectée ou entre les associations affectées.

Diagramme de Classes : Contraintes sur les associations

Page 36: Uml

Diagramme de Classes : Agrégation

Association non symétrique dans laquelle une des extrémités joueun rôle prédominant par rapport à l‟autre extrémité (agrégat).Les deux classes existent indépendamment, c‟est-à-dire qu‟elles“survivent” à la “destruction” de l‟autre classe.

Ne concerne qu‟un seul rôle de l‟association. Symbolisé par un losange vide du côté de l‟agrégat.

Symbole d’agrégation

Page 37: Uml

La composition est un cas particulier de l‟agrégation dans laquelle la vie des composants est liée à celle des agrégats.

Association symétrique entre deux classes dont une classe(partie) compose l‟autre (composite). Les deux classes sontdépendantes, c‟est-à-dire que la partie “ne survit pas” à la“destruction” du composite.

Symbolisée par un losange plein du coté du composite.

Symbole de composition

Diagramme de Classes : Composition

Page 38: Uml

Livre Page Mot< compose de 0,N

comprend de 1,N >

< fait partie de 1,1

comprend de 1,N >

Exemple 1:

Exemple 2:

Diagramme de Classes : Agrégation/Composition

Page 39: Uml

Le principe de généralisation / spécialisation permet d‟identifierparmi les objets d‟une classe (générique) des sous-ensembles d‟objets(des classes spécialisées) ayant des définitions spécifiques. La classeplus spécifique (appelée aussi classe fille, classe dérivée, classespécialisée, classe descendante …) est cohérente avec la classe plusgénérale (appelée aussi classe mère, classe générale …), c‟est-à-direqu‟elle contient par héritage tous les attributs, les membres, lesrelations de la classe générale, et peut contenir d‟autres.

- La généralisation : il s‟agit de prendre des classes existantes déjàmises en évidences) et de créer de nouvelles classes qui regroupentleurs parties communes ; il faut aller du plus spécifique au plusgénéral.

- La spécialisation : il s‟agit de sélectionner des classes existantes(déjà identifiées) et d‟en dériver des nouvelles classes plusspécialisées, en spécifiant simplement les différences.

Diagramme de Classes : Généralisation/Spécialisation

Page 40: Uml
Page 41: Uml

Les classes peuvent avoir plusieurs superclasses ; dans ce cas, la généralisation est dite multiple et plusieurs flèches partent de la sous-classe vers les différentes superclasses. La généralisation multiple consiste à fusionner plusieurs classes en une seule classe.

Diagramme de Classes : Généralisation multiple

Page 42: Uml

Diagramme de Classes : Contraintes de généralisation

Page 43: Uml

Diagramme de Classes : Contraintes de généralisation

Page 44: Uml

Diagramme de Classes : Classe abstraite

Classe sans instance immédiate Super-classe non instanciable directement, i.e. qui ne

donne pas naissance à des objets mais sert de conceptplus général pour les sous-classes.

Elle s‟applique uniquement pour la généralisation et jamaispour la spécialisation.

Page 45: Uml

Les relations de dépendance sont utilisées lorsqu‟il existe une relation sémantique entre plusieurs éléments qui n‟est pas de nature structurelle. Une relation de dépendance définit une relation unidirectionnelle entre un élément source et un élément cible.

Une dépendance est une relation entre deux éléments de modélisation dans laquelle toute modification effectuée sur un élément de modélisation (l'élément influent) affecte l'autre élément (élément dépendant).

UML définit 4 types de relation de dépendance. Pour chaque type de dépendance, un mot clé ou stéréotype entre guillemets peut être ajouté à la relation de dépendance pour préciser sa nature.

Diagramme de Classes : Dépendance

Page 46: Uml

Les 4 types de relation sont :

Abstraction :Il s‟agit d‟une relation de dépendance entre éléments qui représentent un même concept à différents niveaux d‟abstraction ou selon des points de vue distincts.

Les mots-clés sont :

o « « dérive » » : représente un élément défini ou calculé à partir d‟un autre. Par exemple, un attribut ou un rôle peut dériver d‟autres attributs ou rôles.

o « « raffine » » : représente une relation de dépendance entre des éléments sémantiques différents (analyse et conception par exemple).

o « « réalise » » : représente une relation de dépendance entre une spécification (cible) et l‟élément qui implémente cette spécification (source).

o « « trace » » : représente l‟historique des constructions présentes dans les différents modèles.

Liaison : Les paramètres formels d‟une classe ou collaboration paramétrables doivent être liés à des valeurs.

Le mot clé est :

o « « lie » »

Diagramme de Classes : Dépendance (suite)

Page 47: Uml

Permission: Un élément (source) a le droit d‟accéder à un espace de nommage (cible)

o « « ami » »: Représente un élément source (paquetage, classe, opération …) qui a accès à l‟élément destination (paquetage, classe, opération …) quelle que soit la spécification de visibilité de ce dernier.

Utilisation: Un élément (source) requiert la présence d‟un autre élément (cible) pour son bon fonctionnement ou son implémentation.

o « « utilise » »o « « appelle » »

Représente une relation de dépendance entre une opération qui invoque une opération d‟une autre classe. Cette relation est représentée en connectant les opérations ou les classes qui possèdent ces opérations.

o « « crée » »: Représente le classificateur source qui crée une instance du classificateur cible.

o « « instancie » »: Représente une relation de dépendance entre classificateurs due à la création d‟une instance du classificateur cible par une opération du classificateur source.

Exemple

Diagramme de Classes :Dépendance (suite)

Page 48: Uml

Diagramme de Classes : L’interface

Une interface définit le comportement visible d‟une classe. Cecomportement est défini par une liste d‟opérations ayant unevisibilité « public ». Aucun attribut ou association n‟est défini pourune interface.

Une interface est en fait une classe particulière (avec lestéréotype « « interface » »).

UML représente les interfaces : - soit au moyen de petits cercles reliés par un trait à l‟élément qui

fournit les services décrits par l‟interface - soit au moyen de classes avec le mot clé « « interface » ». Cette

notation permet de faire figurer dans le compartiment desopérations la liste des services de l‟interface.

L’exemple illustre la modélisationde 2 interfaces crédit etassurance d’une classe banque.Une relation de réalisationindique que la classe banqueréalise l’interface assurance.

Page 49: Uml

Mécanisme général pour la partition des modèles et le regroupement des éléments de modélisation

Est représenté graphiquement par un dossier

Correspond à un sous-ensemble du modèle

Nom du

package

Diagramme de Classes : Package

Page 50: Uml

Peut contenir entre autre des classes, des objets, desrelations et d‟autres paquetages, sans limite du niveaud‟emboîtement.

Les relations possibles entre paquetages sont lesdépendances et les généralisations.

Paquetage racine

Classe

Sous-paquetage

Généralisation

Dépendance

Diagramme de Classes : Package (suite)

Page 51: Uml

Une classe contenue par un paquetage peut également apparaître dans un autre paquetage sous la forme d‟un élément importé. Cela crée une relation de dépendance indiquée par le sens de la flèche.

<<import>>

Limites Administratives

Ville

Socio-économique

LA::Ville

classe importée

Diagramme de Classes : Package (suite)

Page 52: Uml

Diagramme de classes : Étude de cas

Page 53: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

Diagramme de classes : Étude de cas

Page 54: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

Diagramme de classes : Étude de cas

Page 55: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

Diagramme de classes : Étude de cas

Page 56: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

Diagramme de classes : Étude de cas

Page 57: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

4° Une réservation concerne un seul vol, et un seul passager.

Diagramme de classes : Étude de cas

Page 58: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

Diagramme de classes : Étude de cas

Page 59: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

6° Un‎vol‎a‎un‎aéroport‎de‎départ‎et‎un‎aéroport‎d’arrivée.

Diagramme de classes : Étude de cas

Page 60: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

6° Un‎vol‎a‎un‎aéroport‎de‎départ‎et‎un‎aéroport‎d’arrivée.

7° Un‎vol‎a‎un‎jour‎et‎une‎heure‎de‎départ‎et‎un‎jour‎et‎une‎heure‎d’arrivée.

Diagramme de classes : Étude de cas

Page 61: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

6° Un‎vol‎a‎un‎aéroport‎de‎départ‎et‎un‎aéroport‎d’arrivée.

7° Un‎vol‎a‎un‎jour‎et‎une‎heure‎de‎départ‎et‎un‎jour‎et‎une‎heure‎d’arrivée.

8° Un vol peut comporter des escales dans des aéroports.

Diagramme de classes : Étude de cas

Page 62: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

6° Un‎vol‎a‎un‎aéroport‎de‎départ‎et‎un‎aéroport‎d’arrivée.

7° Un‎vol‎a‎un‎jour‎et‎une‎heure‎de‎départ‎et‎un‎jour‎et‎une‎heure‎d’arrivée.

8° Un vol peut comporter des escales dans des aéroports.

9° Une‎escale‎a‎une‎heure‎d’arrivée‎et‎une‎heure‎de‎départ.

Diagramme de classes : Étude de cas

Page 63: Uml

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

6° Un‎vol‎a‎un‎aéroport‎de‎départ‎et‎un‎aéroport‎d’arrivée.

7° Un‎vol‎a‎un‎jour‎et‎une‎heure‎de‎départ‎et‎un‎jour‎et‎une‎heure‎d’arrivée.

8° Un vol peut comporter des escales dans des aéroports.

9° Une‎escale‎a‎une‎heure‎d’arrivée‎et‎une‎heure‎de‎départ.

10° Chaque aéroport dessert une ou plusieurs villes.

Diagramme de classes : Étude de cas

Page 64: Uml
Page 65: Uml

Modélisation de la phrase :

1° Des compagnies aériennes proposent différents vols.

Page 66: Uml

Modélisation de la phrase :

1° Des compagnies aériennes proposent différents vols.

CompagnieAerienne et Vols sont 2 objets métiers : 2 classes

Page 67: Uml

CompagnieAerinne VolPropose1..*

Modélisation de la phrase :

1° Des compagnies aériennes proposent différents vols.

CompagnieAerienne et Vols sont 2 objets métiers : 2 classes

Page 68: Uml

CompagnieAerinne VolPropose1..*

Modélisation de la phrase :

1° Des compagnies aériennes proposent différents vols.

CompagnieAerienne et Vols sont 2 objets métiers : 2 classes

• Un vol est réalisé par une seule compagnie mais partagé par plusieurs affréteurs

Page 69: Uml

CompagnieAerinne VolPropose1..*

Modélisation de la phrase :

1° Des compagnies aériennes proposent différents vols.

CompagnieAerienne et Vols sont 2 objets métiers : 2 classes

• Un vol est réalisé par une seule compagnie mais partagé par plusieurs affréteurs

CompagnieAerinne VolPropose1..*

affréteur

1..*

Page 70: Uml
Page 71: Uml

Modélisation de la phrase :2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

Page 72: Uml

Modélisation de la phrase :2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

CompagnieAerinne Propose1..*

affréteur

1..*Vol

état (ouvert, fermé)

Page 73: Uml

Modélisation de la phrase :2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

Tout objet peut avoir un état (diagramme d‟états).

Dans un diagramme de classes tout concept dynamique est modélisé en opération.

Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( )

Dans quelle classe ? Responsabilité d‟une classe

CompagnieAerinne Propose1..*

affréteur

1..*Vol

état (ouvert, fermé)

Page 74: Uml

Modélisation de la phrase :2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

Tout objet peut avoir un état (diagramme d‟états).

Dans un diagramme de classes tout concept dynamique est modélisé en opération.

Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( )

Dans quelle classe ? Responsabilité d‟une classe

CompagnieAerinne Propose1..*

affréteur

1..*Vol

état (ouvert, fermé)

CompagnieAerinne Propose1..*

affréteur

1..*Vol

ouvrirVol( )fermerVol( )

Page 75: Uml

Modélisation de la phrase :2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

Tout objet peut avoir un état (diagramme d‟états).

Dans un diagramme de classes tout concept dynamique est modélisé en opération.

Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( )

Dans quelle classe ? Responsabilité d‟une classe

CompagnieAerinne Propose1..*

affréteur

1..*Vol

état (ouvert, fermé)

CompagnieAerinne Propose1..*

affréteur

1..*Vol

ouvrirVol( )fermerVol( )

Les opérations sont déclarées dans l‟objet dans lequel elles doivent s‟exécuter

Les autres pourront déclencher ces opérations par envoi de messages

Le classe CompagnieAerienne a une association avec la classe vol.

Page 76: Uml

Modélisation des phrases :3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

a effectué

0..*

0..*

0..* Vol

Passager

1

1

concerne

Réservation

Annuler( )Confirmer( )

concerne

Client 1

Page 77: Uml

Modélisation des phrases :3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.

Il faut discerner un client d‟un passager

a effectué

0..*

0..*

0..* Vol

Passager

1

1

concerne

Réservation

Annuler( )Confirmer( )

concerne

Client 1

Page 78: Uml

Modélisation des phrases :4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

Page 79: Uml

Modélisation des phrases :4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

La réservation et le passager sont 2 concepts métier : 2 classes d‟objets

Un réservation concerne un seul vol et un seul passager: donc 2 associations entre „‟Vol’’ et ‟‟Réservation’’ et entre ’’Réservation’’ et „‟Passager’’.

La 5° phrase se traduit par l‟ajout de 2 opérations annuler( ) et confirmer( ) dans ‘’Reservation’’.

Page 80: Uml

Modélisation des phrases :4° Une réservation concerne un seul vol, et un seul passager.

5° Une réservation peut être annulée ou confirmée.

La réservation et le passager sont 2 concepts métier : 2 classes d‟objets

Un réservation concerne un seul vol et un seul passager: donc 2 associations entre „‟Vol’’ et ‟‟Réservation’’ et entre ’’Réservation’’ et „‟Passager’’.

La 5° phrase se traduit par l‟ajout de 2 opérations annuler( ) et confirmer( ) dans ‘’Reservation’’.

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Passager

1

1

concerne

Réservation

Annuler( )Confirmer( )

concerne

Page 81: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Page 82: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Par quoi peut-on représenter l‟élément „‟Aéroport‟‟ ?

3 réponses sont envisageables :

Page 83: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Par quoi peut-on représenter l‟élément „‟Aéroport‟‟ ?

3 réponses sont envisageables :

1. Soit avec une classe et une association de multiplicité 2

Page 84: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Modélisation peu parlante.

Par quoi peut-on représenter l‟élément „‟Aéroport‟‟ ?

3 réponses sont envisageables :

1. Soit avec une classe et une association de multiplicité 2

{ ordered}

2

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArriveeaeroportDepartaeroportArivvee

Aéroport

nom

Page 85: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Page 86: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

2. Soit avec 2 classes

Page 87: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Modélisation non correcte. Tout aéroport peut être de départ et d‟arrivée.

2. Soit avec 2 classes

1

Vols

ouvrirReservation( )fermerReservation( )

dateDepartheureDepartdateArriveeheureArriveeaeroportDepartraeroportArivvee

Aéroport

nom

AeroportDepart

AeroportArrivee1

Page 88: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Page 89: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

2. Soit avec 2 associations

Page 90: Uml

Modélisation des phrases :6° Un vol a un aéroport de départ et un aéroport d’arrivée.

Le rôle de chaque association précise son sens.

2. Soit avec 2 associations

1

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

Nom…

1

Départ

Arrivée

Page 91: Uml

Modélisation des phrases :7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.

Page 92: Uml

Modélisation des phrases :7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.

Les dates et les heures de départ et d‟arrivée ne représentent que des valeurs : attributs.

Page 93: Uml

Modélisation des phrases :7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.

Les dates et les heures de départ et d‟arrivée ne représentent que des valeurs : attributs.

CompagnieAerinne Propose1..*

affréteur

1..*Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Page 94: Uml

Modélisation des phrases :7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.

Les dates et les heures de départ et d‟arrivée ne représentent que des valeurs : attributs.

CompagnieAerinne Propose1..*

affréteur

1..*Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Pour savoir si un élément doit être représenté en attribut ou en objet :

S‟il n‟ y a que sa valeur qui est intéressante : c‟est plutôt un attribut.

Si plusieurs questions peuvent concerner l‟élément, alors il faut le représenter en objet.

Page 95: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

Page 96: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.

Page 97: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

Depart

Arrivee

Escale

heureArriveeheureDepart

0..*

Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.

Page 98: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

Depart

Arrivee

Escale

heureArriveeheureDepart

0..*

Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.

Quelles sont alors les multiplicités entre „’Vols’’ et „’Escale’’, entre „’Escale’’ et ‘’Aeroport’’ et entre ‘’Aeroport’’ et ’Vols’’ ?

Page 99: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

Depart

Arrivee

Escale

heureArriveeheureDepart

0..*

Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.

Quelles sont alors les multiplicités entre „’Vols’’ et „’Escale’’, entre „’Escale’’ et ‘’Aeroport’’ et entre ‘’Aeroport’’ et ’Vols’’ ?

0..*

0..*

1..*1

0..*

Page 100: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

Page 101: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .

Page 102: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .

On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n‟est pas totalement un aéroport.

Page 103: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .

On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n‟est pas totalement un aéroport.

La meilleure solution serait de la modéliser comme une classe d‟association entre et ’Vols’’ et ‘’Aéroport’’.

Page 104: Uml

Modélisation des phrases :8° Un vol peut comporter des escales dans des aéroports.

9° Une escale a une heure d’arrivée et une heure de départ.

„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .

On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n‟est pas totalement un aéroport.

La meilleure solution serait de la modéliser comme une classe d‟association entre et ’Vols’’ et ‘’Aéroport’’.

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

Départ

Arrivée

Escale

heureArriveeheureDepart

Escale

0..*0..*

0..*

0..*

{Ordered}

Page 105: Uml

Modélisation des phrases :10° Chaque aéroport dessert une ou plusieurs villes.

Page 106: Uml

Modélisation des phrases :10° Chaque aéroport dessert une ou plusieurs villes.

On ne peut pas savoir la multiplicité de „’Aéroport’’

Page 107: Uml

Modélisation des phrases :10° Chaque aéroport dessert une ou plusieurs villes.

Aéroport dessert

1..*

Ville

On ne peut pas savoir la multiplicité de „’Aéroport’’

Page 108: Uml

Modélisation des phrases :10° Chaque aéroport dessert une ou plusieurs villes.

Aéroport dessert

1..*

Ville

0..*

On ne peut pas savoir la multiplicité de „’Aéroport’’

Page 109: Uml

Modélisation des phrases :10° Chaque aéroport dessert une ou plusieurs villes.

Aéroport dessert

1..*

Ville

0..*

Si on considère que desservir une ville signifie l‟aéroport le plus proche, il n‟ en y a qu‟un :

la multiplicité est de 1

Si on considère que desservir une ville signifie les aéroports dans un rayon de 35 km :

la multiplicité est de 0..*

On ne peut pas savoir la multiplicité de „’Aéroport’’

Page 110: Uml

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

départ

arrivée

InfosEscale

heureArriveeheureDepart

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..*

Passager

1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

CompagnieAerinne

Propose

1..*

1..*

nom Prénom

adresse

téléphone

e-mail

nom

nom Prénom nom

datenuméro

Page 111: Uml

Le diagramme des classe complet est :

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

départ

arrivée

InfosEscale

heureArriveeheureDepart

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..*

Passager

1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

CompagnieAerinne

Propose

1..*

1..*

nom Prénom

adresse

téléphone

e-mail

nom

nom Prénom nom

datenuméro

Page 112: Uml

InfosEscale

heureArriveeheureDepart

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..*

Passager

1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

Propose

0..1

1..*

nom Prénom

adresse

tél

e-mail

nom Prénom nom

{frozen}

{frozen}

CompagnieAerinnenom

numéro

datenuméro

Page 113: Uml

Diagramme des classe complet et annoté:

InfosEscale

heureArriveeheureDepart

Vol

ouvrirVol( )fermerVol( )

dateDepartheureDepartdateArriveeheureArrivee

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..*

Passager

1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

Propose

0..1

1..*

nom Prénom

adresse

tél

e-mail

nom Prénom nom

{frozen}

{frozen}

CompagnieAerinnenom

numéro

datenuméro

Page 114: Uml

InfosEscale

heureArrivéeheureDépart

‘’ métaclasse ‘’VolGenerique

ouvrirVol( )fermerVol( )

jourheureDépartheureArrivée/duréepériodevalidité

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..* 1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1concerne

Propose

0..1

1

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénomnom

{frozen}

{frozen}

CompagnieAérienne

nom

numéro

datenuméro

Vol

ouvrirVol( )fermerVol( )

dateDépartdateArrivée

{frozen}{AddOnly}

décrit

0..* 1

1..*

0..*

propose

Affréteur

Page 115: Uml

Le diagramme des classe complet devient :

InfosEscale

heureArrivéeheureDépart

‘’ métaclasse ‘’VolGenerique

ouvrirVol( )fermerVol( )

jourheureDépartheureArrivée/duréepériodevalidité

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..* 1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1concerne

Propose

0..1

1

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénomnom

{frozen}

{frozen}

CompagnieAérienne

nom

numéro

datenuméro

Vol

ouvrirVol( )fermerVol( )

dateDépartdateArrivée

{frozen}{AddOnly}

décrit

0..* 1

1..*

0..*

propose

Affréteur

Page 116: Uml
Page 117: Uml

Le diagramme des classes peut être réorganisé en packages:

Page 118: Uml

Le diagramme des classes peut être réorganisé en packages:

InfosEscale

heureArriveeheureDepart

‘’ metaclasse „‟VolGenerique

ouvrirVol( )fermerVol( )

jourheureDepartheureArrivee/duréeperiodevalidite

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..* 1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

Propose

0..1

1..*

nom Prénom

adresse

tééphonel

e-mail

Passager

nom Prénomnom

{frozen}

{frozen}

CompagnieAerinnenom

numéro

datenumero

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

{frozen}{AddOnly}

décrit

0..* 1

1..*

0..*

propose

Affréteur

Page 119: Uml

Le diagramme des classes peut être réorganisé en packages:

InfosEscale

heureArriveeheureDepart

‘’ metaclasse „‟VolGenerique

ouvrirVol( )fermerVol( )

jourheureDepartheureArrivee/duréeperiodevalidite

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..* 1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

Propose

0..1

1..*

nom Prénom

adresse

tééphonel

e-mail

Passager

nom Prénomnom

{frozen}

{frozen}

CompagnieAerinnenom

numéro

datenumero

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

{frozen}{AddOnly}

décrit

0..* 1

1..*

0..*

propose

Affréteur

Page 120: Uml

Le diagramme des classes peut être réorganisé en packages:

InfosEscale

heureArriveeheureDepart

‘’ metaclasse „‟VolGenerique

ouvrirVol( )fermerVol( )

jourheureDepartheureArrivee/duréeperiodevalidite

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

0..* 1

concerne

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

Propose

0..1

1..*

nom Prénom

adresse

tééphonel

e-mail

Passager

nom Prénomnom

{frozen}

{frozen}

CompagnieAerinnenom

numéro

datenumero

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

{frozen}{AddOnly}

décrit

0..* 1

1..*

0..*

propose

Affréteur

Page 121: Uml

0..* 1

concerne

{frozen}

Réservation

Annuler( )Confirmer( )

datenuméro

Réservations

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

Vol

Page 122: Uml

Réduire la dépendance mutuelle afin d‟augmenter la modularitéet l‟évolutivité d‟une application

0..* 1

concerne

{frozen}

Réservation

Annuler( )Confirmer( )

datenuméro

Réservations

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

Vol

Page 123: Uml
Page 124: Uml

Réservations

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénom

{frozen}

datenuméro

Page 125: Uml

Réservations

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénom

{frozen}

datenuméro

Vol

InfosEscale

heureArriveeheureDepart

‘’ metaclasse ‘’VolGenerique

ouvrirVol( )fermerVol( )

jourheureDepartheureArrivee/duréeperiodevalidite

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

Propose

0..1

1

nom

CompagnieAerinne

nom

numéro

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

{frozen}{AddOnly}

decrit

0..* 1

1..*

0..*

propose

Affréteur

Page 126: Uml

Réservations

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénom

{frozen}

datenuméro

Vol

InfosEscale

heureArriveeheureDepart

‘’ metaclasse ‘’VolGenerique

ouvrirVol( )fermerVol( )

jourheureDepartheureArrivee/duréeperiodevalidite

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

Propose

0..1

1

nom

CompagnieAerinne

nom

numéro

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

{frozen}{AddOnly}

decrit

0..* 1

1..*

0..*

propose

Affréteur

0..* 1

concerne

{frozen}

Page 127: Uml

Réservations

Réservation

Annuler( )Confirmer( )

Client

a effectué0..*

1

0..*

1

concerne

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénom

{frozen}

datenuméro

Vol

InfosEscale

heureArriveeheureDepart

‘’ metaclasse ‘’VolGenerique

ouvrirVol( )fermerVol( )

jourheureDepartheureArrivee/duréeperiodevalidite

Aéroport

nom1

1

départ

arrivée

escale

0..*0..*

0..*

0..*

{ordered}

Ville

Propose

0..1

1

nom

CompagnieAerinne

nom

numéro

Vol

ouvrirVol( )fermerVol( )

dateDepartdateArrivee

{frozen}{AddOnly}

decrit

0..* 1

1..*

0..*

propose

Affréteur

0..* 1

concerne

{frozen}

Page 128: Uml

Généralisation et réutilisation

Page 129: Uml

Généralisation et réutilisation

On veut élargir ce domaine aux voyages par bus que des transporteurs assurent.

Un voyage en bus à une ville de départ et un ville d‟arrivée avec des dates et des heures associées.

Un trajet peut comporter des arrêts dans des villes intermédiaires.

Un client peut réserver un ou plusieurs voyages pour un ou plusieurs passagers

Page 130: Uml

Généralisation et réutilisation

On veut élargir ce domaine aux voyages par bus que des transporteurs assurent.

Un voyage en bus à une ville de départ et un ville d‟arrivée avec des dates et des heures associées.

Un trajet peut comporter des arrêts dans des villes intermédiaires.

Un client peut réserver un ou plusieurs voyages pour un ou plusieurs passagers

VoyageEnBus

OuvrirVoyage( )fermerVoyage( )

dateDepartdateArrivee

VoyagesBusReservationsBus

ReservationBus

Annuler( )Confirmer( )

datenuméro

0..* 1

concerne

{frozen}

Page 131: Uml

concerne

VoyagesBus

InfosArret

heureArriveeheureDepart

VoyageEnBus

ouvrirVoyage( )fermerVoyage( )

dateDepartheureDepartdateArriveeheureArrivee/durée

1

1

départ

arrivée

arrêt

0..*0..*

0..*

0..*

{ordered}

Propose0..1

1

Voyagistenom

référence

Ville

nom

ReservationsBus

0..*

1..*

concerne

Client

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénom

{frozen}

ReservationBus

Annuler( )Confirmer( )

datenuméro

a effectué

0..*

1

{frozen}

Page 132: Uml

concerne

VoyagesBus

InfosArret

heureArriveeheureDepart

VoyageEnBus

ouvrirVoyage( )fermerVoyage( )

dateDepartheureDepartdateArriveeheureArrivee/durée

1

1

départ

arrivée

arrêt

0..*0..*

0..*

0..*

{ordered}

Propose0..1

1

Voyagistenom

référence

Ville

nom

ReservationsBus

0..*

1..*

concerne

Client

nom Prénom

adresse

téléphone

e-mail

Passager

nom Prénom

{frozen}

ReservationBus

Annuler( )Confirmer( )

datenuméro

a effectué

0..*

1

{frozen}

Page 133: Uml

Fusion des 2 modèles

Page 134: Uml

Fusion des 2 modèles

1. Il faut isoler les classes communes dans des packages

2. Il faut factoriser les propriétés communes

Page 135: Uml

Fusion des 2 modèles

1. Il faut isoler les classes communes dans des packages

2. Il faut factoriser les propriétés communes

Page 136: Uml

Fusion des 2 modèles

1. Il faut isoler les classes communes dans des packages

2. Il faut factoriser les propriétés communes

AVION

Vols

ReservationVols

BUS

ReservationBus

VoyagesBus

Lieux

Page 137: Uml

Il faut isoler les classes communes dans des packages

Page 138: Uml

Il faut isoler les classes communes dans des packages

Vol(from Vols)

ReservationVol(from ReservationsVols)

ReservationBus(from ReservationsBus)

VoyageEnBus(from VoyagesBus)

concerne concerne{frozen} {frozen}

1 1

Réservations

0..* 1

concerneClientnom Prénom

adresse

tél

e-mail

Passager

nom Prénom

Réservation

Annuler( )Confirmer( )

datenuméro

{frozen}

a effectué

0..*1

Classe abstraite

Page 139: Uml
Page 140: Uml

ReservationsBus

Réservations

ReservationsVols

Packages spécialisés

Package généralisé

Page 141: Uml

VolsVoyagesBus

ReservationsBus

Réservations

ReservationsVols

Packages spécialisés

Package généralisé

Page 142: Uml

VolsVoyagesBus

LieuxPackage réutilisable

ReservationsBus

Réservations

ReservationsVols

Packages spécialisés

Package généralisé

Page 143: Uml

Diagramme

d’objets

UML : Unified Modeling Language

Page 144: Uml

Le diagramme d‟objets permet de mettre en évidencedes liens entre les objets. Les objets, instances declasses, sont reliés par des liens, instancesd‟associations.

A l‟exception de la multiplicité, qui est explicitementindiquée, le diagramme d‟objets utilise les mêmesconcepts que le diagramme de classes. Ils sontessentiellement utilisés pour comprendre ou illustrerdes parties complexes d‟un diagramme de classes.

Diagramme d’objets : Objectif

Page 145: Uml

Notion‎d’Objet

Une abstraction du monde réel c.-à-d. des données informatiques regroupant des caractéristiques du monde réel.

Un objet est une instance d'une classe.

Exemple

une personne, une voiture, une maison, ...

Diagramme d’objets : Objet

Page 146: Uml

Chaque objet est unique et a un identifiant qui ledistingue des autres objets.

Les objets peuvent avoir un nom suivi de deux points et

du nom de la classe.

Trois représentations possibles des instances :

Diagramme d’objets : Objet

Page 147: Uml

Diagramme d’objets : Exemple

Page 148: Uml

Diagramme

de composants

UML : Unified Modeling Language

Page 149: Uml

Les diagrammes de composants décrivent les composants etleurs dépendances dans l‟environnement de réalisation.

En général, ils ne sont utilisés que pour des systèmescomplexes.

Les diagrammes de composants permettent de décrirel'architecture physique et statique d'une application enterme de modules : fichiers sources, librairies, exécutables,etc. Ils montrent la mise en œuvre physique des modèles dela vue logique avec l'environnement de développement.

Diagramme de composants : Objectif

Page 150: Uml

Un composant est un élément physique qui représente unepartie implémentée d‟un système. Un composant peut êtredu code (source, binaire ou exécutable), un script, un fichierde commandes, un fichier de données, une table, etc. Il peutréaliser un ensemble d‟interfaces qui définissent alors lecomportement offert à d‟autres composants.

Diagramme de composants : Le composant

Page 151: Uml

Diagramme de composants : La relation

Les relations de dépendance sont utilisées dans lesdiagrammes de composants pour indiquer qu‟un élémentd‟implémentation d‟un composant fait appel aux servicesofferts par les éléments d‟implémentation d‟un autrecomposant.

Page 152: Uml

UML définit 5 stéréotypes aux composants :- «« document »» : un document quelconque- «« exécutable »» : un programme qui peut s‟exécuter- «« fichier »» : un document contenant un code source oudes données- «« bibliothèque »» : une bibliothèque statique oudynamique- «« table »» : une table de base de données relationnelle

Diagramme de composants : Stéréotypes

Page 153: Uml

Diagramme de composants : Exemple

Page 154: Uml

Diagramme

de déploiement

UML : Unified Modeling Language

Page 155: Uml

Les diagrammes de déploiement montrent la dispositionphysique des différents matériels (les noeuds) qui entrentdans la composition d‟un système et la répartition desinstances de composants, processus et objets qui « vivent »sur ces matériels.

Le diagramme de déploiement modélise les composantsmatériels utilisés pour implémenter un système etl'association entre ces composants.

Les diagrammes de déploiement sont donc très utiles pourmodéliser l‟architecture physique d‟un système.

Diagramme de déploiement : Objectif

Page 156: Uml

Un composant représente une entité logicielle du système. (fichier de code source, programmes, documents, fichiers de ressource .etc.). Sur un diagramme de déploiement, les composants sont placés dans des noeuds pour identifier l'endroit de leur déploiement.

Diagramme de déploiement : Le composant

Page 157: Uml

Un noeud représente un ensemble d'éléments matériels dusystème. Cette entité est représentée par un cubetridimensionnel.

Diagramme de déploiement : Le nœud

Page 158: Uml

Les noeuds sont connectés entre eux, à l'aide d'un supportde communication.

une association, représentée par une ligne pleine entre deuxnoeuds, indique une ligne de communication entre leséléments matériels.

Diagramme de déploiement : L’association

Page 159: Uml

Le diagramme de déploiement ci-dessous montre que lecomposant SiteConfig est déployé sur le serveur Web et lecomposant Base DB est déployé sur le serveur APP. Nouspouvons également déterminer que le serveur Webcommunique avec le serveur APP, et le serveur APPcommunique avec le serveur de base de données et uneimprimante.

Diagramme de déploiement : Exemple

Page 160: Uml

Diagramme

de collaboration

UML : Unified Modeling Language

Page 161: Uml

Le diagramme de collaboration permet de mettre enévidence les interactions entre les différents objets dusystème.

Dans le cadre de l‟analyse, il sera utilisé- pour préciser le contexte dans lequel chaque objet évolue- pour mettre en évidence les dépendances entre lesdifférents objets impliqués dans l‟exécution d‟un processusou d‟un cas d‟utilisation.

Un diagramme de collaboration fait apparaître lesinteractions entre des objets et les messages qu‟ilséchangent.

Diagramme de collaboration: Objectif

Page 162: Uml

Une interaction définit la communication entre les objetssous la forme d‟un ensemble partiellement ordonné demessages.

L‟objet émetteur envoie un message à l‟objet récepteur. Lesobjets représentés dans les diagrammes de collaboration nesont pas nécessairement des instances d‟entités. Certainsmessages peuvent avoir pour origine des acteurs que l‟onpourra représenter.

l‟interaction se représente par une flèche avec un textedécrivant le message.

Diagramme de collaboration: Les interactions

Page 163: Uml

Les messages sont le seul moyen de communication entre lesobjets. Ils sont décrits essentiellement par l‟objet émetteur etl‟objet récepteur. Leur description peut être complétée par unnom, une séquence, des arguments, un résultat attendu, unesynchronisation, une condition d‟émission.

La séquence permet de préciser l‟ordre d‟émission des messages.

Diagramme de collaboration: Les messages

Le message 1 peut avoir comme arguments l‟intitulé du produit souhaité, la quantité et la catégorie du client.

Page 164: Uml

Certains messages peuvent solliciter un résultat. Ce cas peut être modéliser de 2 façons :

- un message de demande et un message de réponse- indiquer sur le premier message le résultat attendu (lorsque

le message en retour est attendu immédiatement).

Diagramme de collaboration: Les messages (suite)

Ici, le message émis par le gérant implique la restitution immédiate du résultat du calcul:la valeur du stock.

ou

Page 165: Uml

NB : l‟émission de message peut également être soumis à une condition, qui s‟exprime alors sur le texte du message.

Diagramme de collaboration: Les messages (suite)

Exemple : la demande deréapprovisionnement n‟estenvoyée au magasinier quelorsque la quantité en stockest inférieure au seuil de

réapprovisionnement.

Page 166: Uml

Diagramme

de séquence

UML : Unified Modeling Language

Page 167: Uml

Le diagramme de séquence est une variante du diagramme de collaboration.

Les diagrammes de séquences permettent de représenter des collaborations entre objets selon un point de vue temporel.

Le diagramme de séquence permet de visualiser les messages par une lecture de haut en bas. L‟axe vertical représente le temps, l‟axe horizontal les objets qui collaborent. Une ligne verticale en pointillé est attachée à chaque objet et représente sa durée de vie.

Diagramme de séquence: Objectif

Page 168: Uml

La ligne de vie des objets est représentée par une ligne verticale en traits pointillés, placée sous le symbole de l‟objet concerné. Cette ligne de vie précise l‟existence de l‟objet concerné durant un certain laps de temps.

En général, une ligne de vie est représentée sur toute la hauteur du diagramme de séquence. Par contre, elle peut débuter et s‟interrompre à l‟intérieur du diagramme.

La destruction est indiquée par la fin de la ligne de vie et par une croix (X), soit à la hauteur du message qui cause la destruction, soit après le dernier message envoyé par un objet qui se suicide.

Diagramme de séquence: La ligne de vie

Page 169: Uml

Message simple: message dont on ne spécifie aucunecaractéristique d'envoi ou de réception particulière.

Message minuté (timeout): bloque l'expéditeur pendant untemps donné (qui peut être spécifié dans une contrainte), enattendant la prise en compte du message par le récepteur.L'expéditeur est libéré si la prise en compte n'a pas eu lieupendant le délai spécifié.

Message synchrone: bloque l'expéditeur jusqu'à prise encompte du message par le destinataire. Le flot de contrôlepasse de l'émetteur au récepteur (l'émetteur devient passifet le récepteur actif) à la prise en compte du message.

Message asynchrone: n'interrompt pas l'exécution del'expéditeur. Le message envoyé peut être pris en comptepar le récepteur à tout moment ou ignoré (jamais traité).

Message dérobant: n'interrompt pas l'exécution del'expéditeur et ne déclenche une opération chez le récepteurque s'il s'est préalablement mis en attente de ce message.

Diagramme de séquence: Les catégories de message

Page 170: Uml

Exemple :

Diagramme de séquence: Les catégories de message (suite)

Page 171: Uml

Un objet peut s‟envoyer un message.

Formalisme : Cette situation se représente par une flèchequi revient en boucle sur la ligne de vie de l‟objet.

Diagramme de séquence: Le message réflexif

Page 172: Uml

Les diagrammes de séquence permettent de représenter les périodes d‟activité des objets.

Une période d‟activité correspond au temps pendant lequel un objet effectue une action, soit directement, soit par l‟intermédiaire d‟un autre objet qui lui sert de sous-traitant.

les périodes d‟activité se représentent par des bandes rectangulaires placées sur la ligne de vie des objets.

Pour représenter de manière graphique une exécution conditionnelle d'un message, on peut documenter un diagramme de séquence avec du pseudo-code et représenter des bandes d'activation conditionnelles.

Diagramme de séquence: Les activations

Page 173: Uml

Exemple :

Diagramme de séquence: Les activations

Ne confondez lapériode d'activationd'un objet avec sacréation ou sadestruction. Unobjet peut êtreactif plusieurs foisau cours de sonexistence

Page 174: Uml

Une flèche qui symbolise un message peut être représentéeen oblique pour matérialiser les délais de transmission nonnégligeables par rapport à la dynamique générale del‟application.

Diagramme de séquence: Les contraintes temporelles

Page 175: Uml

Diagramme de séquence: Exemple

Page 176: Uml

Diagramme d'états-transitions

UML : Unified Modeling Language

Page 177: Uml

Ils ont pour rôle de représenter les traitements(opérations) qui vont gérer le domaine étudié. Ilsdéfinissent l'enchaînement des états de classe et font doncapparaître l'ordonnancement des travaux.

Le diagramme d'états-transition est associé à une classepour laquelle on gère différents états : il permet dereprésenter tous les états possibles ainsi que lesévénements qui provoquent les changements d'état.

Décrit le comportement des objets d‟une classe au moyend‟un automate d‟états associé à la classe.

Diagramme d’états-transitions: Objectif

Page 178: Uml

Un état correspond à une situation durable dans laquelle se trouvent les objets d'une classe.

On lui associe les règles de gestion et les activités particulières.

un état = étape dans le cycle de vie d‟un objet durant lequel

• il satisfait à certaines conditions

• il réalise certaines actions

• ou attend certains événements

La représentation symbolique des états d'une classe d'objets est la suivante (rectangle aux bords arrondis) :

Diagramme d’états-transitions: Notion d’état

Page 179: Uml

Chaque diagramme d‟états-transitions comprend un étatinitial.

Pour un niveau hiérarchique donné, il y a un et un seul étatinitial, mais plusieurs états finaux correspondant chacun àune fin de vie de l‟objet différente.

Il est possible de n‟avoir aucun état final : ex : un systèmeque ne s‟arrête jamais.

Diagramme d’états-transitions: Notion d’état (suite)

L'état initial d'un objet : il

est obligatoire et unique

L'état final : selon les

événements, il peut exister

plusieurs états finaux

Page 180: Uml

Un objet passe d'un état à un autre suite à un événement,certains événements pouvant ne pas provoquer dechangement d'état.

un événement est une information instantanée qui doit êtretraitée dans l’instant où il se produit.

Une transition est une relation entre 2 états. Elle estorientée ce qui signifie que l'état 2 est possible si certainsévénements sont vérifiés. Sa représentation symbolique estune flèche sur laquelle est annoté l'événement qui concourtau changement d'état.

Diagramme d’états-transitions: Evénements et transitions

Page 181: Uml

Exemple :

Diagramme d’états-transitions: Evénements et transitions

Une commande passera dans l'état "En attente" dès lors qu'elle aura été expédiée

La transition peut être soumise à la vérification d'une expressionappelée "expression de garde".Une garde est une condition booléenne qui permet ou nonle déclenchement d‟une transition lors de l’occurrence d‟unÉvénement.

Exemple : La commande n'est expédiée que si la

commande comporte au moins 3 produits.

Page 182: Uml

Diagramme d’états-transitions: actions et activités

Les opérations de description des classes sont décrites dans lediagramme d'étatstransitions sous forme d'actions et d'activités.

Une action est une opération élémentaire et instantanée. Elle peutêtre associée à l'événement lui-même ou à l'entrée dans l'état ouà la sortie de l'état.

• l‟action d’entrée (entry) est exécutée de manière instantanéeet atomique.

• l‟action de sortie (exit) est exécutée à la sortie de l‟état.

l‟action sur un événement interne (on) est exécutée lors del‟occurrence d‟un événement qui ne conduit pas à un autre état

Page 183: Uml

Diagramme d’états-transitions: actions et activités (suite)

Une activité est une opération qui dure et qui est donc associée àun état. Elle peut être séquentielle ou cyclique :

• La fin d'une activité séquentielle correspond à la sortie de l'état :une transition automatique est générée.

• Une activité cyclique ne se termine que par une transition de

sortie identifiée. Le mot clé do: indique une activité.

Lorsqu‟une activité se termine, les transitions automatiques (sansévénement), mais éventuellement protégées par des gardes, sontdéclenchées.

Page 184: Uml

Diagramme d’états-transitions: actions et activités (suite)

Six manières d‟associer uneopération à une transition :

• l‟action associée à la transitiond’entrée (op1)

• l‟action d’entrée de l’état (op2)

• l’activité dans l’état (op3)

• l’action de sortie de l’état (op4)

• l‟action associée aux événementsinternes (op5)

• l‟action associée à la transition dela sortie de l’état (op6)

Page 185: Uml

Diagramme d’états-transitions: hiérarchie d’états

En cours de modélisation avec un diagramme d‟états, il peutêtre judicieux de regrouper plusieurs états en un seul ou biende décomposer un état en plusieurs sous-états.

Exemple:

Ici, l‟état „état4‟ est un sur-état des états „état1‟, „état2‟, „état3‟. Les deux transitions qui rentrent dans l‟état „état4‟ spécifient dans quel sous-état on arrive. La transition sortante de l‟état „état4‟ exprime que, quel que soit le sous-état dans lequel l‟objet se trouve, si l‟événement „ev3‟ arrive, alors l‟objet sort de l‟état „état4‟.

Page 186: Uml

Diagramme d’états-transitions: Exemple

Diagramme d’états-transitions du Distributeur Automatique de Boissons

Page 187: Uml

Diagramme

d’activités

UML : Unified Modeling Language

Page 188: Uml

Les diagrammes d‟activités permettent de mettre l‟accentsur les traitements.

les diagrammes d'activité sont utilisés pour documenter ledéroulement des opérations dans un système.

En regardant un diagramme d'activité, vous trouverez deséléments des diagrammes d'état. En fait, le diagrammed'activité est une variante du Diagramme d'état où les„états‟ représentent des opérations, et les transitionsreprésentent les activités qui se produisent quandl'opération est terminée. L'usage général des diagrammesd'activité permet de faire apparaître les flots detraitements induits par les processus internes par rapportaux évènements externes.

Ce diagramme pourra comporter des synchronisations pourreprésenter les déroulements parallèles.

La notion de couloir d'activité va décrire les responsabilitésen répartissant les activités entre les différents acteursopérationnels.

Diagramme d’activités : Objectif

Page 189: Uml

Les diagrammes d‟activités représentent les synchronisations d‟activités au moyen de barres de synchronisation.

Formalisme: Exemple :

Diagramme d’activités : Synchronisation

Page 190: Uml

Un nœud d‟activité est un type d‟élément abstrait permettantde représenter les étapes le long du flot d‟une activité. Il existetrois familles de nœuds d‟activités :

les nœuds d‟exécutions:

les nœuds objets:

et les nœuds de contrôle.

Diagramme d’activités : Nœuds d’activités

Page 191: Uml

Un nœud exécutable est un nœud d‟activité qu‟on peut exécuter. Il possèdeun gestionnaire d‟exception qui peut capturer les exceptions levées parlenœud, ou un de ses nœuds imbriqués. Il y‟a deux types de la NœudExécutable:

Nœud d’action: est un nœud d‟activité exécutable qui constitue l‟unitéfondamentale de fonctionnalité exécutable dans une activité.

Nœud d’activité structurée: Un nœud d‟activité structurée est un nœudd‟activité exécutable qui représente une portion structurée d‟une activité donnéequi n‟est partagée avec aucun autre nœud structuré, à l‟exception d‟uneimbrication éventuelle.

Un nœud de contrôle est un nœud d‟activité abstrait utilisé pour coordonnerles flots entre les nœuds d‟une activité. Il existe plusieurs types de nœudsde contrôle :Nœud initial, nœud final, nœud de décision et de fusion, nœud de bifurcationet d‟union

Diagramme d’activités : Nœuds d’activités (suite)

Page 192: Uml

Nœud initial: Un nœud initial est un nœud de contrôle à partir duquel leflot débute lorsque l‟activité enveloppante est invoquée.

Nœud final: Un nœud final est un nœud de contrôle possédant un ouplusieurs arcs entrants et aucun arc sortant.

Nœud de décision: est un nœud de contrôle Qui permet de faire unchoix entre plusieurs flots sortants. Il possède un arc entrant etplusieurs arcs sortants. Ces derniers sont généralement accompagnés deconditions de garde pour conditionner le choix.

Nœud de fusion: Un nœud de fusion est un nœud de contrôle quirassemble plusieurs flots alternatifs entrants en un seul flot sortant.

Nœud de bifurcation: Un nœud de bifurcation, également appelé nœudde débranchement est un nœud de contrôle qui sépare un flot enplusieurs flots concurrents. Un tel nœud possède donc un arc entrant etplusieurs arcs sortants.

Nœud d’union: Un nœud d‟union, également appelé nœud de jointure estun nœud de contrôle qui synchronise des flots multiples. Un tel Nœudpossède donc plusieurs arcs entrants et un seul arc sortant.

Diagramme d’activités : Nœuds d’activités (suite)

Page 193: Uml

Diagramme d’activités : Nœuds d’activités (exemple)

Page 194: Uml

un nœud d’objet: permet de définir un flot d‟objet (un flot de données) dansun diagramme d‟activités. Ce nœud représente l‟existence d‟un objet généré parune action dans une activité et utilisé par d‟autres actions.

Pin d‟entrée ou de sortie: Pour spécifier les valeurs passées en argumentà une activité et les valeurs de retour, on utilise des nœuds d‟objetsappelés pins (pin en anglais) d‟entrée ou de sortie.

Les valeurs sont passées par copie : une modification des valeursd‟entrée au cours du traitement de l‟action n‟est visible qu‟à l‟intérieur del‟activité.

Diagramme d’activités : Nœuds d’activités (suite)

Page 195: Uml

Pin de valeur: Un pin valeur est un pin d‟entrée qui fournit une valeur à une action sans que cette valeur ne provienne d‟un arc de flot d‟objets. Un pin valeur est toujours associé à une valeur spécifique. Graphiquement, un pin de valeur se représente comme un pin d‟entrée avec la valeur associée écrite à proximité.

Flot d’objet: Un flot d‟objets permet de passer des données d‟une activité à une autre. Un arc reliant un pin de sortie à un pin d‟entrée. Il existe une autre représentation possible d‟un flot d‟objets, représenté par un rectangle dans lequel est mentionné le type de l‟objet (souligné).Le nom d‟un état, ou d‟une liste d‟états, de l‟objet peut être précisé entre crochets après ou sous le type de l‟objet. On peut également préciser des contraintes entre accolades, soit à l‟intérieur, soit en dessous du rectangle du nœud d‟objet.

Diagramme d’activités : Nœuds d’activités (suite)

Page 196: Uml

Nœud tampon central: est un nœud d‟objet qui accepte les entrées deplusieurs nœuds d‟objets ou produit des sorties vers plusieurs nœudsd‟objets.

Nœud de stockage des données: est un nœud tampon centralparticulier qui assure la persistance des données. Lorsqu‟une informationest sélectionnée par un flux sortant, l‟information est dupliquée et nedisparaît pas du nœud de stockage des données comme ce serait le casdans un nœud tampon central. Lorsqu‟un flux entrant véhicule une donnéedéjà stockée par le nœud de stockage des données, cette dernière estécrasée par la nouvelle.

Diagramme d’activités : Nœuds d’activités (suite)

Page 197: Uml

Le diagramme d'activités fait intervenir les acteurs de chaqueactivité. Chaque activité sera placée dans une colonne (couloir) quicorrespond à l'acteur.

permettent d‟organiser les nœuds d‟activités dans un diagrammed‟activités en opérant des regroupements.

Diagramme d’activités: Les couloirs d'activités

Page 198: Uml

Modélisation dynamique en UML :

Étude de cas

UML : Unified Modeling Language

Page 199: Uml
Page 200: Uml

Cas du publiphone :

Page 201: Uml

Cas du publiphone :

1. Le prix minimal d’une communication interurbaine est de 1€.

Page 202: Uml

Cas du publiphone :

1. Le prix minimal d’une communication interurbaine est de 1€.

2. Après l’introduction de la monnaie, l’utilisateur a 2 mn pour composer son numéro (ce délai est décompté par le standard).

Page 203: Uml

Cas du publiphone :

1. Le prix minimal d’une communication interurbaine est de 1€.

2. Après l’introduction de la monnaie, l’utilisateur a 2 mn pour composer son numéro (ce délai est décompté par le standard).

3. La ligne peut être libre ou occupée.

Page 204: Uml

Cas du publiphone :

1. Le prix minimal d’une communication interurbaine est de 1€.

2. Après l’introduction de la monnaie, l’utilisateur a 2 mn pour composer son numéro (ce délai est décompté par le standard).

3. La ligne peut être libre ou occupée.

4. Le correspondant peut raccrocher le premier.

Page 205: Uml

Cas du publiphone :

1. Le prix minimal d’une communication interurbaine est de 1€.

2. Après l’introduction de la monnaie, l’utilisateur a 2 mn pour composer son numéro (ce délai est décompté par le standard).

3. La ligne peut être libre ou occupée.

4. Le correspondant peut raccrocher le premier.

5. Le publiphone consomme de l’argent dès que l’appelé décroche et à chaque unité de temps (UT) générée par le standard.

Page 206: Uml

Cas du publiphone :

1. Le prix minimal d’une communication interurbaine est de 1€.

2. Après l’introduction de la monnaie, l’utilisateur a 2 mn pour composer son numéro (ce délai est décompté par le standard).

3. La ligne peut être libre ou occupée.

4. Le correspondant peut raccrocher le premier.

5. Le publiphone consomme de l’argent dès que l’appelé décroche et à chaque unité de temps (UT) générée par le standard.

6. On peut ajouter des pièces à tout moment.

Page 207: Uml

Cas du publiphone :

1. Le prix minimal d’une communication interurbaine est de 1€.

2. Après l’introduction de la monnaie, l’utilisateur a 2 mn pour composer son numéro (ce délai est décompté par le standard).

3. La ligne peut être libre ou occupée.

4. Le correspondant peut raccrocher le premier.

5. Le publiphone consomme de l’argent dès que l’appelé décroche et à chaque unité de temps (UT) générée par le standard.

6. On peut ajouter des pièces à tout moment.

7. Lors du raccrochage, le solde de monnaie est rendu.

Page 208: Uml

Identifier les acteurs et construire le diagramme des use case. Construire le diagramme de séquences système. Construire le diagramme de contexte dynamique. Élaborer le diagramme d’états du publiphone.

Démarche en plusieurs points :

Page 209: Uml

Le diagramme des use case

Page 210: Uml

Les acteurs

Le diagramme des use case

Page 211: Uml

«system»

Publiphone

«actor»

Standard

«system»

Téléphone

0..1

0..10..*

0..*0..1

0..1Appelant

Appelé

Les acteurs

Le diagramme des use case

Page 212: Uml

«system»

Publiphone

«actor»

Standard

«system»

Téléphone

0..1

0..10..*

0..*0..1

0..1Appelant

Appelé

Les acteurs

Le diagramme des use case

Page 213: Uml

«system»

Publiphone

«actor»

Standard

«system»

Téléphone

0..1

0..10..*

0..*0..1

0..1Appelant

Appelé

Les acteurs

Le diagramme des use case

Le diagramme des use case

Page 214: Uml

«system»

Publiphone

«actor»

Standard

«system»

Téléphone

0..1

0..10..*

0..*0..1

0..1Appelant

Appelé

Les acteurs

«actor»

Standard

Appelant téléphoner

Publiphone

secondaire

Le diagramme des use case

Le diagramme des use case

Page 215: Uml

Le diagramme de séquence sysème

Page 216: Uml

Le diagramme de séquence sysème

:appelant:publiphone

décrocherCombiné

:standard

introduirePièce(1€)

composerNuméro(04 78 77 23 23)

tonalité(libre)

introduirePièce(1€)

raccrocherCombiné

FinComm

UT

débuterComm

tonalité(libre)

acheminerNuméro(04 78 77 23 23)

incrémenterCrédit(1€)

vérifierPièce

taxer(1€)

vérifierPièce

incrémenterCrédit(1€)

taxer(1€)

Page 217: Uml

Le diagramme de contexte dynamique

Page 218: Uml

Représenter les messages émis et les messages reçus par le publiphone. Le diagramme de contexte dynamique

:appelant

:publiphone

:standard

Page 219: Uml

Représenter les messages émis et les messages reçus par le publiphone. Le diagramme de contexte dynamique

:appelant

:publiphone

:standard

décrocherCombiné ; introduirePièce(p) ; composerNuméro(n) ;

raccrocherCombiné ; voixAppelant

acheminerNuméro(n)

finComm ; voixAppelant

timerNumérotation

- Messages reçus déclenchent des transitions entre états.

Page 220: Uml

Représenter les messages émis et les messages reçus par le publiphone. Le diagramme de contexte dynamique

:appelant

:publiphone

:standard

décrocherCombiné ; introduirePièce(p) ; composerNuméro(n) ;

raccrocherCombiné ; voixAppelant

acheminerNuméro(n)

finComm ; voixAppelant

timerNumérotation

tonalité(type)

voixAppelé

rendrePièce

débuterComm

UT

tonalité(type)

voixAppelé

État(Ligne)

validitéNumérotation(v)

finComm

TimeroutNumérotation

- Messages émis donnent lieu à des actions sur les transitions.

- Messages reçus déclenchent des transitions entre états.

Page 221: Uml

Le diagramme d’états

Page 222: Uml

Démarche itérative et incrémentale : Représenter les séquences d’états décrivant le comportement d’une instance avec les

transitions associées.

Ajouter les transitions correspondant aux comportements ‘’alternatifs’’ ou d’exception.

Compléter les actions sur les transitions et les activités dans les états.

Structurer le diagramme en sous états et utiliser les notations (entry, exit, …)

Le diagramme d’états

Page 223: Uml

Démarche itérative et incrémentale : Représenter les séquences d’états décrivant le comportement d’une instance avec les

transitions associées.

Ajouter les transitions correspondant aux comportements ‘’alternatifs’’ ou d’exception.

Compléter les actions sur les transitions et les activités dans les états.

Structurer le diagramme en sous états et utiliser les notations (entry, exit, …)

Le diagramme d’états

raccroché

attente décrochage

attente validité

attente N°

attente pièce

communication

décrocherCombiné

raccrocherCombiné

composerNuméro

numéroValide

débuterComm

When(crédit 1€)

Événement interne

Réception message

Page 224: Uml
Page 225: Uml

raccroché

attente décrochage

attente validité

attente N°

attente pièce

communication

décrocherCombiné

raccrocherCombiné

composerNuméro

numéroValide

débuterComm

When(crédit 1€)

Événement interne

Réception message

Page 226: Uml

raccroché

attente décrochage

attente validité

attente N°

attente pièce

communication

décrocherCombiné

raccrocherCombiné

composerNuméro

numéroValide

débuterComm

When(crédit 1€)

Événement interne

Réception message

raccrocherCombiné

raccrocherCombiné

raccrocherCombiné

raccrocherCombiné

Page 227: Uml
Page 228: Uml

raccroché

décrocherCombiné

raccrocherCombiné

Page 229: Uml

décroché

raccroché

décrocherCombiné

raccrocherCombiné

Page 230: Uml

décroché

débuterComm

attente décrochage

attente validité

attente N°

attente pièce

communication

composerNuméro

numéroValide

When(crédit 1€)raccroché

décrocherCombiné

raccrocherCombiné

Page 231: Uml

décroché

débuterComm

attente décrochage

attente validité

attente N°

attente pièce

communication

composerNuméro

numéroValide

When(crédit 1€)raccroché

décrocherCombiné

raccrocherCombiné

Page 232: Uml

décroché

La solution bleue n’est pas intéressante

débuterComm

attente décrochage

attente validité

attente N°

attente pièce

communication

composerNuméro

numéroValide

When(crédit 1€)raccroché

décrocherCombiné

raccrocherCombiné

Page 233: Uml
Page 234: Uml

Modéliser l’ attente des pièces pour que le crédit devienne suffisant :

Page 235: Uml

Modéliser l’ attente des pièces pour que le crédit devienne suffisant :

introPièce(p)/incrémenterCrédit(p)

attente N°

attente pièceWhen(crédit 1€)

Page 236: Uml
Page 237: Uml

Le diagramme devient :

Page 238: Uml

Le diagramme devient :

décroché

raccroché

décrocherCombiné

/crédit=0

raccrocherCombiné /rendrePièce

UT[créditInuffisant]/taxer

débuterComm /taxer

attente décrochage

attente validité

attente N°

attente pièce

communicationcomposerNuméro

numéroValide

When(crédit 1€)

introPièce(p)/incrémenterCrédit(p)

Fin communication

UT[créditInsuffisant]/taxer

Page 239: Uml
Page 240: Uml

Modéliser la phrase 6 : « on peut rajouter des pièces à tout moment »

On peut rajouter une transition à chaque sous état (solution lourde, effet secondaire : à chaque introPièce(p) le publiphone revient à son état initial (attente pièce c.a.d. raccroché)).

On peut utiliser une transition interne introPièce(p)/incrémenterCrédit(p) à l’intérieur de l’état « décroché »

Page 241: Uml

Modéliser la phrase 6 : « on peut rajouter des pièces à tout moment »

On peut rajouter une transition à chaque sous état (solution lourde, effet secondaire : à chaque introPièce(p) le publiphone revient à son état initial (attente pièce c.a.d. raccroché)).

On peut utiliser une transition interne introPièce(p)/incrémenterCrédit(p) à l’intérieur de l’état « décroché »

décroché

raccroché

décrocherCombiné

/crédit=0

raccrocherCombiné /rendrePièce

UT[créditInsuffisant]/taxer

débuterComm /taxer

attente décrochage

attente validité

attente N°

attente pièce

communicationcomposerNuméro

numéroValide

When(crédit 1€)

Fin communication

UT[créditInsuffisant]/taxer

introPièce(p)/incrémenterCrédit(p)

Page 242: Uml

Modéliser la phrase 6 : « on peut rajouter des pièces à tout moment »

On peut rajouter une transition à chaque sous état (solution lourde, effet secondaire : à chaque introPièce(p) le publiphone revient à son état initial (attente pièce c.a.d. raccroché)).

On peut utiliser une transition interne introPièce(p)/incrémenterCrédit(p) à l’intérieur de l’état « décroché »

décroché

raccroché

décrocherCombiné

/crédit=0

raccrocherCombiné /rendrePièce

UT[créditInsuffisant]/taxer

débuterComm /taxer

attente décrochage

attente validité

attente N°

attente pièce

communicationcomposerNuméro

numéroValide

When(crédit 1€)

Fin communication

UT[créditInsuffisant]/taxer

introPièce(p)/incrémenterCrédit(p)

•Même la transition propre sur«communication» doit être transformée en transition interne.

•On préfère les transitions propres, car visuelles.

Page 243: Uml
Page 244: Uml

Les phrases 1, 5, 6, 7 dont modélisées.

Page 245: Uml

Les phrases 1, 5, 6, 7 dont modélisées.

Les phrases 2, 3 et 4 sont à compléter.

Page 246: Uml

Les phrases 1, 5, 6, 7 dont modélisées.

Les phrases 2, 3 et 4 sont à compléter.

Phrase 2 : deux messages sont introduits :

timerNumérotation envoyé par le publiphone au standard.

timeoutNumérotation envoyé par le standard au publiphone.

Page 247: Uml

Les phrases 1, 5, 6, 7 dont modélisées.

Les phrases 2, 3 et 4 sont à compléter.

Phrase 2 : deux messages sont introduits :

timerNumérotation envoyé par le publiphone au standard.

timeoutNumérotation envoyé par le standard au publiphone.

Utilisation du concept UML «send» pour envoyer un message

Page 248: Uml

Les phrases 1, 5, 6, 7 dont modélisées.

Les phrases 2, 3 et 4 sont à compléter.

Phrase 2 : deux messages sont introduits :

timerNumérotation envoyé par le publiphone au standard.

timeoutNumérotation envoyé par le standard au publiphone.

Utilisation du concept UML «send» pour envoyer un message

Phrase 3 : Le standard renvoie un message sur l’état de la ligne.

État(Ligne) (où état peut être libre, occupé, en dérangement).

Page 249: Uml

Les phrases 1, 5, 6, 7 dont modélisées.

Les phrases 2, 3 et 4 sont à compléter.

Phrase 2 : deux messages sont introduits :

timerNumérotation envoyé par le publiphone au standard.

timeoutNumérotation envoyé par le standard au publiphone.

Utilisation du concept UML «send» pour envoyer un message

Phrase 3 : Le standard renvoie un message sur l’état de la ligne.

État(Ligne) (où état peut être libre, occupé, en dérangement).

Phrase 4 : Transition entre les états «communication» et «fin communication».

Page 250: Uml
Page 251: Uml

Le diagramme d’états final est alors après ajouts et compléments :

Page 252: Uml

Le diagramme d’états final est alors après ajouts et compléments :

décroché

UT[créditInsuffisant]/taxer

débuterComm

/taxer

attente décrochage

attente validité

attente N°

attente pièce

Communication

do /transmettrevoix

composerNuméro

/send standard. acheminerNuméro

numéroValide

When(crédit 1€) /send standard.timerNumérotation

introPièce(p)/incrémenterCrédit(p)

Fin communication

ou erreur

UT[crédit

Insuffisant]

/taxer

raccrochage appelé

étatLigne(occupée)

timeoutNumérotation

timeoutappel

Numéro

invalide

phrase3

phrase4

Page 253: Uml

Le diagramme d’états final est alors après ajouts et compléments :

raccroché

Décrocher

Combiné

/crédit=0

raccrocherCombiné /rendrePièce

décroché

UT[créditInsuffisant]/taxer

débuterComm

/taxer

attente décrochage

attente validité

attente N°

attente pièce

Communication

do /transmettrevoix

composerNuméro

/send standard. acheminerNuméro

numéroValide

When(crédit 1€) /send standard.timerNumérotation

introPièce(p)/incrémenterCrédit(p)

Fin communication

ou erreur

UT[crédit

Insuffisant]

/taxer

raccrochage appelé

étatLigne(occupée)

timeoutNumérotation

timeoutappel

Numéro

invalide

phrase3

phrase4

Page 254: Uml

Conclusion :

UML : Unified Modeling Language

• UML intègre l’objet et a été conçu pour et autour de l’objet.• UML permet donc de modéliser une application selon unevision objet.

• L’appréhension d’UML est complexe car UML est à la fois :- une norme,- un langage de modélisation objet,- un support de communication,- un cadre méthodologique.

• Il faut penser ce langage comme une boite à outils richeet complexe; à utiliser intelligemment face à des besoinsprécis.

Page 255: Uml

UML : Unified Modeling Language

Page 256: Uml

FIN

UML : Unified Modeling Language

Page 257: Uml