Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikipediaL'enciclopedia libera
Ricerca

Unified Modeling Language

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento daUML)
Disambiguazione – "UML" rimanda qui. Se stai cercando altri significati, vediUML (disambigua).
Raccolta di diagrammi UML

Iningegneria del software,UML (Unified Modeling Language, "linguaggio di modellizzazione unificato") è unlinguaggio di modellazione edi specifica basato sulparadigma orientato agli oggetti. Il nucleo del linguaggio fu definito nel 1996 daGrady Booch,Jim Rumbaugh eIvar Jacobson (detti "i tre amigos") sotto l'egida dell'Object Management Group (OMG), consorzio che tuttora gestisce lo standard UML.

Storia

[modifica |modifica wikitesto]

I linguaggi per la modellazione orientata agli oggetti iniziarono a svilupparsi in diversi contesti a partire daglianni ottanta. Si trattava di notazioni di varia natura, che consentivano di descrivere la struttura di un sistema software a oggetti, in termini diclassi e relazioni fra classi, ed eventualmente il suo comportamento dinamico. La proliferazione di queste notazioni diede luogo a quelle che furono poi battezzate "guerre dei metodi" (method wars), con diversi progettisti o organizzazioni che adottavano e sostenevano una particolare notazione a scapito di altre adottate altrove. Intorno alla metà deglianni novanta diversi metodi e linguaggi iniziarono a fondersi e si iniziò a delineare la possibilità di una integrazione dei principali formalismi in una notazione universalmente accettabile.

Fra i metodi e le notazioni più apprezzati e diffusi del periodo spiccavanoOMT (Object Modeling Technique) diJim Rumbaugh e il cosiddetto metodoBooch diGrady Booch, entrambi ricercatori pressoRational Software. Il lavoro di unificazione iniziò con loro; in seguito si unì a questo sforzo Jacobson con la suacasa di sviluppoObjectory. Il primo risultato congiunto di questoteam fuOOSE (Object Oriented Software Engineering).

Mentre "i tres amigos" operavano per unificare i propri approcci all'analisi e alla progettazione a oggetti, il progetto fu accolto sotto l'egida dell'OMG (Object Management Group), un consorzio fondato con l'obiettivo di creare e gestirestandard nel contesto dello sviluppo del software a oggetti. Nel 1995 l'OMG raccolse tutti i principali metodologisti del settore in un incontro internazionale per discutere della notazione unificata. Nel 1996 l'OMG emise unaRFP (Request for Proposal) per questa notazione. Nello stesso anno Booch, Rumbaugh e Jacobson misero a punto lerelease 0.9 e 0.91 di UML. Il progetto fu ben accolto dalla comunità internazionale e innumerevoli grandi organizzazioni si unirono a Rational per proseguirlo, per esempioDigital,Hewlett-Packard,IBM,Microsoft,Oracle eUnisys. Nel 1997 questo gruppo esteso realizzò UML 1.0 che fu sottoposto alla OMG come risposta alla RFP dell'anno precedente.

La release 1.1 di UML contribuì a consolidare la semantica del linguaggio e incluse elementi tratti da una proposta avanzata indipendentemente all'OMG da un gruppo composto daIBM,ObjectTime,Ptech e altre.

Descrizione

[modifica |modifica wikitesto]

Il linguaggio nacque con l'intento di unificare approcci precedenti, dovuti ai tre padri di UML e altri, raccogliendo lemigliori prassi nel settore e definendo così unostandard industriale unificato. UML svolge un'importantissima funzione di "lingua franca" nella comunità della progettazione e programmazione a oggetti. Gran parte della letteratura di settore usa UML per descrivere soluzioni analitiche e progettuali in modo sintetico e comprensibile a un vasto pubblico.

La versione 2.0 è stata consolidata nel 2004 e ufficializzata da OMG nel 2005. UML 2.0 riorganizza molti degli elementi della versione precedente (1.5) in un quadro di riferimento ampliato e introduce molti nuovi strumenti, inclusi alcuni nuovi tipi di diagrammi. SebbeneOMG indichi UML 2.0 come la versione "corrente" del linguaggio, la transizione è di fatto ancora in corso; le stesse specifiche pubblicate da OMG sono ancora non completamente aggiornate e il supporto dei tool a UML 2.0 è, nella maggior parte dei casi, appena abbozzato. L'ultima versione è la 2.5, finalizzata nel 2013.

Caratteristiche generali

[modifica |modifica wikitesto]

La notazione UML è semi-grafica esemi-formale; un modello UML è costituito da una collezione organizzata didiagrammi correlati, costruiti componendo elementi grafici con significato formalmente definito, elementi testuali formali, ed elementi di testo libero. Ha unasemantica molto precisa e un grande potere descrittivo.

Il linguaggio è stato progettato con l'obiettivo esplicito di facilitare il supporto software alla costruzione di modelli e l'integrazione di questo supporto con gliambienti integrati di sviluppo. In particolare, OMG gestisce una famiglia di standard correlata a UML, dettaModel Driven Architecture (MDA), che ha lo scopo di fornire le fondamenta concettuali e semantiche per lo sviluppo di ambienti evoluti diround-trip engineering in cui la modellazione UML possa sostituire di fatto la programmazione tradizionale in qualche misura. Sebbene questo obiettivo sia ancora da raggiungere, moltiIDE comprendono strumenti di modellazione in UML e forniscono meccanismi automatici di traduzione parziale dei diagrammi UML incodice e viceversa. Viceversa, molti ambienti software dedicati alla modellazione in UML consentono di generare codice in diversi linguaggi.

UML è un linguaggio di modellazione generale che fornisce concetti e strumenti applicabili in tutti i contesti. Poiché particolari domini applicativi o famiglie di applicazioni potrebbero aver bisogno di concetti ulteriori e specifici, UML fornisce un meccanismo standard che consente di estendere il linguaggio. Un'estensione di UML per un particolare contesto viene detta unprofilo UML.

Aspetti della modellazione

[modifica |modifica wikitesto]

UML consente di descrivere un sistema secondo tre aspetti principali, per ciascuno dei quali si utilizzano diagrammi specifici che possono poi essere messi in relazione fra loro:

  • ilmodello funzionale (functional model) rappresenta il sistema dal punto di vista dell'utente, ovvero ne descrive il suo comportamento così come esso è percepito all'esterno, prescindendo dal suo funzionamento interno. Questo tipo di modellazione corrisponde, iningegneria del software, all'analisi dei requisiti. La modellazione funzionale utilizza gliUse Case Diagram (diagrammi dei casi d'uso).
  • il modello a oggetti (object model) rappresenta la struttura e sottostruttura del sistema utilizzando i concettiobject-oriented diclasse,oggetto, le relazioni fra classi e fra oggetti. In ingegneria del software, questo tipo di modellazione può essere utilizzata sia nella fase dianalisi del dominio sia nelle varie fasi diprogetto a diversi livelli di dettaglio. Utilizzaclass diagram (diagrammi delle classi),object diagram (diagrammi degli oggetti), edeployment diagram (diagrammi di sviluppo).
  • il modello dinamico (dynamic model) rappresenta il comportamento degli oggetti del sistema, ovvero la loro evoluzione nel tempo e le dinamiche delle loro interazioni. È strettamente legato al modello a oggetti e viene impiegato negli stessi casi. Utilizza isequence diagram (diagrammi di sequenza), idiagrammi delle attività e glistatechart diagram (diagrammi degli stati).

UML 2.0

[modifica |modifica wikitesto]

La versione 2.0 di UML, ufficializzata da OMG nel 2005, presenta numerose novità rispetto alla precedente versione 1.5, che resta comunque quella più diffusamente supportata dagli strumenti di modellazione e citata nella letteratura.

Fra le principali novità di UML 2.0 vi sono:

Alcuni elementi di modello e diagrammi hanno cambiato nome; per esempio, icollaboration diagram si chiamano oracommunication diagram.

Applicazioni

[modifica |modifica wikitesto]

UML non definisce alcuno specifico metodo per la creazione di modelli. UML può quindi essere utilizzato nel contesto di diversi approcci. La OMG gestisce un metodo standard correlato a UML, ma proposto come specifica indipendente, dettoRUP.

UML consente di costruiremodelli object-oriented per rappresentaredomini di diverso genere. Nel contesto dell'ingegneria del software, viene usato soprattutto per descrivere il dominio applicativo di unsistema software e/o il comportamento e la struttura del sistema stesso. Il modello è strutturato secondo un insieme di viste che rappresentano diversi aspetti della cosa modellata (funzionamento, struttura, comportamento e così via), a scopo sia dianalisi sia diprogetto, mantenendo latracciabilità dei concetti impiegati nelle diverse viste. Oltre che per la modellazione di sistemi software, UML viene spesso impiegato per descrivere domini di altri tipi come sistemihardware, strutture organizzative aziendali,processi di business.

Lo standard UML, gestito da OMG, definisce una sintassi e delle regole di interpretazione; non si tratta quindi di un metodo di progettazione e per questo motivo può essere adottato con diversi metodi o in ambiti diversi da quello informatico.

Struttura di un modello UML

[modifica |modifica wikitesto]

Un modello UML è costituito da:

  1. Viste: mostrano i diversi aspetti del sistema per mezzo di un insieme di diagrammi.
  2. Diagrammi: permettono di descrivere graficamente le viste logiche.
  3. Elementi del modello: concetti che permettono di realizzare vari diagrammi (es. attori, classi,package, oggetti, e così via).

Le Viste

[modifica |modifica wikitesto]

Lo strato più esterno dell'UML è costituito dalle seguentiviste:

  1. Vista dei casi d'uso (use case view) utilizzata per analizzare i requisiti utente. Obiettivo di questo livello di analisi è studiare il sistema considerandolo come una scatola nera. È necessario concentrarsi su cosa il sistema deve fare astraendosi il più possibile dal come: è necessario individuare tutti gli attori, i casi d'uso e le relative associazioni. Importante è dettagliare i requisiti del cliente, capirne i desideri più o meno consapevoli, cercare di prevedere i possibili sviluppi futuri, ecc.
  2. Vista di progettazione (design view) descrive come le funzionalità del sistema devono essere realizzate; in altre parole analizza il sistema dall'interno (scatola trasparente).
  3. Vista di implementazione (implementation view) descrive i package, le classi e le reciproche dipendenze.
  4. Vista dei processi (process view) individua i processi e le entità che li eseguono sia per un utilizzo efficace delle risorse, sia per poter stabilire l'esecuzione parallela degli oggetti.
  5. Vista di sviluppo (deployment view) mostra l'architettura fisica del sistema e definisce la posizione delle componenti software nella struttura stessa.

I diagrammi classici (UML 1.x)

[modifica |modifica wikitesto]

Diagramma dei casi d'uso

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma dei casi d'uso.

I diagrammi dei casi d'uso (UCD) modellano ilcomportamento esterno di unsistema in termini dellefunzioni che esso mette a disposizione agliattori che interagiscono con essi (utenti, altri sistemi software, ecc.). Gli UCD sono il diagramma principale nellavista dei casi d'uso. In moltimodelli di sviluppo software basati su UML, i casi d'uso sono la vista principale del sistema (processi "use case driven").

Diagramma delle classi

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma delle classi.

Diagramma degli oggetti

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma degli oggetti.

Diagramma degli stati UML

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma degli stati UML.

Diagramma di attività

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma di attività.

Diagramma di sequenza

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma di sequenza.

Diagramma di comunicazione

[modifica |modifica wikitesto]

Nota: questo tipo di diagramma si chiamava "diagramma di collaborazione" (collaboration diagram) in UML 1.x

Lo stesso argomento in dettaglio:Diagramma di comunicazione.

Diagramma dei componenti

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma dei componenti.

Diagramma di deployment

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Diagramma di deployment.

Relazioni fra diagrammi

[modifica |modifica wikitesto]

Il diagramma delle classi e i diagrammi di interazione vengono usati per modellare la realizzazione dei casi d'uso, mentre il diagramma dei componenti e quello dideployment permettono di specificare l'architettura di sistema che dovrà implementare i casi d'uso. Un ruolo specifico può essere svolto dai diagrammi di stato e di attività. È possibile utilizzare un diagramma di stato per rappresentare l'evoluzione degli stati, cioè delle condizioni in cui il sistema si può trovare durante l'esecuzione del caso d'uso. Inoltre è possibile rappresentare la sequenza dei passi e le condizioni che specificano uno o più scenari del caso d'uso con un diagramma di attività. I diagrammi UML permettono la modellazione della struttura statica e del comportamento dinamico di un sistema. Il sistema è rappresentato come un insieme di oggetti (moduli software) che collaborano e reagiscono a eventi esterni per eseguire attività a beneficio dei clienti (utilizzatori). Certi modelli UML enfatizzano alcuni aspetti del sistema e ne ignorano altri che possono essere evidenziati da altri modelli. Insieme, tutti i modelli forniscono una descrizione completa del sistema e possono essere classificati in tre gruppi:

  1. modelli dello stato (vista statica): descrivono le strutture statiche dei dati e si possono ottenere utilizzando per esempio i diagrammi delle classi;
  2. modelli del comportamento (vista operativa): descrivono la collaborazione tra oggetti. Ci sono molte tecniche di visualizzazione per la modellazione del comportamento, come il diagramma dei casi d'uso, il diagramma di sequenza, il diagramma di collaborazione e il diagramma di attività;
  3. modelli del cambiamento di stato (vista dinamica): descrivono gli stati permessi dal sistema nel tempo. La prima tecnica di visualizzazione è il diagramma degli stati, basato su un modello di evoluzione degli stati di un oggetto.

Diagrammi introdotti in UML 2.0

[modifica |modifica wikitesto]

Package Diagram

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Package Diagram.

Composite Structure Diagram

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Composite Structure Diagram.

Timing Diagram

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Timing Diagram.

Interaction Overview Diagram

[modifica |modifica wikitesto]
Lo stesso argomento in dettaglio:Interaction Overview Diagram.

Estendibilità e profili

[modifica |modifica wikitesto]

UML include tre meccanismi che consentono l'estensione della suasintassi e della suasemantica da parte dell'utente:stereotipi,tagged value econstraint. Questi strumenti possono essere usati nel contesto di un modello per esprimere concetti altrimenti non rappresentabili in UML, o non rappresentabili in modo chiaro, sufficientemente astratto, e così via. Iprofili UML sono collezioni di stereotipi,tagged value econstraint che specializzano il linguaggio per particolaridomini applicativi o per l'uso di UML in congiunzione con particolare tecnologie. Fra i profili riconosciuti ufficialmente da OMG si trovano profili perCORBA, per isistemi distribuiti, per sistemi con vincoli diQoS e persistemi real-time.

Software per UML

[modifica |modifica wikitesto]

Esistono moltissimi strumenti software per la modellazione in UML e moltissimiambienti integrati di sviluppo che includono funzioni di modellazione in UML.

Strumenti liberi

[modifica |modifica wikitesto]

Si riportano qui alcuni strumentiliberi ed open source per la modellazione in UML. Si veda anche ilsito ufficiale di UML per un elenco aggiornato. La maggior parte di questi strumenti supporta solo parzialmente o non supporta la versione 2.0 di UML.

Strumenti proprietari

[modifica |modifica wikitesto]

Si riportanostrumenti proprietari per la modellazione UML.

Bibliografia

[modifica |modifica wikitesto]

Voci correlate

[modifica |modifica wikitesto]

Altri progetti

[modifica |modifica wikitesto]

Altri progetti

Collegamenti esterni

[modifica |modifica wikitesto]
V · D · M
StandardISO
Liste:Lista di standard ISO ·Lista di latinizzazioni ISO ·Lista di standard IEC
Categorie:Standard ISO ·Protocolli OSI
1-99991 ·2 ·3 ·4 ·5 ·9 ·16 ·31 ·128 ·140 (-5 ·-7) ·216 ·217 ·226 ·228 ·233 ·259 ·269 ·302 ·306 ·428 ·639 (-1,-2,-3,-5,-6) ·646 ·690 ·717 ·732 ·746 ·843 ·1000 ·1007 ·1073-1 ·1413 ·1745 ·2014 ·2015 ·2022 ·2108 ·2145 ·2281 ·2709 ·2711 ·2788 ·3029 ·3103 ·3166 (-1,-2,-3) ·3297 ·3307 ·3534 (-1,-2) ·3602 ·3864 ·3901 ·3977 ·4031 ·4157 ·4217 ·5218 ·5775 ·5776 ·5964 ·6166 ·6344 ·6346 ·6425 ·6429 ·6438 ·6523 ·6709 ·7001 ·7002 ·7010 ·7098 ·7185 ·7498 ·7736 ·7810 ·7811 ·7812 ·7813 ·7816 ·8000 ·8217 ·8571 ·8583 ·8601 ·8632 ·8652 ·8807 ·8820-5 ·8859 (-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16) ·9000 ·9075 ·9126 ·9241 ·9362 ·9407 ·9506 ·9529 ·9594 ·9660 ·9897 ·9899 (:1999) ·9945 ·9984 ·9985 ·9995
10000-1999910005 ·10006 ·10007 ·10012 ·10118-3 ·10160 ·10161 ·10165 ·10179 ·10206 ·10303 (-11,-21,-22,-238,-28) ·10383 ·10487 ·10585 ·10589 ·10646 ·10664 ·10668 ·10746 ·10861 ·10957 ·10962 ·10967 ·11073 ·11170 ·11179 ·11404 ·11544 ·11783 ·11784 ·11785 ·11801 ·11898 ·11940 ·11941 ·11941 ·11992 ·12006 ·12052 ·12182:1998 ·12207 ·12234-2 ·13239 ·12354-3 ·13211-1 ·13216 ·13250 ·13346 ·13399 ·13406-2 ·13407 ·13450 ·13485 ·13490 ·13567 ·13568 ·13584 ·13616 ·14000 ·14001 ·14031 ·14396 ·14443 ·14496 (-10,-14) ·14644 ·14649 ·14651 ·14698 ·14698-2 ·14750 ·14882 ·14908 ·14971 ·15022 ·15189 ·15288 ·15291 ·15292 ·15408 ·15444 ·15445 ·15438 ·15504 ·15511 ·15686 ·15693 ·15706 (-2) ·15707 ·15836 ·15897 ·15919 ·15924 ·15926 ·15926 WIP ·15930 ·15948 ·16023 ·16262 ·16684 ·16750 ·16949 ·17024 ·17025 ·17369 ·17799 ·18000 ·18004 ·18014 ·18092 ·18181 ·18245 ·18629 ·18916 ·19005 ·19011 ·19092 (-1,-2) ·19101 ·19105 ·19106 ·19107 ·19108 ·19109 ·19111 ·19112 ·19113 ·19114 ·19115 ·19116 ·19117 ·19118 ·19119 ·19123 ·19125 (-1,-2) ·19128 ·19131 ·19133 ·19135 ·19137 ·19439 ·19501:2005 ·19752 ·19757 ·19770 ·19775-1
20000+20000 ·20022 ·20700 ·20922 ·21000 ·21047 ·21500 ·21827:2002 ·22000 ·22301 ·23008 (-2,-12) ·23270 ·23271 ·23360 ·23950 ·24014 ·24613 ·25178 ·26000 ·26300 ·26324 ·27000 series ·27000 ·27001 (:2013) ·27002 ·27003 ·27004 ·27005 ·27006 ·27007 ·27032 ·27729 ·27799 ·29500 ·31000 ·32000 ·37001 ·38500 ·39001 ·42010 ·44001 ·45001 ·50001 ·80000
Vedi anche:voci che iniziano per "ISO"
Controllo di autoritàLCCN(ENsh97003561 ·GND(DE4469781-8 ·BNF(FRcb131836959(data) ·J9U(EN, HE987007563763605171
Estratto da "https://it.wikipedia.org/w/index.php?title=Unified_Modeling_Language&oldid=142551309"
Categoria:
Categorie nascoste:

[8]ページ先頭

©2009-2025 Movatter.jp