Skip to main content

Elemento: generalizzazione

UN Generalizzazione è una relazione UML che esprime eredità o specializzazione. L'elemento ereditante ha gli attributi e le operazioni dell'elemento radice. Nel codice IEC, questa relazione corrisponde alla parola chiave EXTENDS.

Una generalizzazione punta dalla classe ereditaria alla classe radice. Pertanto, la direzione della freccia indica chi eredita da chi.

. L'ereditarietà è possibile tra classi, interfacce e tipi di dati definiti dall'utente:
  • Un blocco funzione può ereditare da un altro blocco funzione.

  • Un'interfaccia può ereditare da un'altra interfaccia.

  • Un DUT può ereditare da un altro DUT.

  • I programmi e le funzioni non possono ereditare ed essere ereditati.

_uml_img_element_generalization.png

Visualizza come freccia

Proprietà

Tabella 6.

Relazione

Tipo di relazione

Ottimizza percorso

Quando questa opzione è selezionata, il percorso della freccia di relazione viene ottimizzato automaticamente. I punti fissi sono il punto iniziale dell'elemento iniziale e il punto finale dell'elemento finale. Ad esempio, se l'elemento finale viene spostato, il punto in cui la freccia punta all'elemento finale rimane lo stesso. Quando questa opzione è deselezionata, il percorso rimane invariato. Non appena un elemento di relazione viene posizionato manualmente nel diagramma di classe, questa opzione viene deselezionata.

Selezionare questa opzione se è richiesta l'ottimizzazione automatica.

Elemento iniziale

Nome dell'elemento in cui inizia l'elemento di relazione

Elemento finale

Nome dell'elemento a cui punta l'elemento di relazione

Identificatore

Per il Associazione e Composizione solo relazioni

Nome dell'elemento di relazione



Input dell'utente

Azione

Descrizione

  1. Seleziona il Generalizzazione _uml_icon_tool_generalization.png attrezzo.

  2. Fare clic sull'elemento che dovrebbe ereditare.

  3. Fare clic sull'oggetto padre.

Viene tracciata una generalizzazione tra l'erede e l'elemento padre.

Il codice IEC viene adattato in modo sincrono specificando l'elemento padre nella parte di dichiarazione della classe ereditaria.

Esempio: Class_A EXTENDS Class_Base

  1. Seleziona il Generalizzazione _uml_icon_tool_generalization.png attrezzo.

  2. Fare clic sull'elemento che dovrebbe ereditare.

  3. Fare clic su un'area vuota nel diagramma.

    Si apre una finestra di dialogo per la generazione del nuovo oggetto.

  4. Specificare un nome, configurare le impostazioni e fare clic Aggiungere per uscire dalla finestra di dialogo.

Viene tracciata una generalizzazione tra l'erede e l'elemento padre.

Il codice IEC viene adattato automaticamente creando il nuovo oggetto e specificando l'oggetto padre nella parte di dichiarazione dell'oggetto ereditante. Esempio: Class_A EXTENDS Class_Base.

Nota

Questo input non funziona per l'elemento DUT.

  1. Seleziona il Scelta _uml_tool_selection.png attrezzo.

  2. Fare clic su una generalizzazione.

  3. Sposta la linea.

Le linee sono cambiate. Il Ottimizza il percorso la proprietà viene deselezionata automaticamente.

  1. Seleziona il Scelta _uml_tool_selection.png attrezzo.

  2. Fare clic su una generalizzazione.

  3. premi il Del tasto o fare clic Eliminare nel menu contestuale.

La generalizzazione viene rimossa dal diagramma e dal codice IEC. La dichiarazione EXTENDS viene rimosso dalla parte di dichiarazione della classe ereditante.

Esempio

Esempio 19. Blocco funzione

Fb_A eredita da Fb_Base:

_uml_img_example_generalization_function_block.png
FUNCTION_BLOCK Fb_A EXTENDS Fb_Base


Esempio 20. Interfaccia

Itf_A eredita da Ift_Base:

_uml_img_example_generalization_interface.png
INTERFACE Itf_A EXTENDS Itf_Base


Esempio 21. DUT

Dut_A eredita da Dut_Base:

_uml_img_example_generalization_dut.png
TYPE Dut_Base :
STRUCT
    counter : INT;
END_STRUCT
END_TYPE

TYPE Dut_A EXTENDS Dut_Base :
STRUCT
    data : ARRAY[0..9] OF WORD;
END_STRUCT
END_TYPE