Überblick
Ein aktives Objekt setzt sich aus Kapseln mit Protokollen und Ports zusammen.
Kapseln sind stark verkapselte Objekte, die über Nachrichten, die über ihre Port-Objekte gesendet werden, mit anderen
Kapseln kommunizieren. Kapseln können andere Kapseln enthalten. Eine Kapselstruktur kann andere Kapseln enthalten, bei
denen es sich um Kapselrollen handelt.
Die zwischen zwei Objekten ausgetauschten Nachrichten entsprechen einem Kommunikationsmuster, einem so genannten
Protokoll. Ein Protokoll ist im Prinzip eine vertragliche Vereinbarung, die die gültigen Typen von Nachrichten
definiert, die zwischen den Protokollpartnern ausgetauscht werden.
Ein Zustandsdiagramm ist eine Möglichkeit, Objektverhalten zu definieren. Es zeigt die Abfolge der Zustände, die ein
Objekt oder eine Interaktion durchläuft, wenn es bzw. sie auf empfangene Nachrichten antwortet, sowie die Antworten und
Aktionen.
Toolschritte
Führen Sie die folgenden Schritte aus, um Ihr Design mit aktiven Objekten in Rational Rose RealTime zu gestalten:
-
Kapselrolle erstellen
-
Ports erstellen und an Protokolle binden
-
Zustandsmaschine für Kapsel definieren
-
Zustände und Unterzustände definieren
-
Zustandsübergänge definieren
-
Attribute für Klassen definieren
Kapseln werden in der logischen Sicht des Modell-Browser erstellt.
-
Wählen Sie in der Toolbox das Tool Capsule Role aus.
-
Positionieren Sie den Cursor an der Stelle, an der die Kapselrolle platziert werden soll, und klicken Sie mit der
linken Maustaste.
-
Wählen Sie in der Dropdown-Liste die Kapsel für die neue Kapselrolle aus.
-
Weisen Sie der Kapselrolle einen entsprechenden Namen zu.
-
Wiederholen Sie die vorherigen Schritte für jede zu erstellende Kapselrolle.
-
Suchen Sie die Kapsel im Modell-Browser oder in einem Klassediagramm.
-
Erweitern Sie im Browser die Elemente unterhalb der Kapsel oder klicken Sie in einem Klassendiagramm mit der
rechten Maustaste auf die Kapsel, um das Strukturdiagramm der Kapsel zu öffnen.
-
Verwenden Sie das Tool Port in der Toolbox, um einen Port im Strukturdiagramm der Kapsel zu platzieren. Der
Port kann auf dem Rand der Kapsel oder im großen rechteckigen Bereich übergeben werden.
-
Legen Sie den Namen des Port fest.
-
Wählen Sie in der Liste ein Protokoll aus oder erstellen Sie ein neues.
-
Klicken Sie mit der rechten Maustaste auf den Port, um dem Dialog "Port Specification" aufzurufen.
-
Verwenden Sie den Dialog "Port Specification", um das Protokoll zu ändern, festzulegen, ob der Port verschaltet
oder nicht verschaltet ist und ob der Port konjugiert ist (d. h. eingehende und abgehende Nachrichten des
zugehörigen Protokolls verarbeitet).
-
Suchen Sie die Kapsel im Modell-Browser oder in einem Klassediagramm.
-
Erweitern Sie im Browser die Elemente unterhalb der Kapsel oder klicken Sie in einem Klassendiagramm mit der
rechten Maustaste auf die Kapsel, um das Zustandsdiagramm der Kapsel zu öffnen.
-
Verwenden Sie die Toolbox State Diagram, um Zustände und Übergänge im Zustandsdiagramm zu platzieren.
-
Suchen Sie die Kapsel, für die das Verhalten aktualisiert werden soll. Sie finden Kapseln im Modell-Browser oder in
einem Klassendiagramm.
-
Klicken Sie mit der rechten Maustaste auf die Kapsel, um das Zustandsdiagramm zu öffnen. Daraufhin wird das
Diagramm in einem Zustandsdiagrammeditor geöffnet.
-
Verwenden Sie das Tool State in der Toolbox, um einen neuen Status auf das Diagramm zu übergeben. Führen Sie
diesen Schritt für jeden Zustand aus, den Sie erstellen möchten.
-
Weisen Sie jedem Zustand einen entsprechenden Namen zu.
-
Klicken Sie doppelt auf einen Zustand, der Unterzustände haben soll. Daraufhin wird ein neues Zustandsdiagramm
angezeigt, in dem Sie Unterzustände hinzufügen können.
-
Wählen Sie auf der Registerkarte unten im Fenster die Zustandsebene aus, zu der zurück navigiert werden soll.
Anmerkung: Alternativ können Sie Zustände über den Navigatorbereich des Zustandsdiagrammeditors hinzufügen.
Ausgangsübergang hinzufügen
-
Klicken Sie auf den Ausgangspunkt im Diagramm und ziehen Sie den Übergang auf den Zielzustand. Der Ausgangspunkt
ist der schwarze Kreis, der oben links im Diagramm angezeigt wird.
-
Weisen Sie dem Übergang einen entsprechenden Namen zu, wenn Sie nicht den Standardnamen verwenden möchten. Der
Ausgangsübergang hat standardmäßig den Namen Initial. Sie können den Namen ändern, indem Sie den Kennsatz auswählen
und den gewünschten Namen eingeben. Der Ausgangsübergang wird zur Laufzeit automatisch aufgerufen, wenn eine
Kapselinstanz erstellt wird. Jeder Aktionscode, der dem Ausgangsübergang zugeordnet ist, wird ausgeführt, sobald
die Kapselinstanz erstellt wird.
Übergänge hinzufügen
-
Wählen Sie in der Toolbox das Übergangstool aus und ziehen Sie einen Übergang vom Quellenzustand zum Zielzustand.
-
Weisen Sie dem Übergang einen entsprechenden Namen zu oder akzeptieren Sie den Standardnamen.
Detailcode zu Zustandsmaschinen hinzufügen
C-, C++- und Java-Codes können als Aktionen zu Übergängen, Auswahlpunkten und Zustandsein- und ausgängen in
Kapselzustandsdiagrammen hinzugefügt werden, die dann zur Laufzeit ausgeführt werden. In den generierten Code für das
Modell werden nur Codes aufgenommen, die Kapselzustandsdiagrammen hinzugefügt wurden. Detaillierte Aktionen in
Zustandsdiagrammen für Protokolle oder Datenklassen werden nicht in den generierten Code für diese Klassen aufgenommen.
Trigger hinzufügen
Damit ein Trigger für einen Übergang hinzugefügt werden kann, muss der Port definiert werden, an dem der Trigger
empfangen wird.
-
Klicken Sie doppelt auf den Übergang, um den Dialog "Transition Specification" zu öffnen.
-
Wählen Sie das Register Trigger aus.
-
Positionieren Sie den Cursor im Bereich mit der Port-Liste, klicken Sie mit der rechten Maustaste und wählen Sie im
angezeigten Menü die Option Insert aus.
-
Wählen Sie im Port-Bereich den Port aus, an dem der Trigger empfangen wird.
-
Wählen Sie im Signalbereich das Port-Signal aus, das das Trigger-Ereignis auslöst.
-
Klicken Sie auf die Schaltfläche OK, um die geöffneten Dialoge zu schließen.
Code zum Übergang hinzufügen
Nachdem Sie alle erforderlichen Elemente erstellt haben (Ausgangszustand, Ausgangsübergang und Ports), müssen Sie
Detailcode zum Ausgangsübergang und Zustand zu Zustandsübergängen hinzufügen. Der Detailcode wird ausgeführt, wenn der
erste Übergang zur Ausführungszeit des Modells erfolgt oder wenn ein Trigger für einen Zustandsübergang empfangen wird.
-
Klicken Sie doppelt auf den Übergang, um den Dialog "Transition Specification" zu öffnen.
-
Wählen Sie das Register Actions aus, um das Codefenster anzuzeigen.
-
Fügen Sie den Code hinzu, der beim Übergang ausgeführt werden soll.
-
Wählen Sie die Schaltfläche OK aus, um den geöffneten Dialog zu schließen.
Anmerkung: Sie müssen keine linken und rechten geschweiften Klammern '{`, `}' eingeben. Diese werden automatisch
vom Codegenerator hinzugefügt.
-
Öffnen Sie das Dialogfenster "Capsule Specification", indem Sie im Browser doppelt auf die Kapsel klicken oder die
Kapsel in einem Diagramm auswählen und im Popup-Menü die Option Open Specification auswählen.
-
Wählen Sie das Register Attributes im Dialog "Capsule Specification" aus.
-
Positionieren Sie den Cursor im geöffneten Bereich der Registerkarte, klicken Sie mit der rechten Maustaste und
wählen Sie Insert aus.
-
Ändern Sie den Namen von NewAttribute1 in einen aussagekräftigen Namen und drücken Sie anschließend die
Eingabetaste.
-
Klicken Sie doppelt auf das neue Attribut, um den Dialog "Attribute Specification" anzuzeigen.
-
Definieren Sie im Dialog "Attribute Specification" den Attributtyp und den Anfangswert.
|