Documente Academic
Documente Profesional
Documente Cultură
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)
Objet = reprsentation du problme base sur des entits (concrtes ou abstraites) du monde rel
Utilisation des objets avec un langage OO Implmentation Conception (solution informatique) Analyse (comprendre et modliser le problme)
4
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
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
Logiciels Ingnierie des logiciels Logiciels et matriels Ingnierie des systmes Personnes Ingnierie des affaires
6
Modlisation haut niveau Dveloppement bas sur composants Intgration de procds de modlisations complmentaires Notation unifie pour toutes les mthodologies OO
Rational
1995
Unified Method 0.8
OMG
1996
UML 1.4 UML 1.3 UML 1.1
UML 2.0
(Rumbaugh et al.)
Booch
(Jacobson et al.)
Juin 1999
OOSE
UML 0.9
Nov. 1997
etc.
Catalysis
ROOM
Syntaxe
w Rgles selon lesquelles les lments du langage (ex. les
Smantique
w Rgles permettant dattribuer une signification aux
expressions syntactiques
UML Notation Guide UML Notation Guide UML Semantics UML Semantics
8
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
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
Dmarche
Ensemble de point de vues complmentaires Dveloppement par raffinages successifs
14
obj 1
obj 1
Control
obj 1
obj 1
obj 1
Control
obj 1
obj 1
obj 1
Control
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
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
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
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
25
26
actor
relation
regulate speed
include
SpeedSensor
display status
include
Motor
RegulatorDisplay
stop regulating
environment
system border
27
Modlisation la structure de lapplication Modliser le comportement de lobjet Modliser les traitements Modliser linstanciation de lapplication
28
regLaw
update()
getSpeed()
display
speedSensor
29
Mcanisme de communication
Communication: uniquement par messages
n
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
regLaw
31
32
Class diagram
classe rle association
regLaw
RegulatingLaw
0..*
Regulator
arit / cardinalit
composition navigabilit
sps 0..*
SpeedSensor
gnralisation (spcialisation)
Regulator_S
compartiment des attributs compartiment des oprations
33
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
Packages
package
displSpeed() displStatus()
RegulatorDispl
Core LawImpl
regLaw
0..1
display
Main Regulator
0..*
RegulatingLaw
sps
0..*
SpeedSensor
dpendance
Packages
Graphics
Core
LawImpl
Main
37
Packages
<<subsystem>>
Graphics
<<model>>
Core
LawImpl
Main
38
Machines dtat
39
Automate
Une machine dont le comportement en output rsulte de
n n
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
43
Ready
Transition Transition
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)
Lintrt principal de la machine dtat en UML apparat dans le cas des objets actifs
46
stop
48
start
start/^master.ready()
ready
ready
stop/
poll/^master.ack()
51
traitement srialis des vnements limination des accs concurrents internes minimisation du context-switching
52
Statechart diagram
root state
Regulator
Off
OnOff
group transition
List of actions
53
Etat composite
Regulator
Off
OnOff
On On /maintainSpeed()
Running
suspend resume
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
S10 S0 S11
Fork pseudo-state Join pseudo-state
56
S2
Actions
Regulator
Off
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
OnOff
4- do
/maintainSpeed()
entry/actions1
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
OnOff
4- do
/maintainSpeed()
entry/actions1
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
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
Diagramme dactivit
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
62
Elments de base
tat daction simple
RegLaw.calcDeltaTorque()
tat daction composite 63
eng.setCommand()
64
Concurrence
spSensor.getSpeed() Fork
Join displ.dispCommand()
65
displ.dispCommand()
66
67
Diagrammes dimplantation
Diagrammes de composants: organisation et dpendances des composants de lapplication
n
68
Component Diagram
SpeedAcquisition
SpAcqSyst
RegulationSystem SignalCom
RegulatorSyst
rl:RegulatingLaw
69
RegulationSystem
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
MOF
... Meta Model (M2)
UML
ActionLanguage MORDICUS
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
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
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