Vous êtes sur la page 1sur 76

Introduction UML

Shebli Anvar DSM/DAPNIA CEA Saclay Franois Terrier, Sbastien Grard DRT/LIST CEA/Saclay F-91191 Gif sur Yvette Cedex France Francois.Terrier@cea.fr ; Sebastien.Gerard@cea.fr ; Shebli.Anvar@cea.fr

Dfinitions
UML = Unified Modeling Language
n n

Langage unifi pour la modlisation objet Langage de modlisation des applications construites laide dobjets, indpendant de la mthode utilise Langage de modlisation = notations, grammaire, smantique Mthode : comment utiliser le langage de modlisation (recueil des besoins, analyse, conception, mise en uvre, validation)

Diffrence Langage Mthode


n n

Objet = reprsentation du problme base sur des entits (concrtes ou abstraites) du monde rel

La complexit des logiciels


Le logiciel est complexe par nature grer cette complexit Les systmes peuvent tre dcomposs selon
n n

ce quils font (approche fonctionnelle) ce quils sont (approche objet)

Lapproche objet gre plus efficacement la complexit

Historique des langages OO


Langages de programmation orients objets
n n n n n n

Simula Smalltalk C plus Classes C++ Eiffel Java

(1967) (1970) (1980) (1985) (1988) (1995)

SGBD orients objets


n

Utilisation des objets avec un langage OO Implmentation Conception (solution informatique) Analyse (comprendre et modliser le problme)
4

Gense des mthodes danalyse


n n n n

Les mthodes danalyse


Mthodes orientes comportement
n

on sintresse la dynamique du systme ex : rseaux de Ptri sinspirent de larchitecture des ordinateurs on sintresse aux fonctions du systme ex : SADT on ne sintresse pas aux traitements ex : MERISE on ne spare pas les donnes et les traitements ex : Booch, OMT
5

Mthodes fonctionnelles :
n n

Mthodes orientes donnes :


n

Mthodes orientes objets :


n

Lunification
des mthodes
n

La guerre des mthodes ne fait plus avancer la technologie des objets Recherche dun langage commun unique
w Utilisable par toutes les mthodes w Adapt toutes les phases du dveloppement w Compatible avec toutes les techniques de ralisation

sur plusieurs domaines dapplications


n n n

Logiciels Ingnierie des logiciels Logiciels et matriels Ingnierie des systmes Personnes Ingnierie des affaires
6

Intrt dun standard de modlisation universel


OMT Booch OOSE Fusion Classe-Relation ROOM HOOD etc.

Passer de lartisanat la production industrielle


n n n n

Modlisation haut niveau Dveloppement bas sur composants Intgration de procds de modlisations complmentaires Notation unifie pour toutes les mthodologies OO

> 150 fin 1990


OMT

Rational
1995
Unified Method 0.8

OMG
1996
UML 1.4 UML 1.3 UML 1.1

UML 2.0

(Rumbaugh et al.)

Fin 2001 2001

Booch
(Jacobson et al.)

Juin 1999

OOSE

UML 0.9

Nov. 1997
etc.

Catalysis

ROOM

Unified Modeling Language


Langage = syntaxe + smantique
n

Syntaxe
w Rgles selon lesquelles les lments du langage (ex. les

mots) sont assembls en des expressions (ex. phrases, clauses).

Smantique
w Rgles permettant dattribuer une signification aux

expressions syntactiques

UML Notation Guide UML Notation Guide UML Semantics UML Semantics
8

OMG UML 1.4 Specification: http://www.omg.org


UML Summary UML Semantics UML Notation Guide UML Standard Profiles UML CORBAFacility Interface Definition UML XML Metadata Interchange DTD Object Constraint Language

Autres documents
CORBA 2.4.2 (inclut Real-Time CORBA specifications) Meta-Object Facility (MOF) Base commune CORBA, UML, etc. UML v. 1.4
n n n

OMG UML Tutorials: http://www.celigent.com/omg/umlrtf/tutorials.htm OMG UML Resources: http://www.omg.org/uml/ Pierre-Alain Muller, Essaim Mulhouse : www.uml.crespim.uha.fr

Profile for Action semantics http://www.kc.com/as_site/home.html Profile for Scheduling, Performance and Time UML Profile for CORBA
10

Objectifs
Reprsenter des systmes entiers Choisir la granularit de la description tablir un couplage explicite entre concepts et artefacts excutables Programmation sans programmer : crer un langage de modlisation utilisable la fois par les humains et les machines

11

Caractristiques du langage de modlisation UML


Gnrique et Expressif Syntaxe et smantique dfinis Flexible (configurable, extensible)
n n n

Dfinition du Mtamodle Norme non fige On peut adapter le langage des domaines particuliers sans ajouter de nouveaux types de diagrammes Introduction dune nouvelle notion en la dfinissant comme particularisme dune notion existante
12

Porte
Formalisme unique pour tout type dapplication
n

gestion, scientifique, temps rel, industrielle, multimdia ne propose pas un processus de dveloppement ni ordonnancement des tches, ni rpartition des responsabilits, ni rgles de mise en uvre (Certains ouvrages et AGL bass sur UML ajoutent cet aspect fondamental en mthodologie)
13

Reste au niveau dun langage


n n n n

Dmarche
Ensemble de point de vues complmentaires Dveloppement par raffinages successifs

14

Des modles complmentaires


Des rgles de cohrence pour une modlisation non ambigu Des vues complmentaires pour un modle complet Lanalyse formelle du modle devient possible

Des modles de plus en plus dtaills


UML Use Case Diagrams UML Interaction Diagrams UML Class Diagrams UML Statechart Diagrams

Real-time Object Design Design Analysis

obj 1 Func 1 Func 2

obj 1

obj 1

Control

Techno state 1 Train Circuit state 3 state 2

obj 1

obj 1

obj 1

Control

Techno state 1 Train Circuit state 3 state 2

obj 1

obj 1

obj 1

Control

Techno state 1 Train Circuit state 3 state 2 state 3 state 1 state 2

UML Activity Diagrams

En rsum
UML est un langage de modlisation objet UML est une notation, pas une mthode UML convient pour toutes les mthodes objet UML est dans le domaine public

UML est la notation standard pour documenter UML est la notation standard pour documenter les modles objets les modles objets

17

Caractristiques fondamentales des objets


Objet
n n n

tat Comportement Identit

Communication entre objets

18

Ltat
Ltat regroupe les valeurs instantanes de tous les attributs dun objet Ltat volue au cours du temps Ltat dun objet un instant donn est la consquence de ses comportements passs Ltat conditionne son comportement futur

19

Le comportement
Dcrit les actions et les ractions dun objet
n n

du point de vue externe (oprations) Du point de vue interne (mthodes) Le comportement dpend de ltat Ltat est modifi par le comportement

Ltat et le comportement sont lis


n n

20

Lidentit
Tout objet possde une identit qui lui est propre et qui le caractrise Lidentit permet de distinguer tout objet de faon non ambigu, indpendamment de ltat Lidentit dun objet est immuable tout au long de sa vie

21

Communication entre objets


Application = socit d'objets collaborant Les objets travaillent en synergie afin de raliser les fonctions de lapplication Le comportement global dune application repose sur la communication entre les objets qui la composent

22

Les classes
La classe est une description abstraite dun ensemble dobjets de mme type La classe peut tre vue comme la factorisation des descriptions communes un ensemble dobjets La classe est galement un espace de nommage (Namespace)

23

Les 9 diagrammes
Besoins des utilisateurs Structure statique Dynamique des objets Interactions entre objets
Diagramme des cas dutilisation Diagramme de classes Diagramme objet Diagramme tats-transition Diagramme dactivits Diagramme de squence Diagramme de collaboration

Ralisation et dploiement Diagramme de composants Diagramme de dploiement


24

Points de vues de modlisation


Spcifier le systme Modliser des objets communicants Modliser la structure de lapplication Modliser le comportement des objets Modliser les traitements Modliser linstanciation de lapplication

25

Points de vues de modlisation


Spcifier le systme Modliser des objets communicants Modliser la structure de lapplication Modliser le comportement des objets Modliser les traitements Modliser linstanciation de lapplication

26

Use case diagram


use case = main function system
Speed Regulator

actor

relation

regulate speed
include

SpeedSensor

display status
include

Motor

start regulating Regulator On/Off


include

RegulatorDisplay

stop regulating

environment

system border
27

Points de vues de modlisation


Spcifier le systme Modliser des objets communicants
n n n n

Instances, liens, messages Mcanismes de communication Diagrammes de collaboration Diagrammes de squence

Modlisation la structure de lapplication Modliser le comportement de lobjet Modliser les traitements Modliser linstanciation de lapplication
28

Instances, liens, messages


On identifie et nomme les objets (instances) qui interviennent dans le systme Dabord, les objets physiques puis les objets plus abstraits On spcifie les liens entre objets, puis les messages transitant par ces liens
Collaboration diagram Instance diagram regulator
deltaTorque := calculate() calculate()

regLaw

update()

getSpeed()

display

speedSensor
29

Mcanisme de communication
Communication: uniquement par messages
n

Message = une action + un vnement


w En gnral point point w Possibilit dun ensemble de cibles

Deux types denvoi de message


n

Appel dopration (CallAction + CallEvent)


w Synchrone/asynchrone, paramtres input et output

Signal (SendAction + SignalEvent)


w Asynchrone, paramtres input seulement

30

Sequence diagram
regulator regLaw speedSensor

active instance

display instance

synchronous message calculate() deltaTorque sp response update(info) < 2s asynchronous message getSpeed() life line

timing spec

Time

regulator guard on message [launch=true] create() regLaw create message

regulator

regLaw

[launch=false] delete() deleting message

31

Points de vues de modlisation


Spcifier le systme Modliser des objets communicants Modlisation la structure de lapplication
n n

Diagrammes de classes Paquetages

Modliser le comportement de lobjet Modliser les traitements Modliser linstanciation de lapplication

32

Class diagram
classe rle association
regLaw

RegulatingLaw
0..*

<< active >>

Regulator
arit / cardinalit

composition navigabilit
sps 0..*

SpeedSensor

classe active active objects

gnralisation (spcialisation)

Regulator_S
compartiment des attributs compartiment des oprations

tgSpeed: integer maintainSpeed()

33

Indication de type dinstance


Collaboration diagram
regLaw

RegulatingLaw
0..*

Regulator

sps

0..*

SpeedSensor
Instance / role diagram
regLaw

rl/regLaw:RegulatingLaw

reg:Regulator

/sps:SpeedSensor
34

Interfaces
<< interface >> SpeedDispl

interface Interface

RegDisplay

RegulatorDispl
display 0..1

displSpeed()

displSpeed() displStatus()
regLaw

displStatus()
implantation des interfaces
0..1 display

RegulatingLaw
0..*

Regulator

sps

0..*

SpeedSensor

Regulator_S tgSpeed: integer maintainSpeed()


35

Packages

Graphics SpeedDispl RegDisplay

package

displSpeed() displStatus()

RegulatorDispl

Core LawImpl
regLaw

0..1

display

Main Regulator
0..*

RegulatingLaw

sps

0..*

Regulator_S tgSpeed: integer maintainSpeed()


36

SpeedSensor
dpendance

Packages

Graphics
Core

LawImpl

Main

37

Packages
<<subsystem>>

Graphics
<<model>>

Core

LawImpl

Main

38

Points de vues de modlisation


Spcifier le systme Modliser des objets communicants Modlisation la structure de lapplication Modliser le comportement de lobjet
n

Machines dtat

Modliser les traitements Modliser linstanciation de lapplication

39

Automate
Une machine dont le comportement en output rsulte de
n n

Les inputs courants Les inputs passs

Caractrise par un tat interne reprsentant son pass


ON ON

OFF

40

Statechart Diagram
on Lamp On on off off Lamp Off

41

Outputs et Actions
Le changement dtat peut gnrer des outputs
on Lamp On on/print(on) off Lamp Off off off Lamp Off Lamp On print(on) on off on

Mealy automaton

Moore automaton
42

Machine dtats tendue


Addition de variables (extended state)
on
ctr :: Integer ctr Integer

Lamp On on/ctr := ctr + 1 off off Lamp Off

43

Basic UML Statechart Diagram


Pseudo-tat Pseudo-tat Initial Initial Etat Etat englobant (top) englobant (top)
top top

Etat Etat Rception Rception vnement vnement

Ready
Transition Transition

stop /ctr := 0 ^bip Done


Etat Final Etat Final Emission Emission vnement vnement

stop
Action Action
44

Comportement Event-Driven
Evnement = un type doccurrence observable:
n

Interactions:
w Appel dopration synchrone (call event) w Rception de signal asynchrone (signal event)

Evnements temporels (time event)


w Expiration dun dlai (after(x)) w Survenance dune date (when(x))

Changement de valeur dune entit (change event)

Une instance dvnement survient un instant donn et na en lui-mme aucune dure


45

A quelle entit le comportement est-il attach?


En principe, tout ce qui manifeste un comportement event-driven En pratique, une machine dtat est attache une classe, afin de contraindre:
n n

le comportement interne de ses instances les interactions entre objets

Lintrt principal de la machine dtat en UML apparat dans le cas des objets actifs

46

Modle gnral du comportement dun objet actif


Modle serveur simple
Initialisation Initialisation de lobjet de lobjet Attente de Attente de requte requte Traitement Traitement de requte de requte

Destruction Destruction de lobjet de lobjet


47

Modle gnral du comportement dun objet actif


Mapping machine dtats simple serveur
Initialisation Initialisation de lobjet de lobjet Attente de requte Traitement Traitement de requte de requte

on Lamp On on/print(on) off Lamp Off off

Destruction Destruction de lobjet de lobjet

stop
48

Objets et fils dexcution


Objet passif : activation dpend dun fil externe Objet actif : possde son propre fil dexcution
Initialize Initialize Object Object Wait for Wait for Request Request Handle Handle Request Request Initialize Initialize Object Object Wait for Wait for Request Request Handle Handle Request Request

Terminate Terminate Object Object

Terminate Terminate Object Object 49

Dynamique dun objet passif


Initialize Initialize Object Object Wait for Wait for Request Request Handle Handle Request Request

Terminate Terminate Object Object

Lencapsulation ne protge pas des conflits de concurrence ! Synchronisation explicite ncessaire


50

Objets actifs et machines dtats


Lobjet encapsule son propre fil dexcution (nexporte que des opration de requtes)
anActiveObject
poll/defer #currentEvent : Event created

start

+ start ( ) + poll ( ) + stop ( )

start/^master.ready()

ready

ready
stop/

poll/^master.ack()

51

Dynamique dun objet actif


activeObject

Modle excution jusqu compltion:


n n n

traitement srialis des vnements limination des accs concurrents internes minimisation du context-switching
52

Statechart diagram
root state

Regulator
Off

Event: CallEvent SignalEvent ChangeEvent TimeEvent guard

OnOff

group transition

OnOff [speed>30] / startRegulating(); ++speed; On

List of actions

non-developed composite state

53

Etat composite
Regulator
Off

OnOff

On On /maintainSpeed()

OnOff [speed>30] / startRegulating(); ++speed;

Running
suspend resume

Suspended simple state composite state


54

Etats concurrents
Regulator Regulator regulating
Off
OnOff

monitoring
OK [ error] scan reset

compound transition
OnOff [speed>30] / startRegulating(); ++speed;

On
pseudo-state => Choice

[error] damaged

concurrent states state ( regions) 55

Transitions dtats concurrents


S1

S10 S0 S11
Fork pseudo-state Join pseudo-state
56

S2

Actions
Regulator
Off

Ordre des actions :


2- transition 3- entry
(rcursion depuis top )

OnOff [speed>30] / startRegulating(); ++speed; OnOff

On entry/actions1
/maintainSpeed()

4- do
G Etat indfini entre le 1er exit et le dernier entry

Running
entry/actions1_1 do/actions2_1 do/actions2 exit/actions3_1 Rcursion des actions do dans les tats imbriqus possibilit de //

exit/actions3

suspend

resume

Suspended

57

Actions
Off

Ordre des actions :


1- exit (rcursion depuis down) Regulator 2- transition 3- entry OnOff [speed>30] / startRegulating(); ++speed;
(rcursion depuis top ) On

OnOff

4- do
/maintainSpeed()

entry/actions1

G Etat indfini entre le 1er exit et le dernier entry

Running
entry/actions1_1 do/actions2_1 do/actions2 exit/actions3_1 Rcursion des actions do dans les tats imbriqus possibilit de // Fin daction do gnre: completion event completion transitions

exit/actions3

suspend

resume

Suspended

58

Actions
Off

Ordre des actions :


1- exit (rcursion depuis down) Regulator 2- transition 3- entry OnOff [speed>30] / startRegulating(); ++speed;
(rcursion depuis top ) On

OnOff

4- do
/maintainSpeed()

entry/actions1

G Etat indfini entre le 1er exit et le dernier entry

Running
entry/actions1_1 do/actions2_1 do/actions2 exit/actions3_1 Rcursion des actions do dans les tats imbriqus possibilit de // Fin daction do gnre: completion event completion transitions Tout vnement interrompt les actions do en cours
59

exit/actions3

suspend

resume

Suspended

Variabilit des Machines dtats UML


Choix de la (des) politique de livraison des vnement
n

Le plus rpandu = FIFO

Une tche par dfaut est dfinie (celle qui lit implante la politique de livraison des vnements)
n

Mais il est possible den avoir plusieurs, par exemple: une tche par rgion concurrente

Hritage de machine dtat: non dfini


60

Points de vues de modlisation


Spcifier le systme Modliser des objets communicants Modlisation la structure de lapplication Modliser le comportement de lobjet Modliser les traitements
n

Diagramme dactivit

Modliser linstanciation de lapplication

61

Activity diagrams
Pour spcifier les flux de contrle, de donnes ou dobjets Graphe constitu dtapes (tats daction)
(ressemblances avec statechart) n Une tape se termine tape suivante n Supporte la concurrence

Insiste sur lordre des tapes Sous-activits = dcomposition fonctionnelle

62

Elments de base
tat daction simple

SpeedSensor spSensor.getSpeed() +getSpeed() CalculateDeltaTorque CalculateDeltaTorque


CalculateDelta Speed

RegLaw.calcDeltaTorque()
tat daction composite 63

Graphe dactivit et spcification de mthode

Regulator.maintain() Regulator +start() -maintain() << realize >> CalculateDeltaTorque spSensor.getSpeed()

eng.setCommand()

64

Concurrence
spSensor.getSpeed() Fork

[curSp > 30]

CalculateDeltaTorque displ.dispSpeed() eng.setCommand()

Join displ.dispCommand()
65

Flux dobjet: reprsente la disponibilit dun objet


spSensor.getSpeed()

[curSp > 30]

CalculateDeltaTorque data eng.setCommand() displ.dispSpeed()

displ.dispCommand()

66

Points de vues de modlisation


Spcifier le systme Modliser des objets communicants Modlisation la structure de lapplication Modliser le comportement de lobjet Modliser les traitements Modliser linstanciation de lapplication

67

Diagrammes dimplantation
Diagrammes de composants: organisation et dpendances des composants de lapplication
n

code source, binaires, excutables, procdures, documents, etc.

Diagrammes de dploiement: configuration de distribution des composants

68

Component Diagram
SpeedAcquisition
SpAcqSyst

RegulationSystem SignalCom
RegulatorSyst
rl:RegulatingLaw

69

Composants (classes rsidentes)

RegulationSystem

<< reside >>

<< reside >>

RegulatingLaw

Regulator

70

Deployment Diagram
Intel-Linux

TCP/IP

FrontEndProcessor
SpeedAcquisition

Level2Acquisition
RegulationSystem

71

Modle en 4 couches
instanceOf Meta Meta Model (M3)

MOF
... Meta Model (M2)

Metaclass
instanceOf

Class
UML Autres standards
instanceOf

Car
Model (M1) instanceOf Objects (M0)

a106

72

Extensions Mtier dUML


Meta Meta Model (M3)

MOF
... Meta Model (M2)

UML

... Standard profile (M2)

Real Time ACCORD/UML

ActionLanguage MORDICUS

End-user specific Profile (M2)

Model (M1)

Objects (M0)

73

Exemples de Mtaclasses
ModelElement name:Name

Personne age:integer

Feature

feature

{ordered}

Namespace

StructuralFeature multiplicity:Multiplicity *

type
1

0..1

owner

Classifier

Attribute

Class
74

Mcanismes dextension UML


Stereotype
n n

Mta-classe spcialise (ex: real-time ) Ajout de nouveaux strotypes extension mta-attribut (ex: {abstract}) Ajout dun nouveau mta-attribut extension Rgle de formation dexpression (ex: {ordered}) Nouvelles contraintes sur le mta-modle extension

Tagged value
n n

Constraint
n n

75

Notion de profil UML (Cf. http://www.objecteering.com/us/smot_uml_white.htm)


Standardisation dun mta-modle tendu dUML Adapt un domaine mtier ou middleware Un profil UML peut contenir
n

n n n

Les lments slectionns dans la mta-modle de rfrence Des extensions utilisant les diffrent mcanismes dextension Descriptions smantiques des extensions Notations supplmentaires Rgles de validation, prsentation, transformation
76