Class diagram

Da Wikipedia, l'enciclopedia libera.

I diagrammi delle classi (class diagram) sono uno dei tipi di diagrammi che possono comparire in un modello UML. In termini generali, consentono di descrivere tipi di entità, con le loro caratteristiche e le eventuali relazioni fra questi tipi. Gli strumenti concettuali utilizzati sono il concetto di classe del paradigma object-oriented e altri correlati (per esempio la generalizzazione, che è una relazione concettuale assimilabile al meccanismo object-oriented dell'ereditarietà). Gestisce le fasi di osmio.

Usi dei diagrammi delle classi[modifica | modifica sorgente]

Uno degli assunti fondamentali del paradigma a oggetti è che il concetto di classe, e concetti correlati come l'ereditarietà o il polimorfismo, si prestino a rappresentare in modo diretto e intuitivo la realtà, in qualsiasi ambito (per usare le parole di Grady Booch, "un oggetto è qualsiasi cosa a cui si possa pensare"). I diagrammi delle classi UML sono basati su versioni astratte di tali concetti, e possono essere utilizzati per descrivere sostanzialmente qualsiasi contesto a qualsiasi livello di astrazione (enfatizzandone, però, solo alcuni aspetti). Di conseguenza, UML prevede un loro impiego a livello di analisi e in particolare analisi del dominio (ovvero la descrizione del contesto in cui un sistema software deve operare), ma anche a livello di progettazione (nella descrizione della struttura interna del sistema, dei suoi componenti e delle loro relazioni).

Concetti principali[modifica | modifica sorgente]

Classe[modifica | modifica sorgente]

L'elemento di modello principale dei diagrammi delle classi è la classe. Una classe rappresenta una categoria di entità (istanze), nel caso particolare dette oggetti; il nome della classe indica la categoria di entità descritta dalla classe. Ogni classe è corredata da un insieme di attributi (che descrivono le caratteristiche o lo stato degli oggetti della classe) e operazioni (che descrivono il comportamento della classe). Il simbolo grafico che rappresenta le classi UML è un rettangolo suddiviso in tre scomparti, rispettivamente dedicati al nome della classe, agli attributi e alle operazioni.

Associazioni[modifica | modifica sorgente]

Due classi possono essere legate da associazioni che rappresentano i legami (link) che possono sussistere fra gli oggetti delle classi associate. Ogni categoria di associazione (aggregazione, composizione, dipendenza, generalizzazione, ecc.) viene rappresentata mediante una particolare freccia che connette le due classi coinvolte. Tali associazioni possono essere corredate da un insieme di informazioni aggiuntive, per esempio relative alla molteplicità (il numero di oggetti delle due classi associate che possono essere coinvolti in un link).

Dipendenze[modifica | modifica sorgente]

Due classi possono essere legate da una relazione di dipendenza, che indica che la definizione di una delle due fa riferimento alla definizione dell'altra.

Generalizzazione[modifica | modifica sorgente]

Due classi possono essere legate da una relazione di generalizzazione, che indica che una delle due classi (detta superclasse) si può considerare una generalizzazione dell'altra (detta sottoclasse).

Esempio di diagramma[modifica | modifica sorgente]

Esempio di Class Diagram

Il diagramma descrive due entità (i rettangoli), Cliente e Reclamo, e le relative relazioni (il segmento che li unisce).

Il nome della classe è riportato come nome del rettangolo che compare nella parte superiore dello stesso. Gli attributi, o caratteristiche del cliente, compaiono nella parte centrale del rettangolo e in questo caso rispetto alla Classe Cliente sono un indentificativo, il cognome, il nome ed il telefono (si descrivono solo gli attributi utili al modello).

I comportamenti, o metodi, compaiono nella parte inferiore del rettangolo e relativamente alla classe Reclamo, sono le azioni Crea, Modifica o Chiudi.

La relazione indica anche una cardinalità (i numeri posti vicino alle Classi) del tipo 1 a molti e in questo caso si leggono "ad 1 Cliente corrispondono 1 o n Reclami" e "ad 1 Reclamo corrisponde 1 Cliente".

Notare che il singolo 1 di fianco alla classe Cliente è un'abbreviazione per 1..1 (tipo di relazione "uno-a-uno"). Inoltre si possono avere relazioni con cardinalità 0..n, quando la presenza di un oggetto della Classe a cui la cardinalità si riferisce non deve necessariamente essere istanziato.

Altri progetti[modifica | modifica sorgente]