Si è detto precedentemente nella guida che gli
oggetti possono essere suddivisi in categorie e, quindi, in classi. Il Class
Diagram del linguaggio UML consiste di svariate classi connesse tra
di loro tramite delle relazioni.
Prima di tutto, però, è importante definire graficamente una classe in UML:
Una classe viene rappresentata da un rettangolo. Il nome della classe, per convenzione,
è una parola con l'iniziale maiuscola ed appare vicino alla sommità del rettangolo.
Se il nome della classe definita consiste di una parola composta a sua volta
da più parole allora viene utilizzata la notazione in cui tutte le iniziali
di ogni parola sono scritte in maiuscolo.
Definizione generica di una classe
Un attributo rappresenta una proprietà di una classe. Esso descrive un insieme
di valori che la proprietà può avere quando vengono istanziati oggetti di quella
determinata classe. Una classe può avere zero o più attributi.
Un Attributo il cui nome è costituito da una sola parola viene scritto
sempre in caratteri minuscoli. Se, invece, il nome dell'attributo consiste di
più parole (es: Informazioni-Cliente) allora il nome dell'attributo verrà scritto
unendo tutte le parole che ne costituiscono il nome stesso con la particolarità
che la prima parola verrà scritta in minuscolo mentre le successive avranno
la loro prima lettera in maiuscolo. Nell'esempio appena visto l'attributo sarà
identificato dal termine: informazioniCliente.
La lista degli attributi di una classe viene separata graficamente dal nome
della classe a cui appartiene tramite una linea orizzontale.
Nell'icona della classe, come si vede nella figura precedente, è possibile specificare
un tipo in relazione ad ogni attributo (string, float, int, bool, ecc.). E'
anche possibile specificare un valore di default che un attributo può avere.
Un'Operazione è un'azione che gli oggetti di una certa classe possono
compiere. Analogamente al nome degli attributi, il nome di un'operazione viene
scritto con caratteri minuscoli. Anche qui, se il nome dell'operazione consiste
di più parole, allora tali parole vengono unite tra di loro ed ognuna di esse,
eccetto la prima, viene scritta con il primo carattere maiuscolo. La lista delle
operazioni (metodi) viene rappresentata graficamente sotto la lista degli attributi
e separata da questa tramite una linea orizzontale.
Anche I metodi possono avere delle informazioni addizionali. Nelle parentesi
che seguono il nome di un'operazione, infatti, è possibile mostrare gli eventuali
parametri necessari al metodo insieme al loro tipo. Infine, se il metodo rappresenta
una funzione è necessario anche specificare il tipo restituito.
Altre informazioni addizionali che possono essere unite agli attributi di una
classe sono le "Constraints" e le Note.
Le "Constraints" sono delle caselle di testo racchiuse tra parentesi.
All'interno delle parentesi viene specificata una o più regole che la classe
è tenuta a seguire obbligatoriamente.
Le Note solitamente sono associate con gli attributi e/o con i metodi. Esse
forniscono una informazione aggiuntiva ad una classe. Una nota può contenere
sia elementi grafici che elementi di testo.
Come si può riuscire a discernere le classi da utilizzare dalla intervista
con il cliente?
E' necessario, a tal fine, prestare particolare attenzione ad i nomi che i clienti
usano per descrivere le entità del loro business. Tali nomi saranno ottimi candidati
per diventare delle classi nel modello UML. Si deve prestare, altresì, attenzione
ai verbi che vengono pronunciati dai clienti. Questi costituiranno, con molta
probabilità, i metodi (le operazioni) nelle classi definite. Gli attributi di
una classe verranno stabiliti con le analoghe modalità utilizzate per i nomi
delle classi.