Académique Documents
Professionnel Documents
Culture Documents
Note liminaire
•TD #1
•Modélisation d'un site Web : les rudiments de UML
•TD #2
•Génération de code avec XSLT
•TD #3
•Transformation de modèles dans le MDA
Les conférences
Plan du cours #1
• Introduction
• Historique de l'introduction du formalisme UML
• Les neuf types de diagrammes
• Classes, Objets, Etats, Activités, Séquences,
Collaboration,Composants, Déployement, Cas
d'utilisation
• Les mécanismes de base
• Paquetages
• Les mécanismes d'extension
• Contraintes, stéréotypes, valeurs marquées
• Le formalisme OCL
• Présentation du TP #1
0.8 ->0.9
0.9->0.91->1.0
1.0->1.1->1.2->1.3->1.4
UML d'après les «amigos»
Jim Rumbaugh Grady Booch Ivar Jacobson
2.0
UML
De Rational à l'OMG
1.1 -> 1.2. -> 1.3 -> 1.4 -> 1.5 -> 2.0
?
Soumission de UML 1.0 à OMG Industrialisation
pour adoption (janvier 1997).
Standardisation
public feedback
UML 1.0
Booch 93 OMT-2
OMT
procédés
industriels
UML SA/RT
SADT
de production ERD Merise
de logiciels et
de systèmes. DFD
DFD
etc.
JSD
1985-1995
Procedural ADM Method = notation + process + tools
+ profiles
UML + other MMs Model UPM + specific processes
(RUP, IBM SI, etc.)
weaving SPEM
>2001
Network of models
Grady Booch
Chief Scientist
Rational Software Corporation
Evolution de la terminologie
Connexion
Coad Classe/Objet
d'instance
Gen/Spec Tout/Partie
Accointance
Jacobson Objet Association Hérite ConsisteEn
1 + ? *
Booch.1 A B A B A B A B
1+
Rumbaugh A B A B A B A B
1 1..* 0..1 *
UML A B A B A B A B
Vue du
Vue du propriétaire
maçon
Vue de
l'architecte
Vue du
notaire Vue du Vue du service
cadastre des impots locaux
Fonctions du système
du point de vue
de l’utilisateur. Les objets et les relations de base
entre ces objets.
Composants Représentation
physiques du comportement Représentation des objets,
d’une en termes d’états. des liens mutuels et des
application. interactions potentielles.
Un peu de retard
2001
(p la n n e d m a jo r r e v is io n ) < < d o c u m e n t> >
U M L 2 .0
IS O P u b lic ly
< < r e fin e > >
A v a ila b le
S p e c ific a tio n s
(P A S )
< < d o c u m e n t> >
Q 3 1999 < < fo r m a lL ia is o n > >
U M L 1 .3
E d it o r ia l r e v is io n
< < d o c u m e n t> >
w it h n o s ig n ific a n t
Q 2 1998 U M L 1 .2
t e c h n ic a l c h a n g e s .
Q 3 1997 U n if ic a tio n o f m a jo r
(O M G A d o p te d < < d o c u m e n t> > m o d e lin g la n g u a g e s ,
T e c h n o lo g y ) U M L 1 .1 in c lu d in g B o o c h , O M T
From Cris Kobryn a n d O b je c to r y
UML 1.5
http://www.omg.org/technology/documents/formal/uml.htm
UML 2.0
UML 2.0
Breaking news: Three of Four Parts of UML 2.0 Approved
Task force delays acceptance of Superstructure portion of spec pending ‘cleanup’
April 15, 2003 —
As expected, the Analysis and Design Task Force of Object Management Group Inc. in late March
voted to accept the Unified Modeling Language 2.0 Infrastructure, Object Constraint Language (OCL)
and Diagram Interchange Protocol submissions and recommend to the full organization their adoption.
The task force, though, tabled a vote on changes to the Superstructure recommendation
until a June meeting in Paris.
Les paquetages
Variantes de paquetage
• Modèle
Stéréotypes
Les stéréotypes
«datatype»
Integer «exception»
«subsystem»
User Interface Overflow
Exemples de stéréotypes
Les étiquettes
Les notes
A
Ceci est un
commentaire
B
Blah blah
Les contraintes
A
«postcondition»
{Count > 10}
Exemples de contraintes
Copie Livre
{xor}
Journal
{self.roues->size <= 4}
Transaction
quantité:Euro {quantité est un multiple de €5}
• Généralisation
• Complete
• Incomplete
• Disjoint
• Overlapping
• Instance ou lien
• New
• Destroyed
• Transient
. - 32 - © 2003 ATLAS Nantes
Ingénierie des systèmes logiciels
stéréotype
de classe
Étiquette ou
valeur marquée
(tagged value)
contrainte
stéréotype
d'opération
Use Cases
• Association, généralisation
Classes
Diagrammes de classes
Zèbre
<<interface>>
Zébu
Les classes
Diagrammes de classe.
nom de la classe
nom de la classe
- variable privée
+ variable publique attributs
# variable protégée nom_attr : type = valeur initiale
parametre
classe parametrable
nom de l’association
Variantes de classes
• Classe emboîtée
• Déclarée dans la portée
lexicale d’une autre classe.
• Type
• un domaine de définition
d’objets
• opérations + attributs +
associations
• Classe d’implémentation
• Pour la réalisation des types
• Méthodes + structure de
données physiques
Variantes de classes
• Classe paramétrée
• Modèle de classe
• Paramètres Formels
génériques (types,
opérations…)
• Classe utilitaire
• Espace de nommage,
groupement de
variables + opérations
Variantes de classes
• Interfaces
• Spécification des
opérations visibles
• Classes, paquetage,
composants
• Contrat sans
implémentation
• Pas d’attributs, de
méthodes, de relations
• Peut être cible d’une
association
monodirectionnelle
• Deux représentations
graphique
• Stéréotype, lollipop
Variantes de classes
• Metaclasse
La classe d’une classe.
• Enumération
Ensemble de littéraux d’énumération, ordonné.
• Powertype
Les instances du powertype sont des classes du modèle, s’utilise
pour la méta-modélisation.
Exemple
+Etudiant
Université Personne
+Employeur +Enseignant
1 Un et un seul
0..1 Zéro ou un
M .. N De M à N (entiers naturels)
* Plusieurs
0 .. * De zéro à plusieurs
1 .. * D'un à plusieurs
• Public
• Protégé
• Private -Role privé
B
+Rolepublic
A
* #Role protégé C
*
*
Navigabilité
Exemple
Les classes-associations
A * * B
C
D
-a1
-a2
+op1() * *
+op2()
L'agrégation
La composition
• Modélisation de la
composition physique
• Multiplicité au max de 1
du coté de l’agrégat
• Propagation automatique
de la destruction
Agrégat Partie
1 *
Hiérarchies de classes
• Gérer la
complexité
• Arborescences de
classes
d’abstraction
croissante
Super-classe
Classe plus
générale
Sous-classe
Classe plus
spécialisée
Association qualifiée
Relation de dépendance
Diagrammes d'objets
Objets
Diagrammes d'objets
Diagrammes d'interaction
Diagrammes de séquence
Séquences
Diagrammes de séquence
Messages et Stimuli
Diagrammes de séquence
Diagramme de séquence.
• Acteur/objets
• Barres
d’activité
• Expressions
conditionnelles
• Récursion
• Créations
d’objets
• Destructions
d’objets
Diagramme de séquence
Diagrammes de collaboration
Collaborations
Diagrammes de collaboration
Diagramme de collaboration
• Représentation d’interactions
• Ensembles d’objets + Stimuli (Instances de Messages)
. - 79 - © 2003 ATLAS Nantes
Ingénierie des systèmes logiciels
Diagramme de collaboration
3 : Operation 1 (parametres)
1 : evenement 2 : operation
4 : operation
nom acteur : 5 : operation (parametre)
nom de la classe
flux de donnees
Objet 3
: nom de la classe
: Imprimante
: Scanner
: Personne : Ascenseur
• Avec Acteur
: Cabine 2: Ajouter destination RDC
• Multi-objets
. - 81 - © 2003 ATLAS Nantes
Ingénierie des systèmes logiciels
Le concept de messages
Exemple
A
3: Z
X
1:
2: Y
B C
• Vue interne
• Vue externe
Diagrammes d'états-transitions
Etats/Transitions
Diagrammes d'états
Symboles
Event2
Event1
State1 State2
A
/ Op1
A
entry: Op2
do: Op3 Evt[ Garde ] / Action ^Cible.Evt
on Evt: Op4
exit: Op5
/ Op6 B
Les gardes
Climatisation Aération
Automates hiérarchiques
Plus de 60 ans
Actif
Chomeur
Plus de 60 ans
Actif
Chomeur
Automate à mémoire
Actif
Chomeur
H
Zut Ok
H Mémoire (superficielle)
Mémoire (profonde)
Congé sabbatique H*
Graphes état-transition
Diagrammes d’états.
Notation de Harel,
autorisant :
Diagrammes d'activités
Activités
Diagrammes d'activités
Exemple
ActionState1
ActionState2
Fork
[C1]
[C2] Condition
ActionState5 ActionState7
ActionState3 ActionState4
Join
Barre de synchronisation
ActionState6
Exemple
Mesurer la température
Chauffer Refroidir
Exemple
Se renseigner
Etablir un devis
Commander
Facturer
Payer Livrer
Exemple
Diagrammes de composants
Composants
Diagrammes de composants
Diagrammes de composants
Relation de dépendance
Diagramme de composant
composant 1
composant 2
Diagrammes de déploiement
Déploiement
Diagrammes de déploiement
Diagrammes de déploiement
NodeInstance1
Object2
ComponentInstance1
nom du lien
Noeud 1 Noeud 2
Autres diagrammes
Diagrammes de déploiement
Console
<<TCP/IP>> unPC
unTX
unServeur
uneImprimante
Diagrammes de déploiement
Présentation du TD #1
TD #1
OCL
Proposition IBM/Objectime
Modeling Schemes
Object (for specific languages)
Constraint Extension
Language Mechanism
(OCL)
is a refinement of
Core Meta-Model
67 Formally defined Meta-Types
OA&D Standard
Introduction
• <<precondition>>
• Pour toute opération, les droits de l'objet offrant le contrat
sont définis par une pré-condition
• <<postcondition>>
• Les obligations sont précisées par une post-condition. Une
post-condition doit être vérifiée au moment où l'opération se
termine.
• <<invariant>>
• Un invariant est une contrainte qui doit toujours être vérifiée
pour toutes les instances d'un type, d'une classe ou d'un
interface.
Client
nom: String
titre: String
age: Integer
estMale: Boolean
context Client
titre = if estMale then ‘Mr.’ else ‘Mme.’ endif
age >= 18 and age < 66
nom.size < 100
Exemple
Client
sexe: enum {male, female}
nom: String
titre: String
naissance: Date
Exemple
1 0..*
CompteBancaire Transaction
CompteEpargne
self.solde > 0
Exemple
Context Animal
Animal.allInstances -> select(oclType = Hint) -> isEmpty
Exemples
pilote
équipage
Vol 1..*
Personne
0..* stewards
context Vol
self.équipage -> includes( self.pilote )
context Vol
self.équipage -> includesAll(self.stewarts)
Complexité de UML
Fin du cours
Merci
Questions ?
Commentaires ?
Jean Bézivin
Jean.Bezivin@irin.univ-nantes.fr
Equipe ATLAS, INRIA & IRIN, Nantes