Exercício 3.5: Modelando a Camada de Componentes de Estrutura

Neste exercício, você modelará a camada de estrutura do pacote itso.ad.business. A camada de componentes de estrutura separa a interface do cliente dos dados persistentes do aplicativo e da implementação do aplicativo. A camada de componentes de estrutura contém as interfaces de objeto de transferência e de delegação, bem como classes e exceções do depósito de informações do provedor de delegações.

A camada de componentes de estrutura contém os subpacotes de design na tabela a seguir:

Pacote Descrição
exceção Este subpacote contém as classes de exceção ServiceException e DataAccessException que fornecem recuperação de erro para o sistema financeiro on-line PiggyBank.
depósito de informações do provedor Este subpacote contém a classe BusinessDelegateFactory que é utilizada para criar dinamicamente uma delegação de negócios.
interfaces.delegações Este subpacote contém as interfaces para a delegação de negócios.
interfaces.para Este subpacote contém as interfaces para os objetos de transferência.

Modelando as Interfaces de Objeto de Transferência

Os objetos de transferência são utilizados como tipos de retorno para chamadas de procedimento remoto. Os objetos de transferência do PiggyBank transportam informações do cliente e da conta entre as camadas no design do PiggyBank. Este exercício modela as interfaces de objeto de transferência.

Para modelar a interface ICustomerTO:
  1. Na visualização Explorador de Modelos, expanda Modelo de Design de TI Corporativa, expanda Designs de Implementação do PiggyBank.
  2. No subpacote itso.ad.business, clique com o botão direito do mouse no pacote estrutura; em seguida, clique em Incluir UML > Pacote
  3. Nomeie o novo pacote como interfaces.para.
  4. Na visualização Explorador de Modelos, dê um clique duplo no diagrama Principal e inclua o título interfaces.para - Interfaces de Objeto de Transferência.
  5. Na Paleta, dê um clique duplo em Interface e nomeie a interface como ICustomerTO.
  6. No editor de diagrama, clique com o botão direito do mouse na classe ICustomerTO; em seguida, clique em Incluir UML > Operação.
  7. Nomeie a operação como getId.
  8. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  9. Na janela Selecionar Elemento, clique em Cadeia.
  10. No editor de diagrama, clique com o botão direito do mouse na classe ICustomerTO; em seguida, clique em Incluir UML > Operação.
  11. Nomeie a operação como getName.
  12. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  13. Na janela Selecionar Elemento, clique em Cadeia.

Para modelar a interface IAccountTO:
  1. Na Paleta, dê um clique duplo em Interface e nomeie a interface como IAccountTO.
  2. No editor de diagrama, clique com o botão direito do mouse na classe IAccountTO; em seguida, clique em Incluir UML > Operação.
  3. Nomeie a operação como getBalance.
  4. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  5. Na janela Selecionar Elemento, clique em Inteiro.
  6. No editor de diagrama, clique com o botão direito do mouse na classe IAccountTO; em seguida, clique em Incluir UML > Operação.
  7. Nomeie a operação como getNumber.
  8. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  9. Na janela Selecionar Elemento, clique em Cadeia.

Você modelou as interfaces de objeto de transferência. Seu diagrama deverá ser semelhante à figura a seguir:

O diagrama de interfaces de objeto de transferência.

Modelando as Interfaces de Delegação

As definições da interface de delegação de negócios descrevem os métodos de delegação de negócios e de componentes de depósito de informações do provedor que são utilizados para gerar uma instância da implementação de delegação de negócios. A interface IPiggyBankBusinessDelegate define uma interface para a lógia de negócios do PiggyBank. A classe AbstractBusinessDelegateFactory instancia as instâncias do IPiggyBankBusinessDelegate.

Para modelar a interface IPiggyBankBusinessDelegate:
  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 estrutura; em seguida, clique em Incluir UML > Pacote.
  3. Nomeie o novo pacote como interfaces.delegações.
  4. Na visualização Explorador de Modelos, dê um clique duplo no diagrama Principal e inclua o título interfaces.delegações - Interfaces de Delegação.
  5. Na Paleta, dê um clique duplo em Interface e nomeie a interface como IPiggyBankBusinessDelegate.

Para modelar a operação cashCheck:
  1. No editor de diagrama, clique com o botão direito do mouse na classe IPiggyBankBusinessDelegate; 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 getAccountByCustomer:
  1. No editor de diagrama, clique com o botão direito do mouse na classe IPiggyBankBusinessDelegate; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como getAccountByCustomer ( cliente ).
  3. Na visualização Propriedades, na página Avançado, ao lado de Multiplicidade, clique na seta para baixo ao lado de 1..-1 e clique em 1..*.
  4. Na página Geral, selecione a caixa de opções Ordenado, desmarque a caixa de opções Exclusivo e clique em Definir Tipo de Retorno.
  5. Na janela Selecionar Elemento, expanda itso.ad.business, expanda estrutura e, no subpacote interfaces.para, clique em IAccountTO.

Para modelar a operação getBalance:
  1. No editor de diagrama, clique com o botão direito do mouse na classe IPiggyBankBusinessDelegate; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como getBalance ( accountNumber, cliente ).
  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 cliente e altere o tipo de parâmetro para ICustomerTO.
  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 IPiggyBankBusinessDelegate; 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 IPiggyBankBusinessDelegate; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como transferência ( amountToTransfer, creditAccount, cliente, debitAccount ).
  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 creditAccount e altere o tipo de parâmetro para Cadeia.
  5. Clique no campo Tipo do parâmetro cliente e altere o tipo de parâmetro para ICustomerTO.
  6. Clique no campo Tipo do parâmetro debittAccount e altere o tipo de parâmetro para Cadeia.
  7. Na visualização Propriedades, na página Geral, clique em Definir Tipo de Retorno.
  8. Na janela Selecionar Elemento, clique em Booleano.

Para modelar a interface AbstractBusinessDelegateFactory:
  1. Na Paleta, dê um clique duplo em Interface e nomeie a interface como AbstractBusinessDelegateFactory.
  2. No editor de diagrama, clique com o botão direito do mouse na classe AbstractBusinessDelegateFactory; em seguida, clique em Incluir UML > Operação.
  3. Nomeie a operação como createPiggyBankBusinessDelegate.
  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.delegações, clique em IPiggyBankBusinessDelegate e clique em OK.

Você modelou as interfaces de delegação. Observe que as operações getAccountsByCustomer e getCustomerById retornam as interfaces de objeto de transferência criadas no exercício anterior. Seus diagramas deverão ser semelhantes à figura a seguir:

O diagrama de interfaces de delegação de negócios.

Modelando o Depósito de Informações do Provedor de Delegação de Negócios

A classe BusinessDelegateFactory é utilizada para criar dinamicamente uma instância do depósito de informações do provedor de delegação.

Para modelar a interface BusinessDelegateFactoryClass:
  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 estrutura; em seguida, clique em Incluir UML > Pacote.
  3. Nomeie o novo pacote como depósito de informações do provedor.
  4. No Explorador de Modelos, dê um clique duplo no diagrama Principal e inclua o título depósito de informações do provedor - Implementação Abstrata do Depósito de Informações do Provedor de Delegação de Negócios.
  5. Na Paleta, dê um clique duplo em Classe e nomeie a classe como BusinessDelegateFactory.
  6. Na visualização Propriedades, na página, na página Geral, selecione a caixa de opções Abstrato.

Para modelar o atributo delegateFactory:
  1. No editor de diagrama, clique com o botão direito do mouse na classe BusinessDelegateFactory; em seguida, clique em Incluir UML > Atributo.
  2. Nomeie o atributo como delegateFactory.
  3. Na visualização Propriedades, na página Geral, clique em Selecionar Tipo.
  4. Na janela Selecionar Elemento, expanda itso.ad.business, expanda estrutura e, no pacote interfaces.delegações, clique em AbstractBusinessDelegateFactory.
  5. Na visualização Propriedades, na página Geral, clique em Estático.

Para modelar a operação getInstance:
  1. No editor de diagrama, clique com o botão direito do mouse na classe BusinessDelegateFactory; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como getInstance.
  3. Na janela Selecionar Elemento, expanda itso.ad.business, expanda estrutura e, no pacote interfaces.delegações, clique em AbstractBusinessDelegateFactory.
  4. Na visualização Propriedades, na página Geral, clique em Estático.

Para modelar a operação init:
  1. No editor de diagrama, clique com o botão direito do mouse na classe BusinessDelegateFactory; em seguida, clique em Incluir UML > Operação.
  2. Nomeie a operação como init ( factoryClassName ).
  3. Na visualização Propriedades, na página Parâmetros, clique no campo Tipo do parâmetro factoryClassName e altere o tipo de parâmetro para Cadeia.
  4. Na visualização Propriedades, na página Geral, clique em Estático.
  5. Na visualização Explorador de Modelos, no subpacote interfaces.delegate, clique na interface AbstractBusinessDelegateFactory e arraste-a para o diagrama.
  6. Na Paleta, clique em Implementações.
  7. No editor de diagrama, clique na classe BusinessDelegateFactory e arraste-a para a classe AbstractBusinessDelegateFactory.

Você modelou as classes de depósito de informações do provedor da camada itso.ad.business. Seu diagrama deverá ser semelhante à figura a seguir:

A implementação abstrata do depósito de informações do provedor de delegações de negócios.

Modelando as Exceções da Estrutura itso.ad.business

A camada de componentes de estrutura contém a implementação de duas exceções: DataAccessException, que é emitida sempre que ocorre um erro na camada de negócios, e ServiceException, que ocorre devido a uma perda de serviço.

Para modelar as classes DataAccessException e ServiceException:
  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 estrutura; em seguida, clique em Incluir UML > Pacote.
  3. Nomeie o novo pacote como exceção.
  4. Na visualização Explorador de Modelos, dê um clique duplo no diagrama Principal e inclua o título exceção.
  5. Na Paleta, dê um clique duplo em Classe e nomeie a classe como DataAccessException.
  6. Na Paleta, dê um clique duplo em Classe e nomeie a classe como ServiceException.

Você modelou a camada de componentes de estrutura itso.ad.business. A camada de estrutura é uma camada de isolamento que oculta a interface cliente do PiggyBank da implementação do PiggyBank. Agora você pode concluir o diagrama de elementos de design do itso.ad.business, arrastando o pacote de depósito de informações do provedor para o diagrama. Conecte o pacote delegate.ejb ao pacote de depósito de informações do provedor com um relacionamento de uso. Conecte o pacote de depósito de informações do provedor ao pacote de estrutura com um relacionamento de associação. Seu diagrama deverá ser semelhante à figura a seguir:

O diagrama de pacotes de elementos de design do itso.ad.business.

Para continuar, vá para o Exercício 3.6: Modelando o Subpacote de Componentes EJB .

Termos de uso | Feedback
(C) Copyright IBM Corporation 2004, 2005. Todos os Direitos Reservados.