Introduzione all’UML e al Class Diagram

L’Unified Modeling Language viene utilizzare per modellare dei sistemi software insieme ai suoi diagrammi: Use Case, Class Diagram, Sequence Diagram, Activity Diagram, ecc.

L’UML rappresenta un sistema per la modellazione dei sistemi software basato sul paradigma Object Oriented. L’Unified Modeling Language è nato dall’esigenza di avere uno standard per la creazione di modelli di rappresentazione e comportamento di domini di diverso genere. Grazie al suo grande potere descrittivo, i diagrammi UML sono utilizzati durante la fase di concettualizzazione di un sistema software, in particolare: in fase di analisi, quando occorre stabilire le specifiche di funzionali, e in fase di sintesi, quando si deve progettare un sistema software.

Con modello UML si fa riferimento ad un insieme di diagrammi di diverso tipo, ognuno dei quali è costituito da elementi grafici e testuali. Nella programmazione ad oggetti, una classe rappresenta un insieme di oggetti simili tra loro che condividono attributi e comportamenti, mentre un oggetto costituisce un’istanza di una classe. La scelta del diagramma da impiegare dipende dalle esigenze contestuali.

I diagrammi UML possono rappresentare la struttura base del sistema o fornire maggiori informazioni sul comportamento del sistema. Tra i i diagrammi che rappresentano la struttura del sistema troviamo:

  • Use Case: per identificare le funzioni e servizi del sistema dal punto di vista degli utilizzatori (attori);
  • Class: per descrivere le entità del sistema, le loro caratteristiche e relazioni tra esse;
  • Object: per identificare l’organizzazione strutturale in termini di oggetti e relative relazioni;
  • Component: per rappresentare i componenti principali e le loro relazioni;
  • Deployment: per specificare la mappa hardware con i singoli componenti hardware e le loro relazioni.

I diagrammi in grado di fornire informazioni sul comportamento dei vari componenti sono:

  • Sequence: utilizzati per mostrare la sequenza temporale di messaggi e azioni durante una particolare attività del sistema;
  • Communication: che descrivono l’interazione tra più partecipanti per la realizzazione di una determinata funzionalità;
  • State: che illustrano gli stati interni e le transizioni di un singolo oggetto in termini di stati;
  • Activity (approfondimento): consentono di esaminare il comportamento di più oggetti definendo le attività da svolgere per realizzare una determinata funzionalità.

Il diagramma delle classi utilizzato per rappresentare le classi di un sistema e le relazioni tra di esse

Class Diagram

I class diagram è il modello UML più utilizzato, ogni classe viene rappresentata da un rettangolo suddiviso in tre sezioni. Nella prima sezione viene inserito il nome della classe, nella seconda sezione gli attributi, ed infine, nell’ultima sezione i metodi della classe. Le classi sono collegate tra loro tramite delle relazioni che possono essere di 3 tipi:

  • Associazione: semplice legame tra due classi associate.

    Associazione nel Class Diagram

  • Aggregazione: un oggetto si definisce aggregato se esiste indipendentemente dagli oggetti aggreganti. Il simbolo utilizzato è una retta con un rombo vuoto.

    Aggregazione nel Class Diagram

  • Composizione: un oggetto è detto composto se la sua esistenza dipende da quella delle sue componenti. Il simbolo utilizzato è una retta con un rombo pieno.

    Composizione nel Class Diagram

La generalizzazione di una classe è data da una superclasse che condivide attributi e metodi con le sue sottoclassi e viene indicata con una freccia che parte dalla sottoclasse e arriva alla superclasse. Le classi astratte vengono specificate ponendo il loro nome in italico o sottolineato, invece per le interfacce si utilizza il tag «interface».

Nel class diagram ogni attributo o metodo di una classe ha un proprio livello di visibilità (vedi anche la lezione di Java):

  • private: gli attributi e i metodi sono visibili solo alla singola istanza dell’oggetto della classe. In UML viene utilizzato il prefisso (trattino).
  • package: gli attributi e i metodi sono visibili solo ad un insieme specifico di classi (incluse nel pacchetto). In UML il prefisso è ~ (tilde).
  • protected: oltre alle caratteristiche offerte da package, gli attributi e i metodi sono visibili a tutti gli oggetti istanze della stessa classe o di una sua sottoclasse. In UML il prefisso utilizzato è # (cancelletto).
  • public: gli attributi e i metodi sono visibili a tutti gli altri oggetti. In UML il prefisso da utilizzare è + (più).

I diagrammi UML consentono di descrivere il ciclo completo dello sviluppo di un software Object Oriented. È possibile scrivere gli stessi digrammi con maggiore o minore dettaglio a seconda dell’ambito. Ad esempio, i diagrammi di classe possono essere suddivisi in tre tipologie:

  • Conceptual: utilizzato per rappresentare i concetti del dominio in fase di studio. Non è obbligatorio avere un mapping diretto con le classi da implementare ed è indipendente dal linguaggio utilizzato;
  • Specification: il punto di riferimento è rappresentato dal software, ponendo l’attenzione sui tipi (interfacce) e non alla loro implementazione (classi);
  • Implementation: in questo diagramma viene specificata la vera e propria implementazione delle classi. È sicuramente la tipologia più utilizzata, ma in alcuni casi può risultare più intuitivo il specification class diagram.

Un software gratuito per la progettazione dei diagrammi UML è StarUML.

StarUML

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *