Beruflich Dokumente
Kultur Dokumente
Plan
Diagrammes de classe Diagrammes d'objets Diagrammes d'interaction Mthode des CRC Cards Transition vers UML Mapping UML Java
2
Historique dUML
Booch : particulirement adapte au design et limplmentation OOSE (Jacobson) : expression des besoins OMT-2 (Rumbaugh) : analyse et applications orientes-donnes
1994 : Rumbaugh rejoint Booch chez Rational 1995 : Jacobson rejoint Rational 14 novembre 1997 : UML adopt par lOMG
3
Quest-ce quUML ?
UML est un langage pour visualiser, spcifier, concevoir et documenter les artefacts dun systme base logicielle
Langage : lexique (graphique), syntaxe (diagrammes), smantique Visualiser : reprsentation graphique Spcification : prcis, complet, non-ambigu Construction : translation vers des langages de programmation Documentation : des besoins aux tests
Le Langage
Lexique : les mots du dictionnaire Dans UML : lexique graphique (symboles) syntaxe = Rgles par lesquelles les lments du lexique (e.g., mots) sont assembles en expressions (e.g., phrases, clauses) smantique = Rgles par lesquelles on donne un sens aux expressions syntaxiques
UML Notation Guide dfinit la syntaxe graphique d'UML UML Semantics dfinit la smantique d'UML
5
Des choses
Structurelles
Comportementales
Des diagrammes
6
isomorphes
C o m p o n e n tD ia g r a m
Com ponent
D e p lo y e d u p o n
S e q u e n c e D ia g ra m
M ir ro rs
S h o w s b e h a v io r fo r
Diagrammes prescriptifs : dcrivent le systme tel quil doit tre ou se comporter tout moment
Modle structurel
Une vue d'un systme qui met l'accent sur la structure des objets, avec leurs classificateurs, leurs relations, leurs attributs et leurs oprations
10
Description
Syntaxe
Description dun ensemble dobjets qui ont mme attributs, oprations, mthodes, relations et smantique. Ensemble nomm doprations qui interface caractrisent le comportement dun lment. composant Partie physique et remplaable dun systme qui encapsule une implmentation et fournit la ralisation dun ensemble dinterfaces. Objet physique qui reprsente une Nud ressource de calcul
interface
11
Elment
contrainte
Description
Condition ou restriction smantique.
Syntaxe
{constraint}
Mcanisme dextension.
12
13
Relation
ralisation
Description
Relation entre spcification et implmentation.
Syntaxe
14
Diagrammes structurels
Les entits qui existent (e.g., classes, interfaces, composants, nuds) Leur structure interne Leurs relations avec d'autres entits Des informations temporelles ou dynamiques Diagrammes structurels statiques
Ne montrent pas
Catgories
Diagrammes d'implmentation
15
Diagrammes de classes
Les diagrammes de classes reprsentent un ensemble de classes, d'interfaces et de collaborations, ainsi que leurs relations. Ce sont les diagrammes les plus frquents dans la modlisation des systmes objets. Ils prsentent la vue de conception statique d'un systme.
16
Les classes
La classe est une description abstraite dun ensemble dobjets La classe peut tre vue comme la factorisation des lments communs un ensemble dobjets La classe dcrit le domaine de dfinition dun ensemble dobjets
Window
size: Size visibility: boolean display() hide()
17
- 17 -
Description d'un ensemble d'objets qui ont mme structure et mme smantique
18
Diagrammes de classe.
nom de la classe attributs nom_attr : type = valeur initiale oprations nom_op (arg_list):type parametre
nom de la classe - variable prive + variable publique # variable protge - opration prive + opration publique # opration protge nom de lassociation une classe nom de la classe association attributs operations
/ association drive rle 1 une classe nom de lassociation rle 2 une autre classe
19
- 19 -
P e rso n n e - N a is s a n c e : D a te - N o m : S tr in g - P r e n o m : S tr in g + a g e () : in t
20
Public (+)
Visible et utilisable par toute autre classe (utilisation trs limite pour les attributs) Visible et utilisable par toute spcialisation de la classe Visible uniquement par la classe elle-mme Mme smantique que dans java (package)
21
Protected (#)
Private (-)
Sinon
Oprations (mthodes)
Implmentation d'un service offert par l'objet, correspondant une partie de ses responsabilits
Accesseurs : une opration qui renvoie une information sur l'tat de l'objet (fonction) Modifieur : une opration qui modifie l'tat de l'objet (procdure) Constructeur : une opration de la classe qui permet d'initialiser une nouvelle instance
22
Attributs/oprations: Syntaxe
Attributs :
exemples :
Oprations :
exemples
24
Interfaces
Classes, paquetage, composants Pas dattributs ni dassociations Peut tre cible dune association monodirectionnelle
25
Associations
Nom de l'association Sens de lecture Cardinalits Rles Visibilit des rles Navigabilit
26
Associations
R le s
- in te r lo c u te u r Reprsentant 1
V is ite
- C lie n t le 1 ..*
Client
C a r d in a lit s
27
UML / Entit-Association
Rpertoire 1 Contient monRpertoire * mesFichiers Fichier nom : String
Rpertoire
0,n contient
Contenir
28
U n iversit
U n iversit
Etudie dans
Etu d ian t
29
- 29 -
Navigabilit
tant donne une association non dcore entre deux classes, on peut naviguer d'un type d'objet vers un autre type d'objet. par dfaut une association est navigable dans les deux sens. une indication de navigabilit suggre en gnral qu' partir d'un objet une extrmit on peut directement et facilement atteindre l'un des objets l'autre extrmit. lors d'une mise en uvre programme, ceci peut suggrer par exemple qu'un objet source mmorise une rfrence directe aux objets cible.
Exemple : tant donn un utilisateur, on dsire pouvoir accder ses mots de passe
tant donn un mot de passe, on ne souhaite pas pouvoir accder l'utilisateur correspondant
31
Association directionnelle
Un cours connat les livres qui lui sont ncessaires mais pas le contraire. Si la flche est absente, la navigation est bidirectionnelle
Livre Cours
Association directionnelle
Directionalit
Un dtail d'implmentation qui n'est pas toujours ncessaire dans les phases initiales de conception. Impact important sur les techniques d'implmentation et sur les performances.
+Employeur
+Enseignant
Une personne peut tre considre comme tudiant ou enseignant du point de vue de l'universit
- 34 -
34
Supervises
Salesperson
1 0..1 M .. N * 0 .. * 1 .. *
37
Il doit y avoir une mthode publique dans personne qui renvoie une collection d'instances de Company exemple java :
public Collection<Company> getEmployers();
Company Name Address Person Name Insurance no. Address
-employee 1..*
Les classes-associations
D * *
39
Associations
Company
employer
Job
1..
employee
Person
Job
salary
worker
boss
0..1
Manages
40
Associations ternaires
Homme
1 1
Femme
Le mari Mariage
La marie
Autorit lgale
1
Maire
41
Association qualifie
Une association qualifie met en relation deux classes sur la base d'une clef. La technique associe de mise en uvre est souvent un tableau associatif ou un dictionnaire.
Une personne peut tre associe plusieurs banques. tant donns une banque et un numro de compte, il y a au plus une personne ayant ce numro de compte cette banque. Fichier Rpertoire 1 Contient * nom : String size : int Fichier Rpertoire
nom : String
Contient
0..1
size : int
42
Agrgation et composition
Connexions smantiques bidirectionnelles antisymtriques Forme de relation qui exprime un couplage plus fort entre les instances Reprsentation des relations de type :
43
- 43 -
Agrgation : exemple
Car 2..*
Door la partie
1..*
House
le tout
44
Agrgation (suite)
La voiture est bleue, donc sa porte est bleue. La porte est une partie de la voiture, la voiture n'est pas une partie de la porte
UML Class Diagrams 45
Composition
La partie appartient un seul tout Le compos gre la cration et la destruction de ses composants
Circle Polygon
Point
3..*
Circle
Point
Composition = Attributs
Une fentre est compose dun titre, dun corps et de 2 scrollbars
scrollbar Slider
Agrgation / Composition
PolygonPoint : Agrgation
On peut rajouter des points pendant la dure de vie du Polygone GraphicData est cr ou dtruit en mme temps que le polygone
PolygonGraphicData : Composition
48
49
50
Exemple
51
Relation de Gnralisation
La classe spcialise (sous-classe) hrite des mthodes des attributs et des relations de la classegnrale (super-classe) Elle peut ajouter des attributs / mthodes Elle peut redfinir le comportement des mthodes (mais pas les attributs !) SuperClasse
SousClasse
52
Hirarchies de gnralisation
Arborescences de classes dabstraction croissante
Super-classe Classe plus gnrale
53
Principe de substituabilit
Programmeur
Hritage du comportement
Super-classe Thermostat
Sous-classe
DigitalThermostat
AnalogThermostat
Anything a superclass can do its subclasses can do. These are known as is-a relationships (a DigitalThermostat is a Thermostat)
55
Exemple
56
Gnralisation : notation
Shape Separate Target Style
Polygon
Ellipse
Spline
. ..
Shape
Polygon
Ellipse
Spline
...
57
Hirarchies d'hritage
Super-classe Thermostat
Sous-classe
DigitalThermostat
AnalogThermostat
Sous-sous-classe
ProgrammableThermostat
Inheritance allows us to organize classes into hierarchies based on their inheritance relationships. Inheritance is transitive subclasses inherit state and behavior from superclass.
58
Formes d'hritage
Hritage de spcification
La super-classe spcifie un comportement qui sera implment dans les sousclasses, mais pas dans la super-classe. Ca permet de garantir que toutes les sous-classes implmentent un comportement similaire
Hritage de spcialisation
La sous-classe est une forme spcialise de la super-classe, mais respecte ses spcification
Hritage d'extension
Hritage de limitation
Hritage de combinaison
59
Hritage de spcification
La super-classe spcifie des comportements requis (mthodes) sans les implmenter. Les sous-classes hritent d'implmentations vides, et doivent fournir une implmentation adquate. La spcification peut tre une classe abstraite ou une interface.
60
Hritage de spcialisation
Clock Implmentation fournie par la super-classe, hrite par les sous-classes Current Time SetCurrentTime GetCurrentTime DisplayTime
AnalogClock DisplayTime
DigitalClock DisplayTime
L'implmentation de cette opration est fournie par chacune des sous-classe. L'implmentation des autres oprations est hrite
61
Hritage d'extension
L'hritage permet de rajouter des nouvelles mthodes dans la sous-classe.
Mthodes implmentes
AlarmClock Nouvelles mthodes ajoutes, les autres mthodes sont hrites setAlarmTime getAlarmTime
62
Example: Limitation
L'hritage peut tre utilis pour limiter l'utilisation de mthodes hrites, par exemple en levant une exception UnsupportedMethodException Oiseau Spcification et implmentation chante() vole()
Hritage multiple
Clock
Radio
DigitalClock
AlarmClockRadio
Hritage multiple
Vehicle power {overlapping} WindPowered Vehicle power venue Land Vehicle venue {overlapping} Water Vehicle
MotorPowered Vehicle
Truck
Sailboat
Fig. 3-39, UML Notation Guide
65
Dpendance
Une relation transitoire entre classes, qui n'est pas reprsentable par association ou composition
Un objet sert crer des objets d'une autre classe (factory object) Un objet utilise un autre sans qu'il fasse partie de ses attributs ou associations
Il peut recevoir un objet en tant que paramtre ou valeur de retour d'une mthode
Une classe dpend d'une autre si elle ne peut pas tre rutilise sans rutiliser galement l'autre
66
Dpendance : exemple
Le magasin stocke des tables Le menuisier fabrique des tables quand le magasin le lui demande, mais ne les stocke par (il ne conserve pas de relation avec les tables qu'il a fabriques) On ne peut pas utiliser la classe Menuisier sans disposer galement de la classe Table
67
Exercice: Donner le diagramme de classes correspondant la formation ISIS en utilisant les concepts suivants
Salle
Universit Diplme
Enseignant
Major
EmploiDuTemps Etudiant
Rajouter d'autres classes si ncessaire, identifier les attributs associations, associations qualifies, composition, agrgation, gnralisation, cardinalits, rles
Diagrammes d'objets
Diagrammes d'objets
Les diagrammes dobjets reprsentent un ensemble dobjets et leurs liens. Ce sont des vues statiques des instances des lments qui apparaissent dans les diagrammes de classes. Ils prsentent la vue de conception d'un systme, exactement comme les diagrammes de classes, mais partir de cas rels ou de prototypes. Un diagramme dobjet est une instance dune diagramme de classes.
70
Reprsentation graphique
71
Suite de l'exercice
ISIS est un diplme du dpartement d'ingnierie du CUFR Jean-Franois Champollion En ISIS 1 anne, il y a un cours Rseaux et un cours UML Georges Untel est major de la 1 anne ISIS en 2007-08 Le cours UML du lundi 17 mars 2008 (8h15-10h15) est assur par Rmi Bastide en salle ISIS-1 du btiment GCE de l'Universit Paul Sabatier
Objets et classes
Task startDate : Date = 1.1.98 endDate : Date = 1.1.98 setStartDate (d : Date = default) setEndDate (d : Date = default)
Diagramme dobjets
74
Example
Salesperson Generates Diagramme de classes: curtisClyde: Order Includes CustInfo order121: ace furniture: Diagramme d'objets order122: harmon assoc: line1: line2: line3: line4: line1: line2: Contains Line
Diagrammes dobjets (point de vue statique) Diagrammes dinteraction (point de vue dynamique)
76
Modlisation de la dynamique
Diagrammes dinteraction
StateCharts
77
Interactions
Interaction:
78
Diagrammes dinteraction
Types
Diagramme de squence (point de vue temporel) Diagramme de collaboration (point de vue structurel)
79
Diagrammes dinteraction
Diagramme de Squence
x a b c y z
Diagramme de Collaboration
1.1: a 1.2: c x y 1.1.1: b z
80
Diagramme de Squence
Instance Ligne de vie
name () name : Class other
stimulus
activation
new () : Class
destruction
retour
cration
81
Types de flches
Flt de contrle imbriqu
Exemples
Flt imbriqu
teller : Order
getValue price
Flot asynchrone
appl err handl alarm
: Article
unknown alarm
getName
83
CRC Cards
Une manire "lgre" (papier/crayon) d'identifier les classes d'un systme Approche informelle, pralable une formalisation en UML Conception "centre sur les responsabilits" plutt que sur les attributs ou mthodes
84
85