Unified Modeling Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 1:
In [[ingegneria del software]], '''UML''' ('''U'''nified '''M'''odeling '''L'''anguage, "linguaggio di modellazione unificato") è un [[linguaggio di modellazione]] e [[linguaggio di specifica|specifica]] standard basato su concetti ''[[programmazione orientata agli oggetti|object-oriented]]''. Il nucleo del linguaggio fu definito nel [[1996]] da [[Grady Booch]], [[Jim Rumbaugh]] e [[Ivar Jacobson]] (
Il linguaggio consente di
Il linguaggio ha una [[semantica (informatica)|semantica]] molto precisa, e un grande potere descrittivo, caratteristiche che ne hanno decretato il successo anche al di fuori dell'ambito in cui esso era nato; attualmente, non sono rari i casi di sistemi software ''non object-oriented'' modellati in UML, o addirittura modelli UML di sistemi o oggetti di altra natura (per esempio
Lo standard UML, gestito da OMG, definisce una sintassi e delle regole di interpretazione; non si tratta quindi di una [[metodologia]] di progettazione e per questo motivo può essere adottato con diverse metodologie o in ambiti diversi da quello informatico.
La notazione è semi-grafica e [[linguaggio formale|semi-formale]]; un modello UML è costituito da una collezione organizzata di [[diagramma|diagrammi]] correlati, costituiti da segni grafici (con significato formalmente definito), elementi testuali formali, ed elementi di testo libero.
Attualmente, l'uso di UML è estremamente diffuso. La maggior parte dei testi che trattano di analisi e progettazione ''object-oriented'' utilizzano UML per descrivere soluzioni analitiche e progettuali in modo sintetico e comprensibile a un vasto pubblico. Molti [[IDE|ambienti integrati di sviluppo]] per linguaggi a oggetti come [[Java]] o [[linguaggio C plus plus|C++]] comprendono strumenti di modellazione in UML, eventualmente con meccanismi automatici di traduzione parziale dei diagrammi UML in [[codice sorgente|codice]]. Viceversa, sono anche disponibili ambienti software sofisticati dedicati alla modellazione in UML che consentono (solitamente attraverso opportune estensioni) di generare codice in diversi linguaggi. Fra gli ambienti più noti di quest'ultima categoria va senz'altro citato ''[[Rational Rose]]'' di [[Rational Software]] (un'organizzazione a cui appartenevano due dei tre padri di UML).
==Storia==
I linguaggi per la modellazione object-oriented iniziarono a svilupparsi in diversi contesti a partire dagli [[anni 1980|anni '80]]. Si trattava di notazioni di varia natura, che consentivano di descrivere la struttura di un sistema software a oggetti (in termini di [[classe|classi]] 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à degli [[anni 1990|anni '90]] 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 le metodologie e le notazioni più apprezzate e diffuse del periodo spiccavano [[Object Modeling Technique|OMT (Object Modeling Technique)]] di [[Jim Rumbaugh]], e il cosiddetto metodo [[Booch]] di [[Grady Booch]], entrambi impiegati come ricercatori presso [[Rational Software]]. Il lavoro di unificazione iniziò con loro; in seguito si unì a questo sforzo Jacobson con la sua [[software house]] [[Objectory]]. Il primo risultato congiunto di questo ''team'' fu [[OOSE|OOSE (Object Oriented Software Engineering)]].
Mentre "i tre gringos" operavano per unificare i propri approcci all'analisi e alla progettazione a oggetti, il progetto fu accolto sotto l'egida dell'[[Object Management Group|OMG (Object Management Group)]], un consorzio fondato con l'obiettivo di creare e gestire [[standard]] 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 una [[Request for proposal|RFP (Request for Proposal)]] per tale notazione. Nello stesso anno, Booch, Rumbaugh e Jacobson misero a punto le ''[[release]]'' 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 esempio [[Digital]], [[Hewlett-Packard]], [[IBM]], [[Microsoft]], [[Oracle]] e [[Unisys]]). Questo gruppo esteso realizzò, nel [[1997]], 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 da [[IBM]], [[ObjectTime]], [[Ptech]] e altre.
==Tipi di diagrammi==
I diagrammi di tipo statico danno una visione statica e strutturale del sistema che si sta descrivendo o progettando, mentre quelli dinamici cercano di coglierne gli aspetti evolutivi.
|