In den folgenden Büchern und Dokumenten finden Sie Referenzen zu diesen Richtlinien:
Anders im Vergleich mit der Anwendungsfallanalyse ist, dass die Grenzklassen in ihrer Zielsetzung
fokussierter und singulärer sind. Objekte dieser Klassen haben eine kurze Lebensdauer, und jeder Clientzustand (in
Webseiten) muss explizit von speziellen Mechanismen verwaltet werden. Microsoft Active Server Pages verwenden
beispielsweise "Cookies" als Index für eine Übersicht über den Zustand aller derzeit aktiven Clients.
Wenn Sie die Spezifikation eines Anwendungsfalls lesen, gilt außerdem Folgendes:
-
Jede Erwähnung einer Webseite wird in eine Grenzklasse übersetzt.
-
Jede Erwähnung eines Hyperlinks wird in eine Assoziation von einer Grenzklasse zu einer anderen Grenzklasse oder
Controllerklasse übersetzt.
-
Verben oder Beschreibungen von Prozessen werden in der Regel Controllerklassen zugeordnet.
-
Nomen werden Entitätsklassen zugeordnet.
Die Grenzklasse, über die die Kommunikation eingeleitet wird, kommuniziert mit einer Controllerklasse. Die
Controllerklasse antwortet in der Regel nicht über dieselbe Instanz dieser Grenzklasse.
Während der Anwendungsfallanalyse können die Szenarios mit Ablaufdiagrammen beschrieben werden. Damit kann die Existenz
von Analyseobjekten im Szenario eines Anwendungsfalls getestet werden. Wenn Analyseobjekte gefunden werden, die in
keinem Ihrer Szenarios vorkommen, sind sie verdächtig und müssen erneut bewertet werden. Das Risiko hier ist, dass die
Diagramme zu groß und schlecht verwaltbar werden, wenn Sie zu sehr ins Detail gehen. Sie können dies verhindern, indem
Sie sich auf kurze, eindeutige Szenarios konzentrieren und nur Grenzobjekte, wichtige Controller- und Entitätsobjekte
aufnehmen.
Denken Sie daran, dass Grenzobjekte in Webanwendungen eine kurze Lebensdauer haben. Eine Grenzklasse kann während der
Ausführung eines Szenarios jedoch mehrfach instanziert werden, d. h. es können mehrere Grenzobjekte in derselben Klasse
im Diagramm instanziert werden.
Der Akteur in einem Ablaufdiagramm auf Analyseebene interagiert mit einem Grenzobjekt. Es wird eine
Navigationsnachricht vom Akteur an das Grenzobjekt gesendet.
Erste Grenzklassendesigns
Eine Grenzklasse kann einer Clientseitenklasse zugeordnet werden.
Wenn die Grenzklasse die Eingabe von Informationen umfasst, ordnen Sie sie normalerweise durch Aggregation einem
Formular (oder Webformular) zu. Ein Formular kann als verschachtelte Klasse der Clientseite modelliert werden, da sein
gesamter Lebenszyklus von der Clientseite gesteuert wird. Formulare haben immer eine Übergabebeziehung zu einer
Serverseite, die die Werte des Formulars verarbeitet, was letztendlich zu einer neuen zurückgegebenen Clientseite
führt.
Wenn die Benutzerschnittstelle dynamisches Verhalten vom Client erfordert, kann dies am einfachsten durch die
Verwendung dynamischen HTML im Client erreicht werden. Im Designmodell wird dies normalerweise mit Operationen auf der
Clientseite dargestellt. Operationen auf der Clientseite werden direkt JavaScript-Funktionen zugeordnet. Attribute
einer Java-Seite werden direkt den seitenbezogenen Variablen der Seite zugeordnet. Ereignis-Handler für dynamisches
HTML werden als Eigenschaftswerte erfasst.
Wenn die Benutzerschnittstelle ein fortgeschrittenes Verhalten hat, sollten Sie der Grenzklasse durch Aggregation ein
Applet zuordnen.
Wenn Ihre Architektur auf einem verteilten Objektsystem (z. B. RMI, IIOP oder DCOM) basiert, kann die Clientseite auf
Schnittstellen zu Komponenten verweisen, die direkt über RMI, IIOP bzw. DCOM mit dem Server kommunizieren und HTTP
umgehen. Diese Arten von Beziehungen haben normalerweise den Stereotyp <<RMI>> (rmi), <<IIOP>>
(iiop) bzw. <<DCOM>> (dcom), um dem Designer die Bereiche anzuzeigen, in denen Netzverkehr auftritt, und
somit für Engpässe in Frage kommen.
Erste Entitätsklassendesigns
Beim Design einer Webanwendung ist der einzige Unterschied bei den Entitätsklassen der folgende. Wenn das Objekt im
Bereich der Clientseite liegt, wird das Entitätsobjekt einem JavaSript-Objekt zugeordnet.
Erste Controllerklassendesigns
Steuerungsklassen werden Serverseiten zugeordnet. Controller beschreiben und koordinieren die Geschäftslogik und
koordinieren andere Logik. Sie befinden sich normalerweise auf dem Server. Viele Controllerobjekte sind für das
Erstellen von Clientseiten verantwortlich (im Wesentlichen geben sie HTML-Datenströme aus). Controllerobjekte können
mit serverseitigen Ressourcen wie Datenbanken, Komponenten der mittleren Schicht, Transaktionsmonitoren usw.
interagieren.
Controllerklassen werden normalerweise serverseitigen scriptgesteuerten Webseiten (Active Server Pages, Java Server
Pages) zugeordnet.
|