Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
2
La complexité des logiciels
3
Historique des langages OO
Langages de programmation orientés objets
n Simula (1967)
n Smalltalk (1970)
n C plus Classes (1980)
n C++ (1985)
n Eiffel (1988)
n Java (1995)
SGBD orientés objets
n Utilisation des objets avec un langage OO
Genèse des méthodes d’analyse
n Implémentation
n Conception (solution informatique)
n Analyse (comprendre et modéliser le problème)
n …
4
Les méthodes d’analyse
Méthodes orientées comportement
n on s’intéresse à la dynamique du système
ex : réseaux de Pétri
Méthodes fonctionnelles :
n s’inspirent de l’architecture des ordinateurs
n on s’intéresse aux fonctions du système
ex : SADT
Méthodes orientées données :
n on ne s’intéresse pas aux traitements
ex : MERISE
Méthodes orientées objets :
n on ne sépare pas les données et les traitements
ex : Booch, OMT
5
L’unification
des méthodes
n La guerre des méthodes ne fait plus avancer la
technologie des objets
n Recherche d’un langage commun unique
w Utilisable par toutes les méthodes
w Adapté à toutes les phases du développement
w Compatible avec toutes les techniques de réalisation
6
Intérêt d’un standard de modélisation
universel
OMT
Passer de l’artisanat à la production industrielle
Booch
n Modélisation haut niveau
OOSE
n Développement basé sur composants
Fusion
n Intégration de procédés de modélisations complémentaires
Classe-Relation
n Notation unifiée pour toutes les méthodologies OO
ROOM
HOOD
etc.
> 150 fin 1990
Rational OMG UML 2.0
1995 1996 …
UML 1.4
OMT
(Rumbaugh et al.) Unified Method Fin 200
20011
0.8 UML 1.3
7
Unified Modeling Language
è UML
è UML Notation
Notation Guide
Guide
è UML
è UML Semantics
Semantics
8
Objectifs
11
Caractéristiques du langage de
modélisation UML
Générique et Expressif
Syntaxe et sémantique définis
Flexible (configurable, extensible)
n Définition du Métamodèle
n Norme non figée
n On peut adapter le langage à des domaines
particuliers sans ajouter de nouveaux types de
diagrammes
n Introduction d’une nouvelle notion en la définissant
comme particularisme d’une notion existante
12
Portée
13
Démarche
14
Des modèles complémentaires
Des règles de cohérence pour une modélisation non ambiguë
Des vues complémentaires pour un modèle complet
L’analyse formelle du modèle devient possible
Des modèles de plus en plus détaillés
UML Use Case UML Interaction UML Class UML Statechart
Diagrams Diagrams Diagrams Diagrams
Design Analysis
Func 1
state 1
state 1
state 3 state 2
Train Circuit
Design
state 1 state 1
UML Activity
Diagrams
En résumé
UML
UML est
est la
la notation
notation standard
standard pour
pour documenter
documenter
les
les modèles
modèles objets
objets
17
L’état
19
Le comportement
20
L’identité
21
Communication entre objets
22
Les classes
23
Les 9 diagrammes
24
Points de vues de modélisation
Spécifier le système
Modéliser des objets communicants
Modéliser la structure de l’application
Modéliser le comportement des objets
Modéliser les traitements
Modéliser l’instanciation de l’application
25
Points de vues de modélisation
Spécifier le système
Modéliser des objets communicants
Modéliser la structure de l’application
Modéliser le comportement des objets
Modéliser les traitements
Modéliser l’instanciation de l’application
26
Use case diagram
use case system actor
= main function
Speed Regulator
« include »
Regulator « include »
On/Off
stop regulating
27
Instances, liens, messages
On identifie et nomme les objets (instances) qui
interviennent dans le système
D’abord, les objets « physiques » puis les objets plus
abstraits
On spécifie les liens entre objets, puis les messages
transitant par ces liens
Instance diagram
Collaboration diagram
deltaTorque
calculate()
:= calculate()
regulator regLaw
update() getSpeed()
display speedSensor
29
Mécanisme de communication
30
Sequence diagram active instance
instance
synchronous message
calculate() getSpeed()
deltaTorque life line timing spec
sp
response
update(info)
< 2s
asynchronous message
Time ä
[launch=true] create()
regLaw [launch=false] delete()
31
Points de vues de modélisation
Spécifier le système
Modéliser des objets communicants
Modélisation la structure de l’application
n Diagrammes de classes
n Paquetages
Modéliser le comportement de l’objet
Modéliser les traitements
Modéliser l’instanciation de l’application
32
Class diagram
composition
arité /
cardinalité
navigabilité généralisation
sps 0..*
(spécialisation)
active objects
classe active
SpeedSensor
Regulator_S
compartiment des attributs tgSpeed: integer
compartiment des opérations maintainSpeed()
33
Indication de type d’instance
Collaboration diagram
regLaw
RegulatingLaw Regulator
0..*
sps 0..*
SpeedSensor
/sps:SpeedSensor
34
Interfaces interface
Interface
regLaw
RegulatingLaw Regulator
0..*
sps 0..*
Regulator_S
SpeedSensor
tgSpeed: integer
maintainSpeed()
35
Packages Graphics
SpeedDispl
RegDisplay
package RegulatorDispl
displSpeed()
displStatus()
0..1 display
Core
LawImpl Main
regLaw
RegulatingLaw Regulator
0..*
Regulator_S
sps 0..*
36
Packages
Graphics
Core
LawImpl Main
37
Packages
<<subsystem>>
Graphics
<<model>>
Core
LawImpl Main
38
Automate
ON ON
OFF
40
Statechart Diagram
on
Lamp On
on
off
off
Lamp Off
41
Outputs et Actions
on/print(”on”) on
off off
off off
Lamp Lamp
Off Off
on
ctr
ctr :: Integer
Integer Lamp On
on/ctr := ctr + 1
off
off
Lamp Off
43
Basic UML Statechart Diagram
Etat
Etat
englobant
englobant (top)
(top) Etat
Etat
Pseudo -état
Pseudo-état
Initial
Initial top
top Réception
Réception
événement
événement
Ready
Transition
Transition
44
Comportement “Event-Driven”
45
A quelle entité le comportement est-il attaché?
46
Modèle général du comportement d’un objet actif
Attente
Attentede
de
requête
requête
Traitement
Traitement
de
derequête
requête
Destruction
Destruction
de
del’objet
l’objet
47
Modèle général du comportement d’un objet actif
on
Initialisation
Initialisation
de
del’objet
l’objet Lamp On
Attente de
requête on/print(”on”)
Traitement
Traitement off
de
derequête
requête off
Lamp
Off
Destruction
Destruction
de
del’objet
l’objet
stop
48
Objets et fils d’exécution
Initialize
Initialize Initialize
Initialize
Object
Object Object
Object
Wait
Waitfor
for Wait
Waitfor
for
Request
Request Request
Request
Handle
Handle Handle
Handle
Request
Request Request
Request
Terminate
Terminate Terminate
Terminate
Object
Object Object
Object
49
Dynamique d’un objet passif
Initialize
Initialize
Object
Object
Wait
Waitfor
for
Request
Request
Handle
Handle
Request
Request
Terminate
Terminate
Object
Object
#currentEvent : Eventpoll/defer
created
+ start ( )
start start/^master.ready() ready
+ poll ( )
+ stop ( )
ready
stop/
poll/^master.ack()
51
Dynamique d’un objet actif
activeObject
non-developed
composite state
53
Etat composite
Regulator
Off
Running
suspend resume
Suspended
simple state composite state
54
Etats concurrents
RegulatorRegulator
regulating monitoring
compound
Off transition OK
OnOff [speed>30]
OnOff
/ startRegulating(); ++speed;
[¬ error] scan
reset
On
pseudo-state =>
Choice [error]
damaged
concurrent states
state
(è regions)
55
Transitions d’états concurrents
S1
S10
S0 S2
S11
Fork pseudo-state
Join pseudo-state
56
Actions Ordre des actions :
Regulator 2- transition…
Off
OnOff [speed>30] / startRegulating(); ++speed;
3- entry
(récursion depuis « top »)
OnOff
4- do…
On
/maintainSpeed() G Etat indéfini entre le 1er
entry/actions1
exit et le dernier entry
Running
entry/actions1_1
Ø Récursion des actions
do/actions2_1 « do » dans les états
do/actions2 imbriqués
exit/actions3_1 ⇒ possibilité de // …
suspend resume
exit/actions3
Suspended
57
Actions Ordre des actions :
1- exit (récursion depuis down)
Regulator 2- transition…
Off
OnOff [speed>30] / startRegulating(); ++speed;
3- entry
(récursion depuis « top »)
OnOff
4- do…
On
entry/actions1
/maintainSpeed() G Etat indéfini entre le 1er
exit et le dernier entry
Running
entry/actions1_1
Ø Récursion des actions
do/actions2_1 « do » dans les états
do/actions2 imbriqués
exit/actions3_1 ⇒ possibilité de // …
58
Actions Ordre des actions :
1- exit (récursion depuis down)
Regulator 2- transition…
Off
OnOff [speed>30] / startRegulating(); ++speed;
3- entry
(récursion depuis « top »)
OnOff
4- do…
On
entry/actions1
/maintainSpeed() G Etat indéfini entre le 1er
exit et le dernier entry
Running
entry/actions1_1
Ø Récursion des actions
do/actions2_1 « do » dans les états
do/actions2 imbriqués
exit/actions3_1 ⇒ possibilité de // …
59
Variabilité des Machines d’états UML
Spécifier le système
Modéliser des objets communicants
Modélisation la structure de l’application
Modéliser le comportement de l’objet
Modéliser les traitements
n Diagramme d’activité
Modéliser l’instanciation de l’application
61
Eléments de base
État d’action simple
SpeedSensor
spSensor.getSpeed()
+getSpeed()
CalculateDeltaTorque CalculateDeltaTorque
CalculateDelta Speed
RegLaw.calcDeltaTorque()
63
Flux d’objet: représente la disponibilité d’un objet
spSensor.getSpeed()
CalculateDeltaTorque
data
displ.dispSpeed()
eng.setCommand()
displ.dispCommand()
66
Points de vues de modélisation
Spécifier le système
Modéliser des objets communicants
Modélisation la structure de l’application
Modéliser le comportement de l’objet
Modéliser les traitements
Modéliser l’instanciation de l’application
67
Diagrammes d’implantation
68
Component Diagram
SpeedAcquisition SpAcqSyst
RegulationSystem
SignalCom
RegulatorSyst
rl:RegulatingLaw
69
Composants (classes résidentes)
RegulationSystem
RegulatingLaw Regulator
70
Deployment Diagram
Intel-Linux
TCP/IP
FrontEndProcessor Level2Acquisition
SpeedAcquisition RegulationSystem
71
Modèle en 4 couches
instanceOf
instanceOf
...
Car
Model (M1)
instanceOf
72
Extensions Métier d’UML
Meta Meta Model (M3)
MOF
...
Meta Model (M2)
UML …
...
Standard profile (M2)
Real Time ActionLanguage
Model (M1)
Objects (M0)
73
Exemples de Métaclasses Personne
age:integer
ModelElement
name:Name
feature
Feature Namespace
* {ordered}
Attribute Class
74
Mécanismes d’extension UML
Stereotype
n Méta-classe spécialisée (ex: « real-time »)
n Ajout de nouveaux stéréotypes à extension
Tagged value
n méta-attribut (ex: {abstract})
n Ajout d’un nouveau méta-attribut à extension
Constraint
n Règle de formation d’expression (ex: {ordered})
n Nouvelles contraintes sur le méta-modèle à extension
75
Notion de profil UML
(Cf. http://www.objecteering.com/us/smot_uml_white.htm)
Standardisation d’un méta-modèle étendu
d’UML
Adapté à un domaine métier ou middleware
Un profil UML peut contenir
n Les éléments sélectionnés dans la méta-modèle de
référence
n Des extensions utilisant les différent mécanismes
d’extension
n Descriptions sémantiques des extensions
n Notations supplémentaires
n Règles de validation, présentation, transformation
76