I diagrammi di classe UML ci aiutano a capire come funziona il software. Mostrano le parti di un sistema software, cosa fa ogni parte e come queste parti si collegano tra loro. Questo tutorial semplifica l'apprendimento dei diagrammi di classe UML . È ottimo sia per i principianti che per coloro che già conoscono alcune cose sul software. uiscono alla funzionalità complessiva del sistema. Vedremo cosa sono questi diagrammi, i simboli che usano e come leggerli. Questa guida è molto utile per chiunque voglia migliorare nella creazione di software.
In questi diagrammi, vediamo come diverse parti di un sistema lavorano insieme. Questo tutorial spiega i diversi modi in cui le parti possono essere collegate, come associazione, aggregazione ed ereditarietà. Utilizziamo semplici esempi per mostrare queste idee. Questo aiuta chiunque stia pianificando un nuovo progetto software o cercando di capirne uno esistente. Questa guida ti insegnerà come creare diagrammi di classe UML in modo semplice.
In questo articolo
Parte 1. Che cosa è un diagramma di classe UML le classi interagiscono tra loro, scambiano informazioni e contrib
Un diagramma di classe è uno dei tipi di diagrammi UML più ampiamente utilizzati nell'ingegneria del software. I diagrammi di classe sono importanti in quanto forniscono una rappresentazione visiva di come funziona un programma per computer e ne descrivono i componenti insieme alle loro proprietà e metodi. Di seguito sono riportati i componenti principali di un diagramma di classe UML:
Classe:
Rappresenta un progetto o un modello per la creazione di oggetti.
Solitamente è rappresentato come un rettangolo con tre scomparti: quello superiore per il nome della classe, quello centrale per gli attributi e quello inferiore per i metodi o le operazioni.
Attributi:
Rappresentano le proprietà o le caratteristiche di una classe. Gli attributi sono generalmente elencati nel compartimento centrale del rettangolo della classe. Ogni attributo ha un nome e un tipo.
Operazioni/Metodi:
Rappresentano le funzioni o le azioni che possono essere eseguite dagli oggetti di una classe. Elencate nel compartimento inferiore del rettangolo della classe. Ogni operazione ha un nome, parametri e un tipo di ritorno.
Relazioni:
La relazione tra classi in UML si riferisce all'associazione o alla connessione stabilita tra classi diverse all'interno di un sistema. Queste relazioni definiscono il modo in cui le classi interagiscono tra loro, scambiano informazioni e contribuiscono alla funzionalità complessiva del sistema.
Parte 2. Notazioni e simboli del diagramma di classe
I diagrammi UML utilizzano forme specifiche per specificare oggetti. Di seguito vedremo come le classi sono rappresentate con l'aiuto di una classe Person e la sua relazione con Address.
▪ Rappresentare una classe
Una classe è un componente di base in un diagramma di classe UML. Una classe è rappresentata da un rettangolo. Il nome della classe è scritto in cima al rettangolo con un separatore sotto. Di seguito è riportata una rappresentazione di un diagramma di classe Person
▪ Attributi di classe
Ora che abbiamo una forma di classe con il nome della classe in alto, è il momento di aggiungere gli attributi della classe. Gli attributi sono proprietà della classe. Ricorda che la classe è un progetto. Quindi ogni istanza della classe avrà il suo set di attributi.
Gli attributi sono mostrati come nella seconda partizione sotto il titolo della classe. I nomi degli attributi sono mostrati con il tipo di attributo seguito da due punti. Questi attributi corrispondono alle variabili membro (membri dati) nel codice.
Quindi un'istanza di Persona può avere questi attributi, ad esempio: Nome, Data di nascita, Genere, Indirizzo e così via. Di seguito è riportato come un'istanza di Persona può essere rappresentata utilizzando la forma UML:
▪ Metodi
Ogni classe dovrebbe eseguire in qualche modo e soddisfare una funzionalità specifica. Questi metodi sono specificati nella forma della classe sotto la partizione degli attributi. Quindi supponiamo che la nostra Persona possa eseguire una routine giornaliera, quindi il metodo performDailyRoutine potrebbe essere aggiunto nella forma della classe come:
Si noti che se il metodo restituisce un valore, questo viene visualizzato in base al tipo seguito da due punti.
▪ Visibilità
Nei linguaggi di programmazione a oggetti è possibile modificare la visibilità sia degli attributi che dei metodi in modo che possano essere esposti al mondo esterno, all'interno dell'ereditarietà o semplicemente visibili all'interno della classe.
- Pubblico: è rappresentato da (+)
- Privato: è rappresentato da (-)
- Protetto: è rappresentato da (#)
Ora che sappiamo come definire le classi nel diagramma di classe UML, vediamo quali informazioni devono essere realmente visualizzate nel diagramma UML.
Parte 3. Relazioni tra le classi
Nei diagrammi UML le relazioni tra le classi sono espresse tramite frecce.
Eredità
Questa è probabilmente la relazione più utilizzata in UML. Può essere definita come:
Collegamento tra la totalità e i suoi componenti, tale che i componenti derivino le proprietà dai loro genitori.
Nel contesto di UML (Unified Modeling Language), l'ereditarietà, spesso definita generalizzazione, delinea la connessione tra una superclasse e la sua sottoclasse. Una superclasse è chiamata alternativamente classe base, mentre la sottoclasse è definita classe derivata. La sottoclasse è in grado di incorporare informazioni aggiuntive insieme agli elementi ereditati dalla superclasse.
Composizione
La composizione può essere brevemente spiegata come:
Il legame tra il tutto e i suoi componenti è tale che sono inscindibili.
Di seguito è riportato un esempio di come appare la composizione nel diagramma UML:
Si legge così: La classe dei computer è composta sia da dispositivi di input che di output.
Aggregazione
L'aggregazione indica una relazione più debole rispetto alla composizione, in cui una classe è associata a un'altra classe come parte, ma la parte può esistere indipendentemente.
La connessione tra la totalità e i suoi componenti consente la separazione tra il tutto e le sue parti.
Ora Student dipende dalle informazioni Semester e Address. Tuttavia, Student può ancora esistere senza avere queste informazioni. Ogni istanza di Student può avere Semester o Address o nessuno dei due, ma può ancora esistere.
Associazione
L'associazione è un'altra relazione usata nei diagrammi UML. Rappresenta una relazione generica tra classi, indicando che sono in qualche modo connesse o interagiscono tra loro.
Nel contesto UML, una proprietà di classe è responsabile del mantenimento di un riferimento a un'istanza o a più istanze di un'altra classe.
Dipendenze
- Una connessione di dipendenza indica una relazione di "uso", che indica che le alterazioni in un'entità possono avere un impatto sulle altre che dipendono da essa. Il termine "dipendenza" viene impiegato quando è essenziale indicare che un'entità ne utilizza un'altra.
Interfaccia/Implementazione
L'interfaccia è il modo in cui cambiamo o modifichiamo il comportamento di una classe in un'altra. Qui non abbiamo bisogno di ereditare ogni attributo dalla classe base. Piuttosto implementiamo un'interfaccia che fornisce a ogni classe l'adozione necessaria.
Indica l'implementazione di un'interfaccia o la realizzazione di una classe astratta da parte di un'altra classe.
Prospettive di un diagramma di classe
Non sempre mostriamo tutte le informazioni nel diagramma di classe UML. Da necessità a necessità e caso a caso, i dettagli di una classe possono essere mostrati nel diagramma.
In generale, i diagrammi di classe UML possono essere creati in tre modi:
- Concettuale: riguarda solo gli aspetti principali dell'attività.
- Specifica: questo è più dettagliato di un diagramma di classe UML concettuale e qui mostriamo i dettagli di una classe nel diagramma.
- Implementazione: questo è un modo piuttosto dettagliato per creare un diagramma di classe UML.
Nota che la classe Person dipende da un'altra classe chiamata Address. È qui che entrano in gioco le relazioni nei diagrammi UML. Questo è ciò che vedremo dopo.
Parte 4. Esempi di diagrammi UML
Diagramma di classe UML del sistema di ordine
1. Questo diagramma di classe soddisfa lo scopo di effettuare un ordine in qualsiasi negozio e poi procedere al pagamento.
2. Esistono essenzialmente otto tipi di classi:
① Cliente: un cliente è composto da nome e indirizzo. Un cliente inserisce un ordine nel sistema e lo verifica. Un cliente può non inserire alcun ordine, uno o più ordini
② Ordine: un ordine definisce l'azione del cliente nel negozio. L'ordine comprende la data, lo stato dell'ordine e può calcolare totali e tasse. Un ordine deve contenere uno o più dettagli dell'ordine.
③ Dettaglio ordine: ogni ordine è composto da più righe chiamate Dettaglio ordine. Qui definiamo la quantità e taxStatus di quella riga. Un'istanza di dettaglio ordine può avere solo un articolo.
④ Articolo: per ogni riga dell'ordine c'è un articolo. Un articolo può avere peso di spedizione e descrizione.
⑤ Pagamento: Nel nostro sistema un cliente può effettuare un ordine comprendente più articoli nell'ordine. Questi costituiscono i dettagli dell'ordine e quindi un cliente può effettuare il checkout tramite Pagamento. Possono essere effettuati tre tipi di pagamento, ognuno con i propri attributi: Contanti, Assegno e Credito.
Diagramma UML del supermercato:
1. Può essere utilizzato per mostrare il processo di qualsiasi attività di vendita al dettaglio, compresi supermercati o negozi di e-commerce online.
2. Il caso d'uso che risolve per qualsiasi attività di vendita al dettaglio è come effettuare la fatturazione.
3. Esistono essenzialmente cinque classi:
① Fatturazione del supermercato: questo è il cuore del diagramma UML, dove si svolge effettivamente la funzionalità.
② Clienti: al cliente viene fatturato un acquisto.
③ Acquisto: un acquisto è ciò che il Cliente fa al supermercato. L'acquisto dipende da un'altra entità chiamata Tariffe.
④ Tariffe: qui definiamo il prezzo dei diversi articoli nel nostro mercato
⑤ Inventario: l'inventario viene aggiornato ogni volta che avviene una fatturazione nel nostro negozio.
Parte 5. Come disegnare un diagramma di classe
Disegnare un diagramma di classe significa rappresentare la struttura di un sistema illustrandone classi, attributi, metodi e relazioni.
Indipendentemente dal software utilizzato o dal fatto che si disegni manualmente o meno, i passaggi e i concetti rimarranno generalmente gli stessi.
Ecco una guida passo passo:
- Identificare le classi:
- Identifica le classi principali nel tuo sistema. Di solito sono i nomi nel tuo dominio del problema.
- Considera quali attributi (dati) e metodi (funzioni) potrebbe avere ciascuna classe.
- Crea caselle di classe:
- Disegna una casella per ogni classe. Posiziona il nome della classe in cima alla casella.
- Aggiungi attributi e metodi:
- All'interno di ogni casella di classe, elenca gli attributi e i metodi.
- Di solito gli attributi vengono visualizzati con i loro tipi di dati.
- I metodi sono elencati con i loro parametri e tipi di ritorno.
- Disegna le relazioni:
- Identificare le relazioni tra classi. Le relazioni comuni includono associazione, aggregazione e composizione.
- Per rappresentare queste relazioni, utilizzare linee con punte di freccia.
- Etichettare le linee con molteplicità (ad esempio 1, *, 0..1) per indicare quanti oggetti sono coinvolti.
- Considera la molteplicità:
- Definisci quante istanze di una classe sono correlate a un'istanza di un'altra classe. La molteplicità è spesso rappresentata vicino alle estremità delle linee di associazione.
- Includi eredità:
- Se il tuo sistema prevede l'ereditarietà (ad esempio una classe che eredita da un'altra), rappresentalo utilizzando una freccia con un triangolo vuoto che punta alla superclasse.
- Considera la visibilità:
- Facoltativamente, è possibile utilizzare simboli come '+' (pubblico), '-' (privato) e '#' (protetto) per indicare la visibilità di attributi e metodi.
- Rivedi e perfeziona:
- Assicurati che il diagramma di classe rifletta accuratamente le relazioni e la struttura del tuo sistema.
- Da perfezionare secondo necessità in base al feedback o alle modifiche dei requisiti.
Parte 6. Conclusione
I diagrammi dei casi d'uso UML sono indispensabili nella modellazione e progettazione dei sistemi. Migliorano la comunicazione, migliorano la comprensione del sistema e supportano una gestione efficace dei progetti. Seguendo questa guida completa, puoi sfruttare la potenza dei diagrammi dei casi d'uso e applicarli a vari domini, assicurandoti che i tuoi progetti siano ben strutturati e di successo.