Langage de modélisation objet unifié

47
Cours n°2 UML 1

description

Langage de modélisation objet unifié. Cours n°2. Plan. Introduction Modéliser avec UML Diagrammes de cas d’utilisation Diagrammes de classes Notion de paquetage Diagrammes d’objets Diagrammes de séquence Diagrammes de collaboration Diagrammes d’états/transition Autres diagrammes. - PowerPoint PPT Presentation

Transcript of Langage de modélisation objet unifié

Page 1: Langage de modélisation objet unifié

Cours n°2

UML1

Page 2: Langage de modélisation objet unifié

Plan Introduction Modéliser avec UMLDiagrammes de cas d’utilisationDiagrammes de classesNotion de paquetageDiagrammes d’objetsDiagrammes de séquenceDiagrammes de collaborationDiagrammes d’états/transitionAutres diagrammes

UML2

Page 3: Langage de modélisation objet unifié

Diagrammes de classe

UML3

Page 4: Langage de modélisation objet unifié

Vue statiqueVues statiques du système :

diagrammes de cas d'utilisation (Fonctionnel)    diagrammes de classesdiagrammes d'objets diagrammes de composants diagrammes de déploiement

Vues dynamiques du système :diagrammes de séquence diagrammes de collaboration diagrammes d'états-transitions diagrammes d'activités

UML4

Page 5: Langage de modélisation objet unifié

Class diagramsExpriment la structure statique du système en

terme de classes et de relations entre ces classesUne classe est un type abstrait caractérisé par

des propriétés (attributs et méthodes) communes à un ensemble d'objets et permettant de créer des objets ayant ces propriétés 

Ne pas représenter les attributs ou les méthodes d'une classe sur un diagramme, n'indique pas que cette classe n'en contient pas.Il s'agit juste d'un filtre visuel, destiné à donner un certain niveau d'abstraction à son modèle

De même, ne pas spécifier les niveaux d’accès des membres d'une classe ne veut pas dire qu'on ne représente que les membres publics

UML5

Page 6: Langage de modélisation objet unifié

Convention graphique d’une classe

UML6

Nom_de_classe

Attributs

Méthodes

Nom_de_classe

Page 7: Langage de modélisation objet unifié

Syntaxe Attribut :

nom : type = val_initialeMéthode :

nom (arg : type = val_defaut, …) : type_retour

Niveaux d’accès :Public + Protected #Private -

UML7

Page 8: Langage de modélisation objet unifié

Exemples / niveaux d’abstraction

UML8

voiture

Classe non documentée

Page 9: Langage de modélisation objet unifié

Exemples / niveaux d’abstraction

UML9

voitureimmatriculationcouleurmarquepuissancepoidsdatepropriétaire

voiture

demarrerarreterconduirevendre

Classe non documentée Classe documentée

attributs

méthodes

Page 10: Langage de modélisation objet unifié

Exemples / niveaux d’abstraction

UML10

voitureimmatriculationcouleurmarquepuissancepoidsdatepropriétaire

voiture

demarrerarreterconduirevendre

voiture+ immatriculation : string+ couleur : string+ marque : string# puissance : int# poids : int- date : Date- propriétaire : string+ demarrer()- contact() : bool+ conduire(a : string = « marseille », b : string)+ vendre(prix : float)

Classe non documentéeClasse documentée Classe détaillée

attributstypes

méthodesprototype

Niveaux d’accès

Page 11: Langage de modélisation objet unifié

Sémantique Un diagramme de classes est une collection d'éléments de

modélisation statiques (classes, paquetages...), qui montre la structure d'un modèle

  Un diagramme de classes fait abstraction des aspects

dynamiques et temporels 

Pour un modèle complexe, plusieurs diagrammes de classes complémentaires doivent être construits

On peut par exemple se focaliser sur : les classes qui participent à un cas d'utilisation (cf.

collaboration) les classes associées dans la réalisation d'un scénario précis les classes qui composent un paquetage la structure hiérarchique d'un ensemble de classes

UML11

Page 12: Langage de modélisation objet unifié

Association Une association exprime une connexion

sémantique entre deux classes 

L'association est instanciable dans un diagramme d'objets ou de collaboration, sous forme de liens entre objets issus de classes associées

UML12

Page 13: Langage de modélisation objet unifié

Association classique

UML13

Personne Entreprise

travaille

Page 14: Langage de modélisation objet unifié

Association en forme verbale activePrécise le sens de lecture

UML14

Personne Hôtel

< héberge

Page 15: Langage de modélisation objet unifié

Rôles

UML15

Personne Entrepriseemployé employeur

Personne Hôtelclient

personnel

Page 16: Langage de modélisation objet unifié

Cardinalités Nombre d’éléments participant à la relationx : exactement "x" (entier naturel > 0)

exemples : "1", "7"

x..y : de "x" à "y" (entiers naturels ou variables avec y > x)exemples : "0..1", "3..n", "1..31"

* : plusieurs (équivalent à "0..n" et "0..*") x..* : "x" ou plus

exemples : "0..*", "5..*"

UML16

Page 17: Langage de modélisation objet unifié

Cardinalités

UML17

mariéA

Homme Femme

Maison

0..1 0..1

Personne * 1

0..*2

parent

enfant

Page 18: Langage de modélisation objet unifié

Relation de dépendancerelation d'utilisation unidirectionnelle une modification de l'élément dont on

dépend, peut nécessiter une mise à jour de l'élément dépendant

UML18

Fenetre EvenementSouris

Page 19: Langage de modélisation objet unifié

Association à navigabilité restreinte Par défaut, une association est navigable

dans les deux sensLa réduction de la portée de l'association

peut être exprimée dans un modèle pour indiquer que les instancesinstances d'une classe ne "connaissent" pas les instances d'une autre

UML19

Electeur Candidat

vote0..1*

Page 20: Langage de modélisation objet unifié

Association n-aireassociation reliant plus de deux classes

UML20

Entreprise

Travaux Copropriété

Page 21: Langage de modélisation objet unifié

Classe d’associationclasse réalisant la navigation entre les

instances d'autres classes

UML21

Professeur

Salle

jourheureduree

Cours

Etudiant Professeur

Salle

<<association ternaire>>

Cours Etudiant

jourheureduree

Page 22: Langage de modélisation objet unifié

Association qualifiéeUne association qualifiée met en relation

deux classes sur la base d’un attribut spécifique appelé « clé »

UML22

Banque 1..n*numCompte Personne

Page 23: Langage de modélisation objet unifié

Contraintes sur les associationsLes contraintes sont des expressions qui

précisent le rôle ou la portée d'un élément de modélisation (elles permettent d'étendre ou préciser sa sémantique)

Sur une association, elles peuvent restreindre le nombre d'instances visées ("expressions de navigation") 

Les contraintes peuvent s'exprimer en langage naturel. Graphiquement, il s'agit d'un texte encadré d'accolades

UML23

Page 24: Langage de modélisation objet unifié

Principales contraintesContrainte {ordonnée} : une relation

d’ordre décrit les objets

Contrainte {sous-ensemble} : une collection est incluse dans une autre collection

Contrainte {ou-exclusif} : pour un objet donné, une seule association est valide

UML24

Page 25: Langage de modélisation objet unifié

Exemples

25

peint

Peintre Tableau

Armée

1 1..n

Personne

{sous-ensemble}

{ordonnée}

général

militaire

BTSPersonne

étudiant

enseignant{ou-exclusif}

Page 26: Langage de modélisation objet unifié

Agrégation L'agrégation est une association non

symétrique, qui exprime un couplage fort et une relation de subordination

Représente une relation de type "ensemble / élément"

A un même moment, une instance d'élément agrégé peut être liée à plusieurs instances d'autres classes : l'élément agrégé peut être partagé

Une instance « ensemble » peut exister sans élément (et inversement) : Cycles de vies indépendants

UML26

Page 27: Langage de modélisation objet unifié

AgrégationUne agrégation peut notamment (mais pas

nécessairement) exprimer : qu'une classe (un "élément") fait partie d'une

autre ("l‘ensemble"), qu'un changement d'état d'une classe, entraîne

un changement d'état d'une autre, qu'une action sur une classe, entraîne une

action sur une autre

UML27

Page 28: Langage de modélisation objet unifié

Exemple

UML28

Pièce Mur

Page 29: Langage de modélisation objet unifié

CompositionCas particulier d’agrégation : contenance

physiqueReprésente une relation de type "composé /

composant"Les cycles de vies des composants et du

composé sont liés : si le composé est détruit (ou copié), ses composants le sont aussi 

A un même moment, une instance de composant ne peut être liée qu'à un seul composé

UML29

Page 30: Langage de modélisation objet unifié

Exemple

UML30

Voiture

Carrosserie Moteur Piston

Page 31: Langage de modélisation objet unifié

Héritage : convention graphique

UML31

Super_classe

Sous_classe

Page 32: Langage de modélisation objet unifié

Spécialisation

UML32

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Page 33: Langage de modélisation objet unifié

Spécialisation

UML33

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Page 34: Langage de modélisation objet unifié

Généralisation

UML34

VehiculemarquemodeleVitesseMax

VoiturePlaquecylindree

BateautirantEauvoiles

AvionaltitudeMaxportee

Page 35: Langage de modélisation objet unifié

Notion de paquetage

UML35

Page 36: Langage de modélisation objet unifié

PackagesLes paquetages sont des éléments d'organisation

des modèlesIls regroupent des éléments de modélisation, selon

des critères purement logiques  Ils permettent d'encapsuler des éléments de

modélisationIls permettent de structurer un système en

catégories (vue logique) et sous-systèmes (vue des composants)

Ils servent de "briques" de base dans la construction d'une architecture

Ils représentent le bon niveau de granularité pour la réutilisation

Les paquetages sont aussi des espaces de nomsUML

36

Page 37: Langage de modélisation objet unifié

Relation entre paquetageDépendance :

Au moins un élément du paquetage source utilise les services d’au moins un des éléments du paquetage destination

Héritage :Au moins un élément du paquetage source

spécialise (est dérivée d’) au moins un des éléments du paquetage destination

UML37

Page 38: Langage de modélisation objet unifié

Convention graphique

UML38

P1 P2

P3

P4

P5 P6

Page 39: Langage de modélisation objet unifié

Exemple

UML39

Voitures

MotorisationVoiture

Piston Carbu

Boite MoteurPorte

Roue Phare

Page 40: Langage de modélisation objet unifié

Diagrammes d’objets

UML40

Page 41: Langage de modélisation objet unifié

Object diagramReprésentent un ensemble d’objets et leurs

liensSont des vues statiques des instances des

éléments qui apparaissent dans les diagrammes de classes

Présentent la vue de conception d’un système, exactement comme les diagrammes de classes, mais à partir de cas réel ou de prototypes

Est une instance d’un diagramme de classesLes diagrammes de classes peuvent aussi

contenir des objets

UML41

Page 42: Langage de modélisation objet unifié

UML42

:Voiture Instance anonyme de la classe voiture

golf:Voiture Instance nommée de la classe voiture

golf Instance nommée d’une classe anonyme

golf:Voiture

Couleur = ""bleu M "" Puissance = 7ch

Spécification des attributs

golf:Vehicule::Voiture::Berline Spécification du chemin complet

:VoitureCollection d’instance (tableau)

Page 43: Langage de modélisation objet unifié

Objets composites

UML43

:Velo

:Roue 2

:Pedalier 1

:Derailleur 1

:Pedale 1

Page 44: Langage de modélisation objet unifié

Diagrammes d’objets

UML44

:Personne

:Voiture

:Maison :Ville

Page 45: Langage de modélisation objet unifié

Diagrammes d’objets

UML45

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur

Page 46: Langage de modélisation objet unifié

Diagrammes d’objets

UML46

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur Proprietaire=« ORT »

Objet à état précis

Page 47: Langage de modélisation objet unifié

Diagrammes d’objets

UML47

:Bus

:Destination

:Moteur