Diagram

Cos'è l'Unified Modeling Language

Quali sono le esigenze del tuo diagramma UML?

I diagrammi UML sono un argomento nuovo per me e voglio saperne di più.

Un'immagine vale più di mille parole. Ecco perché è stato creato il diagramma UML (Unified Modeling Language): per forgiare un linguaggio visivo comune nel complesso mondo dello sviluppo di software, che sia comprensibile anche per gli utenti aziendali e per chiunque voglia capire un sistema. Scopri gli elementi essenziali dei diagrammi UML insieme alle loro origini, usi, concetti, tipi e linee guida su come disegnarli usando il nostro strumento per diagrammi UML.

17 minuti di lettura

Vuoi creare un diagramma UML tutto tuo? Prova Lucidchart. È rapido, semplice e completamente gratuito.

Crea un diagramma UML

Che cos'è l'UML?

L'Unified Modeling Language (UML) è stato creato per realizzare un linguaggio di modellazione visivo comune, ricco sia nella semantica che nella sintassi, per l'architettura, la progettazione e l'implementazione di sistemi software complessi sia dal punto di vista strutturale che comportamentale. L'UML viene applicato anche in altri settore, oltre allo sviluppo di software, come il flusso di processo nella produzione.

È analogo ai progetti utilizzati in altri campi ed è costituito da diversi tipi di diagrammi. Nel complesso, i diagrammi UML descrivono i confini, la struttura e il comportamento del sistema e degli oggetti al suo interno.

L'UML non è un linguaggio di programmazione, ma esistono strumenti che possono essere usati per generare codici in vari linguaggi usando i diagrammi UML. L'UML ha una relazione diretta con l'analisi e la progettazione orientate agli oggetti.

L'UML e il suo ruolo nella modellazione e progettazione orientate agli oggetti

L'informatica, cioè lo studio di algoritmi e dati, comprende numerosi paradigmi o modelli per la risoluzione dei problemi. Esistono quattro categorie di modelli per la risoluzione dei problemi: linguaggi imperativi, funzionali, dichiarativi e orientati agli oggetti (OOP).  Nei linguaggi orientati agli oggetti, gli algoritmi vengono espressi definendo degli "oggetti" e facendoli interagire tra loro. Questi oggetti sono cose da manipolare ed esistono nel mondo reale. Possono essere edifici, widget su un desktop o esseri umani.  

I linguaggi orientati agli oggetti dominano il mondo della programmazione perché modellano oggetti del mondo reale. L'UML è una combinazione di diverse notazioni orientate agli oggetti: progettazione orientata agli oggetti, tecnica di modellazione degli oggetti e ingegneria del software orientata agli oggetti.

L'UML utilizza i punti di forza di questi tre approcci per offrire una metodologia più coerente che sia più facile da usare. L'UML rappresenta le migliori pratiche per la creazione e la documentazione di diversi aspetti della modellazione di software e sistemi aziendali.

La storia e le origini dell'UML

"I Tre Amigos" dell'ingegneria del software, come venivano chiamati, avevano sviluppato altre metodologie. Hanno unito le loro forze con l'obiettivo di offrire chiarezza ai programmatori creando nuovi standard. La collaborazione tra Grady, Booch e Rumbaugh ha rafforzato tutti e tre i metodi e migliorato il prodotto finale.

Nel 1996, gli sforzi di questi pensatori hanno portato alla release dei documenti UML 0.9 e 0.91. Ben presto divenne chiaro che diverse organizzazioni, tra cui Microsoft, Oracle e IBM, consideravano l'UML fondamentale per il proprio sviluppo aziendale. Insieme a molti altri individui e aziende, hanno istituito risorse in grado di sviluppare un linguaggio di modellazione completo. I Tre Amigos hanno pubblicato la Guida utente per l'Unified Modeling Language nel 1999, oltre a un aggiornamento che include informazioni su UML 2.0 nella seconda edizione del 2005.

OMG: un significato diverso

Secondo il loro sito Web, l' Object Management Group® (OMG®) è un consorzio internazionale per gli standard tecnologici fondato nel 1989, ad adesione libera e senza fini di lucro. Gli standard OMG sono guidati da fornitori, utenti finali, istituzioni accademiche e agenzie governative. Le task force di OMG sviluppano standard di integrazione aziendale per una vasta gamma di tecnologie e una varietà ancora più ampia di settori. Gli standard di modellazione di OMG, inclusi UML e Model Driven Architecture® (MDA®), consentono un'efficace progettazione visiva, esecuzione e manutenzione di software e altri processi.

OMG supervisiona la definizione e il mantenimento delle specifiche UML. Questa supervisione offre a ingegneri e programmatori la possibilità di utilizzare un solo linguaggio per numerosi scopi durante tutte le fasi del ciclo di vita del software per sistemi di ogni dimensione.

Lo scopo dell'UML secondo OMG

Ecco come OMG definisce lo scopo dell'UML:

  • Fornire agli architetti di sistema, agli ingegneri del software e agli sviluppatori software strumenti per l'analisi, la progettazione e l'implementazione di sistemi basati su software, nonché per la modellazione di processi aziendali e simili.
  • Promuovere lo stato del settore abilitando l'interoperabilità degli strumenti di modellazione visiva degli oggetti. Tuttavia, per consentire un efficace scambio di informazioni sui modelli tra gli strumenti, è necessario un accordo sulla semantica e sulla notazione.

L'UML soddisfa i seguenti requisiti:

  • Imposta una definizione formale di un metamodello comune basato su Meta-Object Facility (MOF) che specifica la sintassi astratta dell'UML. La sintassi astratta definisce l'insieme dei concetti di modellazione UML, i loro attributi e le loro relazioni, nonché le regole per combinare questi concetti al fine di costruire modelli UML parziali o completi.
  • Fornisce una spiegazione dettagliata della semantica di ciascun concetto di modellazione UML. La semantica definisce, in modo indipendente dalla tecnologia, come i concetti UML devono essere realizzati dai computer.
  • Specifica gli elementi di notazione leggibili dall'uomo per rappresentare i singoli concetti di modellazione UML, nonché le regole per combinarli in una varietà di diversi tipi di diagramma corrispondenti ai diversi aspetti dei sistemi modellati.
  • Definisce i modi in cui gli strumenti UML possono essere resi conformi a questa specifica. Ciò è possibile (in una specifica separata) grazie una specifica basata su XML dei corrispondenti formati di interscambio di modelli (XMI) che devono essere realizzati con strumenti conformi.

UML e modellazione dei dati

L'UML è popolare tra i programmatori, ma non è generalmente utilizzato dagli sviluppatori di database. Uno dei motivi è semplicemente che i creatori dell'UML non si sono concentrati sui database. Ciononostante, l'UML è efficace per la modellazione di dati concettuali di alto livello e può essere utilizzato in diversi tipi di diagrammi UML. È possibile trovare informazioni sulla stratificazione di un modello di classe orientato agli oggetti in un database relazionale in questo articolo sullaModellazione di database in UML.

Diagrammare è semplice e veloce con Lucidchart. Inizia una prova gratuita oggi per iniziare a creare e collaborare.

Crea un diagramma UML

Aggiornamenti in UML 2.0

L'UML viene continuamente perfezionato. L'UML 2.0 estende le specifiche UML per coprire più aspetti dello sviluppo, incluso Agile. L'obiettivo era quello di ristrutturare e perfezionare l'UML in modo da semplificarne l'usabilità, l'implementazione e l'adattamento. Ecco alcuni degli aggiornamenti dei diagrammi UML:

  • Maggiore integrazione tra modelli strutturali e comportamentali.
  • Capacità di definire la gerarchia e scomporre un sistema software in componenti e sottocomponenti.
  • L'UML 2.0 porta il numero di diagrammi da 9 a 13.

Glossario dei termini UML

Acquisisci familiarità con il vocabolario UML grazie a questo elenco selezionato dal documento UML 2.4.1, destinato ad aiutare i non membri di OMG a comprendere i termini comunemente usati.

  • Conformità alla sintassi astratta Gli utenti possono spostare i modelli attraverso diversi strumenti, anche se usano notazioni diverse
  • Common Warehouse Metamodel (CWM) Interfacce standard utilizzate per consentire l'interscambio di metadati di warehouse e business intelligence tra strumenti warehouse, piattaforme warehouse e repository di metadati warehouse in ambienti eterogenei distribuiti
  • Conformità alla sintassi concreta Gli utenti possono continuare a utilizzare notazioni con cui hanno familiarità su strumenti diversi
  • Core Nel contesto dell'UML, il core di solito si riferisce al "Core package", che è un metamodello completo appositamente progettato per consentire un'elevata possibilità di riutilizzo
  • Unità di linguaggio Consiste in una raccolta di concetti di modellazione strettamente accoppiati che consentono agli utenti di rappresentare gli aspetti del sistema oggetto di studio secondo un particolare paradigma o formalismo
  • Livello 0 (L0) Livello di conformità inferiore per l'infrastruttura UML: una singola unità di linguaggio che consente di modellare i tipi di strutture basate sulla classe presenti nei più popolari linguaggi di programmazione orientati agli oggetti
  • Meta Object Facility (MOF) Una specifica di modellazione OMG che fornisce la base per le definizioni di metamodelli nella famiglia di linguaggi MDA di OMG
  • Metamodello Definisce il linguaggio e i processi da cui formare un modello
  • Costrutti di metamodelli (LM: Metamodel Constructs) Secondo livello di conformità nell'infrastruttura UML: un'unità linguistica aggiuntiva per strutture di classe più avanzate, utilizzate per la costruzione di metamodelli (usando CMOF) come l'UML stesso. L'UML ha solo due livelli di conformità
  • Model Driven Architecture (MDA) Un approccio e un piano per ottenere un insieme coerente di specifiche tecnologiche basate sui modelli
  • Object Constraint Language (OCL) Un linguaggio dichiarativo per la descrizione di regole che si applicano all'Unified Modeling Language. L'OCL integra l'UML fornendo termini e simboli per diagrammi di flusso che sono più precisi del linguaggio naturale ma meno difficili da padroneggiare della matematica
  • Object Management Group (OMG) È un consorzio di specifiche del settore informatico senza scopo di lucro, i cui membri definiscono e mantengono la specifica UML
  • UML 1 Prima versione dell'Unified Modeling Language
  • Unified Modeling Language (UML) Un linguaggio visivo per specificare, costruire e documentare gli artefatti dei sistemi
  • XMI Specifica basata su XML dei formati di interscambio dei modelli corrispondenti

Visualizza il documento MOF completo

Scarica il documento completo Infrastruttura UML 2.4.1.

Concetti di modellazione specificati da UML

Lo sviluppo dei sistemi si concentra su tre modelli di sistema complessivamente diversi:

  • Funzionale: questi sono i diagrammi dei casi d'uso, che descrivono la funzionalità del sistema dal punto di vista dell'utente.
  • Oggetto: si tratta di diagrammi di classe, che descrivono la struttura del sistema in termini di oggetti, attributi, associazioni e operazioni.
  • Dinamico: i diagrammi di interazione, diagrammi di macchina a stati e diagrammi di attività sono usati per descrivere il comportamento interno del sistema.

Questi modelli di sistema sono visualizzati attraverso due diversi tipi di diagrammi: strutturale e comportamentale.

Concetti orientati agli oggetti in UML

Gli oggetti in UML sono entità del mondo reale che esistono intorno a noi. Nello sviluppo software, gli oggetti possono essere utilizzati per descrivere o modellare il sistema in fase di creazione in termini rilevanti per il dominio. Gli oggetti consentono anche la decomposizione di sistemi complessi in componenti comprensibili, che consentono di costruire un pezzo alla volta.

Ecco alcuni concetti fondamentali di un mondo orientato agli oggetti:

  • Oggetti Rappresentano un'entità e il blocco predefinito di base.
  • Classe Progetto di un oggetto.
  • Astrazione Comportamento di un'entità del mondo reale.
  • Incapsulamento Meccanismo che associa i dati e li nasconde dal mondo esterno.
  • Ereditarietà Meccanismo per creare nuove classi da una esistente.
  • Polimorfismo Definisce il meccanismo che esiste in forme diverse.

Tipi di diagrammi UML

L'UML utilizza gli elementi e li associa in modi diversi, per formare diagrammi che rappresentano aspetti statici o strutturali di un sistema, e diagrammi comportamentali, che colgono gli aspetti dinamici di un sistema.

Diagrammi UML strutturali

  • Diagramma di classe Il diagramma UML più comunemente usato e la base principale di qualsiasi soluzione orientata agli oggetti. Le classi all'interno di un sistema, gli attributi e le operazioni e la relazione tra ciascuna classe. Le classi sono raggruppate insieme per creare diagrammi di classe durante la creazione di diagrammi di sistemi di grandi dimensioni.
  • Diagramma dei componenti Visualizza la relazione strutturale degli elementi del sistema software, il più delle volte viene impiegato quando si lavora con sistemi complessi con più componenti. I componenti comunicano tramite interfacce.
  • Diagramma di struttura composita I diagrammi di struttura composita vengono utilizzati per mostrare la struttura interna di una classe.
  • Diagramma di distribuzione Illustra l'hardware del sistema e il relativo software. Utile quando una soluzione software viene distribuita su più macchine con configurazioni uniche.
  • Diagramma degli oggetti Mostra la relazione tra oggetti usando esempi del mondo reale e illustra come apparirà un sistema in un dato momento. Dato che i dati sono disponibili all'interno degli oggetti, possono essere utilizzati per chiarire le relazioni tra gli oggetti.
  • Diagramma dei pacchetti Esistono due tipi speciali di dipendenze definite tra i pacchetti: importazione pacchetto e unione pacchetto. I pacchetti possono rappresentare i diversi livelli di un sistema per rivelarne l'architettura. Le dipendenze dei pacchetti possono essere contrassegnate per mostrare il meccanismo di comunicazione tra i livelli.

Diagrammi UML comportamentali

  • Diagrammi di attività Rappresentazione grafica dei flussi di lavoro aziendali o operativi per mostrare l'attività di una qualsiasi parte o componente del sistema. I diagrammi di attività sono usati in alternativa ai diagrammi di macchina a stati.
  • Diagramma di comunicazione Simile ai diagrammi di sequenza, ma l'attenzione è rivolta ai messaggi che vengono scambiati tra gli oggetti. Le stesse informazioni possono essere rappresentate utilizzando un diagramma di sequenza e oggetti diversi.
  • Diagramma di panoramica delle interazioni Esistono sette tipi di diagrammi di interazione e questo diagramma mostra la sequenza in cui agiscono.
  • Diagramma di sequenza Mostra il modo in cui gli oggetti interagiscono tra loro e l'ordine di occorrenza. Rappresentano le interazioni per uno scenario particolare.
  • Diagramma di macchina a stati Simili ai diagrammi di attività, descrivono il comportamento degli oggetti che reagiscono in modi diversi nel loro stato attuale.
  • Diagramma dei tempi Come nei diagrammi di sequenza, viene rappresentato il comportamento degli oggetti in un determinato intervallo di tempo. Se esiste un singolo oggetto, il diagramma è semplice. Con più di un oggetto, le interazioni degli oggetti vengono mostrate durante quel particolare intervallo di tempo.
  • Diagramma dei casi d'uso Rappresenta una particolare funzionalità di un sistema, creata per illustrare il modo in cui si relazionano le funzionalità e i loro controllori interni/esterni (attori).

Come creare un diagramma UML: tutorial ed esempi

Per scoprire come creare diversi tipi di diagrammi UML, prova uno o tutti questi tutorial e lasciati guidare attraverso il processo di disegno di diagrammi strutturali e comportamentali.

Esempi di tutorial per diagrammi strutturali

DIAGRAMMI DI CLASSE

I diagrammi di classe rappresentano le strutture statiche di un sistema, comprese le sue classi, gli attributi, le operazioni e gli oggetti. Un diagramma di classe può rappresentare dati computazionali o dati organizzativi sotto forma di classi di implementazione e classi logiche, rispettivamente. Potrebbe esserci una sovrapposizione tra questi due gruppi.

  1. Le classi sono rappresentate con una forma rettangolare suddivisa in terzi. La sezione superiore mostra il nome della classe, mentre la sezione centrale contiene gli attributi della classe. La sezione inferiore presenta le operazioni della classe (note anche come metodi).
  2. Aggiungi forme di classi al tuo diagramma di classe per modellare la relazione tra tali oggetti. Potresti dover aggiungere anche delle sottoclassi.
  3. Usa le linee per rappresentare associazione, eredità, molteplicità e altre relazioni tra classi e sottoclassi. Il tuo stile di notazione preferito caratterizzerà la notazione di queste linee.

 

DIAGRAMMI DEI COMPONENTI

I diagrammi dei componenti mostrano come i componenti vengono combinati per formare componenti più grandi o sistemi software. Questi diagrammi hanno lo scopo di modellare le dipendenze di ciascun componente nel sistema. Un componente è un elemento necessario per eseguire una funzione stereotipata. Uno stereotipo di componente può essere costituito da file eseguibili, documenti, tabelle di database, file o file di libreria.

  1. Rappresenta un componente con una forma rettangolare. Dovrebbe avere due piccoli rettangoli al lato o presentare un'icona con questa forma.
  2. Aggiungi linee tra le forme dei componenti per rappresentare le relazioni.

 

DIAGRAMMI DI DISTRIBUZIONE

Un diagramma di distribuzione modella la distribuzione fisica e la struttura dei componenti hardware. I diagrammi di distribuzione mostrano dove e come i componenti di un sistema funzioneranno insieme.

  1. Quando disegni un diagramma di distribuzione, utilizza la stessa notazione utilizzata per un diagramma dei componenti.
  2. Utilizza un cubo 3D per modellare un nodo (che rappresenta una macchina fisica o una macchina virtuale).
  3. Etichetta il nodo con lo stesso stile utilizzato per i diagrammi di sequenza. Aggiungi altri nodi in base alle necessità, quindi connettili con le linee.

 

Esempi di tutorial per diagrammi comportamentali

DIAGRAMMA DI ATTIVITÀ

I diagrammi di attività mostrano il flusso procedurale di controllo tra oggetti di classe, insieme a processi organizzativi come i flussi di lavoro aziendali. Questi diagrammi sono composti da forme specializzate, poi collegate tramite frecce. Il set di notazioni per i diagrammi di attività è simile a quello dei diagrammi di stato.

  1. Inizia il tuo diagramma di attività con un cerchio intero.
  2. Collega il cerchio alla prima attività, che è modellata con un rettangolo arrotondato.
  3. Ora collega ciascuna attività alle altre, con linee che mostrano il flusso graduale dell'intero processo.
  4. Puoi anche provare a usare le swimlane per rappresentare gli oggetti che eseguono ogni attività.

 

DIAGRAMMA DEI CASI D'USO

Un caso d'uso è un elenco di passaggi che definiscono l'interazione tra un attore (un essere umano che interagisce con il sistema o un sistema esterno) e il sistema stesso. I diagrammi dei casi d'uso descrivono le specifiche di un caso d'uso e modellano le unità funzionali di un sistema. Questi diagrammi aiutano i team di sviluppo a comprendere i requisiti del proprio sistema, incluso il ruolo dell'interazione umana al suo interno e le differenze tra i vari casi d'uso. Un diagramma dei casi d'uso può rappresentare tutti i casi d'uso del sistema o solo un gruppo di casi d'uso con funzionalità simili.

  1. Per iniziare un diagramma dei casi d'uso, aggiungi una forma ovale al centro del disegno.
  2. Digita il nome del caso d'uso all'interno dell'ovale.
  3. Rappresenta gli attori con una figura stilizzata vicino al diagramma, quindi usa le linee per modellare le relazioni tra attori e casi d'uso.

 

DIAGRAMMA DI SEQUENZA

I diagrammi di sequenza, noti anche come diagrammi di eventi o scenari di eventi, illustrano come i processi interagiscono tra loro mostrando le chiamate tra oggetti diversi in una sequenza. Questi diagrammi hanno due dimensioni: verticale e orizzontale. Le linee verticali mostrano la sequenza di messaggi e chiamate in ordine cronologico, mentre gli elementi orizzontali mostrano le istanze di oggetti in cui i vengono trasmessi i messaggi.

  1. Per creare un diagramma di sequenza, scrivi il nome dell'istanza della classe e il nome della classe in una casella rettangolare.
  2. Traccia delle linee tra istanze di classe per rappresentare il mittente e il destinatario dei messaggi.
  3. Utilizza punte di freccia piene per simboleggiare i messaggi sincroni, punte di freccia aperte per i messaggi asincroni e linee tratteggiate per i messaggi di risposta.

Con Lucidchart è facile disegnare diagrammi UML

Puoi iniziare subito a creare diagrammi UML con Lucidchart: è semplice, efficiente e anche divertente.

  • Semplice da usare Se stai realizzando un diagramma UML, sai perfettamente cosa stai facendo, ma noi vogliamo semplificarti il più possibile il lavoro. Risparmierai tempo con la raffinata interfaccia e l'editor intelligente drag-and-drop di Lucidchart.
  • Ampia libreria di forme Disegna diagrammi di stato, diagrammi di attività, diagrammi di casi d'uso e molto altro. Nell'ampia libreria di forme e connettori troverai tutto ciò di cui hai bisogno.
  • Completamente integrato Lucidchart è completamente integrato con G Suite. Una volta iniziato a lavorare con Lucidchart, ci troverai direttamente nella tua suite di produttività Google insieme a Gmail e Google Drive. Inoltre, puoi utilizzare lo stesso accesso che utilizzi per Google.
  • Consente la collaborazione Puoi facilmente condividere il tuo diagramma UML con i tuoi colleghi, clienti o il tuo capo. I tuoi diagrammi possono essere incorporati in una pagina Web o pubblicati come PDF, e la modalità di presentazione di Lucidchart trasformerà la tua creazione in un fantastico aiuto visivo.
  • Importazione/esportazione Visio Puoi importare ed esportare con facilità i file di Visio, in modo da poter salvare il lavoro che hai già fatto. Scopri un'esperienza veloce e fluida dall'inizio alla fine.

Vuoi creare un diagramma UML tutto tuo? Prova Lucidchart. È rapido, semplice e completamente gratuito.