Langage de modélisation objet unifié

Post on 07-Jan-2016

71 views 1 download

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é

Cours n°2

UML1

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

Diagrammes de classe

UML3

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

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

Convention graphique d’une classe

UML6

Nom_de_classe

Attributs

Méthodes

Nom_de_classe

Syntaxe Attribut :

nom : type = val_initialeMéthode :

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

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

UML7

Exemples / niveaux d’abstraction

UML8

voiture

Classe non documentée

Exemples / niveaux d’abstraction

UML9

voitureimmatriculationcouleurmarquepuissancepoidsdatepropriétaire

voiture

demarrerarreterconduirevendre

Classe non documentée Classe documentée

attributs

méthodes

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

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

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

Association classique

UML13

Personne Entreprise

travaille

Association en forme verbale activePrécise le sens de lecture

UML14

Personne Hôtel

< héberge

Rôles

UML15

Personne Entrepriseemployé employeur

Personne Hôtelclient

personnel

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

Cardinalités

UML17

mariéA

Homme Femme

Maison

0..1 0..1

Personne * 1

0..*2

parent

enfant

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

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*

Association n-aireassociation reliant plus de deux classes

UML20

Entreprise

Travaux Copropriété

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

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

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

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

Exemples

25

peint

Peintre Tableau

Armée

1 1..n

Personne

{sous-ensemble}

{ordonnée}

général

militaire

BTSPersonne

étudiant

enseignant{ou-exclusif}

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

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

Exemple

UML28

Pièce Mur

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

Exemple

UML30

Voiture

Carrosserie Moteur Piston

Héritage : convention graphique

UML31

Super_classe

Sous_classe

Spécialisation

UML32

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Spécialisation

UML33

OeuvreTitreAuteurReference

LivreNbPages

FilmDuree

OperaOrchestre

Roman BD

Généralisation

UML34

VehiculemarquemodeleVitesseMax

VoiturePlaquecylindree

BateautirantEauvoiles

AvionaltitudeMaxportee

Notion de paquetage

UML35

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

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

Convention graphique

UML38

P1 P2

P3

P4

P5 P6

Exemple

UML39

Voitures

MotorisationVoiture

Piston Carbu

Boite MoteurPorte

Roue Phare

Diagrammes d’objets

UML40

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

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)

Objets composites

UML43

:Velo

:Roue 2

:Pedalier 1

:Derailleur 1

:Pedale 1

Diagrammes d’objets

UML44

:Personne

:Voiture

:Maison :Ville

Diagrammes d’objets

UML45

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur

Diagrammes d’objets

UML46

:Personne

:Personne

:Ordinateur :VideoProjecteur

eleve

professeur Proprietaire=« ORT »

Objet à état précis

Diagrammes d’objets

UML47

:Bus

:Destination

:Moteur