Exercício 3.6: Modelando o Subpacote de Componentes EJB

Neste exercício, você modelará o subpacote de design de implementação ejb. Este subpacote modela a camada EJB (Enterprise JavaBeans) que contém os modelos de domínio que persistem os dados para o aplicativo. A camada EJB implementa a lógica de negócios para a camada itso.ad.business.

O subpacote de design de implementação ejb é dividido nos três subpacotes na tabela a seguir:

Pacote Descrição
modelo Este subpacote descreve as classes de domínio que representam os dados persistentes do aplicativo. O subpacote modelo contém as classes Clientes e Conta definidas no modelo de análise.
para Este subpacote contém os objetos de transferência que abstraem informações entre as camadas de design no modelo. Os objetos de transferência são interfaces implementadas pelas classes Cliente e Conta.
facade Este subpacote contém a implementação da lógica de negócios para o sistema financeiro on-line PiggyBank. O facade de sessão contém a classe PiggyBankController que define as tarefas funcionais, como as operações Exibir Saldo, Transferir Dinheiro e Descontar Cheque que foram descritas no modelo de casos de uso PiggyBank.

Neste exercício, você criará as classes EJB de domínio Cliente e Conta e suas interfaces. Você criará as interfaces IAccount e ICustomer no pacote de estrutura.

Modelando os Beans Corporativos de Domínio

Os beans corporativos Cliente e Conta formam o domínio do modelo de design do PiggyBank e são utilizados para persistir os dados do aplicativo. As classes Cliente e Conta são derivadas das mesmas duas classes identificadas no modelo de análise do PiggyBank.O diagrama de domínio original mostrando as classes Conta e Cliente. O modelo de design do PiggyBank não contém classes Cheque e Transferência persistentes. Como você decidiu no tempo de design não persistir dados de transferência ou de cheque, não há necessidade de criar objetos de negócios Transferência e Cheque persistentes.

Para modelar o EJB Cliente:
  1. Na visualização Explorador de Modelos, expanda Modelo de Design de TI Corporativa e expanda Designs de Implementação do PiggyBank.
  2. Clique com o botão direito do mouse no subpacote itso.ad.business; em seguida, clique em Incluir UML > Pacote.
  3. Nomeie o pacote como modelo.
  4. Na visualização Explorador de Modelos, dê um clique em Principal.
  5. No editor de diagrama, nomeie o diagrama como modelo - Modelo de Entidade Persistente (EJB).
  6. Na Paleta, dê um clique duplo em Classe e nomeie a classe como Cliente.

Para modelar os parâmetros da classe Cliente:
  1. No editor de diagrama, clique com o botão direito do mouse na classe Cliente; em seguida, clique em Incluir UML > Atributo.
  2. Nomeie o atributo como nome.
  3. Na visualização Propriedades, clique em Selecionar Tipo.
  4. Na janela Selecionar Elemento, clique em Cadeia.
  5. Inclua um outro atributo na classe Cliente do tipo Cadeia denominado customerId.
  6. No editor de diagrama, clique com o botão direito do mouse na classe Cliente; em seguida, clique em Incluir UML > Operação.
  7. Nomeie a operação como getData.
  8. Na visualização Propriedades, clique em Definir Tipo de Retorno.
  9. Na janela Selecionar Elemento, expanda itso.ad.business, expanda estrutura e, no subpacote interfaces.para, clique em ICustomerTO.

Você criou o EJB de entidade Cliente. Seu diagrama deverá ser semelhante à figura a seguir:

O EJB Cliente.

Para modelar o EJB Conta:
  1. Na Paleta, dê um clique duplo em Classe e nomeie a classe como Conta.
  2. No editor de diagrama, clique com o botão direito do mouse na classe Conta; em seguida, clique em Incluir UML > Atributo.
  3. Nomeie o atributo como saldo.
  4. Na visualização Propriedades, clique em Selecionar Tipo.
  5. Na janela Selecionar Elemento, clique em Inteiro.
  6. Inclua um atributo do tipo Cadeia na classe Conta denominado accountNumber.
  7. No editor de diagrama, clique com o botão direito do mouse na classe Conta; em seguida, clique em Incluir UML > Operação.
  8. Nomeie a operação como getData.
  9. Na visualização Propriedades, clique em Definir Tipo de Retorno.
  10. Na janela Selecionar Elemento, expanda itso.ad.business, expanda estrutura e, no subpacote interfaces.para, clique em IAccountTO.
  11. Na Paleta, clique em Associação.
  12. No editor de diagrama, clique na classe Cliente e arraste-a para a classe Conta.
  13. No editor de diagrama, clique no relacionamento.
  14. Na visualização Propriedades, no campo Contas Multiplicidade, digite *.

Você criou o diagrama de Modelo EJB de Entidade Persistente. Observe que as operações getData dos beans corporativos Cliente e Conta retornam as interfaces de objeto de transferência criadas no exercício anterior. Seu diagrama deverá ser semelhante à figura a seguir:

O Relacionamento EJB entre Cliente e Conta.

Modelando os Beans Corporativos de Objeto de Transferência

Os beans corporativos de objeto de transferência são utilizados para transferir dados entre as camadas do modelo de design do PiggyBank. O PiggyBankEJBCustomerTO e o PiggyBankEJBAccountTO implementam as interfaces ICustomer e IAccount definidas na camada de componentes de estrutura.

Para modelar o PiggyBankEJBCustomerTO:
  1. Na visualização Explorador de Modelos, expanda Modelo de Design de TI Corporativa e expanda Designs de Implementação do PiggyBank.
  2. Clique com o botão direito do mouse no subpacote itso.ad.business; em seguida, clique em Incluir UML > Pacote.
  3. Nomeie o pacote como to.
  4. Na visualização Explorador de Modelos, dê um clique em Principal.
  5. editor de diagrama, inclua o título interfaces.para - Implementações de Objeto de Transferência.
  6. Na Paleta, dê um clique duplo em Classe e nomeie a classe como PiggyBankEJBCustomerTO.

Para modelar os parâmetros da interface PiggyBankEJBCustomerTO:
  1. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankEJBCustomerTO; em seguida, clique em Incluir UML > Atributo.
  2. Nomeie o atributo como id.
  3. Na visualização Propriedades, clique em Selecionar Tipo.
  4. Na janela Selecionar Elemento, clique em Inteiro.
  5. Inclua um outro atributo na classe PiggyBankEJBCustomerTO do tipo Cadeia denominado name.
  6. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankEJBCustomerTO; em seguida, clique em Incluir UML > Operação.
  7. Nomeie a operação como PiggyBankEJBCustomerTO ( newId, newName ).
  8. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro newId e altere o tipo de parâmetro para Cadeia.
  9. Clique no campo Tipo do parâmetro newName e altere o tipo de parâmetro para Cadeia.
Você modelou o bean corporativo PiggyBankEJBCustomerTO. O PiggyBankEJBCustomerTO contém um único construtor que instancia a classe especificada para um ID e nome do cliente. Agora você deve modelar o relacionamento entre o bean corporativo PiggyBankEJBCustomerTO e a interface ICustomerTO.

Para modelar o relacionamento de implementação:
  1. Na visualização Explorador de Modelos, expanda Modelo de Design de IT Corporativa, expanda Designs de Implementação do PiggyBank, expanda itso.ad.business e expanda estrutura.
  2. No subpacote interfaces.para, clique na classe ICustomerTO e arraste-a para o diagrama.
  3. Na Paleta, clique em Implementações.
  4. No editor de diagrama, clique na classe PiggyBankEJBCustomerTO e arraste-a para a interface ICustomerTO.

Seu diagrama deverá ser semelhante à figura a seguir:

O EJB PiggyBankEJBCustomerTO.

Para modelar o PiggyBankEJBAccountTO:
  1. Na Paleta, dê um clique duplo em Classe e nomeie a classe como PiggyBankEJBAccountTO.
  2. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankEJBAccountTO; em seguida, clique em Incluir UML > Atributo.
  3. Nomeie o atributo como saldo.
  4. Na visualização Propriedades, clique em Selecionar Tipo.
  5. Na janela Selecionar Elemento, clique em Inteiro.
  6. Inclua um outro atributo do tipo Cadeia na classe PiggyBankEJBAccountTO denominado number.
  7. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankEJBAccountTO; em seguida, clique em Incluir UML > Operação.
  8. Nomeie a operação como PiggyBankEJBAccountTO ( newAccountNumber, newBalance ).
  9. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro newAccountNumber, e altere o tipo de parâmetro para Cadeia.
  10. Clique no campo Tipo do parâmetro newBalance e altere o tipo de parâmetro para Inteiro.
Você modelou o bean corporativo PiggyBankEJBAccountTO. O PiggyBankEJBAccountTO contém um único construtor que instancia a classe especificada para um número e saldo de conta. Agora você deve modelar o relacionamento entre o bean corporativo PiggyBankEJBAccountTO e a interface IAccountTO.

Para modelar o relacionamento de implementação:
  1. Na visualização Explorador de Modelos, expanda Modelo de Design de IT Corporativa, expanda Designs de Implementação do PiggyBank, expanda itso.ad.business e expanda estrutura.
  2. No subpacote interfaces.para, clique na classe IAccountTO e arraste-a para o diagrama.
  3. Na Paleta, clique em Implementações.
  4. No editor de diagrama, clique na classe PiggyBankEJBAccountTO e arraste-a para a interface IAccountTO.

Seu diagrama deverá ser semelhante à figura a seguir:

Os Objetos PiggyBankEJBCustomerTO e PiggyBankEJBAccountTO

Modelando o Bean Corporativo Facade

O componente facade separa os dados persistentes do aplicativo da lógica de negócios. O bean corporativo facade é definido pela classe PiggyBankController que é derivada das classes de controle identificadas no modelo de análise PiggyBank.

Para modelar a classe PiggyBankController:
  1. Na visualização Explorador de Modelos, expanda Modelo de Design de TI Corporativa e expanda Designs de Implementação do PiggyBank.
  2. No subpacote itso.ad.business, clique com o botão direito do mouse no pacote ejb; em seguida, clique em Incluir UML > Pacote.
  3. Nomeie o novo pacote como facade.
  4. Na visualização Explorador de Modelos, dê um clique duplo no diagrama Principal e inclua o título facade - Facade de Sessão (Bean sem Preservação de Estado EJB) no modelo.
  5. Na Paleta, dê um clique duplo em Classe e nomeie a interface como PiggyController.

Para modelar a operação cashCheck:
  1. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankController; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como cashCheck ( accountToCredit, checkAmount, checkReference ).
  3. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro accountToCredit e altere o tipo de parâmetro para Cadeia.
  4. Clique no campo Tipo do parâmetro checkAmount e altere o tipo de parâmetro para Inteiro.
  5. Clique no campo Tipo do parâmetro checkReference e altere o tipo de parâmetro para Cadeia.

Para modelar a operação getAccountByCustomerId:
  1. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankController; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como getAccountByCustomerId ( customerId ).
  3. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro customerId e altere o tipo de parâmetro para Cadeia.
  4. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  5. Na janela Selecionar Elemento, expanda itso.ad.business, expanda estrutura e, no pacote interfaces.para, clique em IAccountTO.
  6. Na visualização Propriedades, na página Geral, selecione a caixa de opções Ordenado e desmarque a caixa de opções Exclusivo.
  7. Cancele a seleção da caixa de opções Exclusivo.
  8. Na página Avançado, ao lado de Multiplicidade, clique no campo Valor e clique em 1..*.

Para modelar a operação getBalance:
  1. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankController; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como getBalance ( accountNumber, customerId ).
  3. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro accountNumber, e altere o tipo de parâmetro para Cadeia.
  4. Clique no campo Tipo do parâmetro customerId e altere o tipo de parâmetro para Cadeia.
  5. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  6. Na janela Selecionar Elemento, clique em Inteiro.

Para modelar a operação getCustomerById:
  1. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankController; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como getCustomerById ( customerId ).
  3. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro customerId e altere o tipo de parâmetro para Cadeia.
  4. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  5. Na janela Selecionar Elemento, expanda itso.ad.business, expanda estrutura e, no pacote interfaces.para, clique em ICustomerTO.

Para modelar a operação de transferência:
  1. No editor de diagrama, clique com o botão direito do mouse na classe PiggyBankController; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como transfer ( amountToTransfer, creditAccountNr, customerId, debitAccountNr ).
  3. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro amountToTransfer e altere o tipo de parâmetro para Inteiro.
  4. Clique no campo Tipo do parâmetro creditAccountNr e altere o tipo de parâmetro para Cadeia.
  5. Clique no campo Tipo do parâmetro customerId e altere o tipo de parâmetro para Cadeia.
  6. Clique no campo Tipo do parâmetro debitAccountNr e altere o tipo de parâmetro para Cadeia.

Você modelou o facade da camada de componentes itso.ad.business. Seu diagrama deverá ser semelhante à figura a seguir:

A classe PiggyBankController contém a implementação do facade para a camada de design itso.ad.business do PiggyBank.
Termos de uso | Feedback
(C) Copyright IBM Corporation 2004, 2005. Todos os Direitos Reservados.