Diagrammi delle Classi
I diagrammi delle classi sono il tipo più comune di diagramma UML, usati per modellare la struttura statica di un sistema mostrando classi, i loro attributi, operazioni e relazioni.
Creare Classi
Usare lo strumento Classe
Premi A o C per attivare lo strumento Classe, poi fai clic in qualsiasi punto della tela per posizionare un nuovo box classe.

Struttura del box classe
Un box classe UML è composto da tre scomparti:
- Scomparto nome - Contiene il nome della classe e lo stereotipo opzionale
- Scomparto attributi - Elenca le proprietà/campi della classe
- Scomparto operazioni - Elenca i metodi/funzioni della classe

Proprietà della Classe
Seleziona una classe e usa il pannello Inspector per configurarne le proprietà:
Nome
Il nome della classe appare in grassetto nello scomparto superiore. Per convenzione si usa PascalCase (es. CustomerOrder).
Stereotipo
Classificatore opzionale che appare sopra il nome della classe tra guillemet:
<<interface>>- Per definizioni di interfaccia<<abstract>>- Per classi astratte<<enumeration>>- Per tipi enum<<entity>>- Per entità di dominio- Sono supportati anche stereotipi personalizzati
Astratta
Attiva/disattiva per renderizzare il nome della classe in corsivo, indicando una classe astratta.

Attributi
Gli attributi rappresentano i dati/proprietà di una classe.
Aggiungere attributi
- Seleziona la classe
- Nell'Inspector, trova la sezione Attributi
- Fai clic sul pulsante
+per aggiungere un nuovo attributo - Inserisci i dettagli dell'attributo
Sintassi degli attributi
Gli attributi seguono questo formato: visibilità nome : tipo
Modificatori di visibilità:
| Simbolo | Significato | Descrizione |
|---|---|---|
+ | Pubblico | Accessibile da qualsiasi punto |
- | Privato | Accessibile solo all'interno della classe |
# | Protetto | Accessibile dalla classe e dalle sottoclassi |
~ | Package | Accessibile all'interno dello stesso pacchetto |
Esempi:
-id: Int- ID intero privato+name: String- Nome stringa pubblico#createdAt: Date- Campo data protetto~cache: Map<String, Any>- Cache package-private
Operazioni
Le operazioni rappresentano il comportamento/metodi di una classe.
Aggiungere operazioni
- Seleziona la classe
- Nell'Inspector, trova la sezione Operazioni
- Fai clic sul pulsante
+per aggiungere una nuova operazione - Inserisci i dettagli dell'operazione
Sintassi delle operazioni
Le operazioni seguono questo formato: visibilità nome(parametri) : tipoRitorno
Esempi:
+getName(): String- Getter pubblico che restituisce String-validate(input: String): Boolean- Metodo di validazione privato+process(data: Data, options: Options): Result- Metodo con parametri multipli+save(): void- Metodo senza valore di ritorno
Relazioni
Premi R per attivare lo strumento Relazione, poi trascina da una classe all'altra per creare una connessione.
Tipi di relazione
| Tipo | Stile linea | Freccia | Caso d'uso |
|---|---|---|---|
| Associazione | Linea continua | Freccia aperta | Relazione generica |
| Dipendenza | Linea tratteggiata | Freccia aperta | Relazione "usa" |
| Ereditarietà | Linea continua | Triangolo vuoto | Relazione "è-un" (extends) |
| Realizzazione | Linea tratteggiata | Triangolo vuoto | Implementazione di interfaccia |
| Aggregazione | Linea continua | Diamante vuoto | "Ha-un" (proprietà debole) |
| Composizione | Linea continua | Diamante pieno | "Ha-un" (proprietà forte) |

Creare relazioni
- Premi
Rper attivare lo strumento Relazione - Fai clic sulla classe sorgente
- Trascina alla classe di destinazione
- Rilascia per creare la connessione
- Usa l'Inspector per cambiare il tipo di relazione e le punte di freccia
Etichette delle relazioni
Fai doppio clic su una linea di relazione per aggiungere etichette:
- Nome - Descrive la relazione (es. "gestisce", "contiene")
- Molteplicità - Indica quante istanze (es. "1", "0..*", "1..n")
- Nomi di ruolo - Etichette a ogni estremità che descrivono il ruolo
Best Practice
- Mantieni la semplicità - Non cercare di modellare tutto; concentrati sulle classi chiave
- Usa gli stereotipi - Contrassegna chiaramente interfacce e classi astratte
- Mostra le relazioni chiave - Non ogni associazione deve essere mostrata
- Nomi coerenti - Usa PascalCase per le classi, camelCase per i membri
- Raggruppa le classi correlate - Usa la vicinanza visiva per mostrare raggruppamenti logici