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.

Tela vuota con strumento Classe

Struttura del box classe

Un box classe UML è composto da tre scomparti:

  1. Scomparto nome - Contiene il nome della classe e lo stereotipo opzionale
  2. Scomparto attributi - Elenca le proprietà/campi della classe
  3. Scomparto operazioni - Elenca i metodi/funzioni della classe

Struttura del box 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.

Inspector classe

Attributi

Gli attributi rappresentano i dati/proprietà di una classe.

Aggiungere attributi

  1. Seleziona la classe
  2. Nell'Inspector, trova la sezione Attributi
  3. Fai clic sul pulsante + per aggiungere un nuovo attributo
  4. Inserisci i dettagli dell'attributo

Sintassi degli attributi

Gli attributi seguono questo formato: visibilità nome : tipo

Modificatori di visibilità:

SimboloSignificatoDescrizione
+PubblicoAccessibile da qualsiasi punto
-PrivatoAccessibile solo all'interno della classe
#ProtettoAccessibile dalla classe e dalle sottoclassi
~PackageAccessibile 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

  1. Seleziona la classe
  2. Nell'Inspector, trova la sezione Operazioni
  3. Fai clic sul pulsante + per aggiungere una nuova operazione
  4. 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

TipoStile lineaFrecciaCaso d'uso
AssociazioneLinea continuaFreccia apertaRelazione generica
DipendenzaLinea tratteggiataFreccia apertaRelazione "usa"
EreditarietàLinea continuaTriangolo vuotoRelazione "è-un" (extends)
RealizzazioneLinea tratteggiataTriangolo vuotoImplementazione di interfaccia
AggregazioneLinea continuaDiamante vuoto"Ha-un" (proprietà debole)
ComposizioneLinea continuaDiamante pieno"Ha-un" (proprietà forte)

Relazioni tra classi

Creare relazioni

  1. Premi R per attivare lo strumento Relazione
  2. Fai clic sulla classe sorgente
  3. Trascina alla classe di destinazione
  4. Rilascia per creare la connessione
  5. 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

  1. Mantieni la semplicità - Non cercare di modellare tutto; concentrati sulle classi chiave
  2. Usa gli stereotipi - Contrassegna chiaramente interfacce e classi astratte
  3. Mostra le relazioni chiave - Non ogni associazione deve essere mostrata
  4. Nomi coerenti - Usa PascalCase per le classi, camelCase per i membri
  5. Raggruppa le classi correlate - Usa la vicinanza visiva per mostrare raggruppamenti logici