Académique Documents
Professionnel Documents
Culture Documents
Jean-Marc Jzquel
IRISA/CNRS et
13/02/2013 14:38
PLAN
Analyse (Technique de dcouverte des classes...) Conception (Systmique, notion de Design Patterns) Ralisation et Validation
13/02/2013 14:38
Gnalogie de UML
UML
(Rumbaugh, Booch, Jacobson) FUSION
(HP-Labs) CLASSERELATION (P. Desfray) CRC (R. Wirf-Brooks)
Use-Case (I.Jacobson)
OOA (P. Coad) JSD (M. Jackson) OOA - OODLE (Schlaer & Mellor)
OMT
(J. Rumbaugh et al.)
OOA-OOD
(G.Booch)
13/02/2013 14:38
De OMT UML
(Rumbaugh
et al., G.E.)
Succs de la mthode du aux qualits de la notation : Concise, assez prcise, simple utiliser et outiller Rien de fondamentalement nouveau Inspire entit-relation pour la modlisation des objets Notation de Harel pour la dynamique des objets De Marco/Yourdon flots de donnes & transformations
1995 : Version prliminaire de UML extensions et amliorations, publications JOOP, ... inspires par les auteurs eux-mmes et par Booch 1997 : UML version 1.0
Intgration de la mthode OOSE de Jacobson (use-cases), et des remarques de grandes socits informatiques Standardise lOMG. 2Q99 =>Version 1.4
13/02/2013 14:38
Capacit de vrification
Cohrence Compltude
13/02/2013 14:38
Un peu de Mthodologie...
Un mta-modle
La smantique --- paramtrable dans UML (strotypes)
Un processus
Dtails dpendants du domaine dactivit : Informatique de gestion Systmes ractifs temps-rels Shrink-wrap software (PC)
13/02/2013 14:38
13/02/2013 14:38
Processus classique
Validation
Validation Mise en uvre
Conception
Etude technique pralable Conception prliminaire Conception dtaille
Intgration
Intgration Tests d'Intgration
Ralisation
Codage Mise au point Tests unitaires
8
13/02/2013 14:38
10
Conception V1 Ralisation
11
13/02/2013 14:38
12
VALIDATION
Validation technique Validation par les utilisateurs
UML
Modle utilisateur Modle statique Modle dynamique Modle dimplantation
ELABORATION
Architecture Modles des objets et scnarios Rgles de transformation (Design patterns)
CONSTRUCTION
Modle dtaill des objets Scnarios dtaills Algorithmes Codage - Mise au point Intgration
13/02/2013 14:38
13
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
14
Diagramme de paquetages
Diagramme de squences Diagramme de collaborations Diagramme dtats-transitions Diagramme dactivits Diagramme dimplantation
Besoins Conception V&V Analyse Ralisation
13/02/2013 14:38
15
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
16
Sujet longtemps nglig (e.g. OMT) Question de l'expression des besoins pourtant fondamentale
Et souvent pas si facile (cible mouvante)
cf. syndrome de la balanoire
13/02/2013 14:38
17
Quatre objectifs
Se comprendre
Reprsenter le systme
Exprimer le service rendu Dcrire la manire dont le systme est peru
13/02/2013 14:38
18
Les moyens
Les
Les
acteurs UML
use-cases UML dun dictionnaire du domaine
Utilisation
13/02/2013 14:38
19
Intrt du dictionnaire
13/02/2013 14:38
20
Exemple de dictionnaire
Dictionnaire d'un simulateur de vol
Notion
Pilotage
Dfinition
Action de piloter un avion en enchanant des manoeuvres lmentaires Organe d'interaction entre le pilote et l'avion ou entre l'avion et le pilote Instrument qui permet d'agir sur la quantit de carburant injecte dans le moteur
Instrument
Instrument
Manette_gaz
Action
Mettre les gaz fond
13/02/2013 14:38
Dfinition
Action qui permet dinjecter le maximum de carburant pour atteindre la vitesse maximale
21
Acteurs
Entit externe au systme et amene interagir avec lui. Un acteur joue un rle vis-a-vis du systme Un acteur est une classe Un acteur peut reprsenter un tre humain, un autre systme, ... L'identification des acteurs permet de dlimiter le systme
13/02/2013 14:38
22
Acteurs : notations
CLIENT
Actor EXPEDITEUR
Actor SUPERVISEUR
13/02/2013 14:38
23
La compilation des cas d'utilisation dcrit de manire informelle le service rendu par le systme
fournissent une expression "fonctionnelle" du besoin peuvent piloter la progression d un cycle en spirale
Les cas d'utilisation sont nommes en utilisant la terminologie dcrite dans le dictionnaire
24
13/02/2013 14:38
CLIENT
Traiter commande
MAJ catalogue
SUPERVISEUR
Etablir crdit
13/02/2013 14:38
25
Communication
Lien entre le use case et lacteur. De type association
Utilisation (uses)
Utilisation dautres use-cases pour en prciser la dfinition Extension (extends) : utilisation optionnelle (attention au sens des flches. Inclusion ( includes ) : utilisation systmatique
Hritage ( Generalization
26
13/02/2013 14:38
13/02/2013 14:38
27
13/02/2013 14:38
28
Besoin fondamental :
Conduire une voiture
{fondamental}
Besoins oprationnels
Ouvrir la porte Mettre le contact Acclrer Tourner le volant ...
includes
includes
{oprationnel}
ouvrir la porte
{oprationnel}
mettre le contact
acclrer
13/02/2013 14:38
29
Domaine de lapplication
besoin1
service1() service3() service1() service2() service3() service4() service5() service5() service6() service1() service6() service2()
service1 service3
besoin2
Utilisateur 1
besoin3
Utilisateur 2
besoin4
service5
13/02/2013 14:38
30
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
31
Compte
solde: Somme plancher: Somme
Compte
Nom de la classe
13/02/2013 14:38
32
Concept reprsent (nom) Classes hrites (concepts prciss) Relations avec autres classes Attributs (classe, nom, visibilit) Oprations (paramtres) Contraintes, invariants Gnricit (classes paramtres) Strotypes
13/02/2013 14:38
33
ATTRIBUTS
Type de l'attribut
Nom de l'attribut
13/02/2013 14:38
34
Attributs drivs
En termes d analyse, indique seulement une contrainte entre valeurs et non une indication de ce qui doit tre calcul et ce qui doit tre mmoris
13/02/2013 14:38
35
Vues graphiques
Compte
solde: Somme plancher: Somme crditer (montant: Somme) dbiter (montant: Somme)
Nom de lopration
Nom de paramtre Classe du paramtre
13/02/2013 14:38
36
13/02/2013 14:38
Prconditions
{precondition expression boolenne OCL} Abrg en: {pre: expression boolenne OCL}
Postconditions
{postcondition expression boolenne OCL} Abrg en: {post: expression boolenne OCL} Operateur valeur prcdente (idem old Eiffel):
expression OCL @pre
13/02/2013 14:38
38
39
Une contrainte :
Une relation est un lien stable entre deux objets
13/02/2013 14:38
40
Notation
Personne propritaire
1
possession
proprit
*
Voiture
41
Rle
Voiture
passager Personne *
moyen_de_transport Rle
Cardinalit prcise
13/02/2013 14:38
42
1 * 0,1
Exactement une
Plusieurs (0 n)
Optionnelle (0 ou 1) Cardinalit spcifie Intervalle
1,2,4 1-10
13/02/2013 14:38
43
Relations rflexives
encadre chef
1 sous-fifre
1..*
Personne
13/02/2013 14:38
44
Composition et Agrgation
Voiture
passager Personne
moyen_de_transport
1
roulement >
4,6
Composition
Roue
Agrgation
structure > 1
Chassis
13/02/2013 14:38
45
13/02/2013 14:38
46
Relations n-aires
PROFESSEUR
CLASSE
PROFESSEUR
0..*
1..*
Enseignement
1..* 1..*
1..*
MATIERE 1 Enseigne
Enseignant
Destinataire
13/02/2013 14:38
CLASSE
47
Relations attribues
candidat preuve
Etudiant Note
n..k objet_preuve
Matire
13/02/2013 14:38
48
Qualifieurs de relations
Un qualifieur est un attribut spcial qui permet, dans le cas d'une relation 1-vers-plusieurs ou plusieurs-vers-plusieurs, de rduire la cardinalit. Il peut tre vu comme une cl qui permet de distinguer de faon unique un objet parmi plusieurs.
Rpertoire 0..* 0..* Fichier
Nom du fichier
Fichier
13/02/2013 14:38
AEROPLANE
AEROPLANE
VEHICULE_DE_TRANSPORT
AVION
AVION
13/02/2013 14:38
50
Interfaces et lollipop
interface
MOBILE
MOBILE
Raffinement
AVION
AVION
13/02/2013 14:38
51
VOITURE
REPERTOIRE
DRIVER
FICHIER_TEXTE
FICHIER_BINAIRE
13/02/2013 14:38
52
Carre
Cercle
Une instance de Forme est obligatoirement une instance de la classe Carre ou de la classe Cercle
13/02/2013 14:38
53
Carre
calculer_surface()
Cercle
calculer_surface()
13/02/2013 14:38
54
Visibilit
usager
hritier
priv = implmenteur
corps
13/02/2013 14:38
55
Visibilit
Reprsentation
Classe
+a1 : T1 -a2 : T2 #m1 (p1,P2,p3) +m2 (p1,P2,p3)
13/02/2013 14:38
Classe effective
paramtres effectifs
13/02/2013 14:38
57
autorisation sur
autorisation priorit privilges session de dmarrage
*
station de travail
13/02/2013 14:38
58
Les strotypes
13/02/2013 14:38
persistent CLIENT
13/02/2013 14:38
60
Les notes
Complments de modlisation
Attachs un lment du modle ou libre dans un diagramme Exprims sous forme textuelle Elles peuvent tre types par des strotypes
modle ralis par John Doe employ chef 0..1 {PERSONNE.employeur = PERSONNE.chef.employeur} PERSONNE * employeur 0..1 ENTREPRISE
13/02/2013 14:38
61
Conseils pratiques
Faire simple!
Things must be as simple as possible, but no simpler. A. Einstein viter toute complication nuisible
utiliser les qualifieurs viter les relations ternaires, quaternaires (trop complexe) se dgager de limplmentation : raisonner objets, classes, messages, relations, attributs, oprations
62
Approche incrmentale
Itrer Confronter ses modles aux autres Savoir s'arrter avant datteindre la perfection...
prise en compte qualit (niveau de prcision), cots, dlais... asservissement au processus de dveloppement
13/02/2013 14:38
63
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
64
Notion de package
Un package rglemente la visibilit des classes et des packages quil rfrence ou le compose Les packages sont lis entre eux par des liens d'utilisation, de composition et de gnralisation Un package est la reprsentation informatique du contexte de dfinition dune classe
13/02/2013 14:38
65
C2
13/02/2013 14:38
66
SYNTHSE EN PACKAGES
13/02/2013 14:38
Reprsentation graphique
Classe
{public }
{private }
Package::Classe
CLASSE D'INTERFACE
CLASSE DE CORPS
CLASSE EXTERNE
13/02/2013 14:38
68
Dfinition
Il y a utilisation entre packages si des classes du package utilisateur accdent des classes du package utilis Pour quune classe dun package p1 puisse utiliser une classe dun package p2, il doit y avoir au pralable une dclaration explicite de lutilisation du package p2 par le package p1
Reprsentation graphique
P1 P2
69
LIVRAISONS LIVREURS
VEHICULES COLIS
13/02/2013 14:38
70
Exemples
JeuPlateau
JeuDame
JeuEchec
Windowing System
Motif
MicrosoftWindows
13/02/2013 14:38
71
Rponses au besoin
Contexte de dfinition d'une classe Unit de structuration Unit d'encapsulation Unit d'intgration Unit de rutilisation Unit de configuration Unit de production
13/02/2013 14:38
72
Pour les grands systmes, il est ncessaire de disposer dune unit de structuration :
13/02/2013 14:38
Exemple de composition
ENTREPRISE
COMPTABILIT
COMMERCIAL
LIVRAISON
13/02/2013 14:38
74
Colis Personnel
13/02/2013 14:38
75
COMPTABILIT
LIVRAISONS
Facturation
Bilan
Livraisons
Vhicules
Tenue Comptes
Personnel
Colis
Livreurs
COMMERCIAL
Clientles
Commerciaux
13/02/2013 14:38
76
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
77
13/02/2013 14:38
78
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
79
13/02/2013 14:38
80
Syntaxe graphique
Objets et messages
Objets = Instances de classes Nom Objet1:NomClasse1
Nom Objet:NomClasse
Temps
Message nom message mis par Nom Objet vers Nom Objet1
13/02/2013 14:38
81
Lactivation est la priode durant laquelle lobjet excute une action lui-mme ou via une autre procdure
13/02/2013 14:38
82
Notation
Objet existant avant et aprs lactivation du scnario objet2:Classe2
Client
op ( ) objet1:Classe1 m1 ( ) m2 ( ) objet3:Classe3 m3 ( ) Objet cr dans le scnario
Activit de lobjet
Ligne de vie
83
13/02/2013 14:38
Messages
Cas particuliers
Les messages entranant la construction dun objet La rcursion Les destructions dobjets
13/02/2013 14:38
84
Notations
objet2:Classe2
Cration dobjet
op ( ) objet1:Classe1 m1 ( par )
m2 ( )
Rcursion
Retour dopration
Destruction dobjet
85
13/02/2013 14:38
Nom Objet1:
:Nom classe2
a {b-a< 5 sec.}
demande
demande
rponse
d {d-d< 1 sec.}
13/02/2013 14:38
86
Reprsentation de conditionnelles
objet2:Classe2 op ( ) Branchement conditionnel
objet1:Classe1
[x<0] m1 ( x ) [x>0] m2 ( x )
Branchement conditionnel
13/02/2013 14:38
87
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
88
Diagrammes de collaboration
Les scnarios :
Illustrent la dynamique denchanement des traitements dune application en introduisant la dimension temporelle
13/02/2013 14:38
Ils sappliquent
En spcification En conception (illustration de design patterns)
13/02/2013 14:38
90
Elments constitutifs
Des interactions
Des messages Un message initiateur du diagramme provenant dun
Acteur de lapplication, Objet de lapplication.
Les numros de squence des messages changs entre les objets de cet ensemble suite au message initiateur
13/02/2013 14:38
91
pre
mre
1: cashRequest($25)
2: cashReceived($25)
Fred
13/02/2013 14:38
92
cashRequest($25)
cashReceived($25)
13/02/2013 14:38
93
Syntaxe graphique
Les messages
Oprations Rception dvnements
Le squencement
Les squences conscutives Les squences imbriques
squence imbrique
origine:Point
4 1.1: position ( )
message initiateur
afficher ( )
:Carr
:Segment
1 *(i=1..4):afficher ( ) 1.2: position ( )
destination:Point
opration
13/02/2013 14:38
94
13/02/2013 14:38
96
/ Pre
pre
/ Mre
mre
1: cashRequest($25)
2: cashReceived($25)
/ Enfant
13/02/2013 14:38
97
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
98
13/02/2013 14:38
99
E1
tat
E2
transition
Syntaxe :
EvnementReu (param : type, ...) [condition de garde] / Action ^EvnementsEmis
13/02/2013 14:38
100
Notion dvnements
Abstraction d'une information instantane change entre des objets et des acteurs
Un vnement est instantan Un vnement correspond une communication unidirectionnelle Un objet peut ragir certains vnements lorsqu'il est dans certains tats. Un vnement appartient une classe d'vnements (classe strotype signal).
101
13/02/2013 14:38
Les vnements
signal NETWORK_EVENT
signal KEYBD_EV
character
...
...
...
13/02/2013 14:38
102
Typologie dvnements
13/02/2013 14:38
103
Notion d action
Action : opration instantane (conceptuellement) et atomique (ne peut tre interrompue) Dclenche par un vnement
Traitement associ la transition Ou l entre dans un tat ou la sortie de cet tat
action
User_input / mise_sous_tension Veille dlai_mise_en_veille / passage_en_mode_veille Allum
action
13/02/2013 14:38
104
Notion dtats
13/02/2013 14:38
105
Structuration en sous-tats
13/02/2013 14:38
106
Invalide
do / passer message
Tlphone raccroch
activit
13/02/2013 14:38
107
un tlphone :
Actif
dcroche combin 15 sec
En composition
Dernier numro
Repos
Etablissement
Dialogue
13/02/2013 14:38
108
mission dvnements
13/02/2013 14:38
109
Utilisation de sous-tats concurrents pour ne pas avoir expliciter le produit cartsien d automates
si 2 ou plus aspects de l tat d un objet sont indpendants Activits parallles
13/02/2013 14:38
110
Exemple de concurrence
Prparation d'un avion
Approvisionnement
Compartiment plein
Nourriture charge
vrification OK
Equipage absent
Equipage
Monte
Vrification avion
13/02/2013 14:38
111
Etat-transition (rsum)
Format :
vnement (arguments) [conditions] / action ^vnements provoqus
Dclenchement :
par un vnement (peut tre nul).
Peut avoir des arguments.
Conditionn par des expressions boolennes sur l'objet courant, l'vnement, ou d'autre objets.
Tir de la transition :
Excute certaines actions instantanment. Provoque d'autres vnements ; globaux ou vers des objets cibles.
13/02/2013 14:38
112
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
113
Attachs
une classe, une opration, ou un use-case (workflow)
13/02/2013 14:38
114
Etat-action et dcision
13/02/2013 14:38
115
[demande soda]
obtenir un gobelet
13/02/2013 14:38
116
Strotypes optionnels
Emission de signal
Allumer cafetire
Rception de signal
Voyant steint
13/02/2013 14:38
117
Les modles dynamiques d'une classe sont transmis par hritage aux sous-classes
118
13/02/2013 14:38
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
119
Diagrammes dimplantation
Diagrammes de composants
Dpendances entre composants logiciels
code source binaires, DLL excutables
Diagrammes de dploiement
Configuration des composants Localisation sur les noeuds dun rseau physique
13/02/2013 14:38
120
Exemples de composants
Synonymes Dictionnaire
Vrificateur
Interfaces
Planner
Composants
GUI
13/02/2013 14:38
121
Exemple de dploiement
MachineServeur
Dictionnaire
MachineClient1
Noeuds
GUI
MachineClient2 Planner
122
13/02/2013 14:38
Modlisation UML
Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38
123
13/02/2013 14:38
124