UML: Introduzione Corso IS I - 2002/03

11
UML: Introduzione Corso IS I - 2002/03 Gianna Reggio Versione 0.0

description

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 - PowerPoint PPT Presentation

Transcript of UML: Introduzione Corso IS I - 2002/03

Page 1: UML: Introduzione Corso IS I - 2002/03

UML: IntroduzioneCorso IS I - 2002/03

Gianna Reggio

Versione 0.0

Page 2: UML: Introduzione Corso IS I - 2002/03

versione 0.0

Cosa è UML• UML = 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

˚ 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”

Page 3: UML: Introduzione Corso IS I - 2002/03

versione 0.0

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

Page 4: UML: Introduzione Corso IS I - 2002/03

versione 0.0

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

Page 5: UML: Introduzione Corso IS I - 2002/03

versione 0.0

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

Page 6: UML: Introduzione Corso IS I - 2002/03

versione 0.0

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

Page 7: UML: Introduzione Corso IS I - 2002/03

versione 0.0

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

Page 8: UML: Introduzione Corso IS I - 2002/03

versione 0.0

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

frammento

esempio

Page 9: UML: Introduzione Corso IS I - 2002/03

versione 0.0

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, ...

Page 10: UML: Introduzione Corso IS I - 2002/03

versione 0.0

Cosa non è UML• un modello del processo di sviluppo software

un 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

Page 11: UML: Introduzione Corso IS I - 2002/03

versione 0.0

Sources

• definizione ufficiale (http://www.omg.org/) Unified Modeling Language Specification 1.3

(file 99-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