Conception Orient´ee Objet
G´enie logiciel
Mod´elisation statique
I. MOUAKHER-ABDELMOULA
2012-2013
Introduction
Introduction
La mod´elisation statique d’un systeme consiste a d´ecrire les composantes
de ce dernier sans tenir compte de leur ´evolution dans le temps.
Diagramme de classes
Diagramme d’objets
Diagramme de composants
Diagramme de d´eploiement
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(2/44)
Premi`ere partie I
Diagramme de classes
Diagramme de classes
Repr´esente les classes constituant le syst`eme et les associations entre
elles.
C’est le diagramme le plus important de la mod´elisation orient´ee
objet.
Regroupe les classes du monde r´eel et les classes n´ecessaires `a
l’impl´ementation du syst`eme.
Permet de g´en´erer la base de donn´ees et les classes utilis´ees dans la
programmation des applications
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(4/44)
Diagramme de classes
Le diagramme de classes se base sur les concepts suivants :
Classe : Description formelle d’un ensemble d’objets ayant une
s´emantique, des propri´et´es et un comportement communs.
Association : Relation s´emantique entre deux ou plusieurs classes.
Propri´et´e (attribut) : ´el´ement permettant de d´ecrire une classe ou
une association.
M´ethode : Op´eration r´ealis´ee par les objets d’une classe.
Paquetage : D´ecomposition du diagramme de classes
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(5/44)
Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(6/44)
Deuxi`eme partie II
Diagramme d’objets
D´efinitions
Repr´esentation
Classe & Objet
Une classe repr´esente la description abstraite d’un ensemble d’objets
poss´edant les mˆemes caract´eristiques. On peut parler ´egalement de
type.
Exemples : la classe Voiture, la classe Personne.
Un objet est une entit´e aux fronti`eres bien d´efinies, poss´edant une
identit´e et encapsulant un ´etat et un comportement. Un objet est
une instance (ou occurrence) d’une classe.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(8/44)
D´efinitions
Repr´esentation
Diagramme d’objets
Represente des objets (i.e. instances de classes) et leurs liens (i.e.
instances de relations) pour donner une vue fig´ee de l’´etat d’un
systeme `a un instant donne
Peut etre utilise pour
illustrer le modele de classes en montrant un exemple qui explique le
modele
preciser certains aspects du systeme en mettant en evidence des
details imperceptibles dans le diagramme de classes
exprimer une exception en modelisant des cas particuliers ou des
connaissances non generalisables qui ne sont pas modelises dans un
diagramme de classe
Le diagramme de classes modelise les regles et le diagramme
d’objets modelise des faits
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(9/44)
D´efinitions
Repr´esentation
Concepts de base
Le diagramme de classes se base sur les concepts suivants :
Objet : Description d’un objet du monde r´eel (instance de classe).
Lien : Relation s´emantique entre deux ou plusieurs objets (instance
d’association).
Valeur : Valeur d’une propri´et´e relative `a un objet.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(10/44)
D´efinitions
Repr´esentation
Objets
Liens
Objets composites
H´eritage
Repr´esentation d’un objet
Caract´eris´e par une identite et valeurs d’attribut
Attributs facultatifs (uniquement si int´eressants)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(11/44)
NomObjet : NomClasseNomAttribut=valeurD´efinitions
Repr´esentation
Objets
Liens
Objets composites
H´eritage
Repr´esentation des liens
Publicité
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(12/44)
patientanalyseordonnance1..11..1 : patientordonnancea1 : analysea2 : analysea3 : analysepersonnepatron+collaborateur*1Etienne : personnePaul : personnejacque : personneD´efinitions
Repr´esentation
Objets
Liens
Objets composites
H´eritage
Objets composites
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(13/44)
voiturerouemoteur41 : voiture : roue : roue : roue : roue: moteur : voiture : roue: moteur 4D´efinitions
Repr´esentation
Objets
Liens
Objets composites
H´eritage
H´eritage
Pas de lien d’h´eritage
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(14/44)
personneétudiantenseignantEtienne : étudiantEmilie : enseignantClode : personneD´efinitions
Repr´esentation
Objets
Liens
Objets composites
H´eritage
Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(15/44)
Troisi`eme partie III
Diagramme de composants
Introduction
Composant & interface
Port
Assemblage
Structure interne
Diagramme de composants
mod´elisation du syst`eme sous forme de composants r´eutilisables
met en ´evidence les relations de d´ependance entre composants
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(17/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Pourquoi des composants ?
R´eutilisabilit´e : aptitude d’un logiciel `a ˆetre r´eutilis´e, en tout ou en
partie, dans de nouvelles applications
La r´eutilisabilit´e est un facteur important pour la qualit´e d’un
logiciel.
Une classe, de part sa faible granularit´e et ses connexions fig´ees, ne
favorise pas la r´eutilisabilit´e.
Pour faire face a ce probleme : les composants.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(18/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Programmation par composants
La programmation par composants constitue une ´evolution
technologique soutenue par de nombreuses plateformes (composants
EJB, CORBA, .Net, WSDL)
Met l’accent sur la r´eutilisation du composant et l’ind´ependance de
son ´evolution vis-`a-vis des applications qui l’utilisent.
S’integre tres bien dans le contexte de la programmation orient´ee
objet : assimilable `a une approche objet, non pas au niveau du code,
mais au niveau de l’architecture g´en´erale du logiciel (changement
d’´echelle).
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(19/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Notion de composant
Interface
Repr´esentation
Notion de composant
Un composant doit fournir un service bien pr´ecis.
Les fonctionnalit´es qu’il encapsule doivent ˆetre coh´erentes entre elles
et g´en´eriques (r´eutilisable)
Un composant est une unit´e autonome repr´esent´ee par un classeur
structur´e, st´er´eotyp´e (cid:28)component(cid:29), comportant une ou plusieurs
interfaces requises ou offertes.
Son comportement interne est masqu´e
Pour pouvoir substituer un composant par un autre il suffit de
respecter les interfaces requises et offertes
Les composants impl´ementent typiquement des services sp´ecifiques `a
l’application
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(20/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Notion de composant
Publicité
Interface
Repr´esentation
Remarque
UML1 :composant =n’importe quel element, y compris fichiers,
bibliotheque, etc.
`a partir de UML2.0 utiliser les artefacts (voir Diagramme de
d´eploiement) pour representer des structures physiques (La
manifestation concr`ete d’un composant est un art´efact)
attention : verifier quelle syntaxe est utilisee dans les diagrammes de
composants
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(21/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Notion de composant
Interface
Repr´esentation
Interface
Permet a un composant d’exposer les moyens a utiliser pour
communiquer avec lui
Types d’interfaces
Interface offerte : d´efinit la fa¸con de demander l’acces a un service
offert par le composant
Interface requise : d´efinit le type de services (aide) requis par le
composant
Une interface est attach´ee `a un port du composant
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(22/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Notion de composant
Interface
Repr´esentation
Repr´esentation - Composant et interface(1/2)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(23/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Notion de composant
Interface
Repr´esentation
Repr´esentation - Composant et interface(2/2)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(24/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
D´efinition
Repr´esentation
Port
Un port est un point de connexion entre un classeur et son
environnement.
Plusieurs ports peuvent ˆetre d´efinis pour le mˆeme composants selon
le mode d’interaction utilis´e
G´en´eralement, un port est associ´e `a une interface requise ou offerte.
L’utilisation des ports permet de modifier la structure interne d’un
classeur sans affecter les clients externes (un grand niveau
d’ind´ependance entre le comosant et son environnement)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(25/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
D´efinition
Repr´esentation
Repr´esentation
Graphiquement, un port est repr´esent´e par un petit carr´e `a cheval
sur la bordure du contour du classeur.
On peut faire figurer le nom du port `a proximit´e de sa repr´esentation.
Les ports peuvent ˆetre typ´es par des interfaces
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(26/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Assemblage de composants (composition)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(27/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(28/44)
Introduction
Publicité
Composant & interface
Port
Assemblage
Structure interne
Composant composite
Composant & Classe
Structure interne
Un composant ´etant un classeur structur´e, on peut en d´ecrire la
structure interne. L’impl´ementation d’un composant peut ˆetre
r´ealis´ee par :
d’autres composants (Composant composite)
des classes
des artefacts qui l’implantent concr`etement (voir diagramme de
d´eploiement)
Les ´el´ements d’un composant peuvent ˆetre repr´esent´es dans le
symbole du composant, ou `a cˆot´e en les reliant au composant par
une relation de d´ependance.
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(29/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Composant composite
Composant & Classe
Composant composite
Composant peut etre forme de composants internes assembles par
leurs interfaces
Composition hierarchique de composants
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(30/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Composant composite
Composant & Classe
Composant composite - Connecteur
Deux types de connecteurs
De d´el´egation : lie un port du composite `a un port d’un de ses
´el´ements
D’assemblage : lie une interface d’un ´el´ement interne avec celle d’un
autre ´el´ement interne
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(31/44)
Introduction
Composant & interface
Port
Assemblage
Structure interne
Composant composite
Composant & Classe
Composant & Classe
Toute les classes doivent ˆetre plac´ees dans les composants
Les d´ependances entre composants doivent suppporter
les associations entre classes (diag. de classe)
l’envoi de messages (diag. d’int´eraction)
Les interfaces doivent rassembler
la liste des op´erations publiques des classes du composants
´eventuellement la liste des attributs publics
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(32/44)
Quatri`eme partie IV
Diagramme de d´eploiement
Noeud
Supports de communication
Artifact
Introduction
Disposition physique des differents materiels qui entrent dans la
composition d’un systeme, ainsi que disposition des programmes
executables sur ces materiels.
identifient les ´el´ements mat´eriels
leurs interconnexions physiques ;
la disposition des fichiers (ex´ecutables, librairies, etc.) sur ces
´el´ements mat´eriels
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(34/44)
Noeud
Supports de communication
Artifact
Noued(1/2)
un noued repr´esente une ressource informatique :
environnement d’ex´ecution ((cid:28) executionEnvironnement (cid:29))
simple p´erifirique ((cid:28) device (cid:29))
Exemples : Ordinateurs, Serveurs, p´erif´eriques, Smartphone,
Syst`emes d’exploitation, Ruteurs, Switches, Firewalls...
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(35/44)
Noeud
Supports de communication
Artifact
Noued (2/2)
Les diagrammes de d´eploiement peuvent montrer des instances de
noeuds (un mat´eriel pr´ecis), ou des classes de noeuds.
un noeud peut ˆetre constitu´e de plusieurs autres noeud
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(36/44)
NoeudNodeInstance1:NoeudServer<<device>>MySQL 5.5<<database>>Noeud
Supports de communication
Artifact
D´efinition et repr´esentation
Publicité
Exemple
Supports de communication
un noeud peut ˆetre interconnect´e de plusieurs autres noued grˆace `a
des chemins de communication
Relations entre noueds
St´eriotyp´e par le nom du protocole de communication
Repr´esentation
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(37/44)
Node1Node2<<HTTP>>Noeud
Supports de communication
Artifact
D´efinition et repr´esentation
Exemple
Quelques st´eriotype
(cid:28) HTTP (cid:29) : Hypertext Transport Protocol
(cid:28) TCP/IP (cid:29) : Transmission Control Protocol/ Internet Protocol
(cid:28) RMI (cid:29) : Remote Method Invocation
(cid:28) JDBC (cid:29) : Java Database connectivity
(cid:28) ODBC (cid:29) : Open Database connectivity
(cid:28) RPC (cid:29) : Remote Procedure Calls
(cid:28) asynchronous (cid:29)
(cid:28) synchronous (cid:29)
(cid:28) Web service (cid:29)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(38/44)
Noeud
Supports de communication
Artifact
D´efinition et repr´esentation
Exemple
Exemple
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(39/44)
Browser ClientWeb serverApplication serverEJB Container<<executionEnvironment>>Database Mgt System<<HTTP>><<RMI>>ODBCNoeud
Supports de communication
Artifact
Repr´esentation
La relation de manifestation
(cid:28) deployment specification (cid:29)
Exemple
Artifact
un noeud est une entit´e sur laquelle les artifact peuvent ˆetre d´eploy´es
un artifact peut repr´esenter n’importe quelle information physique
dont a besoin la plate-forme d’ex´ecution sur laquelle l’application
sera d´eploy´ee
Exemples : fichier, un scipt ou un mod`ele
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(40/44)
Noeud
Supports de communication
Artifact
Repr´esentation
La relation de manifestation
(cid:28) deployment specification (cid:29)
Exemple
Repr´esentation d’un artifact
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(41/44)
(1)(2)(3)Noeud
Supports de communication
Artifact
Repr´esentation
La relation de manifestation
(cid:28) deployment specification (cid:29)
Exemple
La relation de manifestation
On dit qu’un artefact peut manifester, c’est-`a-dire r´esulter et
impl´ementer, un ensemble d’´el´ements de mod`ele.
On appelle manifestation la relation entre un ´el´ement de mod`ele et
l’artefact qui l’impl´emente.
Exemple : artifacts manifestant un composant
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(42/44)
Noeud
Supports de communication
Artifact
Repr´esentation
La relation de manifestation
(cid:28) deployment specification (cid:29)
Exemple
(cid:28) deployment specification (cid:29)
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(43/44)
Noeud
Supports de communication
Artifact
Repr´esentation
La relation de manifestation
(cid:28) deployment specification (cid:29)
Exemple
Exemple
Un serveur d’application sur lequel sont d´eploy´es plusieurs
artifact(sp´ecifiques de la plate-forme J2EE) composition entre artifact :
l’artifact ShoppingApp.ear contient les artifacts ShoppingCart.jar et
Order .jar
I. MOUAKHER-ABDELMOULA
Conception Orient´ee Objet
(44/44)
:AppServer1ShoppingApp.ear<<artifact>>ShoppinCart.jar<<artifact>>Order.jar<<artifact>>