UML - Panoramica

UML è un linguaggio standard per specificare, visualizzare, costruire e documentare gli artefatti dei sistemi software.

UML è stato creato dall'OMG (Object Management Group) e la bozza della specifica UML 1.0 è stata proposta all'OMG nel gennaio 1997.

OMG si impegna continuamente per creare un vero standard di settore.

  • UML sta per Unified Modeling Language.

  • UML è diverso dagli altri linguaggi di programmazione comuni come C ++, Java, COBOL, ecc.

  • UML è un linguaggio pittorico utilizzato per creare progetti software.

  • UML può essere descritto come un linguaggio di modellazione visuale per scopi generali per visualizzare, specificare, costruire e documentare il sistema software.

  • Sebbene UML sia generalmente utilizzato per modellare sistemi software, non è limitato all'interno di questo confine. Viene anche utilizzato per modellare anche sistemi non software. Ad esempio, il flusso di processo in un'unità di produzione, ecc.

UML non è un linguaggio di programmazione, ma è possibile utilizzare strumenti per generare codice in vari linguaggi utilizzando i diagrammi UML. UML ha una relazione diretta con l'analisi e la progettazione orientata agli oggetti. Dopo un po 'di standardizzazione, UML è diventato uno standard OMG.

Obiettivi di UML

Un'immagine vale più di mille parole , questo idioma si adatta perfettamente alla descrizione di UML. I concetti orientati agli oggetti sono stati introdotti molto prima di UML. A quel punto, non c'erano metodologie standard per organizzare e consolidare lo sviluppo orientato agli oggetti. Fu allora che UML entrò in scena.

Ci sono una serie di obiettivi per lo sviluppo di UML, ma il più importante è definire un linguaggio di modellazione generico, che tutti i modellisti possono utilizzare e deve anche essere reso semplice da comprendere e utilizzare.

I diagrammi UML non sono fatti solo per gli sviluppatori, ma anche per utenti aziendali, persone comuni e chiunque sia interessato a comprendere il sistema. Il sistema può essere un sistema software o non software. Quindi deve essere chiaro che UML non è un metodo di sviluppo piuttosto si accompagna ai processi per renderlo un sistema di successo.

In conclusione, l'obiettivo di UML può essere definito come un semplice meccanismo di modellazione per modellare tutti i possibili sistemi pratici nell'ambiente complesso di oggi.

Un modello concettuale di UML

Per comprendere il modello concettuale di UML, prima dobbiamo chiarire cos'è un modello concettuale? e perché è necessario un modello concettuale?

  • Un modello concettuale può essere definito come un modello fatto di concetti e delle loro relazioni.

  • Un modello concettuale è il primo passo prima di disegnare un diagramma UML. Aiuta a capire le entità nel mondo reale e come interagiscono tra loro.

Poiché UML descrive i sistemi in tempo reale, è molto importante creare un modello concettuale e poi procedere gradualmente. Il modello concettuale di UML può essere padroneggiato apprendendo i seguenti tre elementi principali:

  • Elementi costitutivi di UML
  • Regole per collegare gli elementi costitutivi
  • Meccanismi comuni di UML

Concetti orientati agli oggetti

UML può essere descritto come il successore dell'analisi e della progettazione orientata agli oggetti (OO).

Un oggetto contiene sia dati che metodi che controllano i dati. I dati rappresentano lo stato dell'oggetto. Una classe descrive un oggetto e forma anche una gerarchia per modellare il sistema del mondo reale. La gerarchia è rappresentata come eredità e le classi possono anche essere associate in modi diversi secondo il requisito.

Gli oggetti sono le entità del mondo reale che esistono intorno a noi ei concetti di base come astrazione, incapsulamento, ereditarietà e polimorfismo possono essere rappresentati utilizzando UML.

UML è abbastanza potente da rappresentare tutti i concetti che esistono nell'analisi e nella progettazione orientata agli oggetti. I diagrammi UML sono rappresentazioni solo di concetti orientati agli oggetti. Pertanto, prima di apprendere UML, diventa importante comprendere in dettaglio il concetto di OO.

Di seguito sono riportati alcuni concetti fondamentali del mondo orientato agli oggetti:

  • Objects - Gli oggetti rappresentano un'entità e l'elemento costitutivo di base.

  • Class - La classe è la stampa blu di un oggetto.

  • Abstraction - L'astrazione rappresenta il comportamento di un'entità del mondo reale.

  • Encapsulation - L'incapsulamento è il meccanismo per legare insieme i dati e nasconderli al mondo esterno.

  • Inheritance - L'ereditarietà è il meccanismo per creare nuove classi da quelle esistenti.

  • Polymorphism - Definisce il meccanismo che esiste in diverse forme.

Analisi e progettazione OO

OO può essere definito come un'indagine e per essere più specifici, è l'indagine sugli oggetti. Design significa collaborazione di oggetti identificati.

Pertanto, è importante comprendere l'analisi OO e i concetti di progettazione. Lo scopo più importante dell'analisi OO è identificare gli oggetti di un sistema da progettare. Questa analisi viene eseguita anche per un sistema esistente. Ora un'analisi efficiente è possibile solo quando siamo in grado di iniziare a pensare in un modo in cui gli oggetti possono essere identificati. Dopo aver identificato gli oggetti, vengono identificate le loro relazioni e infine viene prodotto il design.

Lo scopo dell'analisi e della progettazione OO può essere descritto come:

  • Identificazione degli oggetti di un sistema.

  • Identificare le loro relazioni.

  • Realizzare un design, che può essere convertito in eseguibili utilizzando linguaggi OO.

Ci sono tre passaggi di base in cui i concetti OO vengono applicati e implementati. I passaggi possono essere definiti come

OO Analysis → OO Design → OO implementation using OO languages

I tre punti precedenti possono essere descritti in dettaglio come:

  • Durante l'analisi OO, lo scopo più importante è identificare gli oggetti e descriverli in modo corretto. Se questi oggetti vengono identificati in modo efficiente, il prossimo lavoro di progettazione è facile. Gli oggetti dovrebbero essere identificati con le responsabilità. Le responsabilità sono le funzioni svolte dall'oggetto. Ogni oggetto ha un certo tipo di responsabilità da eseguire. Quando queste responsabilità sono collaborate, lo scopo del sistema è soddisfatto.

  • La seconda fase è la progettazione OO. In questa fase si pone l'accento sui requisiti e sul loro soddisfacimento. In questa fase, gli oggetti vengono collaborati secondo la loro associazione prevista. Una volta completata l'associazione, anche il design è completo.

  • La terza fase è l'implementazione OO. In questa fase, il design viene implementato utilizzando linguaggi OO come Java, C ++, ecc.

Ruolo di UML nella progettazione OO

UML è un linguaggio di modellazione utilizzato per modellare sistemi software e non software. Sebbene UML sia utilizzato per sistemi non software, l'enfasi è sulla modellazione di applicazioni software OO. La maggior parte dei diagrammi UML discussi finora sono usati per modellare diversi aspetti come statico, dinamico, ecc. Ora qualunque sia l'aspetto, gli artefatti non sono altro che oggetti.

Se esaminiamo il diagramma delle classi, il diagramma degli oggetti, il diagramma di collaborazione, i diagrammi di interazione, tutti sarebbero fondamentalmente progettati sulla base degli oggetti.

Quindi, la relazione tra il design OO e UML è molto importante da capire. Il design OO viene trasformato in diagrammi UML in base al requisito. Prima di comprendere in dettaglio l'UML, il concetto di OO dovrebbe essere appreso correttamente. Una volta che l'analisi e la progettazione dell'OO sono state eseguite, il passaggio successivo è molto semplice. L'input dall'analisi e dalla progettazione OO è l'input per i diagrammi UML.