Laurent PEROCHON
INRA
Centre de Clermont-Ferrand / Theix Unité de Recherche sur les Herbivores
63122 Saint Genès Champanelle laurent.perochon@clermont.inra.fr
Unified Modeling Langage (UML)
Concepts et Modèles
Introduction Vue d’ensemble
Que doit faire mon logiciel ? La structurelle (vue métier) La dynamique (vue métier)
La conception (vue informatique) Conclusion
Unified Modeling Langage (UML)
Concepts et Modèles
Introduction
L’Informaticien, le scientifique et l’ordinateur
Le scientifique
Informaticien
Utilisation
Pr og ra m m at io n
Introduction
L’Informaticien, le scientifique et l’ordinateur
Le scientifique
Informaticien
Pr og ra m m at io n Nouveau logiciel
Transformation Apprendre
Méthodes / Outils / Langage
Introduction
L’Informaticien, le scientifique et l’ordinateur
Le scientifique
Informaticien
Pr og ra m m at io n Nouveau logiciel
Communiquer Apprendre
à communiquer
Introduction
dommages engendrés par le vent
Tree positions Tree heights
Wind speed
Tree characteristics Tree diameter
Contact with other trees
Upwind gap size (gapfactor)
Shelter (gustfactor) Turning moment
at stem base Anchorage
strength stem length
Damage to small trees
Uprooting Stem breakage
Additional loading
Trees to remove
Le graphique pour modéliser
facteurs impliqués dans les performances de la lactation chez la vache laitière
Introduction
Le graphique pour modéliser
Événements cellulaires possibles induit par le signal
Introduction
Cell with arrested
growth because of DNA damage
( c) Senescent cell with the arrested growth because of telomere
(b) Cell with the damaged DNA (a) Normal cell
Proliferative signals
1) Normal division
MUTATOR RESPONSE 4) Abrogation of cell-cycle arrest and initiation of error-prone division with the emergence of mutant cells
REGULAR RESPONSE TO DNA DAMAGE
2) Normal division after DNA repair 3) Apoptosis Reparable
damage
Irreparable damage
Superposition of irreparable damage and survival signal
Superposition of replicative senescence and survival signal
Le graphique pour modéliser
Introduction
Formes diverses
•Risque d’incompréhension important
•Outils logiciels très limités
Un seul formalisme ?
Le graphique pour modéliser
Introduction
Formaliser
(J. Learmount et al. 2006) Modèles à Compartiments
(flux entre compartiments) Unified Modeling Langage (UML)
Communiquer
avec un informaticien
Langage
de l’informaticien
Introduction
Vue d’ensemble
Que doit faire mon logiciel ?
La structure du logiciel (vue métier)
La dynamique interne au logiciel (vue métier) La conception (vue informatique)
Conclusion
Unified Modeling Langage (UML)
Concepts et Modèles
Object Management Group (OMG) Regroupe les principaux acteurs
en informatique utilisant l’approche objet
Unified Modeling Langage (UML)
UML 1 (1997)
UML 2 (2005) Vue d’ensemble
UML
XML MOF CORBA
…
Diagrammes
(entités + relations)
Entités Relations
(entre entités) Vue d’ensemble
UML
Classe
- âge
- dors() Personne
Cas d ’utilisation Paquetage
Biologique Gestant État / Activités
Émission CO
2Vue d’ensemble
Entités
Acteur
Eleveur
Dépendance
Association
Généralisation/
Spécialisation
Agrégation Alimente >
Vue d’ensemble
Relations
(entre entités)
13
Vue d’ensemble
Diagrammes
Classes
Cas d’utilisation Séquences
Paquetages
Etats-Transitions
Activités
Représentation graphique
du logiciel
Introduction Vue d’ensemble
Que doit faire mon logiciel ?
La structure du logiciel (vue métier)
La dynamique interne au logiciel (vue métier) La conception (vue informatique)
Conclusion
Unified Modeling Langage (UML)
Concepts et Modèles
Que doit faire mon logiciel ?
C’est la question primordiale !
Que doit faire mon logiciel ?
Quels types d’utilisateurs ?
Chacun de ces types d’utilisateurs va avoir des besoins spécifiques / des utilisations du logiciel différentes
Découpage par fonctions, responsabilités, domaines d’expertise, par équipes … Exemple :
Logiciel Achat : secrétaire, responsable contrat achat, service informatique
Simulateur PARIS : informaticien, expert comportement social, expert ingestion, expert végétation, stagiaires
Un type d’utilisateur UML Un acteur
Type de l’acteur
Que doit faire mon logiciel ?
Que veut faire chaque acteur ?
Il s’agit ici de définir les fonctionnalités du logiciel pour chacun des acteurs
Exemple :
Logiciel Achat : consulter un prix, passer commande, ajouter un nouveau compte utilisateur, inscrire un nouveau fournisseur
Simulateur PARIS : caractériser les animaux et la végétation initiales, sélectionner les sorties désirées, lancer une simulation
Une fonctionnalité UML Un cas d’utilisation
Nom du cas d’utilisation
Que doit faire mon logiciel ?
Le diagramme des cas d’utilisation
acteurs + cas d’utilisation
Cas d’utilisation 1
Cas d’utilisation 7
Cas d’utilisation 6
Cas d’utilisation 5
Cas d’utilisation 4
Cas d’utilisation 3
Cas d’utilisation 2
Mon logiciel
Acteur 4 Acteur 2
Acteur 3
Acteur 1
Que doit faire mon logiciel ?
Le diagramme des cas d’utilisation
Exemple : logiciel achat
Consulter Un prix Passer une commande
Inscrire un nouveau fournisseur
Ajouter un nouveau compte utilisateur
Logiciel achat
Responsable contrat achat
Service informatique
Secrétaire
Que doit faire mon logiciel ?
Détailler chaque cas d’utilisation
Il s’agit ici de décrire les séquences d’interaction entre l’acteur et le logiciel pour réaliser le cas d’utilisation
Passer une commande
Exemple : logiciel achat
4- valide commande
Contrôle code correct 3- saisie code équipe
enregistre 2- saisie quantité
Contrôle code correct et renvoi libellé
1- saisir code article
Logiciel
Secrétaire
Que doit faire mon logiciel ?
Détailler chaque cas d’utilisation
Passer une commande
Exemple : logiciel achat
Le diagramme des séquences
Logiciel
Envoie code article
contrôle Envoie libellé
Envoie code équipe contrôle
ok
Valide commande
Passer la Secrétaire
4- valide commande
Contrôle code correct 3- saisie code équipe
enregistre 2- saisie quantité
Contrôle code correct et renvoi libellé
1- saisir code article
Logiciel Secrétaire
Que doit faire mon logiciel ?
Détailler chaque cas d’utilisation
Exemple : logiciel achat
Logiciel Envoie code article
contrôle Envoie libellé
Envoie code équipe
contrôle ok
Valide commande
Passer la commande Secrétaire
Informaticien
Comment ?
Que doit faire mon logiciel ?
Technique Métier
Eleveur
Vendre du lait
Vétérinaire
Soigner les vaches
Troupeau de bovins laitiers
Le diagramme des cas d’utilisation
(Le système vu de l’extérieur)
Que doit faire mon logiciel : vue métier
Comment le réalise t’il ?
Quelles parties du système interviennent pour réaliser le cas
d’utilisation ?
Décrire la structure du système (statique)
Comment font ces parties pour réaliser le cas d’utilisation ?
Décrire la dynamique du système
Que doit faire mon logiciel
1 cas d’utilisation
Introduction Vue d’ensemble
Que doit faire mon logiciel ?
La structure du logiciel (vue métier)
La dynamique interne au logiciel (vue métier) La conception (vue informatique)
Conclusion
Unified Modeling Langage (UML)
Concepts et Modèles
La structure du système
Sous Système 1
Les dépendances entre systèmes
<<system>> système entier
Paquetage
<<system>>
sous-système 1
<<system>>
sous-système 3
<<system>>
sous-système 2 Dépendance : le sous-système 1 dépend du sous-système 2
Sous Système 2
Sous Système 3
Sous système 1 Sous système 3
Sous système 2
La structure du système
<<system>>
Fermier
Parcelle
Troupeau
<<system>> Bovins allaitants
<<system>>
<<system>>
Les dépendances entre systèmes
La structure du système
Entité de base du système : l’objet
Un objet est unique, il a des caractéristiques et un comportement
Objet 6 Objet 4
Objet 3 Objet 5
Objet 1 Objet 2
La structure du système
Modéliser les objets
Ils ont des points communs : type de caractéristiques et de fonctions communes
renard 1 : mâle; 7 ans; 1,15 m; croissance; reproduction renard 2 : femelle; 6 ans; 1,02 m; croissance; reproduction
….
Champignon 1 Renard 1
Arbre 3 Arbre 1
Arbre 2 Champignon 2 Renard 2
La structure du système
Modéliser les objets : la classe
Nom de la classe Caractéristiques
(variables) fonctions
Renard - Sexe
- Âge - Taille
- Croissance Renard
Forme détaillée Forme simplifiée
renard 1 : mâle, 7 ans, 1,15 m; croissance, reproduction renard 2 : femelle, 6 ans; 1,02 m ; croissance, reproduction
….
Objet 1
Objet 2
Objet 4
Classe A Nom association>
Classe B La structure du système
Les relations entre classes : les associations
Classe A Classe B
Rôle A
Rôle B
Lapin mange>
Salade La structure du système
Les associations
Risque engendre> Accident
Généralisation / Spécialisation La structure du système
Les associations particulières
Classe plus générale Classe plus spécialisée
Chromosome Cytoplasme
Enzyme EukaryoticCell Erythrocyte
NeuronCellBody
LipidBilayer
CellBilayer MitochondrialInnerBilayer
MitochondrialOuterBilayer
LipidDisintegration Matrix
Membrane
CellMembrane
MitochondrialInnerMembrane MitochondrialOuterMembrane
MitochondrialDualMembrane
BioEntity Solvent TransportProtein
Nucleus Mitochondrion
PyuvateTransporter Solution
Cellular solution
GaseousSolution Cytosol
ExtraCellularSolution
MatrixSol
MitochondrialIntermembranesol
MitochondrialIntermembraneSpace
(Webb et al. 2005)
Les entités biologiques
Agrégation / composition La structure du système
Les associations particulières
agrégat partie composition partie
(Force et al., 2002)
La structure du système
Exemple complet
Introduction Vue d’ensemble
Que doit faire mon logiciel ?
La structure du logiciel (vue métier)
La dynamique interne au logiciel (vue métier)
La conception (vue informatique) Conclusion
Unified Modeling Langage (UML)
Concepts et Modèles
La dynamique interne du système
inter objets intra objet
La dynamique interne du système
Inter objets
On ne montre pas la dynamique complète du système, mais on détaille par sous-fonction / scénario
Séquences d’échanges (Temps)
Diagramme de
séquences
(Webb et al. 2005)
La dynamique interne du système
Diagramme de séquence
Echange entre objets actifs (AO) et petites molécules
SM AO SM AO AO AO
/extraCellula Solution
/cellBilayer /cytosol /enzyme 1 /enzyme n /mitochondrial OuterBilayer
…
SubstrateRequ
SubstrateRequ SubstrateRequ
SubstrateReq SubstrateRequ
SubstrateLev
SubstrateLev
SubstrateLev SubstrateLev
SubstrateLev
SubstrateLevel
La dynamique interne du système
Boucle, alternative …
Nom de la séquence
objet1 : classe3 objet2 : classe6 objet5 : classe3
Message 1
Message 4 Message 5 Message 6
loop min, max
Message 7 Message 8
Message 9
alt [condition 1]
[condition 2]
La dynamique interne du système
intra objet
Changement d’états
Diagramme
D’états-transitions
Ce que fait l’objet
Diagramme d’
activités
La dynamique interne du système
Diagramme d’états-transitions
Les stades du papillon
chenille
chrysalide
papillon
Etat initial
Etat final Transition
Etat
Quels sont les états ?
Quelles sont les transitions entre états ?
(Webb 2005) Initialize
Waiting
Active timeCourse
Substrate level
La dynamique interne du système
Diagramme d’états-transitions
Le comportement de l’enzyme
La dynamique interne du système
Diagramme d’activités
activité
Activité : enchaînement plus ou moins complexes d’actions
Activité 1 Activité 2
Activité 3
L’activité 3 ne commencera que lorsque les activités 1 et 2 seront finies
Alternative
Déplacement vers le point d’eau
Boire
Repos Déplacement
vers aire de couchage Repos
Percevoir végétation Choix de la végétation Déplacement vers la
végétation choisie Ingestion
Mémorisation spatialisée de la végétation ingérée [manger et
la végétation est satisfaisante ] [boire ]
[repos court ] [ repos long ]
Essayer devenir leader [ Végétation insatisfaisante ] [ pas
leader ] [ Devient
leader ] Choix d’un site mémoriel
de végétation
Déplacement vers le site
[ Distance au troupeau,
aux voisins ou à un leader insatisfaisantes ]
Déplacement [ Distances correctes ]
Choix activité
Animal seul
[ Fin action ]
La dynamique interne du système
Diagramme d’activités
Les activités du ruminant au pâturage
Introduction Vue d’ensemble
Que doit faire mon logiciel ?
La structure du logiciel (vue métier)
La dynamique interne au logiciel (vue métier)
La conception (vue informatique)
Conclusion
Unified Modeling Langage (UML)
Concepts et Modèles
ftp://ftp-developpez.com/laurent-audibert/Cours-UML/pdf/Cours-UML.pdf
La conception
La conception: le diagramme de composants
La conception: le diagramme de déploiement
Conclusion / discussion
•Aide à l’analyse métier et informatique
•Aide à la communication : entre experts biologistes, entre biologistes et informaticiens, dans un article, un colloque
…
•Aide à la programmation : la structure et les spécifications du programme sont faites.
•De nombreux outils existent
•Maintenant largement répandu et enseigné en école informatique
Références bibliographiques
•J. Bryant, N. López-Villalobos, C. Holmes, J. Pryce. Simulation modelling of dairy cattle performance based on knowledge of genotype, environment and genotype by environment interactions:current status. Agricultural Systems.
V. 86, pp. 121–143.2005.
•J.L. Drouet, L. Pagès. 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. 231–249. 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. 543–554. 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. 253–264. 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. 312–329. 2006.
•N. El Saadi, A. Bah. An individual-based model for studying the aggregation behavior in phytoplankton. Ecological Modelling. V. 204, pp. 193–212. 2007.
•M.J. Schelhaasa, K. Kramera, H. Peltola, D.C. van der Werf, S.M.J. Wijdevena. Introducing tree interactions in wind damage simulation. Ecological Modelling. V. 207, pp. 197–209. 2007.
•L. Pérochon, P. Carrère, R. Baumont, B. Dumont, C. Mazel, C. Force, D.R.C. Hill, P. D’Hour, 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.283–302. 2005.
•Y. Xiao, D. Clancy, N.P. French, R.G. Bowers. A semi-stochastic model for Salmonella infection in a multi-group herd.
Mathematical. Biosciences. V. 200, pp. 214–233. 2006.
Biologie
UML
•L. Debrauwer et F. V. der Heyde. UML2. Initiation, exemples et exercices corrigés. 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. 3–14. 2004.
•J. Rumbaugh, I. Jacobson, G. Booch. UML 2.0 Guide de référence. Campus Press. 774 p. 2004.