E3 - UML
Transcript
E3 - UML
11/19/2008 Acquire Interpret Transform Analyze © 2008 Exeura – Confidential and Proprietary Copyright Notice This publication may contain Exeura patented or patent patent-pending 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 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. 11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 2 1 11/19/2008 Unified Modeling Language (UML) Richiami dei diagrammi di base per l’utilizzo nel corso di RPPI 11/19/2008Rielaborazione © 2008 Exeura Confidential and Proprietary delle slide proposte da– M. Cossentino Page 3 Perchè usare la progettazione visuale? Mary y Loomis,, HP - Software Technology gy Laboratory: 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 2 11/19/2008 Perchè usare la progettazione visuale? John Roskill,, Microsoft - Director of Product Marketing g for Microsoft 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 : La specifica, La visualizzazione, La produzione La documentazione Può essere applicato a: Sistemi software, Modelli economici Sistemi non software E’ il successore dei linguaggi di progettazione utilizzati nei metodi di Booch(1), OOSE/Jacobson(2), OMT/Rumbaugh(3), … UML non è un metodo (come i metodi di DeMarco, Jacobson, Rumbaugh) (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. : 11/19/2008 © 2008 Exeura – Confidential and Proprietary http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-7.html Page 6 3 11/19/2008 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 Strutturale Dinamica Vista Diagramma Casi d’uso d uso Diagr dei casi d Diagr. d’uso uso Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Descrive il comportamento Diagramma delle Classi Statica del sistema nel tempo Descrive del l’organizzazione Diagr. Attività le entità Descrive g delle attività sistema i e le l loro l relazioni l sistema i i del unità Diagr. in di sequenza Interazioni gerarchiche Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary (2) 'The Unified Modeling Language Reference Manual' - J. Rumbaugh, I. Jacobson, G. Booch - Addison-Wesley Page 8 4 11/19/2008 Area Strutturale Area Strutturale Vista Diagramma Diagr. dei casi d’uso Casi d’uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 9 Vista dei casi d’uso Area St tt Strutturale l Vista C i d Casi d’uso Diagramma Diagr dei casi d’uso Diagr. d uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 10 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 5 11/19/2008 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: 1 - diagramma dei casi d’uso 2 - diagramma di sequenza(*) 3 - diagramma di collaborazione(*) (*) appartengono a questa vista in quanto realizzazioni dei casi d’uso 11/19/2008 11 © 2008 Exeura – Confidential and Proprietary Page Il diagramma dei casi d’uso Area St uttu l Strutturale Vista Casi d d’uso uso Diagramma Diagr dei casi d’uso Diagr. d uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività à Diagr. delle d ll attivitàà Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 12 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 6 11/19/2008 Diagramma dei casi d’uso – Cosa è Mostra le relazioni tra attori e casi d’uso nel sistema. attore: un utilizzatore del sistema I diagrammi dei casi d’uso rappresentano una vista dall’esterno del sistema. acquistare articoli log in cliente cassiere caso d'uso: un "modo" di utilizzare il sistema rimborsare articoli venduti 11/19/2008 13 © 2008 Exeura – Confidential and Proprietary Page Attore – cosa è Qualcuno o qualcosa, esterno al sistema, che interagisce con i casi d’uso. 11/19/2008 14 © 2008 Exeura – Confidential and Proprietary Page 7 11/19/2008 Caso d’uso – cosa è Caso d’uso C ons ulta catalogo Acquis ta articolo (f rom Att iv ità i n ne goz io) Un modello di comportamento supportato dal d l sistema. i t E’ una sequenza di transazioni effet-tuate tra Venditore l’attore ed il sistema durante una sessione di dialogo. C li ente Effettua pagam ento Servizi POS Casi d’uso del gruppo “attività Relazione in negozio” © 2008 Exeura – Confidential and Proprietary (f ro m A tt iv ità i n neg oz io ) Attore 11/19/2008 15 Page Relazioni – cosa sono Sono associazioni tra attori e casi d’uso I principali tipi di relazioni: Relazione Descrizione 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 B indica che il secondo può includere (sotto specifiche condizioni dettagliate nella estensione) il comportamento del caso d’uso A. 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 11/19/2008 16 © 2008 Exeura – Confidential and Proprietary Notazione <<extend>> <<include>> Page 8 11/19/2008 Esempio Fornisce i dati Cambia residenza dall’estero <<include>> Cambia residenza <<extends>> Aggiorna passaporto 11/19/2008 17 © 2008 Exeura – Confidential and Proprietary Page Vista logica (statica) Area Strutturale Vista Casi d’uso Diagramma Diagr. dei casi d’uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 18 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 9 11/19/2008 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. A questa vista appartiene il diagramma delle classi 11/19/2008 19 © 2008 Exeura – Confidential and Proprietary Page Il diagramma delle classi Area Strutturale Vista Casi d’uso Diagramma Diagr. dei casi d’uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. g a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 20 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 10 11/19/2008 Cosa è una classe Una collezione di oggetti con simile i il struttura, t tt comportamento e relazioni. Una classe contiene proprietà (attributi) e metodi (operazioni) 11/19/2008 21 © 2008 Exeura – Confidential and Proprietary Page Rappresentazione grafica Il riquadro superiore contiene il nome della classe e le proprietà g generali della classe Il riquadro centrale contiene la struttura della classe Il riquadro della classe contiene gli elementi che determinano il comportamento della classe 11/19/2008 22 © 2008 Exeura – Confidential and Proprietary Page 11 11/19/2008 Relazioni Le relazioni forniscono un percorso per le comunicazioni. Esistono vari tipi di relazioni, le principali sono: Associazione Dipendenza Generalizzazione (ereditarietà) Realizzazione 11/19/2008 23 © 2008 Exeura – Confidential and Proprietary Page Relazione di associazione Descrive le relazioni tra le istanze delle classi e la loro cardinalità cardinalità. S pettacolo Località A utore E vento : Data P ost o : Num ero_p os to Vendita 1 0 * 0.. P revendita : T_Im porto Molteplicità = numero Relazione di di istanze di associazione una classe Attributi della relazione correlateClassi ad una istanza dell’altra classe. 11/19/2008 © 2008 Exeura – Confidential and Proprietary 24 B igl ietto Prezzo : T_Im porto Page 12 11/19/2008 Associazione/aggregazione Una associazione in cui la relazione è tra un tutto e le sue parti. Relazione di aggregazione 11/19/2008 25 © 2008 Exeura – Confidential and Proprietary Page Associazione/ composizione L’elemento composto ha la sola responsabilità della gestione delle sue parti (es.: allocazione e deallocazione). 11/19/2008 26 © 2008 Exeura – Confidential and Proprietary Page 13 11/19/2008 Relazione di dipendenza Una relazione in cui una classe (il client) dipende da un’altra per un particolare servizio. 11/19/2008 27 © 2008 Exeura – Confidential and Proprietary Page Relazione di generalizzazione (ereditarietà) E’ una relazione tra una classe e la sua sottoclasse dove gli elementi comuni sono contenuti nella classe di livello superiore e le particolarità nelle sottoclassi. Relazioni di generalizzazione 11/19/2008 28 © 2008 Exeura – Confidential and Proprietary Page 14 11/19/2008 Relazione di generalizzazione (ereditarietà) Veicolo Azionato a {overlapping} Discriminatore – indica una partizione della superclasse Ambiente operativo Azionato a A energia eolica Ambiente operativo A motore Terra Camion 11/19/2008 29 {overlapping} Barca a vela Acqua Vincolo di overlapping – le sottoclassi possono discendere da più di una classe © 2008 Exeura – Confidential and Proprietary Page Esempio: iscrizione ai corsi universitari Il modello del sistema <<Entity>> C Corso <<Entity>> 1 Informazioni docente 1 Catalogo Corsi 1..* 1..* <<Entity>> <<Entity>> Informazioni Studente Offerta Corsi 3..10 11/19/2008 30 © 2008 Exeura – Confidential and Proprietary Page 15 11/19/2008 Esempio: iscrizione ai corsi universitari Il modello del sistema Informazioni Utente <<Entity>> Informazioni docente 11/19/2008 31 <<Entity>> Informazioni Studente © 2008 Exeura – Confidential and Proprietary Page La vista implementativa e di distribuzione Area Strutturale Vista Casi d d’uso uso Diagramma Diagr dei casi d’uso Diagr. d uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività Diagr delle attività Diagr. Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 32 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 16 11/19/2008 Il diagramma dei Componenti Area Strutturale Vista Casi d’uso Diagramma Diagr. dei casi d’uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. g a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 33 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page Cosa è Mostra l’organizzazione e le dipendenze dei moduli software ((sorgenti, g , binari,, eseguibili). g ) 11/19/2008 34 © 2008 Exeura – Confidential and Proprietary Page 17 11/19/2008 Componenti Un componente è la rappresentazione di un file di codice sorgente, una libreria o un eseguibile. 11/19/2008 35 © 2008 Exeura – Confidential and Proprietary Page Esempio 1 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 36 © 2008 Exeura – Confidential and Proprietary Page 18 11/19/2008 Esempio 2 Questo esempio mostra l’abbinamento delle classi con le rispettive librerie di runtime. La libreria Trade (Trade.dll) dipende dalla classe Slate (Slate.cls) e dalla classe Trade (Trade.cls). Quest’ultima dipende dalla classe TradeLeg. 11/19/2008 37 © 2008 Exeura – Confidential and Proprietary Page Esempio 3 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 38 © 2008 Exeura – Confidential and Proprietary Page 19 11/19/2008 Il diagramma di distribuzione Area Strutturale Vista Casi d’uso Diagramma Diagr. dei casi d’uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 39 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page Cosa è Il diagramma di distribuzione illustra la configurazione dei nodi di elaborazione durante l’esecuzione, i componenti, i processi e gli oggetti che in essi vivono. 11/19/2008 40 © 2008 Exeura – Confidential and Proprietary Page 20 11/19/2008 Il diagramma di distibuzione Questo diagramma contiene nodi e connessioni tra nodi. CONNESSIONE Indica NODO un percorso di E’ un oggetto fisico di comunicazione tra i nodi. esecuzione s i n d dell codice. di Queste associazioni possono Rappresenta una risorsa avere uno stereotipo. per computazionale indicare la natura del percorso della comunicazione (ad esempio il tipo di canale o di rete). 11/19/2008 41 © 2008 Exeura – Confidential and Proprietary Page Esempio Registration Database Library Main Building Dorm 11/19/2008 42 © 2008 Exeura – Confidential and Proprietary Page 21 11/19/2008 L’area dinamica Area Strutturale Vista Diagramma Diagr dei casi d’uso Diagr. d uso Casi d d’uso uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti A i i à Attività Di Diagr. delle d ll attività tti ità Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 43 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page Vista delle Attività Area Strutturale Vista Casi d’uso Diagramma Diagr. dei casi d’uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 44 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 22 11/19/2008 Diagramma delle attività Area Strutturale l Vista Diagramma Di Diagr. d deii casii d’ d’uso C i d’uso Casi d’ (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività Diagr. delle attività Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 45 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page Cosa è E’ una variazione di una macchina a stati in cui gli stati rappresentano l’effettuazione di azioni o sottoattività e le transizioni sono dovute al completamento dell’azione o della sottoattività. sottoattività Può rappresentare la macchina a stati finiti di una procedura. 11/19/2008 46 © 2008 Exeura – Confidential and Proprietary Page 23 11/19/2008 Esempio: La procedura di evasione di un ordine Corsia (indica la responsabilità degli oggetti nelle azioni) 11/19/2008 47 © 2008 Exeura – Confidential and Proprietary Page Area (e vista) di gestione del modello Area Strutturale Vista Casi d’uso Diagramma Diagr. dei casi d’uso (Diagr. Sequenza) (Diagr. Collaborazione) Dinamica Statica Diagramma delle Classi Implementativa Diagr. dei componenti Distribuzione Diagr. di distribuzione Macchina a stati finiti Diagr. a stati finiti Attività à Diagr. delle d ll attivitàà Interazioni Diagr. di sequenza Diagr. collaborazione Gestione del modello Gestione del modello 11/19/2008 48 Diagramma delle Classi © 2008 Exeura – Confidential and Proprietary Page 24 11/19/2008 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 p package g p può contenere qualunque elemento o diagramma UML 11/19/2008 49 © 2008 Exeura – Confidential and Proprietary Page Utilizzo dei package Nidificando i package si ottiene una struttura più chiara 11/19/2008 50 Il sistema complessivo può essere visto come Page un package © 2008 Exeura – Confidential and Proprietary 25 11/19/2008 Diagramma dei casi d’uso con package Selezione del corso da insegnare Studente S d Docente Registrazione ad un corso Sistema di registrazione Manutenzione Curriculum (From Segreteria) <<uses>> <<uses>> Addetto segreteria Manutenzione Informazioni Studente (From Segreteria) <<uses>> Convalida operazione (From Segreteria) 11/19/2008 51 © 2008 Exeura – Confidential and Proprietary Page Manutenzione Informazioni Docenti (From Segreteria) Esempio: struttura del modello con package 11/19/2008 52 © 2008 Exeura – Confidential and Proprietary Page 26