+ All Categories
Home > Documents > Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende...

Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende...

Date post: 26-Oct-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
31
Introduzione a UML Pag. 1 ©Adriano Comai Introduzione a UML versione 19 marzo 2010 © Adriano Comai http://www.analisi-disegno.com
Transcript
Page 1: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 1©Adriano Comai

Introduzione a UML

versione 19 marzo 2010

©Adriano Comaihttp://www.analisi-disegno.com

Page 2: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 2©Adriano Comai

Obiettivo di questa introduzione

• fornire alcuni elementi di base su UML• introdurre i diagrammi• fornire indicazioni sulle modalità di utilizzo di UML

⇒questi temi sono approfonditi, con esercitazioni, nel corso “Sviluppo di applicazioni con UML”:

http://www.analisi-disegno.com/a_comai/corsi/sk_uml.htm

Page 3: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 3©Adriano Comai

Unified Modeling Language (UML)

• linguaggio (e notazione) universale, per rappresentare qualunque tipo di sistema (software, hardware, organizzativo, …)

• standard OMG (Object Management Group), dal nov.1997

• originatori:– Grady Booch– Ivar Jacobson– Jim Rumbaugh

Page 4: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 4©Adriano Comai

Cos’è UML (e cosa non è)

• è un linguaggio di rappresentazione dei sistemi• serve a specificare le caratteristiche di un nuovo

sistema, oppure a documentarne uno già esistente• è uno strumento di comunicazione tra i diversi ruoli

coinvolti nello sviluppo e nell’evoluzione dei sistemi

Page 5: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 5©Adriano Comai

UML non è una “metodologia”

• è un linguaggio, non un metodo completo • notazione, sintassi e semantica sono standard• ma UML non è legato ad uno specifico processo, e

non fornisce indicazioni sul proprio utilizzo• quindi può essere (ed è) utilizzato da persone e

gruppi che seguono approcci diversi (è “indipendente dai metodi”)

Page 6: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 6©Adriano Comai

UML come standard

• è stato definito con il contributo di molti metodologi, e delle più importanti società di software mondiali

• la sua evoluzione è a carico dell’OMG, e soggetta a procedure ben definite per ogni cambiamento

versione attuale: 2.2documenti ufficiali: http://www.omg.org

Page 7: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 7©Adriano Comai

Storia versioni di UMLnovembre 1997: 1.1dicembre 1998: 1.2giugno 1999: 1.3maggio 2001: 1.4marzo 2003: 1.5

agosto 2005 : 2.0aprile 2006: 2.1maggio 2008: 2.2

Page 8: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 8©Adriano Comai

Diagrammi UML (versioni 1.x)diagrammi “strutturali”:

diagramma delle classi (class)diagramma dei componenti (component)diagramma di distribuzione (deployment)

diagrammi “comportamentali” :diagramma dei casi d’uso (use case)diagramma di sequenza (sequence)diagramma di collaborazione (collaboration)diagramma di stato (statechart)diagramma delle attività (activity)

interaction

implementation

Page 9: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 9©Adriano Comai

Diagrammi UML (versioni 2.x)diagrammi “strutturali”:

diagramma delle classi (class)diagramma degli oggetti (object)diagramma dei componenti (component)diagramma delle strutture composite (composite structure)diagramma di deployment (deployment)diagramma dei package (package)

diagrammi “comportamentali di interazione”:diagramma di sequenza (sequence)diagramma di comunicazione (communication)diagramma dei tempi (timing)diagramma di sintesi dell’interazione (interaction overview)

diagrammi “comportamentali”:diagramma dei casi d’uso (use case)diagramma di stato (statechart)diagramma delle attività (activity)

hanno molti aspetti in comune

hanno molti aspetti in comune

Page 10: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 10©Adriano Comai

Package diagramUML 2.0

UI Vendite

Dominio Vendite

M apper DatabaseDatabase Vendite

Catalogo

Clienti

Ordini

in UML 1.x non è undiagramma “ufficiale”

Page 11: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 11©Adriano Comai

Class diagram

Cliente Ordine

RigaOrdine

Prodotto

PersonaGiuridica

PersonaFisica

1 *1

1..*

*

1

-codice : char-descrizione : char-p rezzoUnitario : real

+registra(In cod:char ,In desc:char ,In p rezzo:real)+elimina(In cod:char)+aggPrezzo(In nuovoPrezzo:real)+getDescrizione(In cod:char):char

Page 12: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 12©Adriano Comai

Object diagramUML 2.0

c1:PersonaFisica

o1:Ordine r1:RigaOrdine

r2:RigaOrdine p 2:Prodotto

o2:Ordine r3:RigaOrdine stamp ante:Prodotto

c2:PersonaGiuridica

p 1:Prodotto

cod=1251desc=PC mod.5800p rezzoUnitario=999,99

cod=49desc=mouse standardp rezzoUnitario=35,00

cod=437desc=stamp ante inkjet 480p rezzoUnitario=159,99

in UML 1.x non è undiagramma “ufficiale”

Page 13: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 13©Adriano Comai

Component diagram

Browser

DBVendite

«subsystem»Vendite

SessioneAcquisto

CatalogoProdotti

Carre llo

iSessione

ICatalogo ICarrello

IDB

Page 14: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 14©Adriano Comai

Composite structure diagramUML 2.0

«subsystem»SistemaMulte

BackEndMulte

FrontEndCittadino

FrontEndVigile

GestorePagamenti

IAutenticazione

IPagamento

Vigile

Cittadino

IGestorePagamenti

InterfacciaVigile

InterfacciaCittadino

Page 15: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 15©Adriano Comai

Deployment diagram

Database Server

«execution env»DBMS

«artifact»SchemaDB

Application ServerWeb Server

«artifact»GestoreOrdini.exe

«artifact»FrontEndOrdini.jar

Client

«artifact»Browser

Page 16: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 16©Adriano Comai

Use case diagram

Sistema Vendite

Compratore

Gestore

Amministrazione

Registrarsi

Effettuare Ordini

Aggiornare Catalogo

Verificare Vendite

Page 17: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 17©Adriano Comai

Activity diagramVenditore: Amministrazione: Magazziniere: Spedizioniere:

registrare ordine

[registrato]:Ordine

registrare pagamento

[pagato]:Ordine

preparare ordine

[pronto per verifica]:Ordine

verificare ordine

registrare per spedizione

[pronto per spedizione]:Ordine

spedire merce

[spedito]:Ordine

[non ok]

[ok]

Page 18: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 18©Adriano Comai

Statechart diagram

registrato in p rep arazione

p ronto p er sp edizione

spedito chiuso

p agamento

verifica completamento

[ok]

spedizione

dop o 3 mesi dopo 10 anni

[non ok]

Page 19: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 19©Adriano Comai

consente all'utilizzatore di richiedere in prestito uno o più libri

L'utente fornisce i dati relativi al libro (ai libri) che vuole in prestito.

Il sistema verifica se l'utente è censito,

Verifica quindi se ha libri in prestito da restituire, o se ne ha già tre in prestito, segnala l'impossibilità del prestito.

Altrimenti il sistema controlla se i libri sono disponibili, e se lo sono li fornisce all'utente, altrimenti segnala l'errore

: Utente biblioteca

: FormRichiestaPrestito

: RichiestaPrestito

: Libro : Prestito: Utente

1: RichiestaPrestito 2:

11: richiesta (cod_libro)12: Prestito ( )13: 14:

15: err: libro già in prestito

3: ControlloUtentePerPrestito ( )

7: PrestitiDelCliente ( )

5: 6: err: utente non censito ( )4:

8: 9: 10: err: utente deve restituire

Sequence diagram

Page 20: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 20©Adriano Comai

Communication diagram

: Utente biblioteca

: FormRichiestaPrestito

: RichiestaPrestito

: Libro

: Prestito

: Utente

1: RichiestaPrestito

15: err: libro già in prestito

6: err: utente non censito ( )10: err: utente deve restituire

2:

14:

5: 9:

11: richiesta (cod_libro)

13: 3: ControlloUtentePerPrestito ( )

4: 8:

12: Prestito ( )

7: PrestitiDelCliente ( )

in UML 1.x si chiama“collaboration”

Page 21: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 21©Adriano Comai

Interaction overview diagramUML 2.0

refrichiesta offerta

refsviluppo nuovo prodotto

refrichiesta evoluzione prodotto

refrichiesta cambiamento

[richiesta cambiamento]

[altrimenti]

[richiesta evoluzione prodotto esistente][richiesta nuovo prodotto]

Page 22: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 22©Adriano Comai

Timing diagramUML 2.0

disp

ositi

vo a

pert

ura

chiuso

in attesa

aperto

proc

esso

re a riposo

in verifica

attivo

port

a

chiusa aperta chiusa

bloccasblocca

verifica

0 10 20 30 40 50 60 70 80 90 100

Page 23: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 23©Adriano Comai

UML: meta-modello e diagrammi

• UML è basato su un meta-modello integrato, composto da numerosi elementi, collegati tra loro secondo regole precise

• utilizzando gli elementi del meta-modello è possibile creare i modelli per i sistemi da rappresentare

• molti elementi hanno una icona che li rappresenta graficamente

• gli elementi del meta-modello possono comparire in diagrammi di diverso tipo

• le regole permettono verifiche di correttezza

Page 24: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 24©Adriano Comai

Strumenti: visual modeling UMLUna lista molto parziale (ne esistono decine…)• Rose; Rational Modeler ed Architect (IBM - Rational)• Together (Borland) • Visio (Microsoft)• TAU (IBM - Telelogic)• Objecteering (Softeam)• Poseidon (Gentleware)• Enterprise Architect (Sparx Systems)• Magic Draw (No Magic)• Argo (open source)• StarUML (open source)

Page 25: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 25©Adriano Comai

Strumenti UML: criteri di scelta

Tra i fattori da considerare:• costo• aderenza allo standard UML • supporto al lavoro di gruppo• generazione codice / reverse engineering• integrazione con altre tipologie di strumenti:

– gestione requisiti– programmazione (IDE)– gestione test– gestione configurazione

Page 26: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 26©Adriano Comai

UML è complesso

• intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione

• il numero degli elementi è elevato, e in molti casi è possibile scegliere tra forme di rappresentazione diverse

• UML non suggerisce, né tantomeno prescrive una sequenza di realizzazione dei diversi diagrammi

• offre un’ampia gamma di possibili modalità di utilizzo, tra le quali i progettisti sono liberi di scegliere

Page 27: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 27©Adriano Comai

UML va adattato alle proprie esigenze

Tra i fattori da considerare:• settore di attività (es. militare, finanziario)• tipologia di progetto (rischio, complessità)• processo di sviluppo adottato• esigenze di conformità a norme e standard• comunicazione con committenti e stakeholders• comunicazione con fornitori• composizione e distribuzione del gruppo di lavoro

⇒non ha senso che tutti usino UML nello stesso modo

Page 28: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 28©Adriano Comai

UML in sintesi

• è uno standard: uniformità nei concetti e nelle notazioni utilizzate, interoperabilità tra strumenti di sviluppo, indipendenza dai produttori, dalle tecnologie, dai metodi

• è articolato: può rappresentare qualunque sistema software, a diversi livelli di astrazione

• è complesso: va adattato ("ritagliato") in base alle specifiche esigenze dei progettisti e dei progetti, utilizzando solo ciò che serve nello specifico contesto

Page 29: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 29©Adriano Comai

Video: come si usa UML• Prima parte - Cosa è UML:

1) http://www.youtube.com/watch?v=alMsj1Tssbo2) http://www.youtube.com/watch?v=kxfBpQofTWA

• Seconda parte - UML in pratica: 3) http://www.youtube.com/watch?v=P2DkCyyJzYg4) http://www.youtube.com/watch?v=8t_qga7CEjw5) http://www.youtube.com/watch?v=_LNp-Ogtopo

Page 30: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 30©Adriano Comai

Bibliografia• Jim Rumbaugh, Ivar Jacobson, Grady Booch: The Unified

Modeling Language Reference Manual (2nd Edition) -Addison Wesley 2005

• Bruce Powel Douglass : Real Time UML (3nd Edition) - Addison Wesley 2004

• Martin Fowler : UML Distilled (3nd Edition) - Addison Wesley2003

• Robert Martin : UML for Java Programmers - Prentice Hall 2003

• Craig Larman : Applying UML and Patterns (3nd Edition) -Prentice Hall 2005

⇒ http://www.omg.org

Page 31: Introduzione a UML©Adriano Comai Introduzione a UML Pag. 26 UML è complesso • intende rappresentare qualunque tipo di sistema software, a diversi livelli di astrazione • il numero

Introduzione a UML Pag. 31©Adriano Comai

Grazie per l’attenzione!

Per approfondimenti e altri materiali:

http://www.analisi-disegno.com


Recommended