Come disegnare un diagramma delle classi

tramite: O2O
Difficoltà: difficile
19

Introduzione

Nel linguaggio di modellizzazione unificato (UML), il diagramma delle classi è una delle rappresentazioni essenziali più comunemente utilizzate ed è utile per illustrare la struttura statica del sistema object-oriented, scomponendolo in classi definite dalle relazioni, dagli attributi, dalle operazioni per mezzo d'interfacce, dalle associazioni e dalle collaborazioni.
Siccome vengono impiegati per numerosi obiettivi, nella seguente pratica e minuziosa guida che vi esporrò nei passaggi successivi, vi spiegherò come bisogna disegnare un diagramma di classe e analizzerò le caratteristiche di quest'ultimo modellato sulle necessità di un fornitore
e quelle di un piano di studi scolastico, ricorrendo ad una classe diversa per ogni circostanza.

29

Per realizzare il vostro diagramma delle classi, affronterò in sequenza i seguenti punti:
- le linee generali;
- le classi;
- le interfacce;
- l'aggregazione e la composizione;
- l'eredità;
- le relazioni.
Le linee generali descrivono le linee guida di stile che sono importanti per varie tipologie di diagrammi di classe e, precisamente, dovrete attenervi ai seguenti parametri:
- mostrare visibilità soltanto sui modelli di progetto;
- determinare le responsabilità sui diagrammi di classe di dominio;
- evidenziare le visibilità linguistiche con le stringhe di proprietà;
- sottolineare le tipologie solamente sui progetti modello;
- mettere in evidenza le tipologie nei modelli di analisi esclusivamente quando esse sono una richiesta effettiva.

39

I diagrammi di classe di progetto si devono conformare alle convenzioni sintattiche:
- nell'immagine "A", noterete che la versione di progetto della classe "Ordine" usa dei nomi conformi alle convenzioni di programmazione comune Java (come “Placement Date" e "Calculate Taxes”);
- nell'immagine "B", sono indicate le classi di associazione, laddove le classi vengono collegate tramite una linea tratteggiata ad una associazione.
Mi raccomando di attenervi alle seguenti regole:
- non nominare quelle associazioni che hanno delle classi d'associazione;
- centrare la linea tratteggiata di una classe di associazione.

Continua la lettura
49

Una classe rappresenta un insieme di oggetti, una categoria d'entità o istanze, un “template” da cui vengono derivati gli oggetti: le classi definiscono gli attributi, ovvero delle informazioni rilevanti per le proprie istanze, operazioni e funzionalità supportanti gli oggetti.
Alcune delle linee guida essenziali riguardanti una qualsiasi classe sono le seguenti:
- ricorrere alla terminologia comune per i nomi;
- scegliere dei sostantivi singolari;
- nominare le operazioni mediante un verbo forte;
- designare gli attributi tramite un nome fondato sul dominio;
- non modellare il codice armatura “Scaffolding code”, che si riferisce agli attributi e alle operazioni richieste per utilizzare la funzionalità basilare senza le vostre classi (come il codice occorrente per l'implementazione delle relazioni con ulteriori classi;
- non mostrare le classi con soltanto due compartimenti;
- etichettare i compartimenti di classe insoliti;
- includere una parentesi alla fine delle liste incomplete;
- elencare operazioni/attributi statici, prima di operazioni/attributi istanza;
- enumerare operazioni/attributi in visibilità decrescente;
- specificare unicamente il tipo, per i parametri che sono oggetti;
- sviluppare le signature di metodo coerenti;
- evitare stereotipi implicanti delle convenzioni linguistiche;
- indicare le eccezioni nella stringa di proprietà di un'operazione, con una stringa di proprietà "UML".

59

L'interfaccia è un insieme di operazioni signature e/o attributi che idealmente definiscono una tipologia coerente di comportamenti: essa viene implementato attraverso le classi e le componenti.
Per realizzare un'interfaccia, una classe oppure un componente deve utilizzare le operazioni e gli attributi definiti nella stessa: qualunque classe o componente data potrebbe impiegare zero o più interfacce ed una o più classi/componenti potrebbero utilizzare la medesima interfaccia.

69

Un oggetto è costituito da ulteriori oggetti (ad esempio, un aeroplano è composto dalle ali, dalla fusoliera, dal motore e dai flaps): il concetto d'aggregazione illustra la relazione “far parte di” e questa mette a fuoco una relazione complessa esistente tra due oggetti.
La composizione rappresenta una forma abbastanza potente di aggregazione, laddove l’intero e le parti hanno una vita corrispondente ed è molto comune che l’intero gestisca il ciclo vitale delle proprie parti componenti.
Dal punto di vista stilistico, l'aggregazione e la composizione sono delle specializzazioni di un’associazione alla quale si applicano le linee guida per le associazioni:
- focalizzare sia le parti che l’intero;
- descrivere quest'ultimo alla sinistra della parte;
- ricorrere alla composizione, per gli aggregati d'oggetti fisici.

79

I modelli di dipendenza “is a”, “è un”, “is like” e “è come” sono delle relazioni che permettono di riutilizzare i dati e i codici preesistenti: quando “A” eredita da “B”, si dice che “A” è sottotipo di “B” e che “B” è superclasse di “A".
Inoltre, si avrà una “eredità pura”, quando “A” eredita tutti gli attributi e i metodi di “B”: nel linguaggio di modellizzazione unificato (UML), questo concetto viene generalmente espresso con una linea provvista di freccia, che punta dal sottotipo alla superclasse.
Le due linee guida che dovrete assolutamente seguire sono:
- mettere i sottotipi sotto le superclassi;
- un sottotipo deve ereditare tutto.

89

Con il termine relazione vengono inglobati tutti i concetti "UML": in altre parole, se è una linea sul diagramma di classe, essa si può considerare una relazione.
Le linee guida alle quali bisogna sempre attenersi sono le seguenti:
- disporre le relazioni orizzontalmente;
- collaborazione significa necessità di una relazione;
- creare una dipendenza quando una relazione è in transizione;
- rappresentare le relazioni simili coinvolgenti una classe comune come un albero (Figura A);
- indicare sempre la molteplicità;
- evitare l'utilizzo eccessivo di “*”, per evitare confusione;
- sostituire le relazioni indicando tipologie di attributi (Figura C);
- non realizzare delle relazioni implicite;
- fare delle associazioni bidirezionali soltanto quando la collaborazione avviene in entrambe le direzioni (Figura B).

Potrebbe interessarti anche

Segnala contenuti non appropriati

Tipo di contenuto
Devi scegliere almeno una delle opzioni
Descrivi il problema
Devi inserire una descrizione del problema
Si è verificato un errore nel sistema. Riprova più tardi.
Verifica la tua identità
Devi verificare la tua identità
chiudi
Grazie per averci aiutato a migliorare la qualità dei nostri contenuti

Guide simili

Università e Master

Programmazione in C++: le classi

La tecnologia sta prendendo via via sempre più piede e quindi risulta negativo non conoscere almeno un linguaggio di programmazione. Tra i linguaggi più diffusi si trova sicuramente Java, ad esso è secondo C++, un mix tra linguaggio procedurale (ad...
Superiori

Come calcolare i quartili in una distribuzione in classi

La statistica è una scienza che si occupa di elaborare e raccogliere dati. Lo studio dei dati a disposizione si basa su strumenti matematici molto potenti. Questi a sua volta ci consentono di trarre diverse conclusioni dall'analisi dei dati. Uno di questi...
Superiori

Statistica descrittiva e inferenziale

La statistica è l'insieme delle metodologie utilizzate per studiare i fenomeni che hanno l'attitudine a variare. L'obiettivo di questa disciplina è quello di sintetizzare i dati, cercando di non smarrire troppe informazioni sui dati raccolti. In questa...
Elementari e Medie

Analisi grammaticale: l'attributo

Quando ci accingiamo a svolgere l'analisi grammaticale di un testo, ci accorgiamo che ogni singola parola utilizzata ha una funzione che determina il suo ruolo all'interno del discorso. Articoli, preposizioni, nomi, pronomi, avverbi e tante altre parti...
Elementari e Medie

Come accogliere un alunno straniero

Le statistiche ci dicono chiaramente che numero degli stranieri presenti in Italia aumenta anno dopo anno. Il flusso migratorio verso il nostro paese, che sembrava avere raggiunto l’apice negli scorsi anni, non accenna a diminuire. Negli ultimi tempi...
Superiori

Come verificare se una funzione è invertibile

Le funzioni rappresentano relazioni fra due insiemi di numeri, detti dominio e codominio. Quando si definisce una funzione f (x)=y, dove x rappresenta il dominio e y il codominio, dobbiamo sempre domandarci se sia anche possibile effettuare il percorso...
Università e Master

Come analizzare dei dati genetici con il test del chi-quadrato

Un'analisi statistica semplice che devi utilizzare per saggiare l'ipotesi nulla è chiamata test del chi-quadrato, che essenzialmente è un test di bontà dell'adattamento. Nella guida seguente ti spiego brevemente come analizzare dei dati genetici col...
Elementari e Medie

5 cose che disturbano una lezione

Quando si insegna in una classe di ragazzi, spesso non è facile mantenere l'attenzione e il silenzio. I ragazzi sono spesso distratti da vari fattori e possono disturbare la classe. È sempre meglio (se non siete ancora degli esperti insegnati), prepararsi...
I presenti contributi sono stati redatti dagli autori ivi menzionati a solo scopo informativo tramite l’utilizzo della piattaforma www.o2o.it e possono essere modificati dagli stessi in qualsiasi momento. Il sito web, www.o2o.it e Arnoldo Mondadori Editore S.p.A. (già Banzai Media S.r.l. fusa per incorporazione in Arnoldo Mondadori Editore S.p.A.), non garantiscono la veridicità, correttezza e completezza di tali contributi e, pertanto, non si assumono alcuna responsabilità in merito all’utilizzo delle informazioni ivi riportate. Per maggiori informazioni leggi il “Disclaimer »”.