back to top

Diagramma delle classi: rappresentazione di una classe – Guida UML

Nel capitolo precedente abbiamo definito, in maniera molto rigorosa, che cosa è una classe. Data la rigorosità della definiszione, è possibile rimanere ancora distanti dal concetto di classe e per questo motivo è opportuno fornire alcuni esempi chiarificatori. Per quanto riguarda le entità fisiche una classe può rappresentare il concetto di casa, mentre per quanto riguarda entità applicative si può definire classe una fattura, uno scontrino, un ordine ad un fornitore. Molto comune è definire una classe per rappresentare un’entità logica di gestione di qualche servizio come per esempio un gestore di accessi ad un sistema informatico o un gestore di ordine per un magazzino.

Definita adesso con maggiore chiarezza che cosa si può rappresentare con il concetto di classe, vediamo adesso come viene rappresentata una classe in UML. Apriamo adesso Violet UML editor e selezioniamo Class Diagram e una volta aperto il foglio di lavoro, nel menù di destra, selezioniamo lo strumento class cliccando poi sul foglio di lavoro. Apparirà un rettangolo a sfondo bianco che rappresenta la nostra classe. A questo punto facendo un doppio click sulla classe apriremo una finestra nel quale è possibile riempire tre campi di testo che rappresentano le parti che costituiscono una classe: nome della classe, attributi e metodi.

Per quanto riguarda il nome della classe non c’è molto da dire, infatti esso rappresenta semplicemente l’identificativo della classe stessa. E’ buona norma scegliere un nome della classe il più descrittivo possibile. Nel nostro esempio chiameremo la nostra classe casa.

Gli attributi di una classe rappresentano le caratteristiche che ha una determinata classe. Ma che sintassi bisogna usare in UML? In realtà è possibile scrivere un attributo in qualsiasi modo, ma è buona norma, affinchè il vostro progetto posso essere compreso anche da altre persone, seguire la seguente sintassi:

Modificatore_DI_Visibilità | Nome_Attributo  | : | Tipo_Attributo

Per quanto riguarda i modificatori di visibilità vengono utilizzati i seguenti simboli:

  • +: è il modificatore di visibilità public ovverro indica che l’attributo può essere utilizzato da tutte le classi presenti.
  • : è il modificatore di visibilità private ovvero indica che l’attributo può essere utilizzato solo dalla classe in cui è stato definito
  • #:: è il modificatore di visibilità protected ovvero indica che l’attributo può essere utilizzato sia dalla classe in cui è definito che dalle classi derivate.

Per quanto concerne il Nome_Attributo anche in questo caso non c’è molto da dire, si consiglia comunque di utilizzare un nome significativo per l’attributo che si vuole identificare.

Il Tipo_Attributo altro non è che il tipo dell’attributo che abbiamo definito. Se facciamo riferimento per esempio ad una somma tra due numeri l’attributo sarà il seguente: – somma : int.

Anche per i metodi esiste una sintassi ben precisa con cui rappresentarli che è la seguente:

Modificatore_DI_Visibilità | Nome_Metodo(Lista_Parametri) | : | Tipo_Di_Ritorno

Come vediamo la sintassi è molto simile a quella degli attributi. L’unica differenza è presente nel Tipo_Di_Ritrono che identifica il tipo di dato che la funzione restituisce quando effettua il return. Per quanto riguarda la Lista_Parametri possiamo dire che è un campo opzionale perchè se da un lato offre una completezza maggiore allo schema dall’altro diminuisce la compattezza dello schema stesso (immaginiamo un metodo che prende in ingresso dieci parametri) quindi, spesso, questo campo è omesso.

Andiamo adesso a mostrare una rappresentazione grafica di una classe con alcuni metodi e attributi:

Esempio di rappresentazione di una classe in UML
PubblicitÃ