Vous êtes sur la page 1sur 7

Le 22/11/10

Etudiant :
Florian HARDY Etudiant lENSIBS, 2em anne, option informatique

Professeur :
Flavio Oquendo

TP 1 Dveloppement dun profil UML


UE INFE303 Matire : Modlisation de logiciels

TP1 Modelisation UE INFE303

Florian Hardy

22/11/2010

Sommaire
Sujet ......................................................................................................................................................... 3 1 Analysez et identifiez les concepts employs dans les diagrammes de structure ............................... 4 Composant : ........................................................................................................................................ 4 Assemblage :........................................................................................................................................ 4 Interface : ............................................................................................................................................ 4 AssociationInterface : .......................................................................................................................... 4 2. Dfinissez le profil UML en termes de strotypes et notions associes. .......................................... 5 2.1 Diagramme .................................................................................................................................... 5 2.2 Contraintes OCL ............................................................................................................................. 5 3. Testez ce profil UML sur un exemple. ................................................................................................. 7

TP1 Modelisation UE INFE303

Florian Hardy

22/11/2010

Sujet

TP1 Modelisation UE INFE303

Florian Hardy

22/11/2010

1 Analysez et identifiez les concepts employs dans les diagrammes de structure


Nous identifions ici trois concepts principaux :

Composant :
Un composant est un strotype hritant de la mta-classe UML.

Assemblage :
Un assemblage est un composant compos de plusieurs composants. Ainsi Assemblage est un strotype hritant du strotype Composant (et donc implicitement de la mta-classe UML). Il faut ensuite rajouter une composition entre le strotype Assemblage et Composant puisque quun Assemblage est une composition de plusieurs Composant.

Interface :
Interface est un strotype hritant de la meta-classe UML. Il y a deux type dinterface diffrent. Ainsi le stereotype Interface est abstract. Il y a deux autres strotypes hritant de Interface : InterFaceFournie et InterfaceRequise. Il faut ensuite rajouter une composition entre Composant et Interface puisque un Composant est compos de plusieurs Interfaces.

AssociationInterface :
Un quatrime concept doit tre ajout : lassociation permettant de relier deux interfaces ensemble. Cest un Strotype hritant de la Mta-association UML. Chaque strotype est reli deux interfaces. Nous relions donc le stereotype AssociationInterface au strotype Interface par deux liens, afin de pouvoir aisment raliser les contraintes OCL sur ces concepts. Nous dduisons de cette analyse un profil UML suivant :

TP1 Modelisation UE INFE303

Florian Hardy

22/11/2010

2. Dfinissez le profil UML en termes de strotypes et notions associes.


2.1 Diagramme

2.2 Contraintes OCL


Il faut ajouter ce diagramme plusieurs contraintes OCL : En partant du stereotype AssociationInterface : Contrainte afin de spcifier le lien entre deux interfaces de type diffrent :

self.interface1.oclIsTypeOf(InterfaceFournie) and self.interface2.oclIsTypeOf(InterfaceRequise) and self.interface1.composant <> self.interface2.composant and not( self.interface1.composant.assemblage.oclIsUndefined() and self.interface2.composant.assemblage.oclIsUndefined()) implies(self.interface1.composant.assemblage = self.interface2.composant.assemblage)

TP1 Modelisation UE INFE303 -

Florian Hardy

22/11/2010

Contrainte afin de spcifier le lien entre deux interfaces de mme type (dans le cas ou un des composants est un assemblage)

( (self.interface1.oclIsTypeOf(InterfaceFournie) implies(self.interface2.oclIsTypeOf(InterfaceFournie))) or (self.interface1.oclIsTypeOf(InterfaceRequise) implies(self.interface2.oclIsTypeOf(InterfaceRequise))) ) implies((self.interface1.composant.assemblage = self.interface2.composant) or (self.interface2.composant.assemblage = self.interface1.composant) )

Contrainte afin de spcifier quune AssociationInterface relie seulement des stereotype Interface entre eux :

self.base_Association.memberEnd->forAll(oclIsTypeOf(Interface))

TP1 Modelisation UE INFE303

Florian Hardy

22/11/2010

3. Testez ce profil UML sur un exemple.


Ralisons un exemple avec : 4 composants, dont 1 assemblage Une interface fournie par composant Une interface requise par composant Une interface requise de plus pour le composant 1 Le composant assemblage a pour interface fournie, linterface fournie du composant 1, et pour interface requise linterface requise du composant 3

Voici le diagramme obtenu :