Exercice 3.5 : Modéliser la couche des composants framework

Dans cet exercice, vous modélisez la couche framework du package itso.ad.business. La couche framework sépare l'interface client des données applicatives persistantes ainsi que de l'implémentation de l'application. Elle contient l'objet de transfert et les interfaces de délégués, ainsi que les classes et les exceptions factory déléguées.

Elle contient les sous-packages énumérés dans le tableau suivant :

Package Description
exception Ce sous-package contient les classes ServiceException et DataAccessException qui procurent la reprise sur erreur au système PiggyBank.
factory Ce sous-package contient la classe BusinessDelegateFactory qui sert à créer de manière dynamique un délégué métier.
interfaces.delegates Ce sous-package contient les interfaces pour le délégué métier.
interfaces.to Ce sous-package contient les interfaces pour les objets de transfert.

Modélisation des interfaces d'objets de transfert

Les objets de transfert servent de types de retour pour les appels de procédure éloignée. Ils transportent les informations de client et de compte entre les diverses couches de conception PiggyBank. Cet exercice modélise les interfaces d'objets de transfert.

Pour modéliser l'interface ICustomerTO :
  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 à l'aide du bouton droit de la souris sur le package framework, puis cliquez sur Ajouter UML > Package.
  3. Nommez interfaces.to le nouveau package.
  4. Dans la vue Explorateur de modèles, cliquez deux fois sur le diagramme Main et ajoutez le titre interfaces.to - Transfer Object Interfaces.
  5. Dans la palette, cliquez deux fois sur Interface et appelez ICustomerTO l'interface.
  6. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe ICustomerTO, puis cliquez sur Ajouter UML > Opération.
  7. Nommez getId l'opération.
  8. Dans la page Généralités de la vue Propriétés, cliquez sur Définir type de retour.
  9. Dans la fenêtre Sélection d'élément, cliquez sur Chaîne.
  10. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe ICustomerTO, puis cliquez sur Ajouter UML > Opération.
  11. Nommez getName l'opération.
  12. Dans la page Généralités de la vue Propriétés, cliquez sur Définir type de retour.
  13. Dans la fenêtre Sélection d'élément, cliquez sur Chaîne.

Pour modéliser l'interface IAccountTO :
  1. Dans la palette, cliquez deux fois sur Interface et appelez IAccountTO l'interface.
  2. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe IAccountTO, puis cliquez sur Ajouter UML > Opération.
  3. Nommez getBalance l'opération.
  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, cliquez sur Entier.
  6. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe IAccountTO, puis cliquez sur Ajouter UML > Opération.
  7. Nommez getNumber l'opération.
  8. Dans la page Généralités de la vue Propriétés, cliquez sur Définir type de retour.
  9. Dans la fenêtre Sélection d'élément, cliquez sur Chaîne.

Vous avez modélisé les interfaces d'objets de transfert. Votre diagramme doit ressembler à celui-ci :

Le diagramme des interfaces d'objets de transfert.

Modélisation des interfaces de délégués

Les définitions d'interfaces de délégués métier décrivent les méthodes business delegate et les composants factory qui servent à générer une instance d'implémentation de délégué métier. L'interface IPiggyBankBusinessDelegate définit une interface vers la logique métier PiggyBank. La classe AbstractBusinessDelegateFactory instancie les instances IPiggyBankBusinessDelegate.

Pour modéliser l'interface IPiggyBankBusinessDelegate :
  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 à l'aide du bouton droit de la souris sur le package framework, puis cliquez sur Ajouter UML > Package.
  3. Nommez interfaces.delegates le nouveau package.
  4. Dans la vue Explorateur de modèles, cliquez deux fois sur le diagramme Main et ajoutez le titre interfaces.delegates - Delegate Object Interfaces.
  5. Dans la palette, cliquez deux fois sur Interface et appelez IPiggyBankBusinessDelegate l'interface.

Pour modéliser l'opération cashCheck :
  1. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe IPiggyBankBusinessDelegate, puis cliquez sur Ajouter 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 getAccountByCustomer :
  1. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe IPiggyBankBusinessDelegate, puis cliquez sur Ajouter UML > Opération.
  2. Nommez getAccountByCustomer l'opération.
  3. Dans la page Avancé de la vue Propriétés, à côté de Multiplicité, cliquez sur la flèche orientée vers le bas située en regard de 1..-1 et cliquez sur 1..*.
  4. Dans la page Généralités, cochez la case Ordonné, désélectionnez la case Unique et 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.

Pour modéliser l'opération getBalance :
  1. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe IPiggyBankBusinessDelegate, puis cliquez sur Ajouter UML > Opération.
  2. Nommez getBalance ( accountNumber, customer ) 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 customer et choisissez ICustomerTO 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 à l'aide du bouton droit de la souris sur la classe IPiggyBankBusinessDelegate, puis cliquez sur Ajouter 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 à l'aide du bouton droit de la souris sur la classe IPiggyBankBusinessDelegate, puis cliquez sur Ajouter UML > Opération.
  2. Donnez à l'opération le nom de transfer ( amountToTransfer, creditAccount, customer, debitAccount ).
  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 creditAccount et choisissez Chaîne comme type.
  5. Cliquez dans la zone Type du paramètre customer et choisissez ICustomerTO comme type.
  6. Cliquez dans la zone Type du paramètre debitAccount et choisissez Chaîne comme type.
  7. Dans la page Généralités de la vue Propriétés, cliquez sur Définir type de retour.
  8. Dans la fenêtre Sélection d'élément, cliquez sur Booléen.

Pour modéliser l'interface AbstractBusinessDelegateFactory :
  1. Dans la palette, cliquez deux fois sur Interface et appelez l'interface AbstractBusinessDelegateFactory.
  2. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe AbstractBusinessDelegateFactory, puis cliquez sur Ajouter UML > Opération.
  3. Nommez createPiggyBankBusinessDelegate l'opération.
  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.delegates, cliquez sur IPiggyBankBusinessDelegate, puis cliquez sur OK.

Vous avez modélisé les interfaces de délégués. Vous remarquerez que les opérations getAccountsByCustomer et getCustomerById retournent les interfaces d'objets de transfert que vous avez créées lors du précédent exercice. Vos diagrammes doivent ressembler à ceci :

Le diagramme des interfaces de délégués métier.

Modélisation des fabriques de délégués métier

La classe BusinessDelegateFactory sert à créer de manière dynamiquement une instance de fabrique de délégués.

Pour modéliser l'interface BusinessDelegateFactoryClass :
  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 à l'aide du bouton droit de la souris sur le package framework, puis cliquez sur Ajouter UML > Package.
  3. Nommez factory le nouveau package.
  4. Dans la vue Explorateur de modèles, cliquez deux fois sur le diagramme Main et ajoutez le titre factory - Business Delegate Factory abstract implementation.
  5. Dans la palette, cliquez deux fois sur Classe et appelez la classe BusinessDelegateFactory.
  6. Dans la page Généralités de la vue Propriétés, cochez la case Résumé.

Pour modéliser l'attribut delegateFactory :
  1. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe BusinessDelegateFactory, puis cliquez sur Ajouter UML > Attribut.
  2. Donnez à l'attribut le nom de delegateFactory.
  3. Dans la page Généralités de la vue Propriétés, cliquez sur Sélectionner type.
  4. Dans la fenêtre Sélection d'élément, développez successivement itso.ad.business et framework et, dans le package interfaces.delegates, cliquez sur AbstractBusinessDelegateFactory.
  5. Dans la page Généralités de la vue Propriétés, cliquez sur Statique.

Pour modéliser l'opération getInstance :
  1. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe BusinessDelegateFactory, puis cliquez sur Ajouter UML > Opération.
  2. Nommez getInstance l'opération.
  3. Dans la fenêtre Sélection d'élément, développez successivement itso.ad.business et framework et, dans le package interfaces.delegates, cliquez sur AbstractBusinessDelegateFactory.
  4. Dans la page Généralités de la vue Propriétés, cliquez sur Statique.

Pour modéliser l'opération init :
  1. Dans l'éditeur de diagrammes, cliquez à l'aide du bouton droit de la souris sur la classe BusinessDelegateFactory, puis cliquez sur Ajouter UML > Opération.
  2. Nommez init ( factoryClassName ) l'opération.
  3. Dans la page Paramètres de la vue Propriétés, cliquez dans la zone Type du paramètre factoryClassName et choisissez Chaîne comme type.
  4. Dans la page Généralités de la vue Propriétés, cliquez sur Statique.
  5. Dans la vue Explorateur de modèles, cliquez dans le sous-package interfaces.delegate sur l'interface AbstractBusinessDelegateFactory et faites-la glisser sur le diagramme.
  6. Dans la palette, cliquez sur Implémente.
  7. Dans l'éditeur de diagrammes, cliquez sur la classe BusinessDelegateFactory et faites-la glisser sur la classe AbstractBusinessDelegateFactory.

Vous avez modélisé les classes de fabrique de la couche itso.ad.business. Votre diagramme doit ressembler à celui-ci :

L'implémentation de l'instance de fabrique de délégués.

Modélisation des exceptions framework itso.ad.business

La couche framework contient l'implémentation de deux exceptions : DataAccessException, qui est levée lorsqu'une erreur se produit dans la couche métier, et ServiceException produite par une perte de service.

Pour modéliser les classes DataAccessException et ServiceException :
  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 à l'aide du bouton droit de la souris sur le package framework, puis cliquez sur Ajouter UML > Package.
  3. Donnez au nouveau package le nom d'exception.
  4. Dans la vue Explorateur de modèles, cliquez deux fois sur le diagramme Main et ajoutez le titre exception.
  5. Dans la palette, cliquez deux fois sur Classe et donnez à la classe le nom de DataAccessException.
  6. Dans la palette, cliquez deux fois sur Classe et donnez à la classe le nom de ServiceException.

Vous avez modélisé la couche framework d'itso.ad.business. La couche framework est une couche d'isolation qui masque l'interface client PiggyBank à l'implémentation de PiggyBank. Vous pouvez à présent finaliser le diagramme des éléments de conception d'itso.ad.business en faisant glisser le package factory dans le diagramme. Reliez le package delegate.ejb au package factory par une relation d'utilisation. Reliez le package factory au package framework par une relation d'association. Votre diagramme doit ressembler à celui-ci :

Le diagramme des packages d'éléments de conception d'itso.ad.business.

Vous pouvez passer maintenant à l'exercice 3.6 : Modélisation du sous-package de composants EJB.

Conditions d'utilisation | Commentaires
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.