< Indietro | Avanti >

Lezione 4: Creazione e perfezionamento della dichiarazione di associazione classe-a-interfaccia

Questa lezione spiega come creare una dichiarazione di associazione classe-a-interfaccia nel modello di associazione. Questa dichiarazione di associazione contiene regole di associazione che creano un'interfaccia il cui nome deriva dal nome della classe nel modello di origine, e che copiano solo i metodi pubblici della classe nel modello di origine.

Per creare una dichiarazione di associazione classe-a-interfaccia nel modello di associazione:

  1. Se il file Generalize_Classes.mapping non è aperto nell'editor di associazione, nella vista Esplora package, fare doppio clic sul file.
  2. Nell'editor di associazione trasformazioni, nella sezione Root di associazione, fare clic con il tasto destro del mouse su Generalizza_Classi; quindi fare clic su Crea associazione.
  3. Nella finestra Nuova associazione, nel campo Nome associazione, immettere Class2Interface; quindi fare clic su OK. L'associazione viene visualizzata nella vista Struttura e viene aperta nell'area editor nella sezione Root di associazione.
    Nota: Per visualizzare i dettagli di una dichiarazione di associazione non aperta nell'area dell'editor, nella vista Struttura, espandere il nome della dichiarazione di associazione. Per aprire una dichiarazione di associazione diversa, nella vista Struttura, fare clic sul nome della dichiarazione di associazione.

Aggiunta di oggetti di input e di output alla dichiarazione di associazione classe-a-interfaccia

Dopo aver creato la dichiarazione di associazione classe-a-interfaccia, è possibile specificare una classe UML come oggetto di input e un'interfaccia UML come oggetto di output.

Per aggiungere un oggetto di input e un oggetto di output alla dichiarazione di associazione classe-a-interfaccia:

  1. Fare clic sull'icona Aggiungi un oggetto di input, l'icona più a sinistra sulla barra degli strumenti che si sta modificando.
  2. Nella finestra Aggiunta input, nel riquadro Elemento, espandere uml, fare clic su Classe, quindi fare clic su OK.
  3. Fare clic sull'icona Aggiungi un oggetto di output, la seconda icona da sinistra nella barra degli strumenti dell'associazione che si sta modificando.
  4. Nella finestra Aggiunta output, nel riquadro Elemento, espandere uml, fare clic su Interfaccia, quindi fare clic su OK.
  5. Fare clic su File > Salva.
È adesso possibile definire le regole di associazione tra gli attributi dell'oggetto di input della classe e l'oggetto di output dell'interfaccia.

Definizione delle regole di associazione tra gli attributi degli oggetti di input e di output

Dopo aver aggiunto un oggetto di input e di output alla dichiarazione di associazione classe-a-interfaccia, sarà possibile definire le regole di associazione tra gli attributi degli oggetti di input e di output.

In questa lezione, verrà creata una regola di associazione personalizzata che crea un'interfaccia chiamata IClassName. Verrà anche creata una regola di associazione secondaria che richiama l'associazione secondaria creata durante la Lezione 3: Creazione e perfezionamento della dichiarazione di associazione classe-a-classe, e verrà aggiunto un filtro di input alla regola di associazione secondaria per specificare che nell'interfaccia di destinazione saranno trasformate solo operazioni pubbliche.

Per definire le regole di associazione tra gli attributi degli oggetti di input e di output:

  1. Creare una regola di associazione personalizzata tra l'attributo name dell'oggetto di input e di output:
    1. Nell'area editor, nell'oggetto di input della classe, fare clic sull'attributo name.
    2. Trascinare la maniglia dell'attributo name sull'attributo name nell'oggetto di output dell'interfaccia. Viene creata una regola di associazione.
    3. Nell'elemento Spostamento che connette gli attributi name, fare clic sulla freccia verso il basso, quindi su Personalizzato.
    4. Fare clic con il tasto destro del mouse sull'elemento Personalizzato; quindi fare clic su Mostra in Proprietà.
    5. Nella vista Proprietà, nella scheda Dettagli, fare clic su Seriale, e, nell'area di testo sotto la firma del metodo, immettere il seguente codice: Interface_tgt.setName("I"+Class_src.getName());
      Nota: Per richiamare la funzionalità di assistente ai contenuti, durante la digitazione del codice, premere Ctrl+Barra spaziatrice.
    6. Fare clic su Applica.
  2. Creare una regola di associazione secondaria tra l'attributo ownedOperation dell'oggetto di input e output.
    1. Nell'area editor, nell'oggetto di input della classe, fare clic sull'attributo ownedOperation.
    2. Trascinare la maniglia dell'attributo ownedOperation sull'attributo ownedOperation nell'oggetto di output dell'interfaccia. Poiché l'attributo ownedOperation è una raccolta, per impostazione predefinita viene creata una regola di associazione secondaria.
    3. Se la vista Proprietà non è aperta, fare clic con il tasto destro del mouse sul nuovo elemento Associazione secondaria; quindi fare clic su Mostra in proprietà.
    4. Se non è ancora selezionato, nella vista Proprietà, nella scheda Dettagli, nell'elenco Associazione, selezionare Operation2Operation.
  3. Alla regola di associazione secondaria creata al punto 2, aggiungere un filtro di input che trasforma solo le operazioni pubbliche nell'interfaccia di destinazione:
    1. Nella vista Proprietà nella scheda Filtro di input, fare clic su Filtra elementi di input, quindi su Seriale.
    2. Nell'area di testo sotto l'opzione Codice, al di sotto della firma del metodo, immettere il seguente codice: if (ownedOperation_src.getVisibility().equals(VisibilityKind.PUBLIC_LITERAL)) { return true; } return false;
      Nota: Il codice specificato per il filtro di input o di output deve restituire un valore booleano. È possibile specificare solo il corpo del metodo; il framework di creazione della trasformazione definisce la firma del metodo. Per visualizzare un elenco di nomi di variabile validi, nell'area di testo sotto il pulsante Seriale, premere Ctrl+Barra spaziatrice.
    3. Fare clic su Applica.
  4. Fare clic su File > Salva.
Nella lezione successiva verranno create diverse dichiarazioni di associazione nel modello Generalize_Classes.mapping model; queste dichiarazioni di associazione definiscono come verranno trasformati i parametri e i tipi primitivi durante l'esecuzione della trasformazione generata.
< Indietro | Avanti >

Feedback