26
11/19/2008 1 Interpret Interpret Acquire Acquire Transform Transform Analyze Analyze © 2008 Exeura – Confidential and Proprietary Copyright Notice This publication may contain Exeura patented or patent-pending This publication may contain Exeura patented or patent pending information. It should be considered proprietary and confidential. No part of this publication may be reproduced, reformatted or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or through any information storage and retrieval system, currently available or developed in the future, without prior written approval of Exeura. This document is protected by copyright law and international treaties. Unauthorized reproduction 11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 2 or distribution of all or part of this document may result in severe civil and criminal penalties and will be prosecuted to the full extent of the law.

E3 - UML.ppt [modalità compatibilità]staff.icar.cnr.it/ruffolo/files/E3 - UML.pdf · 11/19/2008 4 La struttura dell’UML Come altri linguaggi di specifica l’UML include: Elementi

Embed Size (px)

Citation preview

11/19/2008

1

InterpretInterpretAcquireAcquire

TransformTransform AnalyzeAnalyze

© 2008 Exeura – Confidential and Proprietary

Copyright Notice

This publication may contain Exeura patented or patent-pendingThis publication may contain Exeura patented or patent pendinginformation. It should be considered proprietary and confidential.

No part of this publication may be reproduced, reformatted ortransmitted in any form or by any means, electronic or mechanical,including photocopying, recording or through any information storageand retrieval system, currently available or developed in the future,without prior written approval of Exeura. This document is protectedby copyright law and international treaties. Unauthorized reproduction

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 2

or distribution of all or part of this document may result in severe civiland criminal penalties and will be prosecuted to the full extent of thelaw.

11/19/2008

2

Unified Modeling Language (UML)

Richiami dei diagrammi di base

per l’utilizzo nel corso di RPPI

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 3Rielaborazione delle slide proposte da M. Cossentino

Mary Loomis, HP - Software Technology Laboratory:

Perchè usare la progettazione visuale?

y , gy y

“… la progettazione visuale e le tecniche di rappresentazione visuale (…) permettono

di rappresentare le specifiche in un modo comprensibile sia per le persone che per i

tool di sviluppo”

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 4

11/19/2008

3

John Roskill, Microsoft - Director of Product Marketing for Microsoft

Perchè usare la progettazione visuale?

, g

Visual Studio:

“… Noi riteniamo la progettazione visuale molto importante nello sviluppo delle

applicazioni di livello ‘enterprise’ basate su componenti (…) perché permette di

gestire la complessità dell’applicazione.”

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 5

Cosa è l’UML

UML è un linguaggio per : E’ il successore dei linguaggi di progettazione utilizzati nei metodi

La specifica,

La visualizzazione,

La produzione

La documentazione

Può essere applicato a:Sistemi software,

Modelli economici

progettazione utilizzati nei metodi di Booch(1), OOSE/Jacobson(2), OMT/Rumbaugh(3), …

UML non è un metodo(come i metodi di DeMarco, Jacobson,

Rumbaugh)

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 6

Modelli economici

Sistemi non software

(1) – Object-Oriented Analysis and Design with Applications (OOADA) by Booch: http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-8.html

(2) - Object-Oriented Software Engineering (OOSE) by Jacobson et. al. : http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-12.html

(3) - Object Modelling Technique (OMT) by Rumbaugh et. al. : http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-7.html

11/19/2008

4

La struttura dell’UML

Come altri linguaggi di specifica l’UML include:

Elementi di modellazione – semantica e concetti fondamentali per la modellazione.

Notazione – rappresentazione grafica degli elementi del modello.

Linee guida – raccomandazioni per l’utilizzo.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 7

Classificazione(2)

Area Vista Diagramma

Casi d’uso Diagr dei casi d’uso Strutturale Casi d uso Diagr. dei casi d uso

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti

Attività Diagr. delle attività

Dinamica Descrive le entità del

i l l l i i

Descrive il comportamento del sistema nel tempo

Descrive l’organizzazione

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 8

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

(2) 'The Unified Modeling Language Reference Manual' - J. Rumbaugh, I. Jacobson, G. Booch - Addison-Wesley

sistema e le loro relazionig

del sistema in unità gerarchiche

11/19/2008

5

Area Vista Diagramma

Area Strutturale

Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 9

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

Area Vista Diagramma

Diagr dei casi d’uso C i d’ St tt l

Vista dei casi d’uso

Diagr. dei casi d uso (Diagr. Sequenza)

Casi d uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 10

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

11/19/2008

6

Cosa è

E’ dedicata alla comprensione e utilizzo del sistema

Questa vista comprende gli attori ed i casi d’uso insieme con le loro interazioni.

I diagrammi di questa vista sono:

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 11

1 - diagramma dei casi d’uso2 - diagramma di sequenza(*)3 - diagramma di collaborazione(*) (*) appartengono a questa vista in quanto realizzazioni dei casi d’uso

Il diagramma dei casi d’uso

Area Vista Diagramma

Diagr dei casi d’uso Casi d’uso St uttu l Diagr. dei casi d uso (Diagr. Sequenza)

Casi d uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti

à d ll à

Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 12

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

11/19/2008

7

Diagramma dei casi d’uso – Cosa è

Mostra le relazioni tra attori e casi d’uso nel sistema.

I diagrammi dei casi d’uso rappresentano una vista dall’esterno del sistema.

acquistare articoli

log in

attore: un utilizzatore del sistema

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 13

log incassierecliente

rimborsare articoli venduti

caso d'uso: un "modo" di utilizzare il sistema

Attore – cosa è

Qualcuno o qualcosa, esterno al sistema,

che interagisce con i casi d’uso.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 14

11/19/2008

8

Caso d’uso – cosa è

Un modello di comportamento supportato d l i t

Caso d’usoCaso d’uso

Cons ulta catalogo

Acquis ta articolo

(f rom Att iv ità i n ne goz io)

Venditore

dal sistema.

E’ una sequenza di transazioni effet-tuate tra l’attore ed il sistema durante una sessione di dialogo.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 15

Cli ente

Effettua pagam ento

(f ro m A tt iv ità i n neg oz io )

Servizi POS

AttoreAttore RelazioneRelazioneCasi d’uso del Casi d’uso del gruppo “attività gruppo “attività in negozio”in negozio”

Relazioni – cosa sono

Sono associazioni tra attori e casi d’uso

I principali tipi di relazioni:

Relazione Descrizione Notazione

Associazione Il percorso della comunicazione tra un attore ed il caso d’uso cui partecipa

Estensione Una relazione di estensione dal caso d’uso A al caso d’uso Bindica che il secondo può includere (sotto specifiche condizioni dettagliate nella estensione) il comportamento del caso d’uso A. <<extend>>

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 16

Generalizzazione Tra un caso d’uso più generale ed uno più specifico che eredita dal primo alcune funzionalità e ne aggiunge altre

Inclusione Inclusione in un caso d’uso di base di funzionalità illustrate in altri casi d’uso <<include>>

11/19/2008

9

Esempio

Fornisce i dati

Cambia residenza

<<include>>

Cambia residenza dall’estero

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 17

Aggiorna passaporto

<<extends>>

Vista logica (statica)

Area Vista Diagramma

Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 18

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

11/19/2008

10

La vista logica – Cosa è

Descrive le entità del sistema.

In questa vista figurano le classi con le loro relazioni statiche. In effetti viene anche descritto il comportamento dinamico delle classi.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 19

A questa vista appartiene il diagramma delle classi

Il diagramma delle classi

Area Vista Diagramma

Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 20

g

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

11/19/2008

11

Cosa è una classe

Una collezione di oggetti con i il t tt simile struttura,

comportamento e relazioni.

Una classe contiene proprietà(attributi) e metodi (operazioni)

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 21

Rappresentazione grafica

Il riquadro superiore contiene il nome della classe e le proprietà generali della classeIl riquadro centrale contiene la

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 22

gIl riquadro centrale contiene la struttura della classe

Il riquadro della classe contiene gli elementi che determinano il comportamento della classe

11/19/2008

12

Relazioni

Le relazioni forniscono un percorso per le comunicazioni.Le relazioni forniscono un percorso per le comunicazioni.

Esistono vari tipi di relazioni, le principali sono:

Associazione

Dipendenza

Generalizzazione (ereditarietà)

Realizzazione

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 23

Relazione di associazione

Descrive le relazioni tra le istanze delle classi e la loro cardinalità

SpettacoloLocalitàAutore

0 *

Evento : DataP ost o : Num ero_posto

1

VenditaEvento : DataP ost o : Num ero_posto

10 *

cardinalità.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 24

Bigl iettoPrezzo : T_Im porto

Prevendita : T_Importo

0..

Prevendita : T_Importo

0..

Molteplicità = numero di istanze di una classe correlate ad una istanza dell’altra classe.

Relazione diRelazione diassociazioneassociazioneAttributi della relazione

ClassiClassi

11/19/2008

13

Associazione/aggregazione

Una associazione in cui la relazione è tra un tutto e le sue parti.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 25

Relazione diRelazione diaggregazioneaggregazione

Associazione/ composizione

L’elemento composto ha la sola responsabilità della gestione delle sue parti (es.: allocazione e deallocazione).

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 26

11/19/2008

14

Relazione di dipendenza

Una relazione in cui una classe (il client) dipende da un’altra per un particolare servizio.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 27

Relazione di generalizzazione (ereditarietà)

E’ una relazione tra una classe e la sua sottoclasse classe e la sua sottoclasse dove gli elementi comuni sono contenuti nella classe di livello superiore e le particolarità nelle

sottoclassi.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 28

Relazioni di Relazioni di generalizzazionegeneralizzazione

11/19/2008

15

Veicolo Ambiente operativoAzionato a

Relazione di generalizzazione (ereditarietà)

A energia eolica A motore Terra Acqua

Azionato a Ambiente operativo{overlapping} {overlapping}

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 29

Camion Barca a velaVincolo di overlapping

– le sottoclassi possono discendere da

più di una classe

Discriminatore –indica una partizione

della superclasse

Esempio: iscrizione ai corsi universitari

Il modello del sistema

C<<Entity>>

Informazioni docente

<<Entity>>Corso

11

1

Catalogo Corsi

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 30

Offerta Corsi

<<Entity>>

1..*1..*

3..103..10

1..*1..*

Informazioni Studente<<Entity>>

11/19/2008

16

Esempio: iscrizione ai corsi universitari

Il modello del sistema

Informazioni Utente

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 31

Informazioni docente<<Entity>>

Informazioni Studente<<Entity>>

Area Vista Diagramma

Diagr dei casi d’uso Casi d’uso Strutturale

La vista implementativa e di distribuzione

Diagr. dei casi d uso (Diagr. Sequenza)

Casi d uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti

Attività Diagr delle attività

Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 32

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

11/19/2008

17

Area Vista Diagramma

Il diagramma dei Componenti

Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 33

g

Attività Diagr. delle attività

Diagr. di sequenza

Dinamica

Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

Cosa è

Mostra l’organizzazione e le dipendenze dei moduli software (sorgenti, binari, eseguibili).( g , , g )

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 34

11/19/2008

18

Componenti

Un componente è la rappresentazione di un file di codice sorgente, una libreria o un eseguibile.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 35

Esempio 1

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 36

Questo diagramma mostra le dipendenze tra i file nella compilazione

I componenti Trade.cls e TradeLeg.cls rappresentano rispettivamente la classe Trade e la classe TradeLeg

11/19/2008

19

Esempio 2

Questo esempio mostra l’abbinamento delle classi con le rispettive librerie di runtime.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 37

La libreria Trade (Trade.dll) dipende dalla classe Slate (Slate.cls) e dalla classe Trade (Trade.cls). Quest’ultima dipende dalla classe TradeLeg.

Esempio 3

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 38

Questo esempio mostra le interfacce e le chiamate tra componenti eseguibili.

L’eseguibile Trade dialoga con l’eseguibile Contracts attraverso l’inter-faccia TradeContract. Dialoga anche con la libreria Trade attraverso l’interfaccia Trade.

11/19/2008

20

Il diagramma di distribuzione

Area Vista Diagramma

Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 39

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

Cosa è

Il diagramma di distribuzione illustra la configurazione dei illustra la configurazione dei nodi di elaborazione durante l’esecuzione, i componenti, i processi e gli oggetti che in essi vivono.

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 40

11/19/2008

21

Il diagramma di distibuzione

Questo diagramma contiene nodi e connessioni tra nodi.nodi e connessioni tra nodi.

CONNESSIONEIndica un percorso di

comunicazione tra i nodi.NODO

E’ un oggetto fisico di s i n d l di

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 41

Queste associazioni possono avere uno stereotipo per

indicare la natura del percorso della comunicazione (ad esempio

il tipo di canale o di rete).

esecuzione del codice. Rappresenta una risorsa

computazionale .

Esempio

Registration Database

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 42

Main Building

Dorm

Library

11/19/2008

22

Area Vista Diagramma

Diagr dei casi d’uso Casi d’uso Strutturale

L’area dinamica

Diagr. dei casi d uso (Diagr. Sequenza)

Casi d uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti

A i i à Di d ll tti ità

Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 43

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

Area Vista Diagramma

Vista delle Attività

Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 44

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

11/19/2008

23

Diagramma delle attività

Area Vista Diagramma

Di d i i d’C i d’ l Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 45

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

Cosa è

E’ una variazione di una macchina a stati in cui gli stati rappresentano gli stati rappresentano l’effettuazione di azioni o sottoattività e le transizioni sono dovute al completamentodell’azione o della sottoattività

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 46

sottoattività.

Può rappresentare la macchina a stati finiti di una procedura.

11/19/2008

24

Esempio: La procedura di evasione di un ordine

Corsia (indica la responsabilità degli oggetti nelle azioni)

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 47

Area (e vista) di gestione del modello

Area Vista Diagramma

Diagr. dei casi d’uso (Diagr. Sequenza)

Casi d’uso

(Diagr. Collaborazione)

Statica Diagramma delle Classi

Diagr. dei componenti

Strutturale

Implementativa

Distribuzione Diagr. di distribuzione

Macchina a stati finiti Diagr. a stati finiti

à d ll à

Dinamica

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 48

Attività Diagr. delle attività

Diagr. di sequenza Interazioni

Diagr. collaborazione

Gestione del modello Gestione del modello Diagramma delle Classi

11/19/2008

25

La gestione del modello

Un sistema di grandi dimensioni deve essere diviso in sottosistemi per facilitarne la gestione

Gli elementi del modello vengono raggruppati in uno o più package.

Un package può

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 49

p g pcontenere qualunque elemento o

diagramma UML

Utilizzo dei package

Nidificando i package si ottiene una struttura più chiara

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 50

Il sistema complessivo può essere visto comeun package

11/19/2008

26

Diagramma dei casi d’uso con package

S dSelezione del corso

(From Segreteria)

Studente

Sistema di registrazione

Registrazione ad un corso

da insegnare

Docente

Manutenzione Curriculum

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 51

(From Segreteria)

(From Segreteria)

(From Segreteria)

(From Segreteria)

Convalida operazione

Manutenzione Informazioni Studente

Manutenzione Informazioni Docenti

Addetto segreteria

<<uses>>

<<uses>>

<<uses>>

Esempio: struttura del modello con package

11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 52