Professional Documents
Culture Documents
(UML)
(Bersini 2004)
(http://www.projet-plume.org/ressource/uml-langage-graphique-de-modelisation)
Laurent Prochon
animateur PEPI IDL
INRA, Dept PHASE
URH
63122 St Gens Champanelle
Laurent.perochon@clermont.inra.fr
donnes
en groupe
ou structures, types diffrents.
oriente
objets,
Framework.
Framework = regroupement dobjets (librairie).
Lorient Objet
Cest une technique de modlisation
de systme.
Le systme
Un systme est compos dobjets en interaction
Exemples :
Une compagnie arienne (avions, pilotes )
Un amphithtre (lves, professeur, tables )
Les objets
Les objets du systme amphithtre
Paul
Lucie
Table n1
Chaise n2
Pascal
Table2
Chaise n1
Les objets
Objet = attributs + Mthodes
(Oprations)
Pascal
23 ans
Table2
Attributs
clibataire
mange
dors
tudie
4 pieds
marron
Oprations
Mthodes
ouverture tiroir
tirer rallonge
Diffrences approches
procdurale/Objet
Procdurale
programm
es
objet
Objets
attributs
mthodes
Fichiers de donnes
Les classes
Elles regroupent les objets ayant des caractristiques
communes (informations/comportements).
Mme moule
Les classes
Objets
Paul
Table n1
Chaise n1
Table2
Chaise n2
Pascal
Lucie
Classes
Personne
Table
Chaise
Paul
Lucie
23 ans
25 ans
20 ans
clibataire
mari
clibataire
mange
dors
tudie
mange
dors
tudie
mange
dors
tudie
Objet
Instance
Personne
ge
Classe
statut marital
mange
dors
tudie
Rsum : Entits de
lapproche oriente objet
Objets
Valeurs particulires
Attributs
Classes
(Mthodes
)
Cases
vides
Objet = le
Communication inter les : ponts
http://fr.wikipedia.org/wiki/Fichier:Faroes030417-nasa%282%29.jpg
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les associations
(liens entre classes)
Hritage . voir
Agrgation
Association
...
Lhritage
Gnralisation/Spcialisation
Lorsque
des
classes
ont
des
caractristiques
communes, on peut mettre en commun ces
informations/comportements
dans
une
classe
spcifique.
Les classes dorigines hriteront des caractristiques
de celle-ci.
Lhritage
Personne
ge
statut marital
mange
dors
tudie
Personne
ge
dors
Homme
Bb
statut marital
mange
tudie
mange
Lhritage
Personne
ge
statut marital
mange
dors
tudie
Personne
ge
Modification
de Mange
dors
mange
Homme
Bb
statut marital
tudie
mange
Lhritage
Personne
ge
Parent
dors
mange
Homme
Bb
statut marital
Descendants
tudie
mange
Lhritage
Avantages
partage de code
Rutilisabilit
Fiabilit (classes les plus hautes souvent utilises)
Dangers
Dcoupage excessif du code
non respect de la gnralisation/spcialisation
Agrgation
Composition (plus fort)
Association
Communication entre objets. Un objet envoi un
message/stimulus un autre
Demande rapport
Lucie
Demande rapport
Envoi partie n1
Professeur
Martin
Binme n1
Envoi partie n2
Remise rapport
Demande rapport
Pascal
Le principe de
lencapsulation
Sparation Interface/Implmentation
Demande service
Le polymorphisme
Une objet peut envoyer un message un autre objet,
sans connatre le type de la classe de lobjet qui le
recevra.
Rsum
Un objet/instance contient les donnes (attributs) et les
traitements (mthodes)
Chacun deux est associ une classe (moule)
Les classes sont associes entre elles par des associations
Exemple modliser
Demande rapport
Lucie
Demande rapport
Envoi partie n1
Professeur
Martin
Binme n1
Envoi partie n2
Remise rapport
Demande rapport
Pascal
Schma logique
Reprsentation physique :
programme
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ?
Quest ce qui agit, pense, fourni un service ?
Professeur
Martin
Lucie
Pascal
Et binme n1 ? .
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ?
simpl
e
complex
e
Les classes ?
Simple
instance
classe
-lve
-Lucie
-lve
-Pascal
-Professeur
-Martin
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Les classes ?
Trop Simple
classe
Personne
-Statut
-Nom
Demande rapport()
Envoie partie()
instance
lve
Lucie
-lve
-Pascal
-Professeur
-Martin
Les classes ?
Les classes ?
Et le binme ? Cest le seul qui fait une remise de rapport
Seul Professeur et binme peuvent demander un rapport
Seul les lves remettent des parties de rapport
Les classes ?
Correspondance
Les classes ?
divergence
Connat
Professeur
Demande rapport()
Connat
Est compos de
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
-nom
Le programme
Professeur
Professeur
Programme
principal
Crer( Martin)
-Martin
(1,Lucie)
(3,instances Pascal et Lucie) (2,Pascal)
-1
-Pascal
binme
-Lucie
lves
Le programme
Professeur
-Martin
(1,Lucie)
(2,Pascal)
-Pascal
-Lucie
lves
Tableau
Instance Lucie, instance Pascal, instance
dinstances
= accs aux instances depuis linstance Professeur Martin
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
(unified Modeling Langage)
Introduction
Vue densemble
Que doit faire mon logiciel ?
La structure (vue mtier)
La dynamique (vue mtier)
La conception (vue informatique)
Conclusion
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
Introduction
Logiciel
symboles
Excutable
UML
Introduction
Modles Compartiments
(flux entre compartiments)
-Modle du domaine
-Architecture du logiciel
-Communication utilisateur/informa
UML
Vue densemble
Introduction
Vue densemble
Que doit faire mon logiciel ?
La structure du logiciel (vue mtier)
La dynamique interne au logiciel (vue mtier)
La conception (vue informatique)
Conclusion
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
Vue densemble
XML
MOF
CORBA
UML 2 (2005)
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
Vue densemble
Entits
Associations Diagrammes
(entre entits) (entits + associations)
UML
Vue densemble
Classe
tat / Activits
Personne
- ge
Gestant
- dors()
Acteur
Cas d utilisation
Paquetage
mission
CO2
Biologique
Eleveur
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
Vue densemble
Associations
(entre entits)
Gnralisation/
Spcialisation
Dpendance
Association
Alimente >
Agrgation
UML
Vue densemble
Diagrammes
Etats-Transitions
Classes
Cas dutilisation
13
Activits
Squences
Paquetages
Reprsentation graphiques
du logiciel
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
Fonctionnalits
Introduction
Vue densemble
UML
Fonctionnalits
Un type dutilisateur
UML
Type de lacteur
Un acteur
UML
Fonctionnalits
Une fonctionnalit
UML
Un cas dutilisation
UML
Fonctionnalits
Acteur 1
Cas dutilisation
4
Cas dutilisation
7
Acteur 2
Cas dutilisation
6
Cas dutilisation
3
Acteur 3
Cas dutilisation
5
Cas dutilisation
2
Acteur 4
UML
Fonctionnalits
Secrtaire
Passer une
commande
Inscrire un
nouveau
fournisseur
Responsable
contrat achat
Ajouter
un nouveau
compte utilisateur
Service
informatique
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
Fonctionnalits
Extend, include, spcialisation
Etend
Inclus
Cas plus
gnral
Cas plus
spcialis
UML
Fonctionnalits
Passer une
commande
Secrtaire
1- saisir code article
Logiciel
Contrle code correct et
renvoi libell
2- saisie quantit
3- saisie code quipe
4- valide commande
enregistre
Contrle code correct
UML
Fonctionnalits
Technique
Mtier
UML
Fonctionnalits : vue mtier
Eleveur
Vtrinaire
Vendre
du lait
Soigner les
vaches
UML
Fonctionnalits
Comment ?
Secrtaire
Logiciel
2- saisie quantit
enregistre
4- valide commande
Informaticien
UML
Fonctionnalits
1 cas dutilisation
Dcrire la dynamique du
systme
UML
structure
Introduction
Vue densemble
Que doit faire mon logiciel ?
UML
structure
Sous
Systme
2
Sous systme
2
Sous
Systme 1
Sous systme 1
Sous
Soussystme 3
Systme 3
Paquetage
<<system>>
<<system>>
sous-systme 1
sous-systme 2
<<system>>
sous-systme 3
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
structure
<<system>>
Fermier
Troupeau
<<system>>
Parcelle
UML
Structure : lobjet
Objet 2
Objet 4
Objet 6
Objet 3
UML
Structure : lobjet
Arbre 1
Arbre 2
Renard 1
Champignon 2
Champignon 1
Renard 2
Arbre 3
UML
Structure : la classe
Objet 1
Objet 2
Objet 4
Nom de la classe
Caractristiques
(variables)
fonctions
UML
Structure : les associations
Classe A
Classe A
Nom association>
Rle B
Rle A
Classe B
Classe B
UML
Structure : les associations
Lapin
Risque
mange>
engendre>
Salade
Accident
UML
Structure : les cardinalits
nombre dobjets de chaque classe impliqus dans
lassociation
Classe
Classe
Classe
Classe
Classe
0..*
1..*
0..1
m..n
1
UML
Structure : les cardinalits
devient>
Cocon
0..1
Un cocon peut
engendrer
un papillon ou non
Un papillon provient
dun cocon
et dun seul
engendre>
Risque
0..*
Un accident peut
survenir cause des
risques pris ou pour
dautres raisons
Papillon
0..*
Accident
UML On hrite ? Ah ah
Gnralisation / Spcialisation
Classe plus spcialise
BioEntity
Solvent
Cytoplasme
PyuvateTransporter
Enzyme
Nucleus
Matrix
EukaryoticCell
Erythrocyte
TransportProtein
LipidDisintegration
Membrane
LipidBilayer
CellMembrane
NeuronCellBody
MitochondrialInnerMembrane
CellBilayer
MitochondrialInnerBilayer
MitochondrialOuterBilayer
MitochondrialOuterMembrane
Solution
Mitochondrion
Cellular solution
GaseousSolution
Cytosol
MatrixSol
ExtraCellularSolution
MitochondrialIntermembranesol
MitochondrialDualMembrane
MitochondrialIntermembraneSpace
UML
Agrgation / composition
agrgat
partie
composition
partie
UML
Exemple complet
UML
Modle mtier
Using UML for modeling a distributed Java application, K. Berner, A. Rausch, M.Sihling.
http://www.cetus-links.org/ suivre le lien UML.
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
<<singleton>>
- Ecole
<<singleton>
>
+ ajouterPlanning()
Organisateur
Equipe
+ ajouterProfesseur()
+ supprimerPlanning()
+
supprimerProfesseur()
+ compterPlannings()
<<Interface
>>
+ getProfesseurs()
1
+ compterStatuts()
Serialization
+ setEcole()
Priode
- Jour
# getOrganisateur()
- Dbut
# setOrganisateur
Professeu ()
r
- Nom
+
getJour()
- Fin
+ setJour()
- Statut
+ ajouterImpossibilit()
+ getHeure()
+ supprimerImpossibilit()
+ compterImpossibilits()
+ getImpossibilits()
+
effacerObserver()
+ aFaire ()
1
+ getNom()
0..1
# ajouterSurveillance()
# supprimerSurveillance() Laurent
+ ajouterRcr()
+ SupprimerRcr ()
+ compterRcrs()
Observ
er
*
AffichageSynths
e
+ rafrachir()
+ metJour
()
+ getRcr ()
+ getLieu()
Impossibilit
*# chercherRecouvrement
()
#
avertirObserver()
Lieu
+ getMinute()
+ setDutre()
+ setStatut()
*
# setChangEtAvertir
()
Planning
+ setHeure()
+ getDure()
# setChang()
+getEquipe() 1
1
+
supprimerToutesRcrs()
+ setMinute()
+ compterSurveillances()
# getSurveillance()
+ compter Rcrs()
# setEquipe()
+ getEcole()
+ setnom()
+
ajouterObserver()
Modle technique
+ getPlanning()
+
compterProfesseurs()
+ getStatut()
Observabl
e
+ setLieu()
Rcratio
n
+
()
1
1
AffichagePlannin
g
+
affecterProfesseur()
+
enleverProfesseur()
0..*
+ estSurveille()
+ existeConflit()
surveille
Planning
t
UML
Dynamique interne
Introduction
Vue densemble
Que doit faire mon logiciel ?
La structure du logiciel (vue mtier)
UML
Dynamique interne
inter objets
intra objet
UML
Dynamique interne : diagramme de squence
Diagramme de squence
Echange entre objets actifs (AO) et petites molcules
SM
AO
SM
/cellBilayer
/cytosol
/extraCellula
Solution
SubstrateRequ
SubstrateReq
SubstrateLev
SubstrateLev
AO
/enzyme 1
AO
AOSubstrateLevel
/mitochondrial
OuterBilayer
SubstrateRequ
/enzyme n
SubstrateLev
SubstrateRequ
SubstrateRequ
SubstrateLev
SubstrateLev
UML
Dynamique interne : diagramme dtats transitions
Les stades du papillon
Etat initial
chenille
chrysalide
Transition
Etat
papillon
Etat final
UML
Dynamique interne : diagramme dactivits
activit
Activit 1
Activit 2
Activit 3
Alternative
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
UML
La conception
Introduction
Vue densemble
Que doit faire mon logiciel ?
La structure du logiciel (vue mtier)
La dynamique interne au logiciel (vue mtier)
UML
La conception
ftp://ftp-developpez.com/laurent-audibert/Cours-UML/pdf/Cours-UML.pdf
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011
Evolution du code
cart code / diagramme
Relation avec les langages de programmation
Comme il est bas sur les concepts orient objets, son usage naturel est
plutt tourn vers ceux-ci. A partir d'outil, on peut convertir les diagrammes
(des classes) en un squelette finir de remplir en C++ ou Java par exemple.
On peut galement obtenir automatiquement des tables relationnelles. La
conversion en langages procdurales est moins directe.
UML est-il un langage formel?
NON! Je citerai ici les initiateurs de ce langage: Le langage UML est
imprcis, complexe et tentaculaire, ce qui est la fois un dfaut et une
qualit. (Rumbaugh, Jacobson et Booch, 2004).
Outils
De nombreux outils existes, libres ou non.
https://intranet.inra.fr/pepi-idl/index.php?
option=com_content&view=article&id=15:outilsuml&catid=21:general&Itemid=30
UML uniquement pour modliser un logiciel?
Comme UML est un langage de modlisation, il a t utilis dans d'autres
domaines (http://www.projet-plume.org/ressource/uml,
https://intranet.inra.fr/pepi-idl/index.php?option=com_content&view=categ
ory&id=21&Itemid=30
, http://www.modelia.org/html/20090428_FormationUML/pdf/
Le vocabulaire est adapter.
Langage international
Actuellement, les informaticiens travers le monde reoivent une formation
ce langage. N'importe quel stagiaire en informatique connatra donc ce
langage.
Rfrences bibliographiques
Biologie
J.L. Drouet, L. Pags. GRAAL-CN: A model of GRowth, Architecture and Allocation for Carbon and Nitrogen
dynamics within whole plants formalised at the organ level. Ecological Modelling. V. 206, pp. 231249. 2007.
C. Force, L. Perochon, D.R.C. Hill. Design of a multimodel of a dairy cows herd attacked by mastitis. Simulation
Modelling Practice and Theory. V. 10, pp. 543554. 2002.
T. V. Karpinets, B. D. Foy. Model of the developing tumorigenic phenotype in mammalian cells and the roles of
sustained stress and replicative senescence. Journal of Theoretical Biology. V. 227, pp. 253264. 2004.
J. Learmount, M.A. Taylor, G. Smith, C. Morgan. A computer model to simulate control of parasitic gastroenteritis in
sheep on UK farms. Veterinary Parasitology. V. 142, pp. 312329. 2006.
N. El Saadi, A. Bah. An individual-based model for studying the aggregation behavior in phytoplankton. Ecological
Modelling. V. 204, pp. 193212. 2007.
L. Prochon, P. Carrre, R. Baumont, B. Dumont, C. Mazel, C. Force, D.R.C. Hill, P. DHour, F. Louault, S. Prache,
J.F. Soussana, M. Petit. Design of a spatial multi-agent model of a perennial grassland ecosystem grazed by a herd of
ruminants. ESS01. 13th european simulation symposium. Simulation in industry. SCS, pp. 509-513. 2001.
K. Webb, T. White. UML as a cell and biochemistry modeling language. BioSystems. V. 80, pp.283302. 2005.
UML
L. Debrauwer et F. V. der Heyde. UML2. Initiation, exemples et exercices corrigs. Ed. ENI. Coll. Informatique
Technique. 274 p. 2005
M. Roux-Rouqui, N. Caritey, L. Gaubert et C. Rosenthal-Sabroux. Using the Unified Modelling Language (UML)
to guide the systemic description of biological processes and systems. 2004. BioSystems. V. 75, pp. 314. 2004.
J. Rumbaugh, I. Jacobson, G. Booch. UML 2.0 Guide de rfrence. Campus Press. 774 p. 2004.
Sur le site internet www.modelia.org suivre les liens Fiches techniques, puis UML.
http://www.projet-plume.org/ressource/uml-langage-graphique-de-modelisation
Laurent Prochon, IDL 2011, La Londe Les Maures, du 05/12 au 09/12/2011