Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

UML o Unified Modeling Language - un linguaggio di descrizione grafica per la modellazione di oggetti nel campo dello sviluppo Software. Ma l'uso di UML non è limitato all'IT, un'altra vasta area di applicazione pratica di UML è la modellazione dei processi aziendali, la progettazione del sistema e la mappatura delle strutture organizzative. L'UML consente agli sviluppatori di software di raggiungere un accordo simboli grafici presentare concetti generali e concentrarsi sulla progettazione e lo sviluppo.

Vantaggi dell'UML

  • UML utilizza simboli grafici per gli elementi del sistema che vengono modellati ei diagrammi UML sono abbastanza facili da capire;
  • UML consente di descrivere i sistemi da quasi ogni possibile punto di vista, tenendo conto di vari aspetti;
  • UML è orientato agli oggetti: i suoi metodi di analisi e costruzione sono semanticamente vicini ai metodi di programmazione utilizzati nei moderni linguaggi OOP;
  • UML è uno standard aperto. Lo standard si sviluppa e si evolve di versione in versione, rispondendo alle più moderne esigenze di descrizione dei sistemi;
  • contiene un meccanismo di estensione che consente di introdurre ulteriori tipi di testo e grafica, il che rende possibile l'utilizzo di UML non solo nel campo IT.

Tipi di diagrammi UML

Ci sono 14 tipi di diagrammi in UML. Si possono dividere in 2 categorie:

  • strutturale che rappresentano struttura informativa;
  • comportamentale, che rappresenta il comportamento del sistema e vari aspetti delle interazioni. Una sottospecie separata di diagrammi comportamentali è diagrammi di interazione.

Gerarchia dei tipi di diagrammi UML, rappresentato da un diagramma di classe

Schemi strutturali

  1. diagramma di classeè un elemento chiave nella modellazione orientata agli oggetti. Con l'aiuto di questo diagramma (in realtà, attraverso classi, loro attributi, metodi e dipendenze tra classi) descrive il modello di dominio e la struttura del sistema modellato.
  2. Diagramma dei componenti visualizza la divisione del codice del programma in grandi blocchi (componenti strutturali) e mostra dipendenze fra loro. I componenti possono essere pacchetti, moduli, librerie, file, ecc.
  3. diagramma oggetto mostra un taglio completo o parziale del sistema simulato in un dato momento. Rappresenta istanze di classi (oggetti), il loro stato (valori di attributi correnti) e le relazioni tra di loro.
  4. Diagramma della struttura composita dimostra la struttura interna delle classi e, se possibile, le interazioni tra gli elementi di questa struttura.
  5. Schema del pacchetto mostra i pacchetti e le relazioni tra di loro. Questo tipo di diagramma serve a semplificare la struttura del modello (e, di conseguenza, lavorare con esso) combinando gli elementi del modello in gruppi secondo determinati criteri.
  6. Diagramma di distribuzione modella la distribuzione di componenti software ( artefatti) sulle risorse informatiche/componenti hardware ( nodi).
  7. Schema del profilo descrive un meccanismo di estensibilità che consente di adattare l'UML a una varietà di aree tematiche e campi di attività.

Esempio di diagramma di classe UML

Diagrammi di comportamento

  1. diagramma di attività mostra le azioni ( Azioni) di cui alcune attività ( attività). I diagrammi di attività vengono utilizzati per modellare i processi aziendali, i processi tecnologici, il calcolo seriale e parallelo.
  2. Diagramma dei casi d'uso(O diagramma dei casi d'uso) descrive la relazione tra attori (attori) e casi d'uso del sistema simulato (le sue capacità). Lo scopo principale di un diagramma è essere rimedio universale per clienti, sviluppatori e utenti finali, attraverso i quali sarebbe possibile discutere congiuntamente del sistema, delle sue capacità e del suo comportamento.
  3. Diagramma di stato descrive il comportamento dinamico di un'entità, mostrando come questa entità, a seconda del suo stato attuale, reagisce a vari eventi. In effetti, questo è un diagramma di stato della teoria degli atomi.
  4. Diagramma di comunicazione(v prime versioni diagramma di cooperazione) mostra le interazioni tra le parti della struttura composita e i ruoli della collaborazione. Il diagramma indica esplicitamente la relazione tra elementi (oggetti).
  5. diagramma di sequenza utilizzato per visualizzare la sequenza delle interazioni degli oggetti. Mostra il ciclo di vita di un dato oggetto e l'interazione degli attori (attori) all'interno di alcuni casi d'uso, la sequenza di messaggi che si scambiano.
  6. Diagramma di panoramica dell'interazione include parte del diagramma di sequenza e del costrutto del flusso di controllo. Aiuta a considerare l'interazione degli oggetti da diversi punti di vista.
  7. Grafico dei tempi- una sottospecie separata di diagrammi di interazione, specializzata in tempistica. I diagrammi di questo tipo vengono utilizzati per studiare il comportamento degli oggetti in un certo periodo di tempo.

Mostra il comportamento di un oggetto durante la sua vita, dalla creazione dell'oggetto alla sua distruzione. Ogni diagramma di stato rappresenta un automa.

Piano d'azione

Nella sezione Descrizione, scopri il set di caratteri di base del diagramma di stato necessario per poter leggere i diagrammi.

Dopo aver letto le altre sezioni ("Esempio", "Utilizzo"), puoi provare a creare da solo i diagrammi di stato.

Note (descrizione)

Ecco il set di caratteri principali diagrammi di stato necessario per poter leggere il diagramma. Dopo aver letto le altre sezioni ("Esempio", "Applicazione"), sarai in grado di comporre diagrammi di stato da soli!

Termine Immagine Descrizione
Pseudostato iniziale Stato iniziale del sistema
Transizione Transizione significa passare da uno stato all'altro.
Stato Indica le azioni eseguite dal sistema (può includere opzioni possibili) che porta ai risultati osservati dagli attori.
Stato
stato di attività
Un passaggio difficile in un caso d'uso può essere rappresentato da un altro caso d'uso.
In termini UML, diciamo che il primo caso d'uso include il secondo.
Stato finale Consente di designare i confini di sistemi o sottosistemi.
Attività interne Il caso in cui gli stati possono rispondere agli eventi senza effettuare una transizione, nel qual caso l'evento, la guardia e l'attività vengono posizionati all'interno del rettangolo dello stato.
attività di input L'attività di ingresso viene eseguita ogni volta che si entra nello stato
attività di uscita Attività di uscita: eseguita ogni volta che esci dallo stato.
superstato
Accade spesso che diversi stati abbiano transizioni e attività interne comuni. In tali casi, puoi trasformarli in sottostati (sottostati) e trasferire il comportamento generale in un superstato (superstato).
Stati paralleli
Gli stati possono essere suddivisi in più stati simultanei che vengono eseguiti contemporaneamente.

Come applicare la tecnica della creatività

I diagrammi di stato UML sono utili per descrivere il comportamento di un singolo oggetto in più casi d'uso. Ma non sono molto adatti a descrivere un comportamento caratterizzato dall'interazione di molti oggetti. Pertanto, ha senso utilizzare altre tecnologie insieme ai diagrammi di stato. Ad esempio, i diagrammi di interazione (Capitolo 4) sono ottimi per descrivere il comportamento di più oggetti in un singolo caso d'uso, mentre i diagrammi di attività UML sono utili per mostrare la sequenza principale di azioni di diversi oggetti in diversi casi d'uso.

Non tutti considerano naturali i diagrammi di stato. Guarda come gli esperti lavorano con loro. È possibile che i membri del tuo team non pensino che i grafici di stato siano adatti al loro modo di lavorare. Questa non è la difficoltà maggiore; devi ricordarti di condividere diversi metodi di lavoro.

Se usi i diagrammi di stato, non provare a disegnarli per ogni classe nel sistema. Questo approccio è spesso utilizzato per motivi di completezza formalmente rigorosa, ma è quasi sempre uno sforzo inutile. Usa i diagrammi di stato solo per le classi che mostrano un comportamento interessante, in cui tracciare il diagramma di stato ti aiuta a capire come stanno andando le cose.

Molti esperti lo credono l'editor dell'interfaccia utente e gli oggetti di controllo hanno funzionalità utili se visualizzati con un diagramma di stato.

Come imparare

Qui abbiamo cercato di fornire il modo più semplice per imparare Diagrammi di stato UML.

Come molte altre lingue, usa una serie di caratteri per descrivere. Il significato di questi simboli è riportato nella tabella nella sezione "Note (descrizione)". Ogni segno ha il proprio nome (termine) e ortografia. Inoltre, ogni termine viene fornito con una breve spiegazione per comprenderne rapidamente l'essenza principale.

Successivamente, ti consigliamo di andare alla sezione "Esempi". diagrammi di stato per provare a leggere diversi grafici. Quindi dovresti studiare la sezione "Utilizzo", perché, sebbene il numero di tipi di diagramma in UML sia ridotto, puoi ottenere il massimo vantaggio dal loro utilizzo solo se utilizzi i diagrammi appropriati per lo scopo previsto.

Esempio di utilizzo

Diagrammi della macchina a statiè una tecnica ben nota per descrivere il comportamento di un sistema. I diagrammi di stato esistono in una forma o nell'altra dagli anni '60 e nei primi giorni della programmazione orientata agli oggetti venivano usati per rappresentare il comportamento di un sistema. Negli approcci orientati agli oggetti, si disegna un diagramma di stato di una singola classe per mostrare il comportamento di un singolo oggetto durante la sua vita.

Ogni volta che si parla di macchine a stati finiti, i sistemi di controllo automatico della velocità o i distributori automatici vengono inevitabilmente citati come esempi.
Abbiamo deciso di utilizzare il controller del pannello di controllo segreto nel castello gotico. In questo castello vogliamo nascondere i nostri tesori in modo che siano difficili da trovare. Per poter accedere alla serratura della cassaforte, dobbiamo estrarre una candela strategica dal candelabro, ma la serratura apparirà solo se la porta è chiusa. Dopo che è apparso il lucchetto, possiamo inserire la chiave al suo interno e aprire la cassaforte. Per una maggiore sicurezza, abbiamo fatto in modo che la cassaforte possa essere aperta solo dopo che la candela è stata rimossa. Se il ladro non rispetta questa precauzione, scateneremo un orribile mostro che inghiottirà il ladro.

Sulla fig. 10.1 mostrato diagramma di stato classe controller che gestisce il mio insolito sistema di sicurezza. Il diagramma di stato inizia con lo stato dell'oggetto controller creato: states Aspettare. Questo è indicato nel diagramma con pseudostato iniziale, che non è uno stato, ma ha una freccia che punta allo stato iniziale.
Il diagramma mostra che il controller può trovarsi in uno dei seguenti tre stati: Attendi (In attesa), Blocca (Blocca) e Apri (Aperto). Il diagramma mostra anche le regole secondo le quali il controllore passa da uno stato all'altro. Queste regole sono rappresentate come transizioni - linee che collegano gli stati.

Transizione significa passare da uno stato all'altro. Ogni transizione ha la propria etichetta, che si compone di tre parti:
identificatore-trigger [protezione]/attività (firma-trigger/attività). Tutti loro sono opzionali. Generalmente, trigger-idè l'unico evento che può causare un cambiamento di stato.

La guardia, se specificata, è una condizione logica che deve essere soddisfatta affinché avvenga la transizione. L'attività è un comportamento del sistema durante la transizione. Può essere qualsiasi espressione comportamentale. La forma completa di un trigger ID può includere più eventi e parametri. La transizione dallo stato di attesa (Fig. 10.1) a un altro stato può essere letta come "Nello stato di attesa, se la candela viene rimossa, vedi un lucchetto e vai allo stato di blocco".

Tutte e tre le parti della descrizione della transizione sono facoltative. Saltare l'attività significa che non accade nulla durante la transizione. Skip guards significa che la transizione viene sempre eseguita se si verifica l'evento di attivazione. L'identificatore del trigger manca raramente, ma succede. Ciò significa che la transizione avviene immediatamente, cosa che può essere osservata principalmente negli stati attivi.

Quando si verifica un evento in un determinato stato, è possibile effettuare solo una transizione da questo stato, ad esempio nello stato di blocco (Fig. 10.1), le protezioni devono escludersi a vicenda. Se si verifica un evento e non sono consentite transizioni, ad esempio la chiusura di una cassaforte nello stato di attesa o la rimozione di una candela mentre la porta è aperta, l'evento viene ignorato.

Stato finale ( stato finale) indica che la macchina a stati ha terminato l'esecuzione, causando l'eliminazione dell'oggetto controller. Quindi, per quelli di voi che non sono stati abbastanza attenti da cadere nella trappola, poiché l'oggetto controller cessa di esistere, siamo costretti a rimettere il coniglio nella sua gabbia, pulire il pavimento e riavviare il sistema.

Ricorda che le macchine a stati possono mostrare solo oggetti che vengono direttamente osservati o su cui si agisce. Quindi, mentre ci si potrebbe aspettare che mettiamo o prendiamo qualcosa dalla cassaforte quando la porta è aperta, non l'abbiamo segnato sul diagramma perché il controllore non può dirci nulla al riguardo.

Quando gli sviluppatori parlano di oggetti, spesso si riferiscono allo stato degli oggetti, intendendo una combinazione di tutti i dati contenuti nei campi dell'oggetto. Tuttavia, lo stato in un diagramma di macchina a stati è una nozione più astratta di stato; il punto è che stati diversi implicano modi diversi di reagire agli eventi.

Attività interne in un diagramma di stato

Gli stati possono rispondere agli eventi senza effettuare una transizione utilizzando attività interne (attività interne), nel qual caso l'evento, la guardia e l'attività vengono inseriti all'interno del rettangolo di stato.

Sulla fig. La figura 10.2 mostra lo stato con le attività dei simboli interni e gli eventi del sistema di aiuto che è possibile osservare nei campi di testo dell'editor. interfaccia utente. Un'attività interiore è come un'auto-transizione, una transizione che ritorna allo stesso stato. La sintassi delle attività interne è costruita secondo lo stesso schema logico di eventi, protezioni e procedure.

Sulla fig. 10.2 mostra anche attività speciali: attività di input e output. attività di input eseguito ogni volta che entri nello stato; attività di uscita– ogni volta che lasci lo stato. Tuttavia, le attività interne non vengono avviate attività di input e output; questa è la differenza tra attività interne eautotransizioni .

Stati di attività in un diagramma di stato

Negli stati che abbiamo descritto finora, l'oggetto è silenzioso e attende il prossimo evento prima di fare qualsiasi cosa. Tuttavia, sono possibili stati in cui l'oggetto esibisce una certa attività.

Stato Ricerca nella fig. 10.3 è un tale stato stato di attività: l'attività in corso è indicata dal simbolo Fare/; da qui il termine fare attività (Sii attivo). Dopo che la ricerca è stata completata, vengono eseguite transizioni senza attività, come mostrare nuove attrezzature (Visualizza nuovo hardware). Se si verifica un evento di annullamento durante l'attività ( Annulla), Quello fare-attività viene semplicemente interrotto e torniamo allo stato Finestra Aggiorna hardware.

Sia le attività che le normali attività rappresentano la manifestazione di alcuni comportamenti. La differenza cruciale tra i due è che le normali attività si verificano "istantaneamente" e non possono essere interrotte da eventi normali, mentre le attività possono durare per un periodo di tempo limitato e possono essere interrotte, come mostrato nella Figura 2. 10.3. Istantaneo per sistemi diversi interpretato diversamente; per i sistemi in tempo reale, ciò può richiedere diverse istruzioni della macchina e per il software desktop può richiedere diversi secondi.

IN UML 1 le attività ordinarie erano denotate dal termine azione(azione) e il termine attività(attività) è stato utilizzato solo per fare-attività.

Superstati

Accade spesso che diversi stati abbiano transizioni e attività interne comuni. In tali casi, puoi trasformarli in sottostati (sottostati) e trasferire il comportamento generale in un superstato (superstato), come mostrato in Fig. 10.4. Senza il superstato, dovremmo disegnare la transizione Annulla(cancella) per tutti e tre gli stati all'interno di uno stato Inserisci i dettagli di connessione.

Stati paralleli

Gli stati possono essere suddivisi in più stati simultanei che vengono eseguiti contemporaneamente. Sulla fig. La Figura 10.5 mostra una semplice sveglia che può accendere un CD o una radio e mostrare l'ora corrente o l'ora del segnale.

Le opzioni CD/radio e l'ora corrente/l'ora della sveglia sono parallele. Se volessi rappresentarlo con un diagramma di stato non parallelo, ti ritroveresti con un diagramma disordinato in quanto è necessario aggiungere gli stati. Dividere i due comportamenti in due diagrammi di stato lo rende molto più chiaro.

Riso. 10.5 comprende anche stato preistorico(pseudostato storico). Ciò significa che quando l'orologio è acceso, l'opzione radio/CD passa allo stato in cui si trovava l'orologio quando è stato spento. Una freccia che esce dalla storia mostra quale stato esisteva originariamente quando non c'era storia.

Implementazione dei diagrammi di stato

Un diagramma di stato può essere implementato in tre modi principali: utilizzando un'istruzione switch nidificata, il modello di stato e una tabella di stato. L'approccio più diretto all'utilizzo dei diagrammi di stato è un'istruzione switch nidificata, come quella nella Figura 1. 10.6.

Sebbene questo metodo sia semplice, è molto lungo anche per questo semplice caso. Inoltre, con questo approccio è molto facile perdere il controllo, quindi sconsigliamo di utilizzarlo anche in situazioni elementari.
Il modello State rappresenta una gerarchia di classi di stato per la gestione del comportamento dello stato. Ogni stato nel diagramma di stato ha la propria sottoclasse di stato. Il controller dispone di metodi per ogni evento che reindirizzano semplicemente alla classe state. Il diagramma di stato mostrato in fig. 10.1 potrebbe essere implementato utilizzando le classi mostrate in Fig. 10.7.

Il vertice della gerarchia è una classe astratta che contiene una descrizione di tutti i metodi che gestiscono gli eventi, ma nessuna implementazione.
Per ogni stato specifico, è sufficiente riscrivere il metodo gestore di un evento specifico che avvia la transizione dallo stato.
La tabella di stato rappresenta il diagramma di stato come dati.

Quindi, il diagramma di Fig. 10.1 può essere presentato sotto forma di tabella. 10.1.
Quindi costruiamo un interprete che utilizza la tabella di stato durante l'esecuzione del programma o un generatore di codice che genera classi basate su questa tabella.

Ovviamente, la maggior parte del lavoro sulla tabella di stato viene eseguita una volta, ma può essere utilizzata ogni volta che è necessario risolvere un problema relativo allo stato. La tabella degli stati di runtime può essere modificata senza ricompilazione, il che è abbastanza conveniente. Il modello di stato è più facile da assemblare e, sebbene ogni stato richieda una classe separata, la quantità di codice da scrivere è piuttosto ridotta.

Le implementazioni fornite sono quasi minime, ma danno un'idea di come applicare diagrammi di stato. In ogni caso, l'implementazione dei modelli di stato si traduce in un programma abbastanza stereotipato, quindi di solito è meglio utilizzare una qualche forma di generazione di codice per questo.

Iscriviti alle novità del sito, trovi il modulo di iscrizione nella colonna di destra del sito.

Se vuoi imparare a lavorare come freelance professionalmente, ti invitiamo al corso "".

Il diagramma UML è un linguaggio di descrizione grafica specializzato progettato per la modellazione di oggetti nello sviluppo di vari software. Questo linguaggio ha un ampio profilo ed è uno standard aperto che utilizza varie notazioni grafiche per creare un modello astratto di un sistema. L'UML è stato creato per consentire la definizione, la visualizzazione, la documentazione e la progettazione di tutti i tipi di sistemi software. Vale la pena notare che il diagramma UML stesso non è un linguaggio di programmazione, ma prevede la possibilità di generare un codice separato basato su di esso.

Perché è necessaria?

L'uso di UML non si esaurisce con la modellazione di tutti i tipi di software. Anche data lingua viene utilizzato attivamente oggi per modellare vari processi aziendali, condurre la progettazione di sistemi e visualizzare strutture organizzative.

Con l'aiuto di UML, gli sviluppatori di software possono garantire il pieno accordo nelle convenzioni grafiche utilizzate per rappresentare concetti generali, come: componente, generalizzazione, classe, comportamento e aggregazione. Questo raggiunge un maggior grado di concentrazione su architettura e design.

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

diagramma di classe

Un diagramma di classe UML è un diagramma di struttura statica progettato per descrivere la struttura di un sistema, oltre a mostrare gli attributi, i metodi e le dipendenze tra diverse classi.

Vale la pena notare il fatto 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 determinata area tematica e in esso vengono fornite solo classi di oggetti applicati.
  • Specifica. Il diagramma viene utilizzato nel processo di progettazione di vari sistemi informativi.
  • Implementazione. Il diagramma delle classi include tutti i tipi di classi utilizzate direttamente nel codice del programma.

Diagramma dei componenti

Il diagramma dei componenti UML è un diagramma a struttura completamente statica. Ha lo scopo di dimostrare la partizione di un certo sistema software in vari componenti strutturali, così come le connessioni tra di loro. Un diagramma componente UML può utilizzare tutti i tipi di modelli, librerie, file, pacchetti, eseguibili e molti altri elementi in quanto tali.

Diagramma struttura composita/composita

Anche il diagramma di struttura composito/composito UML è un diagramma di struttura statica, ma viene utilizzato per mostrare la struttura interna delle classi. Se possibile, questo diagramma può anche dimostrare l'interazione di elementi che si trovano nella struttura interna della classe.

Una sottospecie di questi è il diagramma di collaborazione UML, che viene utilizzato per dimostrare ruoli e interazioni. varie classi nei limiti della cooperazione. Sono abbastanza utili se devi modellare modelli di progettazione.

Vale la pena notare che i diagrammi di classe UML ei diagrammi a struttura composita possono essere utilizzati contemporaneamente.

Diagramma di distribuzione

Questo diagramma viene utilizzato per modellare i nodi in esecuzione, nonché tutti i tipi di artefatti che sono stati distribuiti su di essi. In UML 2, gli artefatti vengono distribuiti in vari nodi, mentre nella prima versione venivano distribuiti solo i componenti. Pertanto, il diagramma di distribuzione UML viene utilizzato principalmente per la seconda versione.

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

Diagramma oggetto

Questa vista consente di visualizzare un'istantanea completa o parziale del sistema in cui si sta creando determinato momento tempo. Visualizza completamente tutte le istanze delle classi di un particolare sistema, indicando i valori correnti dei loro parametri, nonché le relazioni tra di loro.

Schema del pacchetto

Questo diagramma è di natura strutturale e il suo contenuto principale è costituito da tutti i tipi di pacchetti, nonché dalle relazioni tra di essi. In questo caso, non esiste una netta separazione tra diversi diagrammi strutturali, per cui il loro uso è spesso utilizzato esclusivamente per comodità e non ha alcun significato semantico. Vale la pena notare che diversi elementi possono fornire altri diagrammi UML (esempi: pacchetti e diagrammi dei pacchetti stessi).

Il loro utilizzo viene effettuato per garantire l'organizzazione di più elementi in gruppi secondo un determinato attributo, al fine di semplificare la struttura, nonché per organizzare il lavoro con il modello di questo sistema.

diagramma di attività

Il diagramma di attività UML mostra la scomposizione di una particolare attività in più parti componenti. In questo caso, il concetto di "attività" si riferisce alla specifica di un determinato comportamento eseguibile sotto forma di esecuzione sequenziale parallela e coordinata di vari elementi subordinati - tipi di attività nidificati e varie azioni, uniti da flussi che vanno dal uscite di un certo nodo agli ingressi di un altro.

Il diagramma di attività UML viene spesso utilizzato per modellare vari processi aziendali, elaborazione parallela e sequenziale. Tra le altre cose, modellano tutti i tipi di procedure tecnologiche.

diagramma dell'automa

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

Una macchina a stati finiti è una specificazione di una sequenza di diversi stati attraverso i quali passa un certo oggetto, o un'interazione in risposta ad alcuni eventi della sua vita, così come la risposta di un oggetto a tali eventi. La macchina a stati utilizzata dal diagramma di stato UML è collegata all'elemento originale e utilizzata per definire il comportamento delle sue istanze.

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

Usa i diagrammi dei casi

Il diagramma dei casi d'uso UML mostra tutte le relazioni che si verificano tra gli attori, nonché i diversi casi d'uso. Il suo compito principale è fornire un mezzo completo attraverso il quale il cliente, l'utente finale o qualche sviluppatore possa discutere congiuntamente il comportamento e la funzionalità di un particolare sistema.

Se un diagramma dei casi d'uso UML viene utilizzato in un processo di modellazione del sistema, l'analista deve:

  • Separa chiaramente il sistema da modellare dal suo ambiente.
  • Identificare gli attori, le modalità della loro interazione con questo sistema, nonché la sua funzionalità prevista.
  • Impostare nel glossario come area tematica vari concetti a cui si riferiscono descrizione dettagliata funzionalità di questo sistema.

Se si sta sviluppando un diagramma di utilizzo in UML, la procedura inizia con una descrizione testuale, che si ottiene lavorando con il cliente. Allo stesso tempo, vale la pena notare che vari requisiti non funzionali sono completamente omessi nel processo di compilazione del modello dei casi d'uso e per essi sarà già formato un documento separato.

Comunicazioni

Il diagramma di comunicazione, proprio come il diagramma di sequenza UML, è transitivo, cioè esprime l'interazione, ma allo stesso tempo la dimostra. diversi modi e, se necessario, con il grado di precisione richiesto, è possibile convertire l'uno nell'altro.

Il diagramma di comunicazione riflette le interazioni che si verificano tra i vari elementi della struttura composita, così come i ruoli della cooperazione. La sua principale differenza rispetto al diagramma di sequenza è che indica chiaramente la relazione tra diversi elementi e il tempo non viene utilizzato come dimensione separata.

Questo tipo si distingue per un formato assolutamente libero di ordinare diversi oggetti e relazioni nello stesso modo in cui viene eseguito in un diagramma di oggetti. Se è necessario mantenere l'ordine dei messaggi in questo formato libero, vengono numerati cronologicamente. La lettura di questo diagramma inizia con il messaggio iniziale 1.0, e prosegue successivamente lungo la direzione in cui i messaggi vengono passati da un oggetto all'altro.

Per la maggior parte, tali diagrammi mostrano esattamente le stesse informazioni che ci fornisce un diagramma di sequenza, ma poiché utilizza un modo diverso di presentare le informazioni, alcune cose in un diagramma diventano molto più facili da determinare che in un altro. Vale anche la pena notare che un diagramma di comunicazione mostra più chiaramente con quali elementi interagisce ogni singolo elemento, mentre un diagramma di sequenza mostra più chiaramente in quale ordine vengono eseguite le interazioni.

diagramma di sequenza

Il diagramma di sequenza UML mostra le interazioni tra diversi oggetti, ordinati in base all'ora in cui si verificano. Tale diagramma mostra un'interazione ordinata nel tempo tra diversi oggetti. In particolare, visualizza tutti gli oggetti che prendono parte all'interazione, nonché la sequenza completa dei messaggi da essi scambiati.

Gli elementi principali in questo caso sono le designazioni di vari oggetti, nonché linee verticali, che rappresenta il passare del tempo e rettangoli che rappresentano l'attività di un oggetto particolare o l'esecuzione di una sua funzione.

Diagramma di cooperazione

Questo tipo di diagramma permette di mostrare le interazioni tra più oggetti, astraendo dalla sequenza di traduzione dei messaggi. Questo tipo di diagrammi in una forma compatta mostra assolutamente tutti i messaggi trasmessi e ricevuti di un determinato oggetto, nonché i formati di questi messaggi.

Poiché i diagrammi di sequenza ei diagrammi di comunicazione sono semplicemente viste diverse delle stesse procedure, Rational Rose offre la possibilità di creare un diagramma di sequenza di comunicazione da un diagramma di sequenza o viceversa e li sincronizza anche in modo completamente automatico.

Diagrammi di panoramica delle interazioni

Si tratta di diagrammi UML, che appartengono a un tipo di diagrammi di attività e includono sia elementi Sequence che costrutti di flusso di controllo.

Vale la pena notare il fatto che dato formato combina il diagramma di collaborazione e di sequenza, che offre l'opportunità di considerare l'interazione tra diversi oggetti nel sistema che si sta formando da diversi punti di vista.

Grafico dei tempi

Rappresenta Opzione alternativa diagramma di sequenza, che dimostra esplicitamente il cambiamento di stato sulla linea di vita con una certa scala temporale. Può essere molto utile in varie applicazioni in tempo reale.

Quali sono i vantaggi?

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

  • Il linguaggio è orientato agli oggetti, per cui le tecnologie per descrivere i risultati dell'analisi e della progettazione effettuate sono semanticamente vicine ai metodi di programmazione in tutti i tipi di linguaggi orientati agli oggetti di tipo moderno.
  • Usando questo linguaggio, il sistema può essere descritto da quasi ogni possibile punto di vista, e vari aspetti del suo comportamento sono descritti allo stesso modo.
  • Tutti i diagrammi sono relativamente facili da leggere anche dopo una relativamente rapida familiarizzazione con la sua sintassi.
  • UML ti consente di espandere, oltre a introdurre i tuoi stereotipi grafici e di testo, il che contribuisce al suo utilizzo non solo nell'ingegneria del software.
  • La lingua è diventata abbastanza diffusa e si sta anche sviluppando abbastanza attivamente.

Screpolatura

Nonostante il fatto che la costruzione di diagrammi UML abbia molti dei suoi vantaggi, sono spesso criticati per le seguenti carenze:

  • ridondanza. Nella stragrande maggioranza dei casi, i critici dicono che l'UML è troppo grande e complesso, e spesso questo è ingiustificato. Include molte costruzioni e diagrammi ridondanti o quasi inutili, e molto spesso tali critiche vanno alla seconda versione, e non alla prima, perché nelle revisioni più recenti ci sono più compromessi "progettati dal comitato".
  • Varie imprecisioni nella semantica. Poiché UML è definito da una combinazione di se stesso, inglese e OCL, manca della rigidità insita nei linguaggi definiti con precisione da tecniche di descrizione formale. In certe situazioni, la sintassi astratta di OCL, UML e inglese comincia a contraddirsi a vicenda, mentre in altri casi sono incomplete. L'imprecisione della descrizione della lingua stessa colpisce allo stesso modo sia gli utenti che i fornitori di strumenti, portando infine a incompatibilità degli strumenti a causa del modo unico in cui vengono trattate le diverse specifiche.
  • Problemi nel processo di implementazione e studio. Tutti i problemi di cui sopra creano alcune difficoltà nel processo di implementazione e apprendimento di UML, e questo è particolarmente vero quando la direzione costringe gli ingegneri a usarlo quando mancano di competenze precedenti.
  • Il codice riflette il codice. Un'altra opinione è che non sono i modelli belli e attraenti ad essere importanti, ma i sistemi funzionanti direttamente, cioè il codice è il progetto. In linea con questa visione, è necessario sviluppare di più metodo efficace software di scrittura. UML è apprezzato negli approcci che compilano modelli per rigenerare un o fattibile codice sorgente. Ma in realtà, questo potrebbe non essere sufficiente, perché il linguaggio manca delle proprietà di completezza di Turing e ogni codice generato alla fine sarà limitato da ciò che lo strumento di interpretazione UML può assumere o determinare.
  • Mancata corrispondenza del carico. Questo termine deriva dalla teoria dell'analisi dei sistemi per determinare l'incapacità dell'input di un certo sistema di percepire l'output di un altro. Come con qualsiasi notazione standard, l'UML può rappresentare determinati sistemi in modo più efficiente e conciso rispetto ad altri. Pertanto, lo sviluppatore è più propenso a quelle soluzioni che sono più comode per tessere tutti i punti di forza dell'UML, così come altri linguaggi di programmazione. Questo problema è più evidente se il linguaggio di sviluppo non è conforme ai principi fondamentali della dottrina ortodossa orientata agli oggetti, cioè non cerca di lavorare secondo i principi dell'OOP.
  • Cerca di essere versatile. UML è un linguaggio di modellazione scopo generale, che cerca di garantire la compatibilità con qualsiasi linguaggio di elaborazione esistente oggi. Nel contesto di un particolare progetto, affinché il team di progettazione possa raggiungere l'obiettivo finale, è necessario scegliere le caratteristiche applicabili di questo linguaggio. Oltretutto modi possibili le limitazioni del campo di applicazione dell'UML in ogni particolare area passano attraverso un formalismo che non è completamente formulato, ma che è esso stesso oggetto di critica.

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

10.4. DIAGRAMMA UML

10.4.1. Tipi di diagrammi Visual UML

UML consente di creare diversi tipi di diagrammi visivi:

Usa i diagrammi dei casi;

diagrammi di sequenza;

Grafici cooperativi;

diagrammi di classe;

Diagrammi di stato;

Schemi dei componenti;

Diagrammi di posizionamento.

I diagrammi illustrano vari aspetti del sistema. Ad esempio, un diagramma cooperativo mostra come gli oggetti devono interagire per implementare alcune funzionalità del sistema. Ogni grafico ha il suo scopo.

10.4.2. Usa i diagrammi dei casi

I diagrammi dei casi d'uso descrivono l'interazione tra i casi d'uso, che rappresentano le funzioni di un sistema, e gli attori, che rappresentano persone o sistemi che ricevono o trasmettono informazioni da e verso il sistema. questo sistema. Un esempio di diagramma di caso d'uso per un bancomat (ATM) è mostrato nella Figura 1. 10.1.

Riso. 10.1. Diagramma dei casi d'uso

Il diagramma rappresenta l'interazione tra casi d'uso e attori. Riflette i requisiti di sistema dal punto di vista dell'utente. Pertanto, i casi d'uso sono funzioni svolte dal sistema e gli attori sono parti interessate in relazione a sistema creato. I diagrammi mostrano quali attori avviano i casi d'uso. Mostrano anche quando l'attore riceve informazioni dal caso d'uso. In sostanza, un diagramma dei casi d'uso può illustrare i requisiti di un sistema. Nel nostro esempio, il cliente della banca avvia diversi casi d'uso: "Prelievo di denaro dal conto", "Trasferimento di denaro", "Deposito di denaro sul conto", "Mostra saldo", "Modifica numero identificativo", "Esegui pagamento". Il cassiere di banca può avviare il caso d'uso "Modifica numero di identificazione". Dal caso d'uso "Effettua un pagamento" c'è una freccia al sistema di credito. Gli attori possono essere sistemi esterni, in questo caso il Sistema Creditizio si presenta esattamente come un attore esterno al sistema ATM. Una freccia che punta dal caso d'uso all'attore indica che il caso d'uso fornisce alcune informazioni all'attore. In questo caso, il caso d'uso Effettua un pagamento fornisce al sistema di credito informazioni sul pagamento con carta di credito.

È possibile ottenere molte informazioni su un sistema dai diagrammi dei casi d'uso. Questo tipo di diagramma descrive la funzionalità complessiva del sistema. Utenti, project manager, analisti, sviluppatori, specialisti della garanzia della qualità e chiunque sia interessato al sistema nel suo insieme può capire cosa dovrebbe fare il sistema esaminando i diagrammi dei casi d'uso.

10.4.3. Diagrammi di sequenza

I diagrammi di sequenza rappresentano il flusso di eventi che si verificano all'interno di un caso d'uso. Ad esempio, il caso d'uso "Prelievo di denaro" prevede diverse possibili sequenze: prelievo di denaro, tentativo di prelevare denaro quando non c'è abbastanza denaro sul conto, tentativo di prelevare denaro utilizzando un numero di identificazione errato e altri. In fig. 10.2.

Figura 10.2. Diagramma della sequenza di prelievo di $ 20 del cliente Joe

La parte superiore del diagramma mostra tutti gli attori e gli oggetti richiesti dal sistema per eseguire il caso d'uso Prelievo di denaro. Le frecce corrispondono ai messaggi passati tra l'attore e l'oggetto o tra gli oggetti per eseguire le funzioni richieste. Va anche notato che il diagramma di sequenza mostra oggetti, non classi. Le classi sono tipi di oggetti. Gli oggetti sono concreti; invece di una classe Cliente il diagramma di sequenza rappresenta un particolare cliente, Joe.

Il caso d'uso inizia quando il cliente inserisce la propria carta nel lettore: questo oggetto è mostrato nel riquadro nella parte superiore del diagramma. Legge il numero della carta, apre l'oggetto account Joe e inizializza la schermata ATM. Lo schermo chiede a Joe il suo numero di registrazione. Il cliente inserisce il numero 1234. Lo schermo controlla il numero sull'oggetto account Joe e trova che sia corretto. Lo schermo presenta quindi a Joe un menu tra cui scegliere e seleziona "Ritira". Lo schermo chiede quanto vuole prelevare e Joe inserisce $ 20. Lo schermo preleva denaro dal conto. In tal modo, avvia una serie di processi eseguiti dall'oggetto Joe Account. Allo stesso tempo, viene verificato che il conto contenga almeno $ 20 e l'importo richiesto viene detratto dal conto. Poi bancomat viene incaricato di "emettere un assegno e $ 20 in contanti". Infine, lo stesso oggetto "Account di Joe" indica al lettore di carte di restituire la carta.

Quindi, questo diagramma di sequenza illustra la sequenza di azioni che implementano il caso d'uso "Prelievo di denaro dal conto" sull'esempio specifico del cliente Joe che preleva $ 20. Guardando questo diagramma, gli utenti acquisiscono familiarità con le specifiche del loro lavoro. Gli analisti vedono la sequenza (flusso) delle azioni, gli sviluppatori vedono gli oggetti da creare e le loro operazioni. I professionisti del controllo qualità comprenderanno i dettagli del processo e saranno in grado di sviluppare test per verificarli. Pertanto, i diagrammi di sequenza sono utili a tutti i partecipanti al progetto.

10.4.4. grafici cooperativi

I diagrammi cooperativi mostrano le stesse informazioni dei diagrammi di sequenza. Tuttavia, lo fanno in modo diverso e con obiettivi diversi. Mostrato in fig. 10.2 il diagramma di sequenza è riportato in fig. 10.3 sotto forma di diagramma cooperativo.

Come prima, gli oggetti sono mostrati come rettangoli e gli attori come figure. Se il diagramma di sequenza mostra l'interazione tra attori e oggetti nel tempo, allora non c'è connessione nel tempo nel diagramma cooperativo. Pertanto, si può vedere che il lettore di carte istruisce l'apertura del "conto di Joe" e il "conto di Joe" fa sì che il lettore di carte restituisca la carta al proprietario. Gli oggetti che interagiscono direttamente sono collegati da linee. Se, ad esempio, il lettore di carte comunica direttamente con lo schermo dell'ATM, è necessario tracciare una linea tra di loro. L'assenza di una linea significa che non c'è comunicazione diretta tra gli oggetti.

Riso. 10.3. Diagramma cooperativo che descrive il processo di prelievo di denaro da un conto

Quindi, il diagramma cooperativo mostra le stesse informazioni del diagramma di sequenza, ma è necessario per altri scopi. Gli specialisti del controllo qualità e gli architetti di sistema saranno in grado di comprendere la distribuzione dei processi tra gli oggetti. Diciamo che una sorta di diagramma cooperativo assomigli a una stella, in cui diversi oggetti sono associati a un oggetto centrale. L'architetto del sistema può concludere che il sistema dipende troppo da una struttura centrale e deve essere riprogettato per distribuire i processi in modo più uniforme. In un diagramma di sequenza, questo tipo di interazione sarebbe difficile da vedere.

10.4.5. diagrammi di classe

I diagrammi di classe riflettono l'interazione tra le classi di un sistema. Ad esempio, "l'account di joe" è un oggetto. Il tipo di tale oggetto può essere considerato un account in generale, ad es. "Account" è una classe. Le classi contengono dati e comportamenti (azioni) che influenzano tali dati. Pertanto, la classe Conto contiene il numero identificativo del cliente e le azioni che lo controllano. In un diagramma di classe, viene creata una classe per ogni tipo di oggetto dai diagrammi di sequenza o dai diagrammi cooperativi. Il diagramma delle classi per il caso d'uso "Prelievo di denaro" è mostrato nella Figura 1. 10.4.

Il diagramma mostra le relazioni tra le classi che implementano il caso d'uso "Prelievo di denaro". Quattro classi sono coinvolte in questo processo: Card Reader (lettore di carte), Account (conto), ATM (schermo ATM) e Cash Dispenser (registratore di cassa). Ogni classe sul diagramma delle classi è raffigurata come un rettangolo diviso in tre parti. La prima parte è il nome della classe, la seconda parte è il nome della classe. attributi. Un attributo è un'informazione che caratterizza una classe. Ad esempio, la classe Account (account) ha tre attributi: Account Number (numero di conto), PIN (numero di identificazione) e Balance (saldo). L'ultima parte contiene le operazioni della classe che la riflettono. comportamento(azioni compiute dalla classe). Le linee che collegano le classi mostrano l'interazione tra le classi.

Riso. 10.4. diagramma di classe

Gli sviluppatori usano i diagrammi di classe per creare effettivamente le classi. Strumenti come Rose generano una base di codice di classe che i programmatori compilano con i dettagli nella loro lingua preferita. Con questi diagrammi, gli analisti possono mostrare i dettagli di un sistema e gli architetti possono comprenderne il design. Se, ad esempio, una classe porta un carico funzionale eccessivo, questo sarà visibile nel diagramma delle classi e l'architetto può ridistribuirlo tra le altre classi. Il diagramma può essere utilizzato anche per identificare i casi in cui non è stata definita alcuna relazione tra le classi comunicanti. I diagrammi di classe dovrebbero essere creati per mostrare le classi interagenti in ogni caso d'uso. È inoltre possibile creare diagrammi più generali che coprano tutti i sistemi o sottosistemi.

10.4.6. Diagrammi di stato

I diagrammi di stato sono progettati per modellare i vari stati in cui può trovarsi un oggetto. Mentre un diagramma di classe mostra un'immagine statica delle classi e delle loro relazioni, i diagrammi di stato vengono utilizzati per descrivere le dinamiche del comportamento di un sistema.

I diagrammi di stato rappresentano il comportamento di un oggetto. Quindi, un conto bancario può avere diversi stati. Potrebbe essere aperto, chiuso o il credito su di esso potrebbe essere superato. Il comportamento dell'account cambia a seconda dello stato in cui si trova. Il diagramma di stato mostra esattamente queste informazioni. Sulla fig. 10.5 è un esempio di diagramma di stato per un conto bancario.

Riso. 10.5. Diagramma di stato per la classe Account

Questo diagramma mostra i possibili stati dell'account, nonché il processo di transizione dell'account da uno stato all'altro. Ad esempio, se il cliente richiede di chiudere un conto aperto, quest'ultimo va nello stato "Chiuso". Viene chiamato il requisito del cliente evento, sono gli eventi che provocano il passaggio da uno stato all'altro.

Quando un cliente preleva denaro da un conto aperto, il conto può entrare in uno stato di "sovracredito". Ciò accade solo se il saldo del conto è inferiore a zero, come indicato dalla condizione [ saldo negativo] sul nostro diagramma. Tra parentesi condizione determina quando può verificarsi o meno una transizione da uno stato all'altro.

Ci sono due stati speciali nel diagramma: iniziale E finale. Lo stato iniziale è evidenziato con un punto nero: corrisponde allo stato dell'oggetto al momento della sua creazione. Lo stato finale è indicato da un punto nero in un cerchio bianco: corrisponde allo stato dell'oggetto immediatamente prima della sua distruzione. Un diagramma di stato può avere uno e un solo stato iniziale. Allo stesso tempo, potrebbero esserci tutti gli stati finali di cui hai bisogno o potrebbero non essercene affatto.

Quando un oggetto si trova in uno stato particolare, è possibile eseguire determinati processi. Nel nostro esempio, quando il credito viene superato, viene inviato un messaggio corrispondente al cliente. Vengono chiamati i processi che si verificano quando un oggetto si trova in un particolare stato Azioni.

I diagrammi di stato non devono essere creati per ogni classe, vengono utilizzati solo in casi molto complessi. Se un oggetto di classe può esistere in più stati e comportarsi in modo diverso in ciascuno di essi, probabilmente avrebbe bisogno di un tale diagramma. Tuttavia, in molti progetti non vengono affatto utilizzati. Se sono stati creati diagrammi di stato, gli sviluppatori possono utilizzarli durante la creazione delle classi.

I diagrammi di stato sono necessari principalmente per scopi di documentazione.

10.4.7. Schemi dei componenti

I diagrammi dei componenti mostrano l'aspetto del modello a livello fisico. Descrive i componenti software del sistema e le relazioni tra di essi. Esistono due tipi di componenti: componenti eseguibili e librerie di codici.

Sulla fig. 10.6 mostra uno degli schemi dei componenti del sistema ATM. Questo diagramma mostra i componenti di un client del sistema ATM. In questo caso, il team di sviluppo ha deciso di realizzare il sistema utilizzando il linguaggio C++. Ogni classe ha il proprio file di intestazione e file di estensione. CPP in modo che ogni classe venga convertita nei propri componenti nel diagramma. Viene richiamato il componente scuro selezionato specifica del pacchetto e corrisponde al body file della classe C++ ATM (file .cpp). Un componente non selezionato è chiamato anche specifica del pacchetto, ma corrisponde a un file di intestazione della classe del linguaggio C++ (estensione file .h). Componente bancomat. exe è una specifica dell'attività e rappresenta il flusso di elaborazione delle informazioni. In questo caso, il thread di elaborazione è il programma eseguibile.

I componenti sono collegati da una linea tratteggiata che mostra le dipendenze tra di loro. Un sistema può avere più diagrammi di componenti a seconda del numero di sottosistemi o file eseguibili. Ogni sottosistema è un pacchetto di componenti.

I diagrammi dei componenti vengono utilizzati dai partecipanti al progetto che sono responsabili della compilazione del sistema. Il diagramma dei componenti dà un'idea dell'ordine in cui i componenti devono essere compilati, nonché di quali componenti eseguibili verranno creati dal sistema. Il diagramma mostra la corrispondenza delle classi ai componenti implementati. Quindi, è necessario dove inizia la generazione del codice.

Riso. 10.6. Diagramma dei componenti

10.4.8. Diagrammi di posizionamento

I diagrammi di posizione mostrano la posizione fisica dei vari componenti di un sistema su una rete. Nel nostro esempio, il sistema ATM è costituito da un largo numero sottosistemi che girano su dispositivi o nodi fisici separati. Lo schema di posizionamento del sistema ATM è riportato in fig. 10.7.

Da questo diagramma è possibile conoscere il layout fisico del sistema. I programmi client ATM verranno eseguiti in più posizioni in siti diversi. Attraverso reti chiuse, i client comunicheranno con il server ATM regionale. Eseguirà il software del server ATM. A sua volta, attraverso rete locale il server regionale interagirà con il server del database bancario che esegue Oracle. Infine, una stampante è collegata al server ATM regionale.

Quindi, questo diagramma mostra il layout fisico del sistema. Ad esempio, il nostro sistema ATM segue un'architettura a tre livelli in cui il primo livello ospita il database, il secondo livello ospita il server regionale e il terzo livello ospita il client.

10.7. Diagramma di posizionamento

Il diagramma di layout viene utilizzato dal project manager, dagli utenti, dall'architetto di sistema e dal personale operativo per determinare il layout fisico del sistema e l'ubicazione dei singoli sottosistemi. Il project manager spiegherà agli utenti come sarà il prodotto finito. Il personale operativo sarà in grado di pianificare il lavoro di installazione del sistema.

Dal libro Microsoft Office autore Leontiev Vitaly Petrovich

Diagrammi Lungi dall'essere sempre i numeri nella tabella ti permettono di fare un'impressione completa, anche se sono ordinati nel modo più conveniente per te. Usando il disponibile Microsoft Excel modelli di grafici, puoi ottenere un'immagine visiva dei dati della tua tabella senza

Dal libro Computer at 100. A partire da Windows Vista l'autore Zozulya Yuri

Diagrammi I diagrammi vengono utilizzati per presentare i dati tabulari in una forma grafica, che può migliorare significativamente la visibilità delle informazioni, mostrare il rapporto tra vari parametri o la dinamica del loro cambiamento. Gli strumenti vengono utilizzati per inserire grafici in Word

Dal libro Lavoro d'ufficio efficace autore Ptashinsky Vladimir Sergeevich

Grafici La caratteristica più visiva di Excel è la presentazione dei risultati dei calcoli o dei dati accumulati sotto forma di grafici (diagrammi): a volte i numeri più impressionanti non sono in grado di convincere come possono fare anche i semplici grafici. Excel ha

Da una cartella di lavoro di Excel. corso multimediale l'autore Medinov Oleg

Capitolo 8 Diagrammi Spesso Programma Excel sono utilizzati per creare documenti che rappresentano vari rapporti statistici e analitici. Questi possono essere rapporti di vendita, tabelle di misurazioni della temperatura dell'aria, dati di sondaggi sociologici, ecc. Le cifre non sono sempre

Dal libro Word 2007. Tutorial popolare l'autore Krainsky I

Costruire un grafico Per il primo esempio, sarà necessario creare la tabella mostrata in fig. 8.1. Riso. 8.1. Tabella di misurazione della temperatura Costruiremo un semplice grafico della temperatura basato sui dati di questa tabella.1. Evidenziare l'intervallo riempito nella tabella.2. Vai a

Dal libro Tutorial informatico autore Kolisnichenko Denis Nikolaevich

6.6. Grafici Tranne file grafici, v Documenti di paroleè possibile inserire grafici. Utilizzando i grafici, puoi visualizzare i dati numerici, ad esempio, tenere traccia di come cambiano i dati, vedere lo sviluppo di un progetto in dinamica. I grafici diventano simili

Dal libro Analisi e progettazione orientate agli oggetti con applicazioni C++ di esempio di Butch Gradi

14.9. Diagrammi Forse è il momento di trasformare i numeri secchi in grafici, rendendo la nostra tabella più bella e informativa? I grafici sono usati per questo. Dì quello che ti piace, ma il diagramma è percepito meglio della tabella Per costruire un diagramma, devi selezionare i valori con cui

Dal libro Tecnologie di programmazione l'autore Kamaev V.A

5.2. Diagrammi delle classi L'essenziale: classi e loro relazioni Un diagramma delle classi mostra le classi e le loro relazioni, rappresentando così l'aspetto logico di un progetto. Un singolo diagramma di classe rappresenta una vista particolare della struttura della classe. Nella fase di analisi, noi

Dal libro Modellazione dei processi aziendali con BPwin 4.0 autore Maklakov Sergey Vladimirovich

5.4. Diagrammi degli oggetti Essenziale: oggetti e loro relazioni Un diagramma degli oggetti mostra gli oggetti esistenti e le loro relazioni nella progettazione logica del sistema. In altre parole, un diagramma di oggetti è un'istantanea del flusso di eventi in una configurazione.

Dal libro OrCAD PSpice. Analisi circuiti elettrici di Keown J.

5.7. Diagrammi di processo. Essenziale: processori, dispositivi e connessioni I diagrammi di processo vengono utilizzati per mostrare la distribuzione dei processi tra i processori nella progettazione fisica di un sistema. Un diagramma di processo separato mostra una vista della struttura del processo

Dal libro VBA per manichini autore Cummings Steve

10.4. DIAGRAMMA UML 10.4.1. Tipi di diagrammi visivi UMLUML consente di creare diversi tipi di diagrammi visivi: diagrammi dei casi d'uso; diagrammi di sequenza; diagrammi cooperativi; diagrammi di classe; diagrammi di stato; diagrammi

Dal libro Macintosh Tutorial autore Skrylina Sofya

1.2.6. Cornice del diagramma La Figura 1.2.26 mostra un tipico esempio di diagramma di scomposizione con riquadri di delimitazione, chiamato cornice del diagramma. Riso. 1.2.26. Esempio di diagramma di scomposizione con wireframe Il wireframe contiene un titolo ( parte in alto telai) e basamento (parte inferiore).

Dal libro dell'autore

Grafici di temporizzazione Per ottenere i grafici di temporizzazione per le tensioni di ingresso e uscita, è necessario modificare leggermente il file di input. Come nell'esempio precedente, verrà utilizzata una tensione di ingresso sinusoidale: Vi 1 0 sin (0 0,5V 5kHz) Insieme all'analisi dei transitori

Dal libro dell'autore

Grafici e Grafici Solo uno specialista può vedere il significato dietro le interminabili file di numeri, ma chiunque può capire (o almeno pretendere di capire) un grafico a barre oa torta. VBA non ha strumenti di creazione di diagrammi integrati, ma tali

Dal libro dell'autore

5.1.14. Grafici I grafici sono una rappresentazione grafica dei dati numerici di una tabella. Pages offre diversi tipi di grafici: Colonna (colonnare), Colonna impilata (colonne a più livelli), Vag (istogramma), Vag impilato (istogramma a più livelli), linea (lineare), area (area), area in pila (multi-livello) stanco

Dal libro dell'autore

5.2.8. Grafici Un grafico è una rappresentazione grafica dei dati di un intervallo selezionato.Per creare un grafico, seguire il seguente algoritmo1. Creare una tabella di valori calcolati.2. Selezionare l'intervallo desiderato (può consistere in rettangoli non adiacenti

Penso che tutti abbiano sentito durante l'infanzia un detto come " Sette volte misura tagliata una volta". Nella programmazione è lo stesso. È sempre meglio pensare all'implementazione prima di passare il tempo a eseguirla. Spesso devi creare classi durante l'implementazione, inventare la loro interazione. E spesso una rappresentazione visiva di questo può aiutare a risolvere il problema nel modo più corretto È qui che aiutiamo UML.

Cos'è UML?

Se guardi le immagini nei motori di ricerca, diventa chiaro che UML- si tratta di schemi, frecce e quadrati. Ciò che è importante è che UML si traduca come Linguaggio di modellazione unificato. La parola Unificato è importante qui. Cioè, le nostre immagini saranno comprese non solo da noi, ma anche da altri che conoscono UML. Si scopre che questa è una lingua così internazionale per disegnare diagrammi.

Come dice Wikipedia

UML è un linguaggio di descrizione grafica per la modellazione di oggetti nei campi dello sviluppo software, modellazione dei processi aziendali, ingegneria dei sistemi e mappatura delle strutture organizzative.
La cosa più interessante a cui non tutti pensano o indovinano è che UML ha delle specifiche. Inoltre, esiste anche una specifica UML2. Ulteriori informazioni sulla specifica sono disponibili sul sito Web di Object Management Group. In realtà, questo gruppo è impegnato nello sviluppo delle specifiche UML. È anche interessante che UML non si limiti a descrivere la struttura delle classi. Esistono molti tipi di diagrammi UML. Una breve descrizione dei tipi di diagrammi UML può essere vista nella stessa Wikipedia: diagrammi UML o nel video di Timur Batyrshinov Panoramica dei diagrammi UML. UML è anche ampiamente utilizzato per descrivere vari processi, ad esempio qui: Single sign-on utilizzando JWT. Tornando all'uso dei diagrammi di classe UML, vale la pena notare il libro Head First: Design Patterns, in cui i modelli sono illustrati da quegli stessi diagrammi UML. Si scopre che l'UML viene effettivamente utilizzato. E si scopre che conoscere e comprendere la sua applicazione è un'abilità piuttosto utile.

Applicazione

Vediamo come puoi lavorare con questo stesso UML dall'IDE. Come IDE, prendi IntelliJ Idea. Se uso IntelliJ Idea Ultimate, allora avremo il plugin installato "out of the box" Supporto UML". Ti permette di generare automaticamente bellissimi diagrammi di classe. Ad esempio, tramite Ctrl + N o la voce di menu "Navigazione" -> "Classe" vai alla classe Lista di array. Ora, attraverso menù contestuale per nome della classe selezionare "Diagramma" -> "Mostra popup diagramma". Di conseguenza, otteniamo un bellissimo grafico:

Ma cosa succede se vuoi disegnare te stesso e anche se non esiste una versione definitiva di Idea? Se utilizziamo IntelliJ Idea Community Edition, non abbiamo altra scelta. Per fare ciò, devi capire come funziona un tale schema UML. Per prima cosa dobbiamo installare Graphviz . È un insieme di utilità di visualizzazione di grafici. Viene utilizzato dal plugin che useremo. Dopo l'installazione, è necessario aggiungere una directory bidone dalla directory installata graphviz ad una variabile di ambiente SENTIERO. Successivamente, in IntelliJ Idea, seleziona File -> Impostazioni dal menu. Nella finestra "Impostazioni", seleziona la categoria "Plugin", fai clic sul pulsante "Sfoglia repository" e installa il plug-in di integrazione PlantUML. Perché questo è così buono PlantUML? Utilizza un linguaggio di descrizione del grafico chiamato " punto" e questo gli consente di essere più universale, poiché questo linguaggio è utilizzato non solo da PlantUML. Inoltre, possiamo fare tutto ciò che facciamo di seguito non solo nell'IDE, ma anche in Servizio Online planttext.com. Dopo aver installato il plugin PlantUML, saremo in grado di creare diagrammi UML tramite "File" -> "Nuovo". Creiamo un diagramma "classe UML". Durante questo, viene generato automaticamente un modello con un esempio. Cancelliamo i suoi contenuti e creiamone uno nostro, armati di un articolo di Habr: Class Relations - from UML to code. E per capire come rappresentarlo nel testo, prendiamo il manuale PlantUML: plantuml class-diagram . In esso, proprio all'inizio, c'è una targa con come descrivere le connessioni:

A proposito delle connessioni stesse, possiamo ancora sbirciare qui: "Relazioni tra classi in UML. Esempi". Sulla base di questi materiali, iniziamo a creare il nostro diagramma UML. Aggiungi il seguente contenuto che descrive le due classi: @startuml class ArrayList ( ) class LinkedList ( ) @enduml Per vedere il risultato in Idea, seleziona "Visualizza" -> " Finestre degli strumenti" -> "PlantUML". Otterremo solo due quadrati che denotano le classi. Come sappiamo, entrambe queste classi implementano l'interfaccia List. Questa relazione di classi è chiamata implementazione (realizzazione). Una freccia con una linea tratteggiata è usata per rappresentare una tale relazione Disegniamola: interfaccia List List< | . . ArrayList List < | . . LinkedList List - один из дочерних классов Collection . То есть он наследуется от Collection. Эта связь называется обобщением (generalization). Выглядит как стрелка с обычной непрерывной линией. Изобразим её: interface Collection Collection < | -- List Для следующего типа связи добавим в описание класса ArrayList запись о pacchetto privato element array: ~ Object elementData Ora vogliamo mostrare che l'ArrayList contiene alcuni oggetti. In questo caso, il tipo di connessione sarà - aggregazione(aggregazione). L'aggregato in questo caso è ArrayList , perché contiene altri oggetti. Scegliamo l'aggregazione perché gli oggetti nella lista possono vivere anche senza la lista: non ne sono parte integrante. La loro durata non è legata alla durata della lista. L'unità dal latino è tradotta come "raccolto", cioè qualcosa composto da qualcosa. Ad esempio, nella vita esiste un'unità di pompaggio, che consiste in una pompa e un motore. L'unità stessa può essere smontata, lasciando alcuni dei suoi componenti. Ad esempio, per vendere o inserire un'altra unità. Quindi è sulla lista. E questo si esprime sotto forma di un rombo vuoto all'unità e di una linea continua. Mettiamola così: class Object ( ) ArrayList o- Object Ora vogliamo mostrare che, a differenza di ArrayList , la classe LinkedList contiene Node - contenitori che fanno riferimento a dati memorizzati. In questo caso, i nodi fanno parte della stessa LinkedList e non possono vivere separatamente. Il nodo non è contenuto memorizzato direttamente, ma contiene solo un riferimento ad esso. Ad esempio, quando aggiungiamo una riga a LinkedList, aggiungiamo un nuovo nodo che contiene un collegamento a quella riga, nonché un collegamento al nodo precedente e successivo. Questo tipo di connessione è chiamato composizione(composizione). Per visualizzare un composto (uno che consiste di parti), viene disegnato un robic pieno, una linea continua conduce ad esso. Ora scriviamo questo come una visualizzazione testuale del collegamento: class Node ( ) LinkedList * -- Node E ora dobbiamo imparare come visualizzare un altro importante tipo di collegamento - dipendenza(relazione di dipendenza). Viene utilizzato quando una classe ne utilizza un'altra, mentre la classe non contiene la classe utilizzata e non è il suo successore. Ad esempio, LinkedList e ArrayList possono creare un ListIterator . Visualizziamolo come frecce tratteggiate: class ListIterator ListIterator< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

Puoi dettagliare quanto ti serve. Tutte le designazioni sono elencate qui: "PlantUML - Class Diagram". Inoltre, non c'è nulla di soprannaturale nel disegnare un tale schema e quando lavori ai tuoi compiti, puoi disegnarlo rapidamente a mano. Ciò svilupperà le capacità per pensare attraverso l'architettura dell'applicazione e aiuterà a identificare i difetti della struttura della classe nella fase iniziale, e non dopo aver già trascorso una giornata a implementare il modello sbagliato. Penso che sia un buon motivo per provarlo?)

Automazione

Esistono vari modi per generare automaticamente diagrammi PlantUML. Ad esempio, dentro idee C'è un plugin SketchIT, ma non li disegna correttamente. Ad esempio, l'implementazione delle interfacce viene disegnata in modo errato (visualizzata come ereditarietà). Ci sono anche esempi online su come integrarlo nel ciclo di vita della build del tuo progetto. Diciamo per Esperto di c'è un esempio che usa uml-java-docklet . Per mostrare come si fa, usiamo l'archetipo Maven per creare rapidamente un progetto Maven. Eseguiamo il comando: mvn archetype:generate Sulla questione della scelta di un filtro ( Scegli un numero o applica un filtro) lasciare l'impostazione predefinita semplicemente premendo Invio. Sarà sempre" maven-archetipo-quickstart". Selezioniamo l'ultima versione. Quindi, rispondi alle domande e completa la creazione del progetto:

Poiché Maven non è al centro di questo articolo, le risposte alle tue domande su Maven sono disponibili nel Maven Users Center . Nel progetto generato, apri il file di descrizione del progetto per la modifica, pom.xml. Copiamo il contenuto dalla descrizione di uml-java-docklet che si installa al suo interno. L'artefatto utilizzato nella descrizione non è stato trovato nel repository Maven Central. Ma ha funzionato per me con questo: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0 . Cioè, in quella descrizione devi solo sostituire ID gruppo Con " info.leadinglight" SU " com.chfourie" e metti la versione " 1.0.0 ". Successivamente, possiamo eseguire nella directory in cui si trova il file pom.xml questi comandi sono: mvn clean install e mvn javadoc:javadoc . Ora, se apriamo la documentazione generata (explorer target\site\apidocs\index.html), vedremo i diagrammi UML. A proposito, l'implementazione è già visualizzata correttamente qui)

Conclusione

Come puoi vedere, UML ti consente di visualizzare la struttura della tua applicazione. Inoltre, UML non si limita solo a questo. Con l'aiuto di UML, puoi descrivere vari processi all'interno della tua azienda o descrivere il processo aziendale all'interno del quale opera la funzione che scrivi. Sta a te decidere quanto UML ti è utile personalmente, ma sarà comunque utile trovare il tempo e conoscerlo più in dettaglio. #Viacheslav Versione russa di questo post: UML diagram Java su CodeGym

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: