Esercizio 3.5: Modellamento del livello del componente framework

In questo esercizio verrà modellato il livello di framework del pacchetto itso.ad.business. Il livello del componente framework separa l'interfaccia client dai dati dell'applicazione persistenti e l'implementazione dell'applicazione. Il livello del componente framework contiene il trasferimento degli oggetti e le interfacce delegate, oltre alle classi e alle eccezioni della società delegata.

Il livello di componente framework contiene i pacchetti secondari del progetto nella seguente tabella:

Pacchetto Descrizione
eccezione Questo pacchetto secondario contiene classi di eccezione ServiceException e DataAccessException che forniscono il ripristino dopo degli errori per il sistema di online banking PiggyBank.
società Questo pacchetto secondario contiene la classe BusinessDelegateFactory utilizzata per creare dinamicamente un delegato aziendale.
interfaces.delegates Questo pacchetto secondario contiene le interfacce per il delegato aziendale.
interfaces.to Questo pacchetto secondario contiene le interfacce per il trasferimento degli oggetti.

Modellamento delle interfacce di trasferimento oggetti

Il trasferimento oggetti è utilizzato come tipo di restituzione per la procedura RPC (Remote procedure call). Il trasferimento oggetti PiggyBank trasferisce informazioni su cliente e conto tra i livelli del progetto PiggyBank. Questo esercizio modella le interfacce di trasferimento oggetti.

Per modellare l'interfaccia ICustomerTO:
  1. Nella vista Esplora modello, espandere Modello di progetto Enterprise IT, espandere Progetti di implementazione PiggyBank.
  2. Nel pacchetto secondario itso.ad.business, fare clic con il tastino destro del mouse sul pacchetto framework, quindi fare clic su Aggiungi UML > Pacchetto
  3. Denominare il nuovo pacchetto interfaces.to.
  4. Nella vista Esplora modello, fare doppio clic sul diagramma Principale, quindi aggiungere il titolo interfaces.to - Trasferimento interfacce oggetto.
  5. In Tavolozza, fare doppio clic su Interfaccia, quindi ridenominare l'interfaccia ICustomerTO.
  6. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe ICustomerTO, quindi fare clic su Aggiungi UML > Operazione.
  7. Denominare l'operazione getId.
  8. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  9. Nella finestra Seleziona elemento, fare clic su Stringa.
  10. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe ICustomerTO, quindi fare clic su Aggiungi UML > Operazione.
  11. Denominare l'operazione getName.
  12. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  13. Nella finestra Seleziona elemento, fare clic su Stringa.

Per modellare l'interfaccia IAccountTO:
  1. In Tavolozza, fare doppio clic su Interfaccia, quindi ridenominare l'interfaccia IAccountTO.
  2. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe IAccountTO, quindi fare clic su Aggiungi UML > Operazione.
  3. Denominare l'operazione getBalance.
  4. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  5. Nella finestra Seleziona elemento, fare clic su Intero.
  6. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe IAccountTO, quindi fare clic su Aggiungi UML > Operazione.
  7. Denominare l'operazione getNumber.
  8. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  9. Nella finestra Seleziona elemento, fare clic su Stringa.

Le interfacce trasferimento oggetti sono state modellate. Il diagramma dovrebbe essere simile alla seguente illustrazione:

Diagramma interfacce trasferimento oggetto.

Modellamento delle interfacce delegate

Le definizioni dell'interfaccia delegata aziendale descrivono i metodi delegati aziendali e i componenti aziendali utilizzati per generare un'istanza di implementazione delegata aziendale. L'interfaccia IPiggyBankBusinessDelegate definisce un'interfaccia della logica aziendale PiggyBank. La classe AbstractBusinessDelegateFactory esegue un'istanza delle istanze IPiggyBankBusinessDelegate.

Per modellare l'interfaccia IPiggyBankBusinessDelegate:
  1. Nella vista Esplora modello, espandere Modello di progetto Enterprise IT, espandere Progetti di implementazione PiggyBank.
  2. Nel pacchetto secondario itso.ad.business, fare clic con il tastino destro del mouse sul pacchetto framework, quindi fare clic su Aggiungi UML > Pacchetto.
  3. Denominare il nuovo pacchetto interfaces.delegates.
  4. Nella vista Esplora modello, fare doppio clic sul diagramma Principale ed aggiungere il titolo interfaces.delegates - Interfacce delegate.
  5. In Tavolozza, fare doppio clic su Interfaccia, quindi ridenominare l'interfaccia IPiggyBankBusinessDelegate.

Per modellare l'operazione cashCheck:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe IPiggyBankBusinessDelegate, quindi fare clic su Aggiungi UML > Operazione.
  2. Denominare l'operazione cashCheck (accountToCredit, checkAmount, checkReference).
  3. Nella vista Proprietà, nella pagina Parametri, fare clic sul campo Tipo per il parametro accountToCredit, quindi modificare il tipo di parametro in Stringa.
  4. Fare clic sul campo Tipo per il parametro checkAmount, quindi modificare il tipo di parametro in Intero.
  5. Fare clic sul campo Tipo per il parametro checkReference, quindi modificare il tipo di parametro in Stringa.

Per modellare l'operazione getAccountByCustomer:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe IPiggyBankBusinessDelegate, quindi fare clic su Aggiungi UML > Operazione.
  2. Denominare l'operazione getAccountByCustomer (cliente).
  3. Nella vista Proprietà, nella pagina Avanzate, accanto a Molteplicità, fare clic su Freccia giù accanto a 1..-1, quindi fare clic su 1..*.
  4. Nella pagina Generale, selezionare la casella di controllo Ordinato, deselezionare la casella di controllo Univoco, quindi fare clic su Imposta tipo di restituzione.
  5. Nella finestra Seleziona elemento, espandere itso.ad.business, espandere framework, quindi il pacchetto interfaces.to, fare clic su IAccountTO.

Per modellare l'operazione getBalance:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe IPiggyBankBusinessDelegate, quindi fare clic su Aggiungi UML > Operazione.
  2. Denominare l'operazione getBalance (accountNumber, cliente).
  3. Nella vista Proprietà, nella pagina Parametri, fare clic sul campo Tipo per il parametro accountNumber, quindi modificare il tipo di parametro in Stringa.
  4. Fare clic sul campo Tipo per il parametro customer, quindi modificare il tipo di parametro in ICustomerTO.
  5. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  6. Nella finestra Seleziona elemento, fare clic su Intero.

Per modellare l'operazione getCustomerById:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe IPiggyBankBusinessDelegate, quindi fare clic su Aggiungi UML > Operazione.
  2. Denominare l'operazione getCustomerById (customerId).
  3. Nella vista Proprietà, nella pagina Parametri, fare clic sul campo Tipo per il parametro customerId, quindi modificare il tipo di parametro in Stringa.
  4. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  5. Nella finestra Seleziona elemento, espandere itso.ad.business, espandere framework, quindi il pacchetto interfaces.to, fare clic su ICustomerTO.

Per modellare l'operazione di trasferimento:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe IPiggyBankBusinessDelegate, quindi fare clic su Aggiungi UML > Operazione.
  2. Denominare l'operazione trasferimento (amountToTransfer, creditAccount, cliente, debitAccount).
  3. Nella vista Proprietà, nella pagina Parametri, fare clic sul campo Tipo per il parametro amountToTransfer, quindi modificare il tipo di parametro in Intero.
  4. Fare clic sul campo Tipo per il parametro creditAccount, quindi modificare il tipo di parametro in Stringa.
  5. Fare clic sul campo Tipo per il parametro customer, quindi modificare il tipo di parametro in ICustomerTO.
  6. Fare clic sul campo Tipo per il parametro debitAccount, quindi modificare il tipo di parametro in Stringa.
  7. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  8. Nella finestra Seleziona elemento, fare clic su Booleano.

Per modellare l'interfaccia AbstractBusinessDelegateFactory:
  1. In Tavolozza, fare doppio clic su Interfaccia, quindi ridenominare l'interfaccia AbstractBusinessDelegateFactory.
  2. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe AbstractBusinessDelegateFactory, quindi fare clic su Aggiungi UML > Operazione.
  3. Denominare l'operazione createPiggyBankBusinessDelegate.
  4. Nella vista Proprietà, nella pagina Generale, fare clic su Imposta tipo di restituzione.
  5. Nella finestra Seleziona elemento, espandere itso.ad.business, espandere framework, quindi il pacchetto interfaces.delegates, fare clic su IPiggyBankBusinessDelegate e su OK.

Le interfacce delegate sono state modellate. Si noti che le operazioni getAccountsByCustomer e getCustomerById restituiscono le interfacce di trasferimento oggetti create nell'esercizio precedente. I diagrammi dovrebbero essere simili alla seguente figura:

Diagramma dell'interfaccia delegato aziendale.

Modellamento della società delegato aziendale

La classe BusinessDelegateFactory viene utilizzata per creare dinamicamente un'istanza di società delegata.

Per modellare l'interfaccia BusinessDelegateFactoryClass:
  1. Nella vista Esplora modello, espandere Modello di progetto Enterprise IT, espandere Progetti di implementazione PiggyBank.
  2. Nel pacchetto secondario itso.ad.business, fare clic con il tastino destro del mouse sul pacchetto framework, quindi fare clic su Aggiungi UML > Pacchetto.
  3. Denominare il pacchetto società.
  4. In Esplora modello, fare doppio clic sul diagramma Principale, quindi aggiungere il titolo società - Implementazione astratta società delegata aziendale.
  5. In Tavolozza, fare doppio clic su Classe e denominare la classe BusinessDelegateFactory.
  6. Nella vista Proprietà, nella pagina Generale, selezionare la casella di controllo Astratto.

Per modellare l'attributo delegateFactory:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe BusinessDelegateFactory, quindi fare clic su Aggiungi UML > Attributo.
  2. Denominare l'attributo delegateFactory.
  3. Nella vista Proprietà, nella pagina Generale, fare clic su Seleziona tipo.
  4. Nella finestra Seleziona elemento, espandere itso.ad.business, espandere framework, quindi nel pacchetto interfaces.delegates, fare clic su AbstractBusinessDelegateFactory.
  5. Nella vista Proprietà, nella pagina Generale, fare clic su Statico.

Per modellare l'operazione getInstance:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe BusinessDelegateFactory, quindi fare clic su Aggiungi UML > Operazione.
  2. Denominare l'operazione getInstance.
  3. Nella finestra Seleziona elemento, espandere itso.ad.business, espandere framework, quindi il pacchetto interfaces.delegates, fare clic su AbstractBusinessDelegateFactory.
  4. Nella vista Proprietà, nella pagina Generale, fare clic su Statico.

Per modellare l'operazione init:
  1. Nell'editor del diagramma, fare clic con il tastino destro del mouse sulla classe BusinessDelegateFactory, quindi fare clic su Aggiungi UML > Operazione.
  2. Denominare l'operazione init (factoryClassName).
  3. Nella vista Proprietà, nella pagina Parametri, fare clic sul campo Tipo per il parametro factoryClassName, quindi modificare il tipo di parametro in Stringa.
  4. Nella vista Proprietà, nella pagina Generale, fare clic su Statico.
  5. Nella vista Esplora modello, nel pacchetto secondario interfaces.delegate, fare clic sull'interfaccia AbstractBusinessDelegateFactory, quindi trascinarla nel diagramma.
  6. In Tavolozza, fare clic su Implementa.
  7. Nell'editor del diagramma, fare clic sulla classe BusinessDelegateFactory, quindi trascinarla nella classe AbstractBusinessDelegateFactory.

Le classi società itso.ad.business sono state modellate. Il diagramma dovrebbe essere simile alla seguente illustrazione:

Implementazione astratta società delegata aziendale.

Modellamento delle eccezioni del framework itso.ad.business

Il livello del componente framework contiene l'implementazione di due eccezioni: DataAccessException, restituita ogni volta che si verifica un errore nel livello aziendale e ServiceException, che si verifica a causa della perdita di un servizio.

Per modellare le classi DataAccessException e ServiceException:
  1. Nella vista Esplora modello, espandere Modello di progetto Enterprise IT, espandere Progetti di implementazione PiggyBank.
  2. Nel pacchetto secondario itso.ad.business, fare clic con il tastino destro del mouse sul pacchetto framework, quindi fare clic su Aggiungi UML > Pacchetto.
  3. Denominare il nuovo pacchetto eccezione.
  4. Nella vista Esplora modello, fare doppio clic sul diagramma Principale e aggiungere il titolo eccezione.
  5. In Tavolozza, fare doppio clic su Classe e denominare la classe DataAccessException.
  6. In Tavolozza, fare doppio clic su Classe e denominare la classe ServiceException.

Il livello del componente framework itso è stato modellato. Il livello framework è un livello di isolamento che nasconde l'interfaccia client PiggyBank dall'implementazione PiggyBank. Ora, è possibile completare il diagramma degli elementi del progetto itso.ad.business trascinando il pacchetto società nel diagramma. Collegare il pacchetto delegate.ejb al pacchetto aziendale con una relazione di utilizzo. Collegare il pacchetto aziendale al pacchetto del framework con una relazione di associazione. Il diagramma dovrebbe essere simile alla seguente illustrazione:

Diagramma del pacchetto degli elementi del progetto itso.ad.business.

Per continuare, procedere con l'Esercizio 3.6: Modellamento del pacchetto secondario del componente EJB.

Termini di utilizzo | Feedback
(C) Copyright IBM Corporation 2004, 2005. Tutti i diritti riservati.