Yannick Prié Département Informatique Faculté des Sciences et Technologies Université Claude Bernard Lyon 1 2010-2011

Documents pareils
UML (Diagramme de classes) Unified Modeling Language

Diagramme de classes

3. UML - Unified Modeling Language Diagrammes statiques

OCL - Object Constraint Language

Chapitre VI- La validation de la composition.

Diagrammes de Package, de déploiement et de composants UML

UML. Diagrammes de classes (suite) Delphine Longuet.

Cours de Génie Logiciel

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Université de Bangui. Modélisons en UML

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Projet Active Object

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

GOL502 Industries de services

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP1 : Initiation à Java et Eclipse

Héritage presque multiple en Java (1/2)

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Évaluation et implémentation des langages

Modélisation UML. Christine Solnon INSA de Lyon - 3IF 1/140.

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

UML et les Bases de Données

IFT2255 : Génie logiciel

Programmation en Java IUT GEII (MC-II1) 1

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Bases Java - Eclipse / Netbeans

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

UML (Paquetage) Unified Modeling Language

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Formula Negator, Outil de négation de formule.

Patrons de Conception (Design Patterns)

Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon

RMI le langage Java XII-1 JMF

Ingénierie des Modèles. Méta-modélisation

Cours 1: Java et les objets

Programmation Orientée Objet

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Initiation à JAVA et à la programmation objet.

Création d un service web avec NetBeans 5.5 et SJAS 9

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

SCOLARITE Services. Guide pour les Parents et les Elèves. Version Dernière Mise à jour 26 Juin Scolarité services guide de l utilisateur

Chapitre 2. Classes et objets

Programmer en JAVA. par Tama

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

SECURIWEB. Manuel d utilisation de la navigation. VERSION rev mars 2012

Cours en ligne Développement Java pour le web

Bases de données cours 1

Java Licence professionnelle CISII,

Traduction des Langages : Le Compilateur Micro Java

Les diagrammes de modélisation

Application web de gestion de comptes en banques

Ecran : Processeur : OS : Caméra : Communication : Mémoire : Connectique : Audio : Batterie : Autonomie : Dimensions : Poids : DAS :

Généralités sur le Langage Java et éléments syntaxiques.

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Description de la formation

Environnements de développement (intégrés)

CREATION WEB DYNAMIQUE

Diagnostic adaptatif d'un flux d'alarmes par méta diagnostic distribué Application à la détection d'intrusions dans un serveur Web

Configuration requise

Installation de Premium-RH

Bases de données. Chapitre 1. Introduction

Chapitre I : le langage UML et le processus unifié

Introduction à la conception de systèmes d information

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Auto-évaluation Programmation en Java

Générer du code à partir d une description de haut niveau

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Remote Method Invocation (RMI)

Cloud public d Ikoula Documentation de prise en main 2.0

Table des matières Sources

La base de données XML exist. A. Belaïd

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Entraînement au concours ACM-ICPC

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Analyse,, Conception des Systèmes Informatiques

Développement d un interpréteur OCL pour une machine virtuelle UML.

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

Java pour le Web. Cours Java - F. Michel

Vérifier la qualité de vos applications logicielle de manière continue

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Cours Bases de données

Programmation par composants (1/3) Programmation par composants (2/3)

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Programmation par les Objets en Java

Plateforme PAYZEN. Définition de Web-services

INITIATION AU LANGAGE JAVA

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

TP2 : Client d une BDD SqlServer

RAPPORT DE CONCEPTION UML :

Manuel d utilisation du prototype d étiquetage et première expérimentation (fin 2008)

Bases de données avancées Introduction

Transcription:

Yannick Prié Département Informatique Faculté des Sciences et Technologies Université Claude Bernard Lyon 1 2010-2011

Apprendre la syntaxe et la sémantique des diagrammes statiques les plus importants Améliorer au passage la compréhension de différents principes objets

Diagrammes de classes Diagrammes d objets Diagrammes de paquetages Diagrammes de composants Diagrammes de déploiement

Diagrammes fondamentaux les plus connus, les plus utilisés Présentent la vue statique du système représentation de la structure et des déclarations comportementales classes, relations, contraintes, commentaires Permettent de modéliser plusieurs niveaux conceptuel (domaine, analyse) implémentation (code)

Descripteurs de jeux d objets structure / comportement / relations / sémantique communs Représentation rectangle à trois compartiments nom attributs opérations plus ou moins de détails suivant les besoins Nom : singulier, majuscule (en général) ex. : Fichier, Client, Compte, Chat NomDeClasse attribut 1 attribut 2 opération 1 opération 2 AutreClasse

Association les instances des classes sont liées possibilité de communication entre objets relation forte : composition Généralisation/spécialisation les instances de la sous- classe sont des instances de la super- classe (niveau conceptuel) héritage (niveau implémentation) Dépendance la modification d une classe peut avoir des conséquences sur une autre Réalisation une classe réalise une interface

Elément de réseau

Expression des besoins modélisation du domaine Conception spécification : gros grain Construction implémentation : précis rétro- ingénierie Les diagrammes de classes permettent de représenter toute modélisation en classes, que ce soit des classes implémentées en machine ou non On peut modéliser n importe quel domaine avec des classes

Dessiner un diagramme de classe du domaine avec les classes suivantes étudiant enseignant cours salle de classe

Visibilité nom : type [multiplicité ] = valeur_initiale {propriétés} public + privé - protégé # paquetage ~ Facultatif mais impératif pour l implémentation Facultatif Facultatif ex. couleurs : Saturation [3] points : Points [2..*] Remarques /nom : attribut dérivé (calculé) souligné : attribut statique (de classe) {frozen} : disparu de UML2 ; à utiliser quand- même Facultatif ex. {frozen} mise à jour interdite {obligatoire} valuation oblig.

Vecteur Télévision - on/off : Bouton - couleur : enum {gris, noir} - marque : chaine - télétexte : booléen = vrai - chaines [5 *] : canal {ordered} - enceintes[2..6] : haut- parleur - type : typetv {frozen} - volume : parallépipède = (600,650,500) - x : réel - y : réel + /longueur - couleur [3] : réel - créateur = "yp" {frozen} valeur_x() : réel valeur_y() : réel longueur() : réel

visibilité nom (liste de paramètres) : type- retour {propriétés} argument ::= direction nom : type = valeur- défaut public + privé - protégé # paquetage ~ in out inout asbtract query Remarques notation : opération abstraite / opération statique opérations = comportement d une classe, trouvées en examinant les diagrammes d interaction méthode = implémentation d une opération dont elle spécifie l algorithme ou la procédure associée pré et post- conditions, description du contenu : commentaires + OCL

«visuel» Fenêtre «precondition» p1!= p2 «constructor» +Fenêtre(p1:Point, p2:point) +surface() : Réel {query} «update» #couleur(in newcolor : color = J ) «method» public int surface() { return } Renvoie x2 x1 * y2 y1

«enumeration» Couleur rouge blanc bleu Fenêtre «Visuel» Fenêtre forme : zone visibilité : booléen afficher() masquer() Contrôleur d entrée - - gère les événements en entrée Responsabilités de la classe «Visuel» Fenêtre +forme : zone = [100,100] #visibilité : booléen = faux +forme_défaut : rectangle - xptr : Xwindow { abstract, auteur = yp, statut = testé } +afficher() +masquer() +créer - attachxwindow(xwin : Xwindow) s afficher se masquer Responsabilités

x..y nom association x..y Classe 1 Classe 2 rôle 1 rôle 2 Nom : forme verbale, sens de lecture avec flèche Rôles : forme nominale, identification extrémité association Multiplicité : 1, 0..1, 0..*, 1..*, n..m Mots- clés : set, ordered set (uniques) ; bag, list (doublons) * Entreprise actionnaire * 1..* employeur employé travaille pour * Personne Services Industrielle Les associations ont une durée de vie, sont indépendantes les unes des autres, sont héritées, comme les attributs

Association réflexive travaille pour nom Société 0..* 1..* employeur employé {ordered, set} emploie Personne nom * employés 0..1 patron dirige Représentation d une collection

Tout objet doit être accessible via un lien ne peut recevoir de messages sinon liens plus ou moins permanents : voir Visibilités Multiplicité nombre d instances d une classe en relation avec une instance d une autre classe pour chaque association deux décisions à prendre : deux extrémités Directionnalité bidirectionnalité par défaut, evt explicitée restriction de la navigation à une direction =

Fenêtre Point d intersection {ordered} 2..* 0..* visible sur situé sur 2..* 1 Segment Ecran association navigable Véhicule charge est de type {Véhicule.charge < Typevéhicule.chargeMax} Personne TypeVéhicule chargemax Compte {XOR} Entreprise Historique 1..* {add only, ordered} Événement

Concept unique regroupant attributs et associations monodirectionnelles : équivalence des représentations Pour choisir attribut (texte) pour les types de données objets dont l identité n est pas importante association pour insister sur les classes Commande +datederéception: Date[0..1] +estprépayée: Booléen[1] +lignes: LIgneDeCommande[*] {ordered} (Fowler, 2004) Date 0..1 * +datederéception Commande LigneDeCommande 1 * lignes {ordered} 1 +estprépayée Booléen

Associations asymétriques, fortes Agrégation non nommée, structure d arbre sous- jacente (pas de cycle), rôle prépondérant d une extrémité Agrégat 1..* 0..* Elément Composition non partage des éléments composants, création et destruction des composants avec le composite Composite 1 0..* Elément

Quelques questions à se poser asymétrie et lien de subordination entre instances des deux classes (agrégation/composition) ou indépendance des objets (association)? propagation d opérations ou d attributs du tout vers les parties? (agrégation/composition) création et destruction des parties avec le tout? (composition) Remarques importantes dans le doute, toujours utiliser une association : c est la moins contrainte pour certains experts, il faut oublier l agrégation agrégation = placebo denué de sens

Pour ajouter attributs et opérations à des associations Quelques indices pour l utilisation un attribut est lié à une association la durée de vie des instances de la CA dépend de l association association N..N entre deux classes + informations liées à l association Personne 2..* Réalise Assiste $ * Réunion Participation attention Personne Participation 1 * 1 attention 2..* Réunion

Equivalent UML des dictionnaires Sélection d un sous- ensemble des objets qui participent à l association à l aide d une clé. cet attribut est propriété de l association Commande 1 Contient 1..* LigneDeCommande Commande produit 1 Contient 1 LigneDeCommande

Groupe de liens entre au moins trois instances Instance de l association = n- uplet des attributs des instances impliquées Responsabilité libellé taux_horaire Exemple SSII Département forfait_prestation (nb_heures) Employé nom budget dépenser() encaisser() * base calcul rattachement * source * nom heures_travail Prestation (nb_heures)

Deux interprétations niveau conceptuel organisation : un concept est plus général qu un autre niveau implémentation B C B héritage des attributs et méthodes Pour une bonne classification conceptuelle principe de substitution / conformité à la définition toutes les propriétés de la classe parent doivent être valables pour les classes enfant «A est une sorte de B» (mieux que «A est un B») toutes les instances de la sous- classe sont des instances de la super- classe (définition ensembliste) Spécialisation relation inverse de la généralisation A A C

Discriminant Facture date adresse montant_frcs imprimer() expédier() pour Livraison 1 1..n Association commune montrée au niveau le plus haut destination {complete} Facture_export devise_paiement montant_devise convertir(devise) Facture_France taux_tva montant_ttc calcul_ttc() Autres contraintes {incomplete}, {disjoint}, {overlapping}

(Larman, 2005) Partitionner une classe en sous- classes la sous- classe a des attributs et/ou des associations supplémentaires pertinents par rapport à la superclasse ou à d autres sous- classes, la sous- classe doit être gérée, manipulée, on doit agir sur elle ou elle doit réagir différemment, et cette distinction est pertinente le concept de la sous- classe représente une entité animée (humain, animal, robot) qui a un comportement différent de celui de la superclasse, et cette distinction est pertinente Définir une super- classe les sous- classes sont conformes aux principes de substitution et «sorte- de» toutes les sous- classes ont au moins un même attribut et/ou une même association qui peut être extrait et factorisé dans la superclasse

Autorisée en UML Attention aux conflits : il faut les résoudre Possibilité d utiliser aussi délégations ou interfaces {overlapping} Véhicule Véhicule terrestre Véhicule aquatique {disjoint} Automobile Véhicule amphibie Bateau

<< interface >> Collection Un diagramme à comprendre! +equals():void +add():void Classe asbtraite Commande -lignes:list[*] << interface >> List +get():void AbstractList +equals():void +add():void +get():void Dépendance (requiert l'interface) Implementation (réalise l'interface) ArrayList +get():void +add():void

UML2 Commande -lignes:list[*] ArrayList List ArrayList->Collection Collection Commande UML1 -lignes:list[*] List ArrayList Collection

Remarque : les classes paramétrables sont disponibles en C++ depuis longtemps, en JAVA depuis 1.5 Tableau - éléments: T[nbc, nbc] +Elément(ligne,col) : T +Elément(e : T; ligne, col : Entier) T, Nbl:Entier, Nbc:Entier «bind» <T_Case,Nbl_8,Nbc_8> Echiquier Tableau<T Réel, Nbl 3, Nbc 3> Deux notations de la paramétrisation d'une classe paramétrable

Description de la structure d implémentation interne d une classe Contient ports : points de connexion avec l environnement (evt. interne) parties : fragment structuré de la classe connecteurs : connexions de deux parties au sein de la classe ajoutbillet Commande client:personne priorité 0..1 priorité:niveauetat élément:billet[1..*]

Classe dont les instances sont des objets actifs possèdent leur propre thread dans un environnement multitâche Thread 1 : IHM Thread 2 : Calcul principal (UML1 : en gras)

3 grands types abstraction : différents niveaux d abstraction ex. «refine», «trace», «derive» permission d utilisation (cf. friend en C++) ex. «permit» utilisation ex. «use», «create», «call», «parameter» Conseil utiliser une dépendance pour tout ce qui n est pas spécifié «refine» Classe A passage concept / implémentation Dictionnaire Tableau «permit» permission d utilisation «create» utilisation Cellule Case Classe A1

Lien => possibilité d envoyer un message d un objet à un autre Deux types de liens Lien durable : visibilité d attribut ou globale se matérialise par une association entre classes Lien temporaire : visibilité paramètre ou locale résulte d une utilisation temporaire d un objet par un autre se matérialise par une dépendance entre classes ex. passage de paramètre : «parameter», variable locale à une méthode : «local» attention à ne pas oublier ces dépendances! A op1(c:c) :A 1: op2() :B B +op2() «parameter» C

Diagrammes de classes Diagrammes d objets Diagrammes de paquetages Diagrammes de composants Diagrammes de déploiement

Pour représenter un instantané du système les objets et leurs liens objets = spécification d instances Quand les utiliser? pour montrer un contexte collaborations sans messages quand une structure complexe est trop difficile à comprendre avec un diagramme de classe ex. : récursivité, associations multiples, etc. Personne employé Etienne:Personne patron patron Denis:Personne patron Jean- Luc:Personne

Nom de l objet souligné Objets anonymes ou non Objets classifiés ou non Nom objet Nom objet : classe : classe Rex Rex : Chien : Chien

Multi- objet (UML1) modéliser un jeu comme un objet unique avec des opérations sur le jeu comme jeu d objets individuels avec leurs opérations Classe structurée (UML2) : Meute :Meute : Chien Utiles pour les diagrammes de communication pour s adresser à l objet qui représente la collection (Meute) aux objets dans la collection (Chien) 4..* :Chien[4..*]

Diagrammes de classes Diagrammes d objets Diagrammes de paquetages Diagrammes de composants Diagrammes de déploiement

util util Date util Date Contenu listé Contenu diagramme Mécanisme général pour organiser les éléments et les diagrammes du modèle, notamment les classes partitionner, hiérarchiser clarifier les nommer un paquetage définit un espace de nom deux éléments ne peuvent avoir le même nom dans un paquetage Un paquetage contient des éléments y compris d autres paquetages : hiérarchie peut importer d autres paquetages peut posséder des interfaces A D B C E

Clientèle Personne -nom :String -adresse:string Voitures possède Voiture -marque: String -modèle :String -immatriculation :String * 0..1 4 Roue Notation Rose Moteur (from Fournisseur)

Découlent des dépendances entre éléments des paquetages notamment les classes Les dépendances ne sont pas transitives Clientèle Voitures Fournisseur modifier Fournisseur n oblige pas obligatoirement à modifier Clientèle

Organisation globale du modèle mis en place hiérarchies de paquetages contenant diagrammes et éléments Organisation des classes en paquetages pour contrôler la structure du système comprendre et partager obtenir une application plus évolutive et facile à maintenir ne pas se faire déborder par les modifications viser la généricité et la réutilisabilité des paquetages avoir une vue claire des flux de dépendances entre paquetages il s agit de les minimiser

Noms pleinement qualifiés équivalent à chemin absolu ex. paquetage java::util, classe java::util::date Stéréotypes de dépendance «import» : les éléments passent dans l espace de nommage ex. classe Date depuis le paquetage qui importe «access» : sont accessibles ex. classe java::util::date depuis le paquetage qui importe

Cohérence interne du paquetage : relations étroites entre classes fermeture commune les classes changent pour des raisons similaires réutilisation commune les classes doivent être réutilisées ensemble Indépendance par rapport aux autres paquetages Un paquetage d analyse contient généralement moins de 10 classes

Les minimiser pour maintenir un couplage faible (voir patterns) dépendances unidirectionnelles cf. associations navigables pas de cycles de dépendances ou au moins pas de cycles inter- couches stabilité des dépendances plus il y a de dépendances entrantes, plus les interfaces de paquetage doivent être stables

Les paquetages peuvent être considérés comme soit simples regroupements soit des véritables sous- systèmes opérationnels comportement + interfaces Paquetage vu de l extérieur classe publique gérant le comportement externe (cf. pattern Façade) interfaces Pour un Paquetages utilisé partout (très stable) mot- clé «global» Utilité pratique d un paquetage Commun regrouper les concepts largement partagés, ou épars Lien entre paquetages et couches (niveaux) une couche est composée de paquetages

Diagrammes de classes Diagrammes d objets Diagrammes de paquetages Diagrammes de composants Diagrammes de déploiement

Partie modulaire de conception d un système qui masque son implémentation derrière un jeu d interfaces externes partie remplaçable d un système qui se conforme à des interfaces et fournit la réalisation de ces interfaces doit être compris comme un élément qu'on peut acheter, associer à d'autres composants (cf. HiFi) Division en composants = décision technique et commerciale (Fowler) Représentation <<component>> Planificateur Planificateur

Objectif représenter l organisation et les dépendances entre les composants logiciels décrire les composants et de leurs relations dans le système en construction Diagramme de composants inclusion des composants relations de fourniture et d utilisation d interfaces

Caisse Serveur ventes Processeur de transactions Driver comptabilité File de messages (Fowler 04) Structure composite, Port Système de comptabilité

UML1 : composant = n'importe quel élément, y compris fichiers, bibliothèque, etc. UML2 : utiliser les artefacts (voir plus loin) pour représenter des structures physiques (jar, dll ) attention : vérifier quelle syntaxe est utilisée dans les diagrammes de composants que vous avez sous les yeux

Diagrammes de classes Diagrammes d objets Diagrammes de paquetages Diagrammes de composants Diagrammes de déploiement

Objectif expliquer comment un système décrit statiquement dans un modèle sera concrètement déployé sur une architecture physique distribuée Modéliser l environnement d exécution d un projet Pour cela rendre compte de la disposition physique des différents éléments matériels qui entrent dans la composition d un système rendre compte de la disposition des programmes exécutables et des composants sur ces matériels

Noeuds avec stéréotype «device» description des caractéristiques attendues processeur, mémoire, système d exploitation, etc. <<device>> PDA {OS=Palm OS 4.0} Relations supports de communication entre nœuds physiques <<Bluetooth>> <<device>> Serveur principal {Memory=8go RaidLevel=5 Processor=2Ghz Xeon} 2010-2011 / Yannick Prié - Université Claude Bernard Lyon 1 <<device>> <<TCP- IP>> {sécurisé} Client {Memory=1go Processor=1Ghz Intel 915 DiskSpace=10 Go}

Artefact = élément d information impliqué dans le système Fichiers, logiciel, modèle e.g. fichier de configuration, bibliothèque, exécutable, script, table de BD, etc. un artefact est la manifestation (manifest) d un élément du modèle e.g. une classe (élément du modèle) a pour manifestations un fichier source.java, un fichier compilé.class et un fichier.html lié à la javadoc. <<artifact>> <<vendor>> Processeur de transactions {VendorName=Toto Version=2.1} <<artifact>> CommandeAchat.jar CommandeAchat.jar

Les artefacts sont déployés sur les nœuds de l environnement matériel <<device>> MachineEnseignant {JDK=1.6 pdfreader=pdf2.0} <<component>> MonTP <<manifest>> <<artifact>> tp.jar <<artifact>> rapport.pdf

i t r l i t t t / i t r t r r t t / l t r i i I /. <<device>> «station client» :PCStandard «station client» <<device>> :PCStandard {OS=Windows} <<device>> «serveur» :DellPowerEdge 3600 {OS=RedHat6} «browser» :webbrowser herculesclient.exe JoveGL.exe { v e n d o r = r o m a n S o f t } { c o m p o n e n t = G e n e r a l L e d g e r } HTTP/internet HTTP/LAN C o n t a i n e r E J B <<device>> «cluster web server» :Apache2.1 {OS=Solaris {nbcluster=3} < < a r t e f a c t > > h e r c u l e s W e b. e x e JAVA RMI/LAN h e r c u l e s B a s e. e a r h e r c u l e s A R. e a r h e r c u l e s A P. e a r J D B C S G B D O r a c l e

Les nœuds et les artefacts sont instanciables possibilité de réfléchir à un déploiement abstrait (nœuds, artefacts) et à un déploiement concret (instances de nœuds, instances d artefacts) exemple tel programme de telle version compilée à telle date tourne tourne sur telle machine physique réelle Possibilité de spécifier des caractéristiques du déploiement d un artefact <<device>> :ServeurCommandes <<artifact>> CommandeAchat.jar <<deploymentspec>> podeploy.xml execution=thread transaction=true priority=low

UML 3/4 : diagrammes dynamiques et d interactions UML 4/4 : concepts avancés