Il diagramma delle classi è composto principalmente da classi, interfacce e varie relazioni, che includono principalmente relazioni di generalizzazione, dipendenza, associazione e realizzazione.
Il diagramma di classe è una vista statica nella modellazione UML, utilizzata per descrivere classi, interfacce, collaborazioni e le loro relazioni, per mostrare la struttura statica di questi concetti nel sistema, ampiamente utilizzata nelle fasi di analisi e progettazione del sistema nell'ingegneria del software.
Il diagramma di classe è una delle principali componenti della modellazione orientata agli oggetti e definisce anche la base per altri diagrammi UML; sulla base del diagramma di classe, è possibile disegnare diagrammi di stato, diagrammi di collaborazione, diagrammi dei componenti e diagrammi di configurazione.
Il diagramma di classe è principalmente un modello statico utilizzato per mostrare la struttura e le relazioni statiche tra classi e interfacce nel sistema. Dopo che il progettista del software ha progettato il diagramma di classe, il programmatore può implementare in codice il contenuto incluso nel diagramma di classe.
Collaborazione in tempo reale multi-utente con link condivisibili per trasferimento istantaneo
Genera automaticamente grafici dal testo con miglioramenti di stile
Temi predefiniti con personalizzazione completa
Supporta icone, immagini, etichette, formule LaTeX, blocchi codice, link, allegati
Esporta: PNG, VISIO, PDF, SVG | Importa: VISIO, Mermaid
Archiviazione cloud in tempo reale, sincronizzazione multi-dispositivo, cronologia versioni e sicurezza dati
Il diagramma delle classi è composto principalmente da classi, interfacce e varie relazioni, che includono principalmente relazioni di generalizzazione, dipendenza, associazione e realizzazione.
Una classe è solitamente composta da nome, attributi e operazioni. Inoltre, la composizione di una classe include anche responsabilità, vincoli e annotazioni.
Nel diagramma delle classi, una classe è rappresentata da un rettangolo suddiviso in tre livelli: il primo livello è il nome della classe, il secondo livello sono gli attributi della classe, e il terzo livello sono le operazioni della classe.
Il nome di una classe dovrebbe essere un sostantivo e dovrebbe riflettere accuratamente e chiaramente il concetto nel dominio del problema. Secondo la convenzione UML, la prima lettera di ogni parola nel nome della classe dovrebbe essere maiuscola; i caratteri normali rappresentano le classi concrete, mentre i caratteri in corsivo rappresentano le classi astratte.
Le interfacce nel diagramma delle classi sono anch'esse rappresentate da un rettangolo, ma diversamente dalle classi, il primo livello nel diagramma delle classi usa lo stereotipo <<interface>> per rappresentarle, seguito dal nome dell'interfaccia, e il secondo livello sono i metodi dell'interfaccia.
Esistono certe relazioni tra classi e classi, classi e interfacce, interfacce e interfacce. Nei diagrammi delle classi UML, di solito ci sono delle linee che indicano le relazioni tra di loro. Ci sono sei tipi di relazioni: realizzazione, generalizzazione, associazione, dipendenza, aggregazione e composizione.
1. Il modello creato da un diagramma delle classi descrive una situazione generale, mentre il modello creato da un diagramma degli oggetti descrive una situazione specifica.
2. Un diagramma delle classi può descrivere completamente la struttura degli oggetti di un sistema, mentre un diagramma degli oggetti no.
3. Una classe in un diagramma delle classi può corrispondere a più oggetti in un diagramma degli oggetti.
Una classe è solitamente composta da nome, attributi e operazioni, rappresentata con un rettangolo suddiviso in tre livelli: il primo livello è il nome della classe, il secondo livello sono gli attributi della classe e il terzo livello sono le operazioni della classe.
Tuttavia, nell'uso pratico, esistono tre forme di rappresentazione: "nome della classe", "nome della classe" + "attributi della classe", "nome della classe" + "operazioni della classe".
Il nome della classe dovrebbe essere un sostantivo, con la lettera iniziale di ogni parola in maiuscolo; inoltre, si usano caratteri normali per le classi istanziabili e caratteri in corsivo per le classi astratte.
Sintassi di definizione degli attributi di una classe: [visibilità] nomeAttributo [:tipoDati] [=valoreIniziale] [{stringaAttributo}]
Tra questi, il contenuto tra [] indica che è opzionale.
Il vincolo di una classe specifica una o più regole che la classe deve soddisfare; in UML, i vincoli sono rappresentati da informazioni testuali racchiuse tra parentesi graffe.
Relazione di realizzazione: rappresentata con un triangolo vuoto + linea tratteggiata, dalla classe che realizza verso la classe di interfaccia.
Relazione di generalizzazione: rappresentata con un triangolo vuoto + linea continua, dalla sottoclasse verso la superclasse.
Relazione di associazione: rappresentata con una freccia a linea continua, dalla classe di riferimento verso la classe referenziata.
Relazione di aggregazione: rappresentata con un rombo vuoto + linea continua, dalla classe parte verso la classe intera.
Relazione di composizione: rappresentata con un rombo pieno + linea continua, dalla classe parte verso la classe intera.
Relazione di dipendenza: rappresentata con una freccia a linea tratteggiata, dalla classe di riferimento verso la classe dipendente.
Il diagramma delle classi non è completamente indipendente; dovrebbe astrarre classi di entità, controllo e confine dal diagramma dei casi d'uso e mantenere una coerenza semantica con diagrammi dei casi d'uso, diagrammi di attività, diagrammi di sequenza, ecc.
Una classe dovrebbe mantenere una singola responsabilità; è possibile suddividere classi di grandi dimensioni e distribuire le responsabilità in modo ragionevole tra più classi, evitando un alto grado di accoppiamento, chiarendo i confini, in conformità con i principi di progettazione orientata agli oggetti.