Diagrammi UML: Caratteristiche, schema e tipologie

โšก Riepilogo intelligente

I diagrammi UML forniscono un linguaggio visivo standardizzato per la modellazione di sistemi software, aiutandoping I team di sviluppo documentano i progetti orientati agli oggetti, comunicano in modo chiaro le decisioni architetturali complesse e allineano tutte le parti interessate al progetto prima dell'inizio dell'implementazione.

  • ๐Ÿ“ Definizione di base: Il linguaggio di modellazione unificato (UML) รจ uno standard riconosciuto dall'ISO che utilizza diagrammi pittorici per rappresentare la progettazione, la struttura e il comportamento dei sistemi software orientati agli oggetti.
  • ๏ธ Due categorie: I diagrammi UML si suddividono in diagrammi strutturali (vista statica dei componenti) e diagrammi comportamentali (vista dinamica delle interazioni e dei flussi di lavoro).
  • ๐Ÿ—‚๏ธ Diagrammi strutturali: I diagrammi di classi, oggetti, pacchetti, componenti e distribuzione rappresentano l'architettura statica e le relazioni tra gli elementi del sistema.
  • โšก Diagrammi comportamentali: I diagrammi di attivitร , casi d'uso e macchine a stati descrivono i flussi di sistema, le interazioni degli utenti e le transizioni di stato nel tempo.
  • ๏ธ Strumenti e intelligenza artificiale: Strumenti come StarUML, Visio e Lucidchart Genera diagrammi UML in modo visivo; gli strumenti basati sull'intelligenza artificiale sono ora in grado di generare diagrammi accurati a partire da descrizioni in testo semplice o codice sorgente in modo automatico.
  • ???? Cronologia delle versioni: UML si รจ evoluto dalla versione 1.1 (1997) alla 2.5.1 (2017), con ogni nuova versione che ha aggiunto tipi di diagrammi, migliorato la semantica e semplificato la specifica.

Diagrammi UML

I sistemi software diventano rapidamente complessi e i team che non riescono a visualizzare l'architettura faticano a comunicare le decisioni di progettazione. UML fornisce una notazione visiva condivisa prima ancora che venga scritto qualsiasi codice.

Perchรฉ usare UML? Storia completa

Gli anni '1990 sono stati l'era dello sviluppo di linguaggi orientati agli oggetti come C++Questi linguaggi orientati agli oggetti sono stati utilizzati per creare sistemi complessi ma accattivanti.

Poichรฉ i sistemi sviluppati erano complicati da comprendere, ciรฒ ha portato a problemi di progettazione e analisi che sono stati affrontati dopo l'implementazione del sistema. Era difficile spiegare il sistema agli altri.

Non appena fu introdotto lโ€™UML, furono fatti molti esperimenti e approcci rivoluzionari per semplificare compiti cosรฌ difficili di analisi del sistema.

UML รจ un linguaggio di modellazione unificato orientato agli oggetti. รˆ stato inventato dai brillanti ingegneri del software Grady Booch, Ivar Jacobson e James Rumbaugh di Rational software tra il 1994 e il 1995. รˆ stato in fase di sviluppo fino al 1996.

Ciascuno degli inventori dell'UML, ovvero Grady Booch, Ivar Jacobson e James Rumbaugh, ha avuto un'idea geniale per progettare un linguaggio che riducesse la complessitร .

  • Il metodo di Booch era molto flessibile con cui lavorare durante la progettazione e la costruzione degli oggetti.
  • Il metodo di Jacobson ha fornito un ottimo modo per aggirare i casi d'uso. Ha anche un approccio potente per la progettazione di alto livello.
  • Il metodo di Rumbaugh si รจ rivelato molto utile durante la gestione di sistemi sensibili.

Later in poi, modelli comportamentali e grafici di stato furono introdotti nell'UML inventato da David Harel.

UML รจ stato riconosciuto come standard dall'Object Management Group (OMG) nel 1997. Object Management Group รจ responsabile della gestione di UML da quando รจ stato adottato come standard.

Nel 2005, lโ€™Organizzazione internazionale per la standardizzazione ha approvato UML come standard ISO. Viene utilizzato in vari settori per la creazione di modelli orientati agli oggetti.

L'ultima versione UML รจ la 2.5.1 rilasciata a dicembre 2017.

Versioni UML

Data Versione Chi siamo
Novembre 1997 1.1 UML รจ stato adottato dall'Object Management Group. Questa รจ stata la prima versione di UML.
Marzo 2000 1.3 รˆ stato effettuato un aggiornamento minore al modello esistente con notevoli modifiche nella semantica, feedbacke metamodelli di UML.
Settembre 2001 1.4 Questo fu il periodo del grande aggiornamento dell'UML. Ha scalato UML fornendo varie estensioni. Visibilitร , artefatti e stereotipi sono stati introdotti nei diagrammi.
Marzo 2003 1.5 Funzionalitร  come procedure e meccanismi di flusso di dati sono state aggiunte a UML.
Gennaio 2005 1.4.2 UML รจ stato accettato come standard dall'ISO.
agosto 2005 2.0 Nuovi diagrammi come oggetto, pacchetto, tempistica, interazione sono stati aggiunti a UML. Sono state aggiunte nuove funzionalitร  ai diagrammi di attivitร  e di sequenza. Il diagramma di collaborazione รจ stato rinominato diagramma di comunicazione. Molteplici funzionalitร  e modifiche sono state introdotte nei diagrammi esistenti.
Aprile 2006 2.1 Sono state apportate correzioni a UML 2.0.
Febbraio 2007 2.1.1 Upgradesono stati introdotti in UML 2.1.
Novembre 2007 2.1.2 UML 2.1.1 รจ stato ridefinito.
Febbraio 2009 2.2 I bug di UML 2.1.2 sono stati risolti.
che si terrร  nel maggio 2010 2.3 UML 2.2 รจ stato rivisto e sono state apportate piccole modifiche ai diagrammi dei componenti.
agosto 2011 2.4.1 Sono state apportate modifiche a classi, pacchetti e stereotipi. UML 2.3 รจ stato rivisto con funzionalitร  di miglioramento.
Giugno 2015 2.5 La versione 2.4.1 di UML รจ stata rivista con piccole modifiche. UML รจ stato semplificato rispetto alla versione precedente. Sono state introdotte funzionalitร  piรน rapide e la generazione di modelli piรน efficaci. Le funzionalitร  obsolete sono state eliminate. Modelli e template sono stati eliminati come costrutti ausiliari.

Caratteristiche dell'UML

  1. รˆ un linguaggio di modellazione generalizzato.
  2. รˆ diverso dai linguaggi di programmazione software come Python, C, C++, ecc.
  3. รˆ un linguaggio pittorico che puรฒ essere utilizzato per generare potenti elementi di modellazione.
  4. รˆ legato alla progettazione e all'analisi orientata agli oggetti.
  5. Ha applicazioni illimitate anche al di fuori dell'industria del software. Puรฒ essere utilizzato per visualizzare il flusso di lavoro di una fabbrica.

Modello concettuale

Prima di iniziare con il concetto UML, รจ necessario comprendere le basi del modello concettuale.

Un modello concettuale รจ costituito da vari concetti correlati tra loro. Ci aiuta a capire

  • Quali sono gli oggetti?
  • Come avviene l'interazione per eseguire un processo?

In UML รจ richiesto un modello concettuale. รˆ necessario comprendere le entitร  e le relazioni tra loro prima di modellare effettivamente il sistema.

Per iniziare con UML sono necessari i seguenti concetti orientati agli oggetti:

  • OggettoSi tratta di un'entitร  reale. All'interno di un singolo sistema sono disponibili molteplici oggetti. รˆ un elemento fondamentale di UML.
  • ClasseUna classe non รจ altro che un contenitore in cui vengono gestiti gli oggetti e le loro relazioni.
  • Abstracproduzione: รˆ un meccanismo di rappresentazione di un'entitร  senza mostrare i dettagli di implementazione. Viene utilizzato per visualizzare il comportamento di un oggetto.
  • Ereditร : รˆ un meccanismo per estendere una classe esistente per creare una nuova classe.
  • Polimorfismo: รˆ un meccanismo di rappresentazione di un oggetto avente piรน forme utilizzate per scopi diversi.
  • incapsulamento: รˆ un metodo per legare insieme l'oggetto e i dati come una singola unitร . Garantisce uno stretto accoppiamento tra l'oggetto e i dati.

Sopra sono anche chiamati come elementi costitutivi di base di un UML.

Cos'รจ il diagramma UML?

Diagrammi UML sono l'output dell'Unified Modeling Language. รˆ una rappresentazione pittorica di classi, oggetti e relazioni tra loro. Il diagramma UML รจ un modello che descrive una parte di un sistema. Viene utilizzato per definire la funzionalitร  o il design di un sistema. Un diagramma deve essere chiaro e conciso in modo che lo spettatore possa capirlo facilmente.

I diagrammi UML sono divisi in tre diverse categorie come,

  • Schema strutturale
  • Diagramma comportamentale
  • Diagramma di interazione

Diagrammi strutturali in UML

I diagrammi strutturali vengono utilizzati per rappresentare una vista statica di un sistema. Rappresenta una parte di un sistema che costituisce la struttura di un sistema. Un diagramma strutturale mostra vari oggetti all'interno del sistema.

Di seguito sono riportati i vari diagrammi strutturali in UML:

  • Diagramma delle classi
  • Diagramma degli oggetti
  • Diagramma del pacchetto
  • Schema dei componenti
  • Diagramma di distribuzione

Diagrammi comportamentali in UML

Qualsiasi sistema del mondo reale puรฒ essere rappresentato in forma statica o dinamica. Un sistema si dice completo se รจ espresso sia in modo statico che dinamico. Il diagramma comportamentale rappresenta il funzionamento di un sistema.

I diagrammi UML che trattano la parte statica di un sistema sono chiamati diagrammi strutturali. I diagrammi UML che trattano le parti mobili o dinamiche del sistema sono chiamati diagrammi comportamentali.

Di seguito sono riportati i vari diagrammi comportamentali in UML:

  • Diagramma di attivitร 
  • Diagramma del caso d'uso
  • Diagramma della macchina a stati

Diagrammi di interazione in UML

Il diagramma di interazione non รจ altro che un sottoinsieme dei diagrammi comportamentali. Viene utilizzato per visualizzare il flusso tra i vari elementi dei casi d'uso di un sistema. I diagrammi di interazione vengono utilizzati per mostrare un'interazione tra due entitร  e il modo in cui i dati fluiscono al loro interno.

Di seguito sono riportati i vari diagrammi di interazione in UML:

  • Diagramma dei tempi
  • Diagramma di sequenza
  • Diagramma di collaborazione

La spiegazione dettagliata dei diagrammi precedenti รจ spiegata in ulteriori tutorial.

Diagrammi UML strutturali vs. comportamentali

La tabella seguente mette a confronto le due categorie di diagrammi UML per aiutare i team a scegliere il tipo piรน adatto.

Attributo Diagrammi strutturali Diagrammi comportamentali
Visualizzare statica Dinamico
Focus Componenti e le loro relazioni Azioni e interazioni del sistema
Esempi Classe, Oggetto, Pacchetto, Componente, Distribuzione Attivitร , caso d'uso, macchina a stati
Uso primario Archiprogettazione di strutture e database Flusso di lavoro, percorsi utente, transizioni di stato
Creato quando Definire la struttura del sistema in anticipo Modellazione del comportamento in fase di esecuzione e della logica aziendale

Strumenti UML

Ci sono molti strumenti disponibili sul mercato per generare diagrammi UML. Alcuni sono basati su desktop mentre altri possono essere utilizzati online. Di seguito รจ riportato un elenco curato di strumenti che possono essere utilizzati per la creazione di modelli UML:

Useremo StarUML Applicazione per la generazione di diagrammi UML.

Passaggi di installazione: aprire il collegamento: http://staruml.io/download

In base alle specifiche del tuo PC. Scarica qualsiasi versione dell'applicazione. Qui sceglieremo l'opzione Windows.

StarUML Installazione

Una volta scaricata l'applicazione, installala con tutte le opzioni predefinite. Dopo l'installazione, avviala StarUML applicazione sul tuo PC.

Vedrai la seguente finestra,

StarUML Installazione

Ora puoi iniziare a creare diagrammi UML.

DOMANDE FREQUENTI

๐Ÿ“Š UML 2.x definisce 14 tipi di diagrammi ufficiali suddivisi in due gruppi principali: 7 diagrammi strutturali (classe, oggetto, componente, distribuzione, pacchetto, struttura composita, profilo) e 7 diagrammi comportamentali (caso d'uso, attivitร , macchina a stati, sequenza, comunicazione, temporizzazione, panoramica dell'interazione).

๐Ÿ—„๏ธ I diagrammi UML modellano sistemi software orientati agli oggetti e coprono sia la struttura che il comportamento. I diagrammi Entitร -Relazione (ER) si concentrano esclusivamente sullo schema del database e sulle relazioni tra le entitร  dati. I diagrammi di classi UML possono rappresentare tabelle di database, ma includono una semantica orientata agli oggetti aggiuntiva che manca ai diagrammi ER.

๐Ÿข Sรฌ. UML รจ tuttora ampiamente utilizzato nell'architettura aziendale, nei sistemi embedded e nei settori regolamentati come la finanza e la sanitร . I โ€‹โ€‹team Agile spesso utilizzano sottoinsiemi piรน leggeri, in particolare diagrammi di classi e di sequenza, mentre le suite UML complete rimangono comuni nella progettazione di sistemi su larga scala e nei progetti governativi.

๐Ÿค– Sรฌ. I modelli di IA come ChatGPT e GitHub Copilot possono generare PlantUML o la sintassi Mermaid da descrizioni in testo semplice o codice sorgente. Strumenti come Lucidchart Visio ora integra assistenti basati sull'intelligenza artificiale che creano diagrammi di classi, sequenze e casi d'uso a partire da input in linguaggio naturale in pochi secondi.

๐Ÿ› ๏ธ Tra i principali strumenti UML basati sull'intelligenza artificiale figurano: LucidchartGeneratore di diagrammi AI, Microsoft Visio Copilot, Eraser.io e Draw.io con plugin ChatGPT. PlantUML In combinazione con qualsiasi modello linguistico di grandi dimensioni, consente agli sviluppatori di scrivere diagrammi come codice, mentre GitLab e GitHub Copilot possono effettuare il reverse engineering dei diagrammi di classi a partire da repository esistenti.

โญ I diagrammi di classi e i diagrammi di sequenza sono i piรน utilizzati. I diagrammi di classi modellano la struttura statica e l'architettura del codice, mentre i diagrammi di sequenza mostrano come gli oggetti interagiscono nel tempo, il che li rende entrambi popolari per la documentazione di progettazione nei team Agile e aziendali.

๐Ÿ” Un diagramma delle classi definisce il progetto di un sistema, ovvero classi, attributi, metodi e relazioni. Un diagramma degli oggetti mostra un'istantanea delle istanze reali di tali classi in un momento specifico, con valori effettivi, illustrando l'aspetto della struttura in fase di esecuzione.

๐ŸŽ“ No. UML รจ una notazione di modellazione visiva, non un linguaggio di programmazione, quindi i principianti possono impararla anche senza competenze di programmazione. Comprendere i concetti base della programmazione orientata agli oggetti, come oggetti, classi e relazioni, รจ sufficiente per iniziare a creare semplici diagrammi UML.

Riassumi questo post con: