Académique Documents
Professionnel Documents
Culture Documents
Uml Cours Slides PDF
Uml Cours Slides PDF
Pierre Grard
Universit de Paris 13 IUT Villetaneuse
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 1 / 342
Introduction la Modlisation Oriente Objet
Plan
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 2 / 342
Introduction la Modlisation Oriente Objet
Bibliographie UML
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 3 / 342
Introduction la Modlisation Oriente Objet
Bibliographie OCL
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 4 / 342
Introduction la Modlisation Oriente Objet
Matriel et logiciel
Systmes informatiques :
80 % de logiciel ;
20 % de matriel.
Depuis quelques annes, la fabrication du matriel est assure par
quelques fabricants seulement.
Le matriel est relativement able.
Le march est standardis.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 5 / 342
Introduction la Modlisation Oriente Objet
La crise du logiciel
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 6 / 342
Introduction la Modlisation Oriente Objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 7 / 342
Introduction la Modlisation Oriente Objet
Poids de la maintenance
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 8 / 342
Introduction la Modlisation Oriente Objet
Cycle de vie
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 9 / 342
Introduction la Modlisation Oriente Objet
Etapes du dveloppement
tude de faisabilit
Spcication
Dterminer les fonctionnalits du logiciel.
Conception
Dterminer la faon dont dont le logiciel fournit les direntes
fonctionnalits recherches.
Codage
Tests
Essayer le logiciel sur des donnes d'exemple pour s'assurer qu'il
fonctionne correctement.
Maintenance
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 10 / 342
Introduction la Modlisation Oriente Objet
Modlisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 11 / 342
Introduction la Modlisation Oriente Objet
Modle
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 12 / 342
Introduction la Modlisation Oriente Objet
Langages de modlisation
Un langage de modlisation doit dnir :
La smantique des concepts ;
Une notation pour la reprsentation de concepts ;
Des rgles de construction et d'utilisation des concepts.
Des langages dirents niveaux de formalisation
Langages formels (Z,B,VDM) : le plus souvent mathmatiques, au
grand pouvoir d'expression et permettant des preuves formelles sur les
spcications ;
Langages semi-formels (MERISE, UML...) : le plus souvent
graphiques, au pouvoir d'expression moindre mais plus faciles d'emploi.
L'industrie du logiciel dispose de nombreux langages de modlisation :
Adapts aux systmes procduraux (MERISE...) ;
Adapts aux systmes temps rel (ROOM, SADT...) ;
Adapts aux systmes objets (OMT, Booch, UML...).
Le rle des outils (Ateliers Gnie Logiciel) est primordial pour
l'utilisabilit en pratique des langages de modlisation.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 13 / 342
Introduction la Modlisation Oriente Objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 14 / 342
Introduction la Modlisation Oriente Objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 15 / 342
Introduction la Modlisation Oriente Objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 16 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
Diagrammes de cas d'utilisation
Diagrammes de classes
Diagrammes d'objets
Diagrammes de squences
3 UML et mthododologie
4 Modlisation avance avec UML
5 Bonnes pratiques de la modlisation objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 17 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 18 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 19 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Cas d'utilisation
Un cas d'utilisation est un service rendu l'utilisateur, il implique
des sries d'actions plus lmentaires.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 20 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 21 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Les acteurs impliqus dans un cas d'utilisation lui sont lis par une
association.
Un acteur peut utiliser plusieurs fois le mme cas d'utilisation.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 22 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 23 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 24 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 25 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 26 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Gnralisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 27 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 28 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
L'acteur est dit principal pour un cas d'utilisation lorsque l'acteur est
l'initiative des changes ncessaires pour raliser le cas d'utilisation.
Les acteurs secondaires sont sollicits par le systme alors que le plus
souvent, les acteurs principaux ont l'initiative des interactions.
Le plus souvent, les acteurs secondaires sont d'autres ystmes
informatiques avec lesquels le systme dvelopp est inter-connect.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 30 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Trouver le bon niveau de dtail pour les cas d'utilisation est un problme
dicile qui ncessite de l'exprience.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 31 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 32 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Description textuelle
Identication :
Nom du cas : Payer CB
Objectif : Dtailler les tapes permettant client de payer par carte
bancaire
Acteurs : Client, Banque (secondaire)
Date : 18/09
Responsables : Toto
Version : 1.0
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 33 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Description textuelle
Squencements :
Le cas d'utilisation commence lorsqu'un client demande le paiement
par carte bancaire
Pr-conditions
Le client a valid sa commande
Enchanement nominal
1 Le client saisit les informations de sa carte bancaire
2 Le systme vrie que le numro de CB est correct
3 Le systme vrie la carte auprs du systme bancaire
4 Le systme demande au systme bancaire de dbiter le client
5 Le systme notie le client du bon droulement de la transaction
Enchanements alternatifs
1 En (2) : si le numro est incorrect, le client est averti de l'erreur, et
invit recommencer
2 En (3) : si les informations sont errones, elles sont re-demandes au
client
Post-conditions
La commande est valide
Le compte de l'entreprise est crdit
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 33 / 342
Modlisation objet lmentaire avec UML Diagrammes de cas d'utilisation
Description textuelle
Rubriques optionnelles
Contraintes non fonctionnelles :
Fiabilit : les accs doivent tre scuriss
Condentialit : les informations concernant le client ne doivent pas
tre divulgus
Contraintes lies l'interface homme-machine :
Toujours demander la validation des oprations bancaires
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 33 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
Diagrammes de cas d'utilisation
Diagrammes de classes
Diagrammes d'objets
Diagrammes de squences
3 UML et mthododologie
4 Modlisation avance avec UML
5 Bonnes pratiques de la modlisation objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 34 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Objectif
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 35 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 36 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Concepts et instances
Une instance est la concrtisation d'un concept abstrait.
Concept : Stylo
Instance : le stylo que vous utilisez ce moment prcis est une instance
du concept stylo : il a sa propre forme, sa propre couleur, son propre
niveau d'usure, etc.
Un objet est une instance d'une classe
Classe : Vido
Objets : Pink Floyd (Live Pompey), 2001 Odysse de l'Espace etc.
Une classe spcie la manire dont tous les objets de mme type seront
dcrits (dsignation, label, auteur, etc).
Un lien est une instance d'association.
Association : Concept avis d'internaute qui lie commentaire et
article
Lien : instance [Jean avec son avis ngatif], [Paul avec son avis positif]
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 37 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Classes et objets
Une classe est la description d'un ensemble d'objets ayant une
smantique, des attributs, des mthodes et des relations en commun.
Elle spcie l'ensemble des caractristiques qui composent des objets
de mme type.
Une classe est compose
d'un nom, d'attributs et
d'oprations.
Selon l'avancement de la
modlisation, ces
informations ne sont pas
forcement toutes connues.
D'autres compartiments peuvent tre ajouts : responsabilits,
exceptions, etc.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 38 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Les attributs et les oprations sont les proprits d'une classe. Leur
nom commence par une minuscule.
Un attribut dcrit une donne de la classe.
Les types des attributs et leurs initialisations ainsi que les modicateurs
d'accs peuvent tre prciss dans le modle
Les attributs prennent des valeurs lorsque la classe est instancie : ils
sont en quelque sorte des variables attaches aux objets.
Une opration est un service oert par la classe (un traitement que les
objets correspondant peuvent eectuer).
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 39 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 40 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 41 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Mthodes et Oprations
Une opration est la spcication d'une mthode (sa signature)
indpendamment de son implantation.
UML 2 autorise galement la dnition des oprations dans n'importe
quel langage donn.
Exemples de mthodes pour l'opration fact(n:int):int :
{ // implementation iterative
int resultat =1~;
for ( int i = n ~; i >0~; i - -)
resultat *= i ~;
return resultat ~;
}
{ // implementation recursive
if ( n ==0 || n ==1)
return 1~;
return ( n * fact (n -1))~;
}
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 42 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 43 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Association
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 44 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 45 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 46 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 47 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Implantation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 48 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 49 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Implantation
public class Client {
Adresse facturation ;
public void setAdresse ( Adresse uneAdresse ){
if ( uneAdresse != null ){
this . facturation = uneAdresse ;
facturation . client = this ; // correspondance
}
}
}
public class Adresse {
Client client ;
public void setClient ( Client unClient ){
this . client = client ;
client . facturation = this ; // correspondance
}
}
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 50 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 51 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Implantation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 52 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 53 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Associations rexives
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 54 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Classe-association
Une association peut tre rane et avoir ses propres attributs, qui ne
sont disponibles dans aucune des classes qu'elle lie.
Comme, dans le modle objet, seules les classes peuvent avoir des
attributs, cette association devient alors une classe appele
classe-association .
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 55 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Associations n-aires
Une association n-aire lie plus de deux classes.
Notation avec un losange central pouvant ventuellement accueillir une
classe-association.
La multiplicit de chaque classe s'applique une instance du losange.
Les associations n-aires sont peu frquentes et concernent surtout les cas
o les multplicits sont toutes * . Dans la plupart des cas, on utilisera
plus avantageusement des classes-association ou plusieurs relations binaires.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 56 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 57 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 58 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Composition et agrgation
Ds lors que l'on a une relation du tout sa partie, on a une relation
d'agrgation ou de composition.
La composition est aussi dite agrgation forte .
Pour dcider de mettre une composition plutt qu'une
agrgation, on doit se poser les questions suivantes :
Est-ce que la destruction de l'objet composite (du tout) implique
ncessairement la destruction des objets composants (les parties) ?
C'est le cas si les composants n'ont pas d'autonomie vis--vis des
composites.
Lorsque l'on copie le composite, doit-on aussi copier les composants,
ou est-ce qu'on peut les rutiliser , auquel cas un composant peut
faire partie de plusieurs composites ?
Relation d'hritage
L'hritage une relation de spcialisation/gnralisation.
Les lments spcialiss
hritent de la structure
et du comportement des
lments plus gnraux
(attributs et oprations)
Exemple : Par hritage
d'Article, un livre a
d'oce un prix, une
dsignation et une
opration acheter(), sans
qu'il soit ncessaire de le
prciser
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 60 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Attention
Les extends Java n'a rien voir avec le extend UML vu pour les
cas d'utilisation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 61 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Encapsulation
L'encapsulation est un principe de conception consistant protger
le coeur d'un systme des accs intempestifs venant de l'extrieur.
En UML, utilisation de modicateurs d'accs sur les attributs ou les
classes :
Public ou + : proprit ou classe visible partout
Protected ou # . proprit ou classe visible dans la classe et par
tous ses descendants.
Private ou - : proprit ou classe visible uniquement dans la classe
Package, ou : proprit ou classe visible uniquement dans le
paquetage
Il n'y a pas de visibilit par dfaut .
Package (paquetage)
Les packages contiennent des lments de modle de haut niveau, comme
des classes, des diagrammes de cas d'utilisation ou d'autres packages. On
organise les lments modliss en packages et sous-packages.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 62 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Exemple d'encapsulation
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 64 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Terminologie de l'hritage
Une classe enfant peut rednir (mme signature) une ou plusieurs
mthodes de la classe parent.
Sauf indications contraires, un objet utilise les oprations les plus
spcialises dans la hirarchie des classes.
La surcharge d'oprations (mme nom, mais signatures des
oprations direntes) est possible dans toutes les classes.
Toutes les associations de la classe parent s'appliquent, par dfaut,
aux classes drives (classes enfant).
Principe de substitution : une instance d'une classe peut tre
utilise partout o une instance de sa classe parent est attendue.
Par exemple, toute opration acceptant un objet d'une classe Animal
doit accepter tout objet de la classe Chat (l'inverse n'est pas toujours
vrai).
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 65 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Classes abstraites
Une mthode est dite abstraite lorsqu'on connat son entte mais pas
la manire dont elle peut tre ralise.
Il appartient aux classes enfant de dnir les methodes abstraites.
Une classe est dite abstraite lorsqu'elle dnit au moins une mthode
abstraite ou lorsqu'une classe parent contient une mthode abstraite
non encore ralise.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 66 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Hritage multiple
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 67 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Interface
Le rle d'une interface est de regrouper un ensemble d'oprations
assurant un service cohrent oert par un classeur et une classe en
particulier.
Une interface est dnie comme une classe, avec les mmes
compartiments. On ajoute le strotype interface avant le nom de
l'interface.
On utilise une relation de type ralisation entre une interface et une
classe qui l'implmente.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 69 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Exemple d'interface
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 70 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Elments drivs
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 71 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Attributs de classe
Par dfaut, les valeurs des attributs dnis dans une classe dirent
d'un objet un autre. Parfois, il est ncessaire de dnir un attribut
de classe qui garde une valeur unique et partage par toutes les
instances.
Graphiquement, un attribut de classe est soulign
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 72 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Oprations de classe
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 73 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Classe paramtre
Pour dnir une classe gnrique et paramtrable en fonction de
valeurs et/ou de types :
Dnition d'une classe paramtre par des lments spcis dans un
rectangle en pointills ;
Utilisation d'une dpendance strotype bind pour dnir des
classes en fonction de la classe paramtre.
Java5 :
gnricit
C++ :
templates
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 74 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 75 / 342
Modlisation objet lmentaire avec UML Diagrammes de classes
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 76 / 342
Modlisation objet lmentaire avec UML Diagrammes d'objets
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
Diagrammes de cas d'utilisation
Diagrammes de classes
Diagrammes d'objets
Diagrammes de squences
3 UML et mthododologie
4 Modlisation avance avec UML
5 Bonnes pratiques de la modlisation objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 77 / 342
Modlisation objet lmentaire avec UML Diagrammes d'objets
Objectif
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 78 / 342
Modlisation objet lmentaire avec UML Diagrammes d'objets
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 79 / 342
Modlisation objet lmentaire avec UML Diagrammes d'objets
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 80 / 342
Modlisation objet lmentaire avec UML Diagrammes d'objets
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 80 / 342
Modlisation objet lmentaire avec UML Diagrammes d'objets
Liens
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 81 / 342
Modlisation objet lmentaire avec UML Diagrammes d'objets
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 82 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
Diagrammes de cas d'utilisation
Diagrammes de classes
Diagrammes d'objets
Diagrammes de squences
3 UML et mthododologie
4 Modlisation avance avec UML
5 Bonnes pratiques de la modlisation objet
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 83 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 84 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Exemple d'interaction
Cas d'utilisation :
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 85 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Exemple d'interaction
Diagramme de squences correspondant :
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 85 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Ligne de vie
Une ligne de vie reprsente un participant une interaction (objet ou
acteur).
nomLigneDeVie [ selecteur ]: nomClasseOuActeur
Dans le cas d'une collection de participants, un slecteur permet de
choisir un objet parmi n (par exemple objets[2]).
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 86 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Messages
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 87 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 88 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 89 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
class C {
class B {
op2 ( p : Type ){
C c;
...
op1 ( p : Type ){
}
c . op2 ( p );
op3 (){
c . op3 ();
...
}
}
}
}
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 90 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 91 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
La destruction d'un objet est matrialise par une croix qui marque la
n de la ligne de vie de l'objet.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 92 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
La che part d'une ligne de vie mais arrive sur un cercle indpendant
marquant la mconnaissance du destinataire.
Exemple : broadcast.
Un message trouv est tel que l'vnement de rception est connu,
mais pas l'vnement d'mission.
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 93 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Exemples :
appeler("Capitaine Hadock", 54214110)
afficher(x,y)
initialiser(x=100)
f(x:12)
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 94 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Messages de retour
Le rcepteur d'un message synchrone rend la main l'metteur du
message en lui envoyant un message de retour
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 95 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 96 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Fragment combin
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 97 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 98 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 DUT Informatique S2D 99 / 342
Modlisation objet lmentaire avec UML Diagrammes de squences
Oprateur de boucle
Oprateur parallle
L'oprateur par permet d'envoyer des messages en parallle.
Ce qui se passe de part et d'autre de la ligne pointille est indpendant.
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
Des besoins au code avec UML : une mthode minimale
Rational Unied Process
eXtreme programming
Processus de dveloppement
Mthode minimale
Objectif
Rsoudre 80% des problmes avec 20% d'UML.
Proposition d'une mthode archi-minimale :
Trs nettement moins complexe que RUP ;
Adapte pour projets modestes ;
Minimum vital pour qui prtend utiliser un peu UML.
Mthode minimale
Objectif
Rsoudre 80% des problmes avec 20% d'UML.
Inspire de
UML 2 - Modliser une application web
Pascal Roques
Editions Eyrolles (2006)
Mthode minimale
Objectif
Rsoudre 80% des problmes avec 20% d'UML.
Cas d'utilsation
Comment dnir les besoins ?
1 Identier les limites du systme ;
2 Identier les acteurs ;
3 Identier les cas d'utilisation ;
4 Structurer les cas d'utilisation en packages ;
5 Ajouter les relations entre cas d'utilisation ;
6 Classer les cas d'utilisation par ordre d'importance.
Exemple de classement
Modle du domaine
Le modle du domaine est constitu d'un ensemble de classes dans
lesquelles aucune opration n'est dnie.
Le modle du domaine dcrit les concepts invariants du domaine
d'application.
Exemple : Pour un logiciel de gestions de factures, on aura des classes
comme Produit, Client, Facture...
Peu importe que le logiciel soit en ligne ou non.
Peu importent les technologies employes.
Etapes de la dmarche :
1 Identier les concepts du domaine ;
2 Ajouter les associations et les attributs ;
3 Gnraliser les concepts ;
4 Structurer en packages : structuration selon les principes de cohrence
et d'indpendance.
Les concepts du domaine peuvent tre identis directement partir
de la connaissance du domaine ou par interview des experts mtier.
DUT Informatique S2D 113 /
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 342
UML et mthododologie Des besoins au code avec UML : une mthode minimale
Structuration en packages
Squences systme
Les squences systme formalisent les descriptions textuelles des cas
d'utilisation, en utilisant des diagrammes de squence.
Oprations systme
Les oprations systme sont des oprations qui devront tre ralises
par l'une ou l'autre des classes du systme.
Elles correspondent tous les messages qui viennent des acteurs vers
le systme dans les dirents DSS.
DUT Informatique S2D 118 /
Pierre Grard (P13 IUT Villetaneuse) Introduction UML 2 342
UML et mthododologie Des besoins au code avec UML : une mthode minimale
Classes participantes
Diagrammes d'interaction
Dans les diagrammes de squence systme, le systme tait vu comme
une bote noire (ligne de vie Systme ).
On sait maintenant de objets est compos le systme (diag. de classes
participantes).
Le systme n'est plus une bote noire.
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
Des besoins au code avec UML : une mthode minimale
Rational Unied Process
eXtreme programming
Vues du systme
Vue cas d'utilisation :
Description du systme comme un ensemble de transactions du point
de vue de l'utilisateur.
Vue logique :
Cre lors de la phase d'laboration et rane lors de la phase de
construction ;
Utilisation de diagrammes de classes, de squences...
Vue composants :
Description de l'architecture logicielle.
Vue dploiement :
Description de l'architecture matrielle du systme.
Vue implmentation :
Description des algorithmes, code source.
Un consensus sur :
La planication ;
L'estimation des cots ;
La dnition de l'ensemble des projets des parties concernes.
La comprhension commune des besoins.
Modlisation mtier
Analyse
Conception
Impmentation
Test
Dploiement
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
Des besoins au code avec UML : une mthode minimale
Rational Unied Process
eXtreme programming
Mthodes agiles
Comment mieux travailler avec le client pour nous focaliser sur ses
besoins les plus prioritaires et tre aussi ractifs que possible ?
eXtreme Programming
eXtreme Programming, une mthode base sur des pratiques qui sont
autant de boutons pousss au maximum .
Mthode qui peut sembler naturelle mais concrtement dicile
appliquer et matriser :
Rclame beaucoup de discipline et de communication (contrairement
la premire impression qui peut faire penser une bullition de
cerveaux individuels).
Aller vite mais sans perdre de vue la rigueur du codage et les fonctions
nales de l'application.
Force de XP : sa simplicit et le fait qu'on va droit l'essentiel, selon
un rythme qui doit rester constant.
Valeurs d'XP
Communication :
XP favorise la communication directe, plutt que le cloisonnement des
activits et les changes de documents formels.
Les dveloppeurs travaillent directement avec la matrise d'ouvrage.
Feedback :
Les pratiques XP sont conues pour donner un maximum de feedback
sur le droulement du projet an de corriger la trajectoire au plus tt.
Simplicit :
Du processus ;
Du code.
Courage :
D'honorer les autres valeurs ;
De maintenir une communication franche et ouverte ;
D'accepter et de traiter de front les mauvaises nouvelles.
Pratiques d'XP
XP est fond sur des valeurs, mais surtout sur 13 pratiques rparties
en 3 catgories :
Gestion de projets ;
Programmation ;
Collaboration.
Pratiques de programmation
Conception simple :
On ne dveloppe rien qui ne soit utile tout de suite.
Remaniement :
Le code est en permanence rorganis pour rester aussi clair et simple
que possible.
Tests unitaires :
Les dveloppeurs mettent en place une batterie de tests de
nonrgression qui leur permettent de faire des modications sans
crainte.
Tests de recette :
Les testeurs mettent en place des tests automatiques qui vrient que
le logiciel rpond aux exigences du client.
Ces tests permettent des recettes automatiques du logiciel.
Pratiques de collaboration
Responsabilit collective du code :
Chaque dveloppeur est susceptible de travailler sur n'importe quelle
partie de l'application.
Programmation en binmes :
Les dveloppeurs travaillent toujours en binmes, ces binmes tant
renouvels frquemment.
Rgles de codage :
Les dveloppeurs se plient des rgles de codage strictes dnies par
l'quipe elle-mme.
Mtaphore :
Les dveloppeurs s'appuient sur une description commune du design.
Intgration continue :
L'intgration des nouveaux dveloppements est faite chaque jour.
Cycle de vie XP
Exploration
Planning
Mise en production
Maintenance
Mort
Equipe XP
Dveloppeur
Client
Testeur
Tracker
Manager
Coach
Garant du processus XP :
Organise et anime les sances de planications ;
Favorise la crativit du groupe, n'impose pas ses solutions techniques ;
Coup de gueules. . .
Spcication avec XP
XP vs RUP
Inconvnients de XP :
Focalisation sur l'aspect individuel du dveloppement, au dtriment
d'une vue globale et des pratiques de management ou de formalisation ;
Manquer de contrle et de structuration, risques de drive.
Inconvnients de RUP :
Fait tout, mais lourd, usine gaz ;
Parfois dicile mettre en oeuvre de faon spcique.
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
4 Modlisation avance avec UML
Expression de contraintes avec OCL
Diagrammes d'tats-transitions
Digrammes d'activits
Diagrammes de communication
Diagrammes de composants et de dploiement
context CarteBleue
inv : distributeur
= compte . banque . consortium . distributeur
Caractristiques d'OCL
Points faibles
Pas aussi rigoureux que des langages de spcication formelle comme
VDM, Z ou B
Pas de preuves formelles possibles dans tous les cas
Puissance d'expression limite
Points forts
Relativement simple crire et comprendre
Trs bien intgr UML
Bon compromis entre simplicit et puissance d'expression
Passage vers direntes plateformes technologiques
OCL peut tre utilis pour dcrire trois types de prdicats avec les
mots cl :
inv: invariants de classes
inv : solde < dMax
pre: pr-conditions d'oprations
pre : montantARetirer >0
post: post-conditions d'oprations
post : solde > solde@pre
Set(X)
OrderedSet(X)
p . evaluation [ chefs ]
p . evaluation [ employes ]
p . evaluation [ chefs ]. note -> sum ()
b . compte [4029]
b . compte
compte
Invariant (inv)
Exemples d'invariants
context Personne
inv ~: age >0 and self . age <110
inv mariageLegal ~: marie implies age > 16
inv enfantsOk ~: enfants - > size () < 20
inv ~: not enfants - > includes ( self )
inv ~: enfants - > includesAll ( filles )
inv ~: enfants - > forall ( e | self . age - e . age <14)
Pr-condition et post-condition
Prdicats associs une opration
pr-conditions doivent tre vries avant l'excution
Les
post-conditions sont vraies aprs l'excution
Les
self dsigne l'objet sur lequel l'opration lieu
Dans une post-condition :
@pre permet de faire rfrence la valeur avant que opration ne soit
eectue
result designe le resultat de l'opration
ocsIsNew() indique si un objet n'existait pas dans l'tat prcdent
context Classe :: operation (...): ClasseValRetour
pre nom1 ~: param1 < ...
post ~: ... result > ...
Exemples de pr et post-conditions
context Personne
def : ancestres ~: Set ( Personne ) = parents
-> union ( parents . ancestres - > asSet ())
Integer
Valeurs : 1, -5, 34, 24343, ...
Oprations : +, -, *, div, mod, abs, max, min
Real
Valeurs : 1.5, 1.34, ...
Oprations : +, -, *, /, oor, round, max, min
Le type Integer est conforme au type Real
Type boolen
Boolean
Valeurs : true, false
Oprations : not, and, or, xor, implies, if-then-else-endif
L'valuation des oprateurs or, and, if est partielle
true or x est toujours vrai, mme si x est indni
false and x est toujours faux, mme si x est indni
Chanes de caractres
String
Valeurs :,'une phrase'
Oprations :
=
s.size()
s1.concat(s2), s1.substring(i1,i2)
s.toUpper(), s.toLower()
Jour::Mardi
not #Mardi avant UML2.0
Oprations
=, <>
Pas de relation d'ordre
Elments et singletons
Collections
Ensembles : Set(T)
Elments unique non ordonns
Ensembles ordonns : OrderedSet(T)
Elments uniques et ordonns
Sac : Bag(T)
Elments rptables sans ordre
Sequence : Sequence(T)
Elments rptables mais ordonns
Collection est le type de base Collection(T)
Oprations ensemblistes
Union : ens->union(ens)
Dierence : ens1-ens2
Ajout d'un lment : ens->including(elem)
Suppression d'un lment : ens->excluding(elem)
Conversion vers une liste : ens->asSequence()
Conversion vers un sac : ens->asBag()
Conv.vers un ens. ord. : ens->asOrderedSet()
Filtrage
self . enfants - > select ( age >10 and sexe = Sexe :: Masculin )
Quanticateurs
ForAll est le quanticateur universel
coll -> forAll( cond )
Exists est le quanticteur existentiel
coll -> exists( cond )
self . enfants - > forall ( age <10)
self . enfants - > exists ( sexe = Sexe :: Masculin )
Il est possible
de nommer la variable
d'expliciter son type
de parcourir plusieurs variables la fois
self . enfants
-> exists ( e1 , e2 | e1 . age = e2 . age and e1 < > e2 )
Unicit
self . enfants
-> forall ( e1 , e2 ~: Personne |
e1 <> e2 implies
e1 . prenom <> e2 . prenom )
T-uples
Champs nomms, pas d'ordre entre les champs
Tuples (valeurs)
Tuple { x = -1.5 , y =12.6}
Tuple { y =12.6 , x = -1.5}
Tuple { y : Real =12.6 , x : Real = -1.5}
Tuple { nom = ' dupont ' , prenom = ' leon ' ,
age =43}
A partir d'UML 2.0
Dnition de types tuples
TupleType ( x : Real , y : Real )
TupleType ( y : Real , x : Real )
TupleType ( nom : String , prenom : String ,
age : Integer )
Collections imbriques
Collections imbriques
Jusqu' UML 2.0 pas de collections de collections car peu utilis et plus
complexe comprendre
Mise plat intuitive lors de la navigation
self . parents . parents
Mise plat par default li l'opration implicite collect
A partir de UML 2.0 imbrications arbitraires des constructeurs de types
Set ( Set ( Personne ))
Sequence ( OrderedSet ( Jour ))
Itrateur gnral
L'itrateur le plus gnral est iterate
Les autres itrateurs (forall, exist, select, etc.) en sont des cas
particulier
coll -> iterate(
Exemple
enfants - > iterate (
e : Enfant ;
ac : Integer =0
| acc + e . age )
Collections ordonnes
Sequence
OrderedSet
. . . mais pas forcment tries
Squence simple (l'ordre compte) :
Sequence { 12, 23, 5, 5, 12 }
Squence trie :
Sequence { 5, 5, 12, 12, 23 }
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
4 Modlisation avance avec UML
Expression de contraintes avec OCL
Diagrammes d'tats-transitions
Digrammes d'activits
Diagrammes de communication
Diagrammes de composants et de dploiement
Automates
Etat et transition
Diagramme d'tat-transition
Evnement dclencheur
Les transitions d'un diagramme d'tats-transitions sont dclenches
par des vnements dclencheurs.
Un appel de mthode sur l'objet courant gnre un vnement de type
call.
Le passage de faux vrai de la valeur de vrit d'une condition
boolenne gnre implicitement un vnement de type change.
La rception d'un signal asynchrone, explicitement mis par un autre
objet, gnre un vnement de type signal.
L'coulement d'une dure dtermine aprs un vnement donn
gnre un vnement de type after. Par dfaut, le temps commence
s'couler ds l'entre dans l'tat courant.
Transition simple
Une transition entre deux tats est reprsente par un arc qui les lie
l'un l'autre.
Elle indique qu'une instance peut changer d'tat et excuter certaines
activits, si un vnement dclencheur se produit et que les conditions
de garde sont vries.
Sa syntaxe est la suivante :
nomEvenement ( params ) [ garde ] / activite
La garde dsigne une condition qui doit tre remplie pour pouvoir
dclencher la transition,
L'activit dsigne des instructions eectuer au moment du tir.
Point de dcision
Reprsentation d'alternatives
avec les points de jonction
Contrairement aux points de jonction, les points de choix ne sont pas de simples
racourcis d'criture.
Transition interne
entry dnit une activit eectuer chaque fois que l'on rentre
dans l'tat considr.
exit dnit une activit eectuer quand on quitte l'tat.
do dnit une activit continue qui est ralise tant que l'on se
trouve dans l'tat, ou jusqu' ce que le calcul associ soit termin.
On pourra dans ce dernier cas grer l'vnement correspondant la n
de cette activit (completion event).
Etat composite
Un tat composite, par opposition un tat dit simple , est
dcompos en deux ou plusieurs sous-tats.
Tout tat ou sous-tat peut ainsi tre dcompos en sous-tats
imbriqus sans limite a priori de profondeur.
Un tat composite est reprsent par les deux compartiments de nom
et d'actions internes habituelles, et par un compartiment contenant le
sous-diagramme.
Etat composite
Historique
Un pseudo-tat historique est not par un H cercl.
Une transition ayant pour cible le pseudo-tat historique est
quivalente une transition qui a pour cible le dernier tat visit dans
la rgion contenant le H.
H* dsigne un historique profond, cad un historique valable pour
tous les niveaux d'imbrication.
Etat concurrent
Avec un sparateur en pointills, on peu reprsenter plusieurs
automates s'excutant indpendamment.
Un objet peut alors tre simultanment dans plusieurs tats
concurrents.
Transition concurrente
Une transition fork correspond la cration de deux tats
concurrentes.
Une transition join correspond une barrire de synchronisation qui
supprime la concurrence.
Pour pouvoir continuer leur excution, toutes les tches concurrentes
doivent pralablement tre prtes franchir la transition.
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
4 Modlisation avance avec UML
Expression de contraintes avec OCL
Diagrammes d'tats-transitions
Digrammes d'activits
Diagrammes de communication
Diagrammes de composants et de dploiement
Activit
Les activits dcrivent un traitement.
Le ot de contrle reste dans l'activit jusqu' ce que les traitements
soient termins.
On peut dnir des variables locales une activit et manipuler les
variables accessibles depuis le contexte de l'activit (classe contenante
en particulier).
Les activits peuvent tre imbriques hirarchiquement : on parle alors
d'activits composites.
Transition
Activits structures
Partitions
Pour modliser un traitement mettant en oeuvre plusieurs classeurs,
on peut spcier le classeur responsable de chaque activit.
Les partitions permettent d'attribuer les activits des lments
particuliers du modle.
Une partition peut elle-mme tre dcompose en sous-partitions.
Pour spcier qu'une activit est eectue par un classeur particulier,
on la positionne dans la partiction correspondante.
Partitions multidimensionnelles
Partitions explicites
Pin
Flot de donnes
Un ot d'objets permet de passer des donnes d'une activit une
autre.
De fait, un arc qui a pour origine et destination un pin correspond un
ot de donnes.
Concurrence
Barre de synchronisation
Actions de communication
Les actions de
communication grent
le passage et le retour de
paramtres,
les mcanismes d'appels
d'oprations synchrones et
asynchrones.
Les actions de communication
peuvent tre employs comme
des activits dans les
diagrammes d'activit.
Actions de communication
Appel asynchrone
Exceptions
Rgions interruptibles
Parallel
Les excutions de l'activit interne sur les lments de la collection sont
indpendantes et peuvent tre ralises dans n'importe quel ordre ou
mme simultanment.
Iterative
Les occurrences d'excution de l'activit interne doivent s'enchaner
squentiellement, en suivant l'ordre de la collection d'entre.
Stream
Les lments de la collection sont passs sous la forme d'un ux de
donnes l'activit interne, qui doit tre adapte aux traitements de
ux.
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
4 Modlisation avance avec UML
Expression de contraintes avec OCL
Diagrammes d'tats-transitions
Digrammes d'activits
Diagrammes de communication
Diagrammes de composants et de dploiement
Diagrammes de squence
Diagrammes d'interaction
Rles et connecteurs
Types de messages
Messages simultans
Lorsque des messages sont envoys en parallle, on les numrote avec
des lettres
1.a, 1.b,... pour des messages simultans envoys en rponse un
message dont l'envoi portait le numro 1
Collaboration
Exemple de collaboration
Diagramme de collaboration
Collaborations et interactions
Les collaborations donnent lieu des interactions
Les interactions documentent les collaborations
Les collaborations organisent les interactions.
Les interactions se repsentent indiremment par des diagrammes de
communication ou de squence
Plan
1 Introduction la Modlisation Oriente Objet
2 Modlisation objet lmentaire avec UML
3 UML et mthododologie
4 Modlisation avance avec UML
Expression de contraintes avec OCL
Diagrammes d'tats-transitions
Digrammes d'activits
Diagrammes de communication
Diagrammes de composants et de dploiement
Composant
Un composant logiciel est une unit logicielle autonome au sein d'un
systme global ou d'un sous-systme.
C'est un classeur structur particulier, muni d'une ou plusieurs
interfaces requises ou oertes.
Diagramme de composant
Architecture matrielle
Noeud
Un noeud est une ressource sur laquelle des artefacts peuvent tre
dploys pour tre excuts.
C'est un classeur qui peut prendre des attributs.
Un noeud se reprsente par un cube dont le nom respecte la syntaxe
des noms de classes.
Les noeuds peuvent tre associs comme des classes et on peut
spcier des multiplicits.
Artefact
Plan
Attention
Dans l'ouvrage du GOF (et ce cours), utilisation d'OMT, anctre d'UML
Patrons de cration
Ils dnissent comment faire l'instanciation et la conguration des
classes et des objets.
Patrons de structure
Ils dnissent l'usage des classes et des objets dans des grandes
structures ainsi que la sparation entre l'interface et l'implmentation.
Patrons de comportement
Ils dnissent la manire de grer les algorithmes et les divisions de
responsabilits.
Cration :
Objets : Abstract factory, Builder, Prototype, Singleton
Classes : Factory method
Structure :
Objets : Adapter, Bridge, Composite, Decorator, Facade, Flyweight,
Proxy
Classes : Adapter
Comportement :
Objets : Chain of responsability, Command, Iterator, Memento,
Observer, State, Strategy
Classes : Interpreter, Template method
Creational patterns
Singleton
Intention :
Garantir qu'une classe n'a qu'une seule instance et fournit un point
d'accs global cette classe.
Indications :
S'il doit n'y avoir exactement qu'une instance de la classe et qu'elle
doit tre accessible aux clients de manire globale.
Si l'instance doit pouvoir tre sous-classe et si l'extension doit tre
accessible aux clients sans qu'ils n'aient modier leur code.
Motivation :
Spooler d'impression, gestionnaire d'achage
Gnrateur de nombres alatoires avec graine
Singleton : Structure
Singleton : Implmentation
A ajouter :
Attributs et mthodes spciques de la classe singleton en question.
Paramtres de constructeur si besoin .
Structural patterns
Formes de structure :
Comment les objets sont assembls
Les patterns sont complmentaires les uns des autre
Adapter
Intention :
Convertir l'interface d'une classe en une autre qui soit conforme aux
attentes d'un client. L'adaptateur permet des classes de collaborer
malgr des interfaces incompatibles.
Indications :
On veut utiliser une classe existante, mais son interface ne concide pas
avec celle escompte.
On souhaite crer une classe rutilisable qui collaborera avec des
classes encore inconnues, mais qui n'auront pas ncessairement
l'interface escompte
Adapter : Motivation
Adapter : Structure
Bridge
Intention :
Dcouple une abstraction de son implmentation an que les deux
lments puissent tre modis indpendamment l'un de l'autre
Indications :
On souhaite viter un lien dnitif entre une abstraction et son
implmentation, les deux devant pouvoir tre tendues par hritage
Les modications de l'implmentation d'une abstraction ne doievent
pas avoir de consquence sur le code client (pas de recompilation)
Bridge : Motivation
Bridge : Motivation
Bridge : Structure
Composite
Intention :
Composition d'objets en structures arborescentes pour reprsenter des
structures composant/compos.
Permettre au client de traiter de la mme manire les objets atomiques
et les combinaisons de ceux-ci.
Indications :
On souhaite reprsenter des hirarchies d'individus l'ensemble
On souhaite que le client n'ait pas se proccuper de la dirence
entre combinaisons d'objets et objets individuels
Composite : Motivation
Composite : Motivation
Composite : Structure
Behavioural patterns
Observer
Intention :
Dnir une dpendance de type un plusieurs de faon ce que,
quand un objet change d'tat, tous ceux qui en dpendent en soient
notis et automatiquement mis jour.
Indications :
Quand un concept a plusieurs reprsentations, l'une dpendant de
l'autre.
Quand un la modication d'un objet ncessite la modication dautres
objets, sans qu'on en connaisse le nombre exact.
Quand un objet doit notier d'autres objets avec lesquels il n'est pas
fortement coupl.
Observer Motivation
Observer Structure
Strategy
Intention :
Dnir une famille d'algorithmes en encapsulant chacun d'eux et en les
rendant interchangeables.
Indications :
Plusieurs classes apparentes ne dirent que par leur comportement.
On a besoin de plusieurs variantes d'un algorithme.
Un algorithme utilise des donnes que les clients n'ont pas connatre.
Une classe dnit un ensemble de comportements qui gurent dans des
oprations sous la forme de dclarations conditionnelles multiples.
Strategy : Motivation
Strategy : Structure