110 likes | 270 Views
UML: Introduzione Corso IS I - 2002/03. Gianna Reggio Versione 0.0. Cosa è UML. U M L = Unified Modelling Language MODELLI Il processo di sviluppo di un sistema software (o di una sua parte) consiste essenzialmente nel produrre una serie di elaborati (artifacts) che definiscono
E N D
UML: IntroduzioneCorso IS I - 2002/03 Gianna Reggio Versione 0.0
Cosa è UML • UML = UnifiedModellingLanguage • MODELLI • Il processo di sviluppo di un sistema software (o di una sua parte) consiste essenzialmente nel produrre una serie di elaborati (artifacts) che definiscono • tale sistema a diversi livelli di astrazione, es. requisiti dal punto di vista dell’utilizzatore del sistema, progetto (design) • particolari aspetti di tale sistema, es. prestazioni (Quality Of Service), dominio su cui opera il sistema • quindi occorre produrre descrizioni di (particolari aspetti) (parti di) sistemi software, i modelli • LANGUAGE • notazione visuale object-oriented per presentare modelli • UNIFIED • sviluppato dall’incontro dei “Three Amigos” • in pratica una collezione di varie notazioni integrate tra di loro, rese OO e “standardizzate”
Storia di UML (1) • linguaggi di programmazione OO • Simula-67, Smalltalk-80, Java 1996, C# (200?) • metodi OO di analisi e design • Shalaer&Mellor (1988) • Coad & Yourdon (1990,1991) • Booch (1991) • Rumbaugh et all (1991) • Jacobson et all (1992) • …. moltissimi altri • differenti metodi, basati su differenti rappresentazioni visuali per classi/oggetti/… three amigos
Storia di UML (2) • metà anni novanta affermazione di • OMT-2 (Rumbaugh) • Booch "Object-oriented Analysis and Design with Applications", second edition, 1994 • Objectory (Jacobson) • molte similarità, inorporano vari aspetti da altri metodi • 1994 Rumbaugh e Booch iniziano a lavorare alla Rational per unificare i loro metodi • 1995 si unisce Jacobson • sviluppo di UML e di “Unifed Software Development Process” • 1996 UML 0.9
Storia di UML (3) • 1996 OMG (Object Management Group) lanciò una RFP per un linguaggio di modellazione OO • Rational fonda un consorzio con IBM, HP, Microsoft, Oracle,… per rispondere • 1997 UML 1.1 accettato dall’OMG • 1998 UML 1.2 • 1999 UML 1.3 nel corso useremo questa • 2001 UML 1.4 • UML 2.0 • in corso di sviluppo (doveva già essere finito) • importanti aggiunge e modifiche di parti problematiche
UML: Overview (1) • Object-oriented • Visuale (diagrammi, non puro testo) • Un gruppo di notazioni integrate • class diagram • classi (operazioni, attributi), associazioni, specializzazione, aggregazione,… CONSTRAINTS • collaboration diagram • come alcuni oggetti collaborano tra di loro scambiandosi messaggi (chiamate di metodi) per realizzare una qualche attività • sequence diagram • collaboration ma mostrando l’ordine temporale degli scambi di messaggi • statechart diagram • comportamento dinamico di entità di vari tipi (oggetti, use case, metodi) • activity diagram • per descrivere workflow (attività e loro relazioni causali) • use case diagram • l’uso da parte dei fruitori di un sistema (prossimamente) • altre che non vedremo • component diagram, deployment diagram
UML: Overview (2) • estensibile, in realtà è una famiglia di linguaggi • estremamente generale e molto ricco • usarlo per particolari domini, particolari tipi di applicazioni, particolari tecnologie implementative richiede di adattarlo (terminologia: definire un profilo) • per Corba (vedere Sistemi distribuiti ??) • per Enterprise Java Beans (vedere TAPS) • offre lui stesso i meccanismi per definire le sue varianti (es. stereotypes) • espressioni, tipi, azioni (statements) parzialmente definiti è possibile usare il proprio linguaggio per tali parti • linguaggio naturale • di programmazione (Java, C++,…) • OCL (Object Constraint Language) per espressioni e tipi nel corso OCL + gli ovvi statement imperativi per il controllo del flusso
frammento esempio UML: come è definito (1) • sintassi • molto diverso dai soliti linguaggi (es. Java) • astratta • espressa in modo OO, utilizzando una semplicissima notazione OO (sottoinsieme di UML) • corrispondente definizione XML • concreta • diagrammi
UML: come è definito (2) • correttezza statica (well-formedness) • constraints (proprietà, condizioni logiche) sulla sintassi astratta • semantica • definita informalmente utilizzando il linguaggio naturale • problemi • incompletezza, ambiguità, inconsistenze, ...
Cosa non è UML • un modello del processo di sviluppo softwareun metodo OO per produrre software • esistono tantissimi metodi basati su UML • RUP (Rational Unified Process) • COMET (per sistemi distribuiti) • quello che useremo in questo corso (Astesiano&Reggio) • uno strumento CASE (Computer Aided Software Engineering) • esistono molti strumenti che supportano l’uso di UML • Rational Rose • Together (che useremo nel corso) • un linguaggio di programmazione OO • ma i tools aiutano a generare codice a partire dai modelli UML
Sources • definizione ufficiale (http://www.omg.org/) Unified Modeling Language Specification 1.3 (file99-06-08.pdf nel sito del corso) • per specialisti, o problemi specifici • notare che • Semantics • sintassi astratta + semantica informale • Notation guide • sintassi concreta • Libro usato nel corso • UML, Bennet-Skelton-Lunn (serie Shaum’s Outlines) [edizione italiana in biblioteca] • Altri libri/materiale vedere sito corso