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.