No Slide Title

Download Report

Transcript No Slide Title

UML: Introduzione Corso IS I - 2002/03

Gianna Reggio Versione 0.0

Cosa è UML

• U M L = Unified – MODELLI Modelling Language * 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” 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)

three amigos

– …. moltissimi altri – differenti metodi, basati su differenti rappresentazioni visuali per classi/oggetti/… 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

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 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 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 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) frammento * corrispondente definizione XML – concreta * diagrammi esempio 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, ...

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 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 versione 0.0