Diagramma UML. Tipi di diagrammi UML

20/03/2019

Il diagramma UML è un linguaggio di descrizione grafica specializzato destinato alla modellazione di oggetti nello sviluppo di vari software. Questo linguaggio ha un ampio profilo ed è uno standard aperto in cui vengono utilizzati vari simboli grafici per creare un modello di sistema astratto. UML è stato creato per fornire definizione, visualizzazione, documentazione e progettazione di vari sistemi software. Va notato che lo stesso diagramma UML non è un linguaggio di programmazione, ma prevede anche la possibilità di generare un codice separato basato su di esso.

Perché è necessario?

L'uso di UML non termina con la simulazione di tutti i tipi di software. Inoltre, questo linguaggio viene utilizzato attivamente oggi per la modellazione di vari processi aziendali, la progettazione di sistemi e la visualizzazione di strutture organizzative.

Con l'aiuto di UML, gli sviluppatori di software possono fornire un accordo completo nella notazione grafica utilizzata per rappresentare concetti comuni quali: componente, generalizzazione, classe, comportamento e aggregazione. A causa di ciò, si ottiene un maggior grado di concentrazione su architettura e design.

Vale anche la pena notare che esistono diversi tipi di tali diagrammi.

Diagramma di classe

diagramma di stato uml

Un diagramma di classe UML è un diagramma strutturale statico progettato per descrivere la struttura di un sistema, oltre a dimostrare attributi, metodi e dipendenze tra diverse classi diverse.

Vale la pena notare che ci sono diversi punti di vista sulla costruzione di tali diagrammi, a seconda di come verranno utilizzati:

  • Concettuale. In questo caso, il diagramma di classe UML descrive il modello di una particolare area tematica e fornisce solo classi di oggetti dell'applicazione.
  • Specifico. Il diagramma viene utilizzato nel processo di progettazione di vari sistemi di informazione.
  • Realizzo. Il diagramma delle classi include tutti i tipi di classi che sono direttamente utilizzati nel codice del programma.

Diagramma dei componenti

uml chart

Il diagramma del componente UML è un diagramma strutturale completamente statico. È destinato a dimostrare la partizione di un particolare sistema software in vari componenti strutturali, nonché le connessioni tra di essi. Il diagramma del componente UML come tale può utilizzare tutti i tipi di modelli, librerie, file, pacchetti, file eseguibili e molti altri elementi.

Diagramma di struttura composito / composito

Il diagramma UML della struttura composita / composita è anche un diagramma strutturale statico, ma è usato per mostrare la struttura interna delle classi. Se possibile, questo diagramma può anche dimostrare l'interazione di elementi presenti nella struttura interna della classe.

Un sottotipo di questi è il diagramma UML della cooperazione, che viene utilizzato per dimostrare i ruoli, nonché l'interazione di varie classi entro i confini della cooperazione. Sono abbastanza convenienti se si desidera simulare modelli di progettazione.

Va notato che i tipi di diagrammi della classe UML e della struttura composita possono essere usati simultaneamente.

Diagramma di distribuzione

uml diagramma di attività

Questo diagramma viene utilizzato per modellare i nodi di lavoro, nonché tutti i tipi di artefatti che sono stati distribuiti su di essi. In UML 2, le risorse vengono distribuite su diversi nodi, mentre nella prima versione venivano distribuiti solo i componenti. Pertanto, il diagramma di implementazione di UML viene utilizzato principalmente per la seconda versione.

Si forma una dipendenza di manifestazione tra l'artefatto e il componente che implementa.

Diagramma degli oggetti

Questa vista consente di visualizzare un'istantanea completa o parziale del sistema creato in un momento specifico. Visualizza tutte le istanze delle classi di un particolare sistema con i valori correnti dei loro parametri, nonché le relazioni tra di loro.

Schema del pacchetto

uml usa il diagramma del caso

Questo diagramma è strutturale e il suo contenuto principale è costituito da tutti i tipi di pacchetti, oltre alla relazione tra di essi. In questo caso, non vi è alcuna divisione rigida tra i vari diagrammi strutturali, in conseguenza del quale il loro uso è per lo più trovato esclusivamente per comodità, e non ha alcun significato semantico in sé. Vale la pena notare che diversi diagrammi UML possono fornire elementi diversi (esempi: pacchetti e diagrammi dei pacchetti stessi).

Il loro uso è effettuato al fine di garantire l'organizzazione di diversi elementi in gruppi su una base specifica al fine di semplificare la struttura, nonché di organizzare il lavoro con il modello di questo sistema.

Grafico delle attività

diagramma componenti uml

Il diagramma di attività UML mostra la scomposizione di un'attività specifica in più parti. In questo caso, il termine "attività" si riferisce alla specifica di un comportamento eseguibile specifico sotto forma di esecuzione sequenziale coordinata e parallela di vari elementi subordinati - tipi di attività annidati e varie azioni combinate da flussi dagli output di un nodo specifico agli input di un altro.

Il diagramma di attività UML viene spesso utilizzato per modellare vari processi aziendali, calcoli paralleli e sequenziali. Inoltre, simulano varie procedure tecnologiche.

Macchina da grafico

Questa vista è chiamata e in qualche modo diversa - il diagramma di stato UML. Ha una macchina a stati con stati semplici e compositi, oltre a transizioni.

Una macchina a stati finiti è una specifica di una sequenza di stati diversi attraverso i quali passa un determinato oggetto, o interazione in risposta a determinati eventi nella sua vita, così come la risposta di un oggetto a tali eventi. Una macchina a stati che utilizza un diagramma di stato UML è assegnata all'elemento source e viene utilizzata per determinare il comportamento delle sue istanze.

I cosiddetti schemi del drago possono essere usati come analoghi di tali diagrammi.

Utilizzare i diagrammi dei casi

diagramma sequenza uml

Il diagramma del caso d'uso UML rappresenta tutte le relazioni che sorgono tra gli attori, così come i vari casi d'uso. Il suo compito principale è quello di implementare un mezzo completo con cui il cliente, l'utente finale o alcuni sviluppatori saranno in grado di discutere congiuntamente il comportamento e le funzionalità di un particolare sistema.

Se il diagramma del caso d'uso UML viene utilizzato nel processo di modellazione del sistema, l'analista sta per:

  • Separare chiaramente il sistema simulato dal suo ambiente.
  • Identifica gli attori, la loro interazione con questo sistema e la sua funzionalità prevista.
  • Impostare nel glossario l'area tematica di vari concetti relativi alla descrizione dettagliata della funzionalità di questo sistema.

Se un diagramma di utilizzo è sviluppato in UML, la procedura inizia con una descrizione testuale, ottenuta lavorando con il cliente. Allo stesso tempo, vale la pena notare che diversi requisiti non funzionali nel processo di elaborazione di un modello di precedenti sono completamente omessi, e per essi verrà formato un documento separato.

comunicazione

Un diagramma di comunicazione, proprio come un diagramma di sequenza UML, è transitivo, cioè esprime un'interazione, ma allo stesso tempo lo dimostra in modi diversi, e se necessario con il grado di precisione necessario, è possibile convertirne uno in un altro.

Il diagramma di comunicazione riflette le interazioni che si verificano tra i vari elementi della struttura composita, così come i ruoli di cooperazione. La sua principale differenza dal diagramma di sequenza è che mostra chiaramente le relazioni tra diversi elementi, e il tempo non è usato come misura separata.

Questo tipo si distingue per un formato assolutamente gratuito per l'organizzazione di diversi oggetti e collegamenti nello stesso modo in cui viene eseguito nel diagramma degli oggetti. Se è necessario mantenere l'ordine dei messaggi in questo formato libero, viene eseguita la numerazione cronologica. La lettura di questo diagramma inizia con il messaggio iniziale 1.0 e quindi continua nella direzione in cui i messaggi vengono trasmessi da un oggetto a un altro.

La maggior parte di questi diagrammi mostra esattamente le stesse informazioni fornite da un diagramma di sequenza, ma poiché utilizza un modo diverso di presentare le informazioni, diventa molto più facile identificare determinate cose su un diagramma piuttosto che su un altro. Vale anche la pena notare che il diagramma di comunicazione mostra in modo più chiaro a quali elementi ogni singolo elemento interagisce, mentre il diagramma di sequenza mostra più chiaramente l'ordine in cui le interazioni hanno luogo.

Diagramma di sequenza

diagramma di classe uml

Un diagramma di sequenza UML mostra le interazioni tra diversi oggetti, che sono ordinati in base al momento in cui si verificano. Su tale grafico, viene visualizzata l'interazione ordinata nel tempo tra diversi oggetti. In particolare, visualizza tutti gli oggetti coinvolti nell'interazione, nonché la sequenza completa di messaggi scambiati da loro.

Gli elementi principali in questo caso sono le designazioni di vari oggetti, così come le linee verticali che rappresentano il passaggio del tempo e dei rettangoli, fornendo l'attività di un oggetto particolare o l'esecuzione di una funzione da esso.

Diagramma di collaborazione

Questo tipo di diagrammi consente di dimostrare l'interazione tra diversi oggetti, astratti dalla sequenza dei messaggi di trasmissione. Questo tipo di diagrammi in una forma compatta riflette in sé tutti i messaggi trasmessi e ricevuti di un oggetto particolare, nonché i formati di questi messaggi.

A causa del fatto che i diagrammi di sequenza e comunicazione sono semplicemente una visione diversa delle stesse procedure, Rational Rose offre la possibilità di creare una sequenza di diagrammi da una comunicazione o viceversa, e inoltre esegue la loro sincronizzazione completamente automatica.

Grafici di Interaction Overview

Questi sono diagrammi UML che si riferiscono a una varietà di diagrammi di attività e comprendono sia gli elementi di sequenza che i costrutti di flusso di controllo.

Vale la pena notare che questo formato combina il diagramma Collaborazione e Sequenza, che fornisce un'opportunità da diversi punti di vista per considerare l'interazione tra diversi oggetti nel sistema che si sta formando.

Sync Chart

È una versione alternativa del diagramma di sequenza, che dimostra esplicitamente un cambiamento di stato sulla linea della vita con una scala temporale specifica. Può essere abbastanza utile in varie applicazioni in tempo reale.

Quali sono i vantaggi?

Vale la pena notare diversi vantaggi che distinguono il diagramma di utilizzo di UML e altri:

  • Il linguaggio è orientato agli oggetti, in base al quale le tecnologie per descrivere i risultati dell'analisi e del progetto eseguiti sono semanticamente vicine ai metodi di programmazione in tutti i tipi di linguaggi orientati agli oggetti del tipo moderno.
  • Con l'aiuto di questo linguaggio, il sistema può essere descritto da quasi tutti i possibili punti di vista, e vari aspetti del suo comportamento sono descritti allo stesso modo.
  • Tutti i diagrammi sono relativamente facili da leggere anche dopo una familiarizzazione relativamente rapida con la sua sintassi.
  • UML ti consente di estendere e di introdurre i tuoi stereotipi grafici e testuali, che contribuiscono al suo utilizzo non solo nell'ingegneria del software.
  • Il linguaggio è diventato abbastanza diffuso, oltre a svilupparsi abbastanza attivamente.

carenze

Nonostante il fatto che la costruzione di diagrammi UML differisca nella massa dei suoi vantaggi, molto spesso vengono criticati per i seguenti svantaggi:

  • Ridondanza. Nella stragrande maggioranza dei casi, i critici affermano che UML è troppo grande e complesso, e spesso questo è ingiustificato. Include molte costruzioni ridondanti o quasi inutili e diagrammi, e il più delle volte tali critiche vanno alla seconda versione, e non alla prima versione, perché nelle revisioni più recenti ci sono più compromessi "sviluppati dal comitato".
  • Varie inesattezze nella semantica. Per il fatto che UML è definito da una combinazione di se stesso, inglese e OCL, non ha la rigidità intrinseca nei linguaggi definiti con precisione dalla tecnica di descrizione formale. In certe situazioni, la sintassi astratta di OCL, UML e inglese iniziano a contraddirsi l'una con l'altra, mentre in altri casi sono incomplete. L'inesattezza della descrizione del linguaggio stesso si riflette ugualmente sia negli utenti che nei fornitori di strumenti, il che porta in ultima analisi all'incompatibilità degli strumenti a causa del modo unico di interpretare le diverse specifiche.
  • Problemi nel processo di implementazione e studio. Tutti i suddetti problemi creano alcune difficoltà nel processo di implementazione e studio di UML, e questo è particolarmente vero quando la direzione fa in modo che gli ingegneri lo utilizzino con la forza, mentre mancano le abilità preliminari.
  • Il codice riflette il codice. Un'altra opinione è che l'importanza non è di modelli belli e attraenti, ma dei sistemi operativi stessi, cioè il codice è il progetto. Secondo questo parere, vi è la necessità di sviluppare un modo più efficiente di scrivere software. UML viene generalmente valutato in approcci che compilano modelli per la rigenerazione di codice eseguibile o sorgente. Ma in realtà, questo potrebbe non essere sufficiente, perché non ci sono proprietà di completezza di Turing in questa lingua, e ogni codice generato sarà in definitiva limitato a ciò che lo strumento di interpretazione UML può assumere o definire.
  • Carico disallineamento Questo termine deriva dalla teoria dell'analisi di sistema per determinare l'incapacità di un input di un particolare sistema di percepire un output diverso. Come con qualsiasi notazione standard, UML può rappresentare alcuni sistemi in modo più efficiente e più conciso di altri. Pertanto, lo sviluppatore è più incline a quelle soluzioni che sono più confortevoli per intrecciare tutti i punti di forza di UML, così come altri linguaggi di programmazione. Questo problema è più ovvio se il linguaggio di sviluppo non è conforme ai principi di base della dottrina ortodossa orientata agli oggetti, cioè, non tenta di lavorare secondo i principi dell'OOP.
  • Cerca di essere universale. UML è un linguaggio di modellazione generico che cerca di garantire la compatibilità con qualsiasi linguaggio di elaborazione esistente. Nel contesto di un progetto specifico, per consentire al team di progettazione di raggiungere l'obiettivo finale, è necessario selezionare le funzionalità applicabili di questa lingua. Inoltre, i possibili modi per limitare l'ambito dell'utilizzo di UML in una particolare area passano attraverso il formalismo, che non è completamente articolato, ma che è di per sé un oggetto di critica.

Pertanto, l'uso di questa lingua è rilevante non in tutte le situazioni.