Exercice 3.6 : Modéliser le sous-package des composants EJB

Dans cet exercice, vous modélisez le sous-package de conception de l'implémentation des EJB. Ce sous-package modélise la couche des Enterprise JavaBeans (EJB) qui contient les modèles de domaines qui conservent les données persistantes de l'application. La couche EJB implémente la logique métier de la couche itso.ad.business.

Le sous-package de conception de l'implémentation EJB se divise en trois sous-packages, énumérés dans le tableau suivant :

Package Description
model Ce sous-package décrit les classes de domaine qui représente les données applicatives persistantes. Il contient les classes Customer et Account que vous avez définies dans le modèle d'analyse.
to Ce sous-package contient les objets de transfert qui abstraient les informations entre les couches de conception du modèle. Ces objets sont des interfaces qui sont implémentées par les classes Customer et Account.
facade Ce sous-package contient l'implémentation de la logique métier du système PiggyBank. La façade de session contient la classe PiggyBankController qui définit les tâches fonctionnelles, comme les opérations Display Balance, Transfer Money et Cash Check qui ont été décrites dans le modèle des cas d'utilisation PiggyBank.

Dans cet exercice, vous créez les classes EJB des domaines Customer et Account et leurs interfaces. Vous créez les interfaces IAccount et ICustomer dans le package framework.

Modélisation des beans Enterprise de domaine

Les beans Enterprise Customer et Account forment le domaine du modèle de conception PiggyBank et ils servent à assurer la persistance des données applicatives. Les classes Customer et Account dérivent des deux classes de même nom que vous avez identifiées dans le modèle d'analyse PiggyBank.Le diagramme de domaine originel avec les classes Account et Customer. Le modèle de conception PiggyBank de contient pas les classes persistantes Check et Transfer. Comme, au moment de la conception, vous avez décidé que les données de virement ou de chèque n'avaient pas lieu d'être persistantes, il n'est pas nécessaire de créer d'objets métier Transfer et Check persistants.

Pour modéliser l'EJB Customer:
  1. Dans la vue Explorateur de modèles, développez successivement Enterprise IT Design Model et PiggyBank Implementation Designs.
  2. Cliquez avec le bouton droit de la souris sur le sous-package itso.ad.business, puis cliquez sur Add UML > Package.
  3. Nommez model le package.
  4. Dans la vue Explorateur de modèles, cliquez deux fois sur Main.
  5. Dans l'éditeur de diagrammes, nommez le diagramme model - Persistent Entity (EJB) Model.
  6. Dans la palette, cliquez deux fois sur Classe et appelez la classe Customer.

Pour modéliser les paramètres de la classe Customer :
  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe Customer, puis cliquez sur Add UML > Attribut.
  2. Donnez à l'attribut le nom de name.
  3. Dans la vue Propriétés, cliquez sur Sélectionner type.
  4. Dans la fenêtre Sélection d'élément, cliquez sur Chaîne.
  5. Ajoutez à la classe Customer un autre attribut de type Chaîne que vous appellerez customerId.
  6. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe Customer, puis cliquez sur Add UML > Opération.
  7. Nommez getData l'opération.
  8. Dans la vue Propriétés, cliquez sur Définir type de retour.
  9. Dans la fenêtre Sélection d'élément, développez successivement itso.ad.business et framework et, dans le sous-package interfaces.to, cliquez sur ICustomerTO.

Vous avez créé l'EJB Customer. Votre diagramme doit ressembler à celui-ci :

L'EJB Customer.

Pour modéliser l'EJB Account :
  1. Dans la palette, cliquez deux fois sur Classe et appelez la classe Account.
  2. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe Account, puis cliquez sur Add UML > Attribut.
  3. Donnez à l'attribut le nom de balance.
  4. Dans la vue Propriétés, cliquez sur Sélectionner type.
  5. Dans la fenêtre Sélection d'élément, cliquez sur Entier.
  6. Ajoutez à la classe Account un attribut de type Chaîne que vous appellerez accountNumber.
  7. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe Account, puis cliquez sur Add UML > Opération.
  8. Nommez getData l'opération.
  9. Dans la vue Propriétés, cliquez sur Définir type de retour.
  10. Dans la fenêtre Sélection d'élément, développez successivement itso.ad.business et framework et, dans le sous-package interfaces.to, cliquez sur IAccountTO.
  11. Dans la palette, cliquez sur Association.
  12. Dans l'éditeur de diagrammes, cliquez sur la classe Customer et faites-la glisser sur la classe Account.
  13. Dans l'éditeur de diagrammes, cliquez sur la relation.
  14. Dans la vue Propriétés, dans la zone Multiplicité d'Accounts, tapez *.

Vous avez créé le diagramme de modèle des EJB persistants. Vous remarquerez que les opérations getData des beans Enterprise Customer et Account retournent les interfaces d'objets de transfert que vous avez créées lors du précédent exercice. Votre diagramme doit ressembler à celui-ci :

La relation entre les EJB Customer et Account.

Modélisation des beans Enterprise d'objets de transfert

Les beans Enterprise d'objets de transfert servent à l'échange de données entre les couches du modèle de conception PiggyBank. PiggyBankEJBCustomerTO et PiggyBankEJBAccountTO implémentent les interfaces ICustomer et IAccount que vous avez définies dans la couche framework.

Pour modéliser PiggyBankEJBCustomerTO :
  1. Dans la vue Explorateur de modèles, développez successivement Enterprise IT Design Model et PiggyBank Implementation Designs.
  2. Cliquez avec le bouton droit de la souris sur le sous-package itso.ad.business, puis cliquez sur Add UML > Package.
  3. Nommez to le package.
  4. Dans la vue Explorateur de modèles, cliquez deux fois sur Main.
  5. Dans l'éditeur de diagrammes, ajoutez le titre interfaces.to - Transfer Object Implementations.
  6. Dans la palette, cliquez deux fois sur Classe et donnez à la classe le nom de PiggyBankEJBCustomerTO.

Pour modéliser les paramètres de l'interface PiggyBankEJBCustomerTO :
  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankEJBCustomerTO, puis cliquez sur Add UML > Attribut.
  2. Donnez à l'attribut le nom d'id.
  3. Dans la vue Propriétés, cliquez sur Sélectionner type.
  4. Dans la fenêtre Sélection d'élément, cliquez sur Entier.
  5. Ajoutez à la classe PiggyBankEJBCustomerTO un autre attribut de type Chaîne que vous appellerez name.
  6. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankEJBCustomerTO, puis cliquez sur Add UML > Opération.
  7. Nommez PiggyBankEJBCustomerTO ( newId, newName ) l'opération.
  8. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre newId et choisissez Chaîne comme type.
  9. Cliquez dans la zone Type du paramètre newName et choisissez Chaîne comme type.
Vous avez modélisé le bean Enterprise PiggyBankEJBCustomerTO. PiggyBankEJBCustomerTO contient un seul constructeur qui instancie la classe, étant donnés un ID et un nom de client. Vous devez à présent modéliser la relation entre le bean PiggyBankEJBCustomerTO et l'interface ICustomerTO.

Pour modéliser la relation d'implémentation :
  1. Dans la vue Explorateur de modèles, développez successivement Enterprise IT Design Model, PiggyBank Implementation Designs, itso.ad.business et framework.
  2. Dans le sous-package interfaces.to, cliquez sur la classe ICustomerTO et faites-la glisser sur le diagramme.
  3. Dans la palette, cliquez sur Implémente.
  4. Dans l'éditeur de diagrammes, cliquez sur la classe PiggyBankEJBCustomerTO et faites-la glisser sur l'interface ICustomerTO.

Votre diagramme doit ressembler à celui-ci :

L'EJB PiggyBankEJBCustomerTO.

Pur modéliser PiggyBankEJBAccountTO :
  1. Dans la palette, cliquez deux fois sur Classe et appelez la classe PiggyBankEJBAccountTO.
  2. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankEJBAccountTO, puis cliquez sur Add UML > Attribut.
  3. Donnez à l'attribut le nom de balance.
  4. Dans la vue Propriétés, cliquez sur Sélectionner type.
  5. Dans la fenêtre Sélection d'élément, cliquez sur Entier.
  6. Ajoutez à la classe PiggyBankEJBAccountTO un attribut de type Chaîne que vous appellerez number.
  7. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankEJBAccountTO, puis cliquez sur Add UML > Opération.
  8. Nommez PiggyBankEJBAccountTO ( newAccountNumber, newBalance ) l'opération.
  9. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre newAccountNumber et choisissez Chaîne comme type.
  10. Cliquez dans la zone Type du paramètre newBalance et choisissez Entier comme type.
Vous avez modélisé le bean Enterprise PiggyBankEJBAccountTO. PiggyBankEJBAccountTO contient un seul constructeur qui instancie la classe, étant donnés un numéro et un solde de compte. Vous devez à présent modéliser la relation entre le bean PiggyBankEJBAccountTO et l'interface IAccountTO.

Pour modéliser la relation d'implémentation :
  1. Dans la vue Explorateur de modèles, développez successivement Enterprise IT Design Model, PiggyBank Implementation Designs, itso.ad.business et framework.
  2. Dans le sous-package interfaces.to, cliquez sur la classe IAccountTO et faites-la glisser sur le diagramme.
  3. Dans la palette, cliquez sur Implémente.
  4. Dans l'éditeur de diagrammes, cliquez sur la classe PiggyBankEJBAccountTO et faites-la glisser sur l'interface IAccountTO.

Votre diagramme doit ressembler à celui-ci :

Les objets PiggyBankEJBCustomerTO et PiggyBankEJBAccountTO

Modélisation du bean Enterprise facade

Le composant facade sépare de la logique métier les données applicatives persistantes. Le bean Enterprise facade est défini par la classe PiggyBankController qui dérive des classes de contrôle que vous avez identifiées dans le modèle d'analyse PiggyBank.

Pour modéliser la classe PiggyBankController :
  1. Dans la vue Explorateur de modèles, développez successivement Enterprise IT Design Model et PiggyBank Implementation Designs.
  2. Dans le sous-package itso.ad.business, cliquez avec le bouton droit de la souris sur le package ejb, puis cliquez sur Add UML > Package.
  3. Nommez facade le nouveau package.
  4. Dans la vue Explorateur de modèles, cliquez deux fois sur le diagramme Main et ajoutez le titre facade - Session Facade (EJB Stateless Bean) on model.
  5. Dans la palette, cliquez deux fois sur Classe et donnez à l'interface le nom de PiggyController.

Pour modéliser l'opération cashCheck :
  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankController, puis cliquez sur Add UML > Opération.
  2. Donnez à l'opération le nom de cashCheck ( accountToCredit, checkAmount, checkReference ).
  3. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre accountToCredit et choisissez Chaîne comme type.
  4. Cliquez dans la zone Type du paramètre checkAmount et choisissez Entier comme type.
  5. Cliquez dans la zone Type du paramètre checkReference et choisissez Chaîne comme type.

Pour modéliser l'opération getAccountByCustomerId :
  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankController, puis cliquez sur Add UML > Opération.
  2. Nommez getAccountByCustomerId ( customerId ) l'opération.
  3. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre customerId et choisissez Chaîne comme type.
  4. Dans la page Généralités de la vue Propriétés, cliquez sur Définir type de retour.
  5. Dans la fenêtre Sélection d'élément, développez successivement itso.ad.business et framework et, dans le package interfaces.to, cliquez sur IAccountTO.
  6. Dans la page Généralités de la vue Propriétés, cochez la case Ordonné et désélectionnez la case Unique.
  7. Désélectionnez la case Unique.
  8. Dans la page Avancé, à côté de Multiplicité, cliquez dans la zone Valeur, puis cliquez sur 1..*.

Pour modéliser l'opération getBalance :
  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankController, puis cliquez sur Add UML > Opération.
  2. Nommez getBalance ( accountNumber, customerId ) l'opération.
  3. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre accountNumber et choisissez Chaîne comme type.
  4. Cliquez dans la zone Type du paramètre customerId et choisissez Chaîne comme type.
  5. Dans la page Généralités de la vue Propriétés, cliquez sur Définir type de retour.
  6. Dans la fenêtre Sélection d'élément, cliquez sur Entier.

Pour modéliser l'opération getCustomerById :
  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankController, puis cliquez sur Add UML > Opération.
  2. Nommez getCustomerById ( customerId ) l'opération.
  3. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre customerId et choisissez Chaîne comme type.
  4. Dans la page Généralités de la vue Propriétés, cliquez sur Définir type de retour.
  5. Dans la fenêtre Sélection d'élément, développez successivement itso.ad.business et framework et, dans le package interfaces.to, cliquez sur ICustomerTO.

Pour modéliser l'opération transfer :
  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe PiggyBankController, puis cliquez sur Add UML > Opération.
  2. Donnez à l'opération le nom de transfer ( amountToTransfer, creditAccountNr, customerId, debitAccountNr ).
  3. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre amountToTransfer et choisissez Entier comme type.
  4. Cliquez dans la zone Type du paramètre creditAccountNr et choisissez Chaîne comme type.
  5. Cliquez dans la zone Type du paramètre customerId et choisissez Chaîne comme type.
  6. Cliquez dans la zone Type du paramètre debitAccountNr et choisissez Chaîne comme type.

Vous avez modélisé la façade de la couche itso.ad.business. Votre diagramme doit ressembler à celui-ci :

La classe PiggyBankController contient l'implémentation de la façade pour la couche de conception itso.ad.business de PiggyBank.
Conditions d'utilisation | Commentaires
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.