Examen Module LOG O1 12 décembre 2005 -- 2 heures -Tout document autorisé Nous allons dans cet examen construire les premières briques d’un métamodèle et profil pour les EJB. 1) Approche simple du métamodèle Enterprise Java Bean : esquisse d’un métamodèle L’implémentation d’un composant EJB correspond à une collaboration complexe entre plusieurs classes et interfaces de Java. Nous la simplifions ici ; A tout « EnterpriseBean » est associé une classe Java d’implémentation, une interface Java « home » et une interface Java « remote ». Il existe deux sortes d’« EnterpriseBean », Session et Entity. Question 1 : Dessiner un diagramme UML permettant de représenter ce métamodèle. Vous pourrez utiliser les éléments donnés par le diagramme UML de la Figure 1. 1/6 Figure 1 : le métamodèle java [2] Question 2 : Proposer une représentation OCL de l’information complémentaire suivante : L’implémentation d’un composant “EnterpriseBean” doit contenir les méthodes spécifiées par l’interface “remote”. 2) Stéréotypes Dans le document défini par Rational Corporation [1], on trouve l’exemple de la Figure 2. Question 3 : Quels sont les stéréotypes utilisés dans cet exemple ? 2/6 Question 4 : En vous appuyant sur les diagrammes UML de la Figure 1 et éventuellement certains éléments vus en TD, précisez à quelle classe de base, vous associeriez chaque stéréotype. Question 5 : Après avoir ajouté les informations éventuellement manquantes dans les diagrammes UML, a) Exprimez en OCL les contraintes suivantes associées à « EJBRemoteMethod » 1) The Operation must have a visibility property value of public 2) The name must not start with “ejb”… b) Exprimez en OCL les contraintes suivantes associées à « EJBCreateMethod » : 1) The name of the Operation must be "create". 2) The type of the return Parameter must be the model element that represents the EJB Remote Interface. Figure 2 : Exemple d'utilisation du profil EJB défini par [1] 3/6 Question 6 : La Figure 3, extraite de 4, décrit les éléments permettant de définir des composants. Proposez pour certains éléments que vous avez définis à la question précédente de nouvelles classes de base à partir de ces nouvelles données. Figure 3 : The metaclasses that define the basic Component construct 3) Conformité de modèle vis-à-vis d’un métamodèle Figure 4 :métamodèle de "assembly" pour EJB Question 7 : Soit le descripteur d’assemblage EJB décrit ci-après. Ce descripteur est-il conforme au métamodèle présenté dans la Figure 4? Sinon, expliquez. 4/6 <assemblydescriptor> <containertransaction> <method> <ejbname>Fournisseur</ejbname> <methodname>*</methodname> </method> <transattribute> Required</transattribute> </containertransaction> <containertransaction> <method> <ejbname> Fournisseur </ejbname> <methodname>*</methodname> </method> <transattribute> Supports</transattribute> </containertransaction> <securityrole> <description>Personnel administratif de gestion</description> <rolename> Administrative </rolename> </securityrole> <methodpermission> <rolename> administratif</rolename> <method> <ejbname>Fournisseur</ejbname> <methodname>*</methodname> </method> </methodpermission> </ assemblydescriptor> Question 8 : Expliquez en moins de 10 lignes ce que signifie « MDA ». Figure 5 : Diagramme de Classes extrait de l'infrastructure [3] 5/6 Bibliographie [1] Rational Software Corporation. Jsr-000026 UML/EJB™ mapping specification. http://www.jcp.org/aboutJava/communityprocess/review/jsr026/, May 2001. [2] OMG. Metamodel and UML profille for Java and EJB specification. http://www.omg.org/cgi-bin/doc?formal/2004-02-02, February 2004. Version 1.0, formal/04-02-02. [3] OMG. ptc/04-10-14 (UML 2.0 infrastructure convenience document). http://www.omg.org/cgi-bin/apps/doc?ptc/04-10-14.pdf, October 2004. [4] OMG. UML 2.0 superstructure. http://www.omg.org/cgibin/doc ?ptc/2004-10-02, October 2004. 6/6