Übung 3.5: Framework-Komponentenebene modellieren

In dieser Übung werden Sie die Frameworkebene des Pakets 'itso.ad.business' modellieren. Die Framework-Komponentenebene trennt die Clientschnittstelle sowohl von den persistenten Anwendungsdaten als auch von der eigentlichen Anwendungsimplementierung. Die Framework-Komponentenebene enthält das Übertragungsobjekt und die Stellvertreterschnittstellen sowie die Stellvertreterfactoryklassen und zugehörigen Ausnahmebedingungen.

Die Framework-Komponentenebene umfasst die Designunterpakete, die in der folgenden Tabelle aufgeführt sind:

Paket Beschreibung
exception Dieses Unterpaket enthält die Ausnahmebedingungsklassen 'ServiceException' und 'DataAccessException', die Funktionen zur Fehlerbehebung im PiggyBank-Online-Banking-System bereitstellen.
factory Dieses Unterpaket enthält die Klasse 'BusinessDelegateFactory', die zum dynamischen Erstellen eines Geschäftsstellvertreters (Delegates) dient.
interfaces.delegates Dieses Unterpaket enthält die Schnittstellen für den Geschäftsstellvertreter (Delegate).
interfaces.to Dieses Unterpaket enthält die Schnittstellen für die Übertragungsobjekte.

Schnittstellen für Übertragungsobjekt modellieren

Übertragungsobjekte werden als Rückgabetypen für Fernprozeduraufrufe verwendet. Die PiggyBank-Übertragungsobjekte dienen zum Übertragen von Kunden- und Kontoinformationen zwischen den einzelnen Ebenen des PiggyBank-Designs. In der vorliegenden Übung werden Sie die Schnittstellen für die Übertragungsobjekte modellieren.

Gehen Sie wie folgt vor, um die Schnittstelle 'ICustomerTO' zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell) und dann für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns).
  2. Klicken Sie im Unterpaket itso.ad.business mit der rechten Maustaste auf das Paket framework und dann auf UML hinzufügen> Paket.
  3. Ordnen Sie dem neuen Paket den Namen interfaces.to zu.
  4. Doppelklicken Sie in der Modellexplorersicht auf das Diagramm für Haupt, und fügen Sie den Titel interfaces.to - Transfer Object Interfaces (interfaces.to - Schnittstellen für Übertragungsobjekte) hinzu.
  5. Doppelklicken Sie in der Palette auf Schnittstelle, und ordnen Sie der Schnittstelle den Namen ICustomerTO zu.
  6. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse ICustomerTO und dann auf UML hinzufügen > Operation.
  7. Ordnen Sie der Operation den Namen getId zu.
  8. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  9. Klicken Sie im Fenster Element auswählen auf Zeichenfolge.
  10. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse ICustomerTO und dann auf UML hinzufügen > Operation.
  11. Ordnen Sie der Operation den Namen getName zu.
  12. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  13. Klicken Sie im Fenster Element auswählen auf Zeichenfolge.

Gehen Sie wie folgt vor, um die Schnittstelle 'IAccountTO' zu modellieren:
  1. Doppelklicken Sie in der Palette auf Schnittstelle, und ordnen Sie der Schnittstelle den Namen IAccountTO zu.
  2. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse IAccountTO und dann auf UML hinzufügen > Operation.
  3. Ordnen Sie der Operation den Namen getBalance zu.
  4. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  5. Klicken Sie im Fenster Element auswählen auf Ganze Zahl.
  6. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse IAccountTO und dann auf UML hinzufügen > Operation.
  7. Ordnen Sie der Operation den Namen getNumber zu.
  8. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  9. Klicken Sie im Fenster Element auswählen auf Zeichenfolge.

Sie haben nun die Schnittstellen für die Übertragungsobjekte modelliert. Ihr Diagramm wird jetzt wie in der folgenden Abbildung aufgeführt dargestellt:

Das Diagramm der Schnittstellen für die Übertragungsobjekte (Transfer Object Interfaces).

Stellvertreterschnittstelle modellieren

Die Definitionen der Stellvertreterschnittstellen eines Geschäfts beschreiben die Stellvertretermethoden und Factorykomponenten eines Geschäfts, die zum Generieren einer Instanz der Geschäftsstellvertreterimplementierung benutzt werden. Die Schnittstelle 'IPiggyBankBusinessDelegate' definiert eine Schnittstelle zur PiggyBank-Geschäftslogik. Die Klasse 'AbstractBusinessDelegateFactory' dient zum Instanziieren von IPiggyBankBusinessDelegate-Instanzen.

Gehen Sie wie folgt vor, um die Schnittstelle 'IPiggyBankBusinessDelegate' zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell) und dann für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns).
  2. Klicken Sie im Unterpaket itso.ad.business mit der rechten Maustaste auf das Paket framework und dann auf UML hinzufügen > Paket.
  3. Ordnen Sie dem neuen Paket den Namen interfaces.delegates zu.
  4. Doppelklicken Sie in der Modellexplorersicht auf das Diagramm für Haupt, und fügen Sie den Titel interfaces.delegates - Delegate Interfaces (interfaces.delegates - Stellvertreterschnittstellen) hinzu.
  5. Doppelklicken Sie in der Palette auf Schnittstelle, und ordnen Sie der Schnittstelle den Namen IPiggyBankBusinessDelegate zu.

Gehen Sie wie folgt vor, um die Operation 'cashCheck' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse IPiggyBankBusinessDelegate und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen cashCheck ( accountToCredit, checkAmount, checkReference ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters accountToCredit, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie auf das Feld Typ des Parameters checkAmount, und ändern Sie den Parametertyp in Ganze Zahl.
  5. Klicken Sie auf das Feld Typ des Parameters checkReference, und ändern Sie den Parametertyp in Zeichenfolge.

Gehen Sie wie folgt vor, um die Operation 'getAccountByCustomer' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse IPiggyBankBusinessDelegate und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen getAccountByCustomer ( customer ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Erweitert neben Multiplizität auf den Abwärtspfeil neben 1..-1, und klicken Sie dann auf 1..*.
  4. Wählen Sie auf der Seite Allgemein das Kontrollkästchen Geordnet aus, nehmen Sie die Auswahl des Kontrollkästchens Eindeutig zurück, und klicken Sie auf Rückgabetyp festlegen.
  5. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework, und klicken Sie dann im Paket interfaces.to auf IAccountTO.

Gehen Sie wie folgt vor, um die Operation 'getBalance' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse IPiggyBankBusinessDelegate und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen getBalance ( accountNumber, customer ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters accountNumber, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie auf das Feld Typ des Parameters customer, und ändern Sie den Parametertyp in ICustomerTO.
  5. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  6. Klicken Sie im Fenster Element auswählen auf Ganze Zahl.

Gehen Sie wie folgt vor, um die Operation 'getCustomerById' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse IPiggyBankBusinessDelegate und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen getCustomerById ( customerId ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters customerId, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  5. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework, und klicken Sie dann im Paket interfaces.to auf ICustomerTO.

Gehen Sie wie folgt vor, um die Operation 'transfer' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse IPiggyBankBusinessDelegate und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen transfer ( amountToTransfer, creditAccount, customer, debitAccount ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters amountToTransfer, und ändern Sie den Parametertyp in Ganze Zahl.
  4. Klicken Sie auf das Feld Typ des Parameters creditAccount, und ändern Sie den Parametertyp in Zeichenfolge.
  5. Klicken Sie auf das Feld Typ des Parameters customer, und ändern Sie den Parametertyp in ICustomerTO.
  6. Klicken Sie auf das Feld Typ des Parameters debitAccount, und ändern Sie den Parametertyp in Zeichenfolge.
  7. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  8. Klicken Sie im Fenster Element auswählen auf Boolesch.

Gehen Sie wie folgt vor, um die Schnittstelle 'AbstractBusinessDelegateFactory' zu modellieren:
  1. Doppelklicken Sie in der Palette auf Schnittstelle, und ordnen Sie der Schnittstelle den Namen AbstractBusinessDelegateFactory zu.
  2. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse AbstractBusinessDelegateFactory und dann auf UML hinzufügen > Operation.
  3. Ordnen Sie der Operation den Namen createPiggyBankBusinessDelegate zu.
  4. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  5. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework. Klicken Sie dann im Paket interfaces.delegates auf IPiggyBankBusinessDelegate und anschließend auf OK.

Sie haben nun die Stellvertreterschnittstellen modelliert. Beachten Sie, dass die Operationen 'getAccountsByCustomer' und 'getCustomerById' die Schnittstellen für die Übertragungsobjekte zurückgeben, die in der vorangegangenen Übung erstellt wurden. Ihre Diagramme werden nun wie in der folgenden Abbildung aufgeführt dargestellt:

Das Diagramm für die Geschäftsstellvertreterschnittstellen (Delegate Interfaces).

Geschäftsstellvertreterfactory modellieren

Die Klasse 'BusinessDelegateFactory' wird zur dynamischen Erstellung einer Stellvertreterfactoryinstanz verwendet.

Gehen Sie wie folgt vor, um die Schnittstelle 'BusinessDelegateFactoryClass' zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell) und dann für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns).
  2. Klicken Sie im Unterpaket itso.ad.business mit der rechten Maustaste auf das Paket framework und dann auf UML hinzufügen > Paket.
  3. Ordnen Sie dem neuen Paket den Namen factory zu.
  4. Doppelklicken Sie im Modellexplorer auf das Diagramm für Haupt, und fügen Sie den Titel factory - Business Delegate Factory abstract implementation (factory - Geschäftsstellvertreterfactory - abstrakte Implementierung) hinzu.
  5. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Klasse den Namen BusinessDelegateFactory zu.
  6. Wählen Sie in der Eigenschaftensicht auf der Seite Allgemein das Kontrollkästchen Kurzdarstellung aus.

Gehen Sie wie folgt vor, um das Attribut 'delegateFactory' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse BusinessDelegateFactory und dann auf UML hinzufügen > Attribut.
  2. Ordnen Sie dem Attribut den Namen delegateFactory zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Typ auswählen.
  4. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework. Klicken Sie dann im Paket interfaces.delegates auf AbstractBusinessDelegateFactory.
  5. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Statisch.

Gehen Sie wie folgt vor, um die Operation 'getInstance' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse BusinessDelegateFactory und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen getInstance zu.
  3. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework. Klicken Sie dann im Paket interfaces.delegates auf AbstractBusinessDelegateFactory.
  4. Klicken Sie in der Eigenschaftensicht auf der Seite 'Allgemein' auf Statisch.

Gehen Sie wie folgt vor, um die Operation 'init' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse BusinessDelegateFactory und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen init ( factoryClassName ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters factoryClassName, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Statisch.
  5. Klicken Sie in der Modellexplorersicht im Unterpaket interfaces.delegates auf die Schnittstelle AbstractBusinessDelegateFactory, und ziehen Sie diese ins Diagramm.
  6. Klicken Sie in der Palette auf Implementierungen.
  7. Klicken Sie im Diagrammeditor auf die Klasse BusinessDelegateFactory, und ziehen Sie diese auf die Klasse AbstractBusinessDelegateFactory.

Sie haben nun die Factoryklassen für die Ebene 'itso.ad.business' modelliert. Ihr Diagramm wird jetzt wie in der folgenden Abbildung aufgeführt dargestellt:

Die abstrakte Implementierung der Geschäftsstellvertreterfactory (Business Delagate Factory abstract implementation).

Framework-Ausnahmebedingungen für 'itso.ad.business' modellieren

Die Framework-Komponentenebene enthält die Implementierung für zwei Ausnahmebedingungen. Dies ist zum Einen die Implementierung für DataAccessException, die ausgegeben wird, wenn in der Geschäftsebene ein Fehler auftritt, und zum Anderen die Implementierung für ServiceException, die bei Auftreten eines Serviceverlusts ausgegeben wird.

Gehen Sie wie folgt vor, um die Klassen 'DataAccessException' und 'ServiceException' zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell) und dann für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns).
  2. Klicken Sie im Unterpaket itso.ad.business mit der rechten Maustaste auf das Paket framework und dann auf UML hinzufügen > Paket.
  3. Ordnen Sie dem neuen Paket den Namen exception zu.
  4. Doppelklicken Sie in der Modellexplorersicht auf das Diagramm für Haupt, und fügen Sie den Titel exception hinzu.
  5. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Klasse den Namen DataAccessException zu.
  6. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Klasse den Namen ServiceException zu.

Sie haben nun die Framework-Komponentenebene für 'itso.ad.business' modelliert. Die Framework-Ebene stellt eine Isolationsebene dar, die die PiggyBank-Clientschnittstelle gegenüber der PiggyBank-Implementierung abschirmt. Jetzt können Sie das Diagramm der Designelemente für 'itso.ad.business' vervollständigen, indem Sie das Factorypaket ins Diagramm ziehen. Stellen Sie mit Hilfe der Verwendungsbeziehung eine Verbindung zwischen dem Paket 'delegate.ejb' und dem Factorypaket her. Stellen Sie über eine Assoziationsbeziehung eine Verbindung zwischen dem Factorypaket und dem Paket 'framework' her. Ihr Diagramm wird jetzt wie in der folgenden Abbildung aufgeführt dargestellt:

Das Paketdiagramm für die Designelemente von 'itso.ad.business'.

Fahren Sie mit Übung 3.6: Unterpaket für EJB-Komponente modellieren fort.

Rechtliche Hinweise | Feedback
(C) Copyright IBM Corporation 2004, 2005. Alle Rechte vorbehalten.