Unified Modeling Language

linguaggio di programmazione

In ingegneria del software, UML (Unified Modeling Language, "linguaggio di modellazione unificato") è un linguaggio di modellazione e specifica standard basato su concetti object-oriented. Il nucleo del linguaggio fu definito nel 1996 da Grady Booch, Jim Rumbaugh e Ivar Jacobson (i tre gringos) sotto l'egida dello OMG, che tuttora gestisce lo standard di UML. Il linguaggio nacque con l'intento di unificare le notazioni di modellazione sviluppate in precedenza, indipendentemente, dai tre padri di UML.

Il linguaggio consente di descrivere un sistema software object-oriented secondo numerosi aspetti (funzionali, strutturali, dinamici) a diversi livelli di dettaglio, con una flessibilità sufficiente a garantire la realizzabilità di modelli accurati sia nella fase di analisi che nelle varie fasi di progetto a diversi livelli di raffinamento, mantenendo la tracciabilità dei concetti impiegati per modellare il sistema in queste varie fasi.

Il linguaggio ha una semantica molto precisa, e un grande potere descrittivo; caratteristiche che ne hanno decretato il successo anche al di fuori dell'ambito in cui esso era nato; attualmente, non sono rari i casi di sistemi software non object-oriented modellati in UML, o addirittura modelli UML di sistemi di altra natura (per esempio hardware; ma anche sistemi non attinenti all'informatica, come strutture organizzative aziendali) o persino processi (per esempio, processi di business).


L'UML è un linguaggio che definisce una sintassi e delle regole di interpretazione; non si tratta quindi di una metodologia di progettazione e per questo motivo può essere adottato con diverse metodologie o in ambiti diversi da quello informatico.

Nell'ambito della progettazione software è utilizzato per progettare e documentare un'applicazione (un programma) a diversi livelli di dettaglio e per diverse prospettive.

L'UML si basa sul disegno grafico di diagrammi; questi si possono dividere in diagrammi statici e diagrammi dinamici.

I diagrammi di tipo statico danno una visione statica e strutturale del sistema che si sta descrivendo o progettando, mentre quelli dinamici cercano di coglierne gli aspetti evolutivi.

I diagrammi di tipo statico previsti dall'UML sono gli Use Case Diagram, Class Diagram, Object Diagram, Component Diagram, Deployment Diagram.

I diagrammi di tipo dinamico previsti dall'UML sono State Chart Diagram, Activity Diagram, Sequence Diagram, Collaboration Diagram.

Essendo un linguaggio e non una metodologia è buona regola utilizzare solo quei diagrammi che risultano utili alla definizione dello specifico sistema che si vuole analizzare; non è quindi obbligatorio utilizzare tutti i diagrammi previsti dall'UML per la descrizione di un sistema.

Voci correlate