Panoramica
Un oggetto attivo è composto da capsule con protocolli e porte.
Le capsule sono oggetti incapsulati ad alto livello utilizzando la comunicazione basata sui messaggi verso altre
capsule attraverso i loro oggetti porte. Le capsule possono aggregare altre capsule. Una struttura delle capsule può
contenere altre capsule, che sono ruoli capsule.
L'impostazione dei messaggi scambiati tra due oggetti è conforme ad un pattern di comunicazione, chiamato protocollo.
Si tratta sostanzialmente di un contratto che definisce i tipi validi di messaggi che possono essere scambiati tra i
partecipanti nel protocollo.
Un diagramma di stato è uno dei modi per definire il comportamento degli oggetti. Mostra la sequenza degli stati in cui
si trova un oggetto o una iterazione durante la sua vita in risposta ai messaggi ricevuti, insieme alle risposte e alle
azioni.
Modalità d'uso del tool
Per progettare con oggetti attivi in Rational Rose RealTime, effettuare le seguenti operazioni:
-
Creazione di un ruolo capsule
-
Creazione di porte e bind per i protocolli
-
Definizione di una macchina a stati capsule
-
Definizione di stati e stati secondari
-
Definizione di transizioni di stato
-
Definizione di attributi nelle classi
Le capsule vengono create nella vista logica del browser dei modelli.
-
Selezionare il tool Ruolo capsule (Capsule Role) nella barra degli strumenti.
-
Posizionare il cursore dove il ruolo capsule deve essere posizionato e fare clic con il pulsante sinistro del
mouse.
-
Selezionare la capsula associata al nuovo ruolo capsule dall'elenco a discesa.
-
Associare al ruolo capsule un nome appropriato.
-
Ripetere i passi appena riportati per ciascun ruolo capsule da creare.
-
Individuare la capsula nel browser dei modelli oppure in un diagramma di classe.
-
Espandere gli elementi al di sotto della capsula nel browser, oppure fare clic con il pulsante destro del mouse nel
diagramma di classe per aprire il diagramma struttura della capsula.
-
Utilizzare il tool Porta nella barra degli strumenti per posizionare una porta nel diagramma struttura della
capsula. La porta potrebbe essere passata sul bordo della capsula oppure all'interno dell'ampia area rettangolare.
-
Impostare il nome della porta.
-
Selezionare un protocollo dall'elenco oppure crearne uno nuovo.
-
Fare clic con il pulsante destro del mouse per selezionare il dialogo di specifica della porta.
-
Utilizzare il dialogo di specifica della porta per modificare il protocollo, per decidere se la porta è cablata o
meno, e per impostare se la porta è coniugata.
-
Individuare la capsula nel browser dei modelli oppure in un diagramma di classe.
-
Espandere gli elementi al di sotto della capsula nel browser, oppure fare clic con il pulsante destro del mouse nel
diagramma di classe per aprire il diagramma di stato della capsula.
-
Utilizzare la barra degli strumenti Diagramma di stato (State Diagram) per mettere gli stati e le
transizioni nel diagramma di stato.
-
Individuare la capsula per la quale è stato aggiornato il comportamento. È possibile individuare le capsule nel
browser dei modelli oppure in un diagramma di classe.
-
Fare clic con il pulsante destro del mouse sulla capsula da aprire nel diagramma di stato. In tal modo verrà aperto
il diagramma nell'editor del diagramma di stato.
-
Utilizzare il tool Stato nella barra degli strumenti per passare ad un nuovo stato nel diagramma. Eseguire
questa operazione per ciascuno stato che si desidera creare.
-
Associare ad ogni stato un nome appropriato.
-
Fare doppio clic su uno stato che possiede stati secondari. In tal modo verrà esposto un nuovo diagramma stato in
cui è possibile aggiungere stati secondari.
-
Utilizzare la scheda nella parte inferiore della finestra per scegliere il livello di stato nel quale esplorare.
Nota: in alternativa, è possibile aggiungere stati attraverso l'area di esplorazione dell'editor del diagramma
di stato.
Aggiungere una transizione iniziale
-
Fare clic sul punto iniziale nel diagramma e trascinare la transizione all'inizio dello stato di destinazione. Il
punto iniziale viene rappresentato dal un cerchio nero visualizzato nell'estremo angolo sinistro del diagramma.
-
Assegnare un nome appropriato alla transizione, se non è il valore predefinito. La transizione iniziale ha come
nome predefinito Iniziale. È possibile modificare il nome selezionando l'etichetta e digitandola. La transizione
iniziale verrà richiamata automaticamente al runtime quando verrà creata un'istanza di capsula. Tutti i codici
azione associati con la transizione iniziale verranno eseguiti alla creazione dell'istanza della capsula.
Aggiungere transizioni
-
Selezionare il tool di transizione dalla barra degli strumenti e trascinare la transizione dallo stato di origine a
quello di destinazione.
-
Assegnare alla transizione un nome appropriato oppure accettare quello predefinito.
Aggiungere codice di dettagli alle macchine di stato
È possibile aggiungere il codice C, C++ oppure Java come azioni o transizioni, punti di scelta, ingresso oppure uscita
di stato su diagrammi di stato delle capsule da eseguire al runtime. Solo il codice aggiunto ai diagrammi di stato
della capsula viene aggiunto al codice generato per il modello. Le azioni dettagliate sul protocollo oppure i diagrammi
di stato della classe non vengono compresi nel codice generato per tali classi.
Aggiungere trigger
Prima di impostare un trigger per una transizione, occorre definire la porta su cui verrà ricevuto il trigger.
-
Fare doppio clic sulla transizione per aprire il dialogo di specifica della transizione.
-
Selezionare la scheda Trigger.
-
Con il cursore posizionato nell'area di elenco delle porte, fare clic con il pulsante destro del mouse e
selezionare Inserisci dal menu.
-
Nell'area Porta, selezionare la porta in cui verrà ricevuto il trigger.
-
Nell'area dei segnali, selezionare il segnale della porta che provocherà l'evento trigger.
-
Fare clic sui pulsanti OK per chiudere le finestre aperte.
Aggiungere codice alla transizione
Una volta che tutti gli elementi richiesti sono a posto (stato iniziale, transizione iniziale e porte), occorre
aggiungere codice dettagliato alla transizione iniziale, così come lo stato alle transizioni di stato. Il codice in
dettaglio viene eseguito quando la transizione iniziale viene eseguita al momento di esecuzione del modello oppure
quando viene ricevuto un trigger sullo stato nella transizione di stato.
-
Fare doppio clic sulla transizione per aprire il dialogo di specifica della transizione.
-
Selezionare la scheda Azioni per visualizzare la finestra sul codice.
-
Aggiungere il codice che verrà eseguito sulla transizione.
-
Selezionare il pulsante OK per chiudere la finestra aperta.
Nota: non di devono aggiungere le parentesi graffe di apertura e chiusura '{`, `}'. Vengono aggiunte
automaticamente dal generatore di codice.
-
Aprire la casella di dialogo di specifica della capsula facendo doppio clic nel browser oppure selezionando la
capsula in un diagramma e selezionando Apri specifica (Open Specification) dal menu a comparsa.
-
Selezionare la scheda Attributi nella specifica della capsula.
-
Con il cursore nell'area aperta della scheda, fare clic con il pulsante destro del mouse e selezionare
Inserisci.
-
Modificare il nome da NewAttribute1 in qualcosa di più significativo e quindi premere INVIO.
-
Fare doppio clic sul nuovo attributo per visualizzare la finestra di specifica degli attributi.
-
Utilizzare la finestra di specifica degli attributi per impostare il tipo di attributo e il valore iniziale.
|