Introduzione a UML. Obiettivi. Unified Modeling Language. Gli autori di UML. Cos è UML. Cos è UML (cont.) Unified Modeling Language

Documenti analoghi
Introduzione a UML. obiettivo di questa introduzione

Unified Modeling Language - UML

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Introduzione a UML. Iolanda Salinari

Sistemi Informativi I Strumenti - UML

Introduzione ai casi d uso

Introduzione a UML. Adriano Comai. versione 19 marzo Adriano Comai. Introduzione a UML Pag.

Introduzione ad UML. Perché modelliamo

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

UML un linguaggio universale per la modellazione del software. Adriano Comai

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2006/2007

Ingegneria del Software UML - Unified Modeling Language

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

UniRoma2 - Ingegneria del Software 1 1

Rappresentazione. Unified Modeling Language. Genesi dell UML. Principali Diagrammi UML. Unified Modeling Language (UML)

UML e (R)UP (an overview)

1. UML 2 ed il Processo Unificato

Progettazione orientata agli oggetti Introduzione a UML

Alcuni diagrammi. OCL (Object Constraint Language)

Corso di Ingegneria del Software. Activity Diagram

Ingegneria del Software

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

3. Standard per l analisi Object Oriented

UML. Unified Modeling Language (UML) Breve storia dell UML. Perchè usare la progettazione visuale? Ken Jacobs, Oracle Vice-president:

Progettazione di basi di dati

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Progettazione di Database

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

INGEGNERIA DEL SOFTWARE

UML I diagrammi implementativi

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

Il linguaggio di modellazione UML. Rational Unified Process. Model Driven Architecture. Sistemi Informativi Aziendali

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

I Diagrammi di Flusso OO

SOMMARIO DIAGRAMMI DI ATTIVITÀ

SOMMARIO CHE COS È UML

Rappresentazione con i diagrammi di flusso (Flow - chart)

SOMMARIO CATEGORIE LOGICHE UNIVERSALI

Il PROCESSO UNIFICATO

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

APPENDICE 4 AL CAPITOLATO TECNICO

MODELLO e RAPPRESENTAZIONE

2. Modellazione dei casi d uso

PROGETTAZIONE DEL SOFTWARE

Introduzione ai casi d uso. Iolanda Salinari

Linguaggi di Modellazione & UML

Gestione dello sviluppo software Modelli Base

SISTEMI INFORMATIVI E DATABASE

Web Application Engineering

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Attività vs. Stato. Elementi di UML (4) Activity diagram. Activity diagram: notazione (1/3) Activity diagram: notazione (2/3)

Ingegneria del Software. Simulazione Prova parziale del 24/4/2015

Unified Process - introduzione

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

I database. Introduzione alla teoria delle basi di dati

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Una Metodologia per il Progetto di Sistemi Informativi Overview

Progettazione del Sofware

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Ingegneria del Software 8. Diagrammi di attività. Dipartimento di Informatica Università di Pisa A.A. 2014/15

UML - Unified Modeling Language

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Tesi di Laurea Triennale in Ingegneria Informatica REALIZZAZIONE DI UN APPLICATIVO PER LA GESTIONE DI FOGLI DI LAVORO INTEGRATO IN OUTLOOK 2010

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Metodologie e modelli di progetto

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Complementi di Informatica. Prof. Mauro Giacomini

Università di Pisa Polo Sistemi Logistici Economia e Legislazione dei Sistemi Logistici. Informatica per la Logistica. Lezioni

Progetti di ricerca: cenni metodologici. Alessandro Tuccio Provincia Autonoma di Trento Servizio Università e ricerca scientifica

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Business Modeling UML

Sistemi Informativi e Commercio Elettronico

SETA Selection Tool del Sistema ARTIST

Ingegneria del Software (e Prova Finale) Luciano Baresi

Sistemi informativi secondo prospettive combinate

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Basi di dati Modelli e linguaggi di interrogazione

Sommario. Introduzione... 13

INTRODUZIONE AI DATABASE PROGETTAZIONE DI BASI DI DATI

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

Introduzione alla OOP Object Oriented Programming

Organizzazione aziendale Lezione 16 BPMN. Ing. Marco Greco Tel Stanza 1S-28

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

ARCHITETTURA DI UN DBMS

Il modello Entity-Relationship per il progetto delle basi di dati

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

REGIONE BASILICATA UFFICIO S. I. R. S.

Corso di Ingegneria del Software. Modelli di produzione del software

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.)

Transcript:

Obiettivi Introduzione a UML Unified Modeling Language Fornire elementi di base su UML Introdurre i principali diagrammi Fornire indicazioni sulle modalità di utilizzo di UML nello sviluppo delle applicazioni Paolo Maggi <maggi@athena.polito.it> Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 2 Unified Modeling Language UML è: un linguaggio (e una notazione) universale, per rappresentare qualunque tipo di sistema software (e non) uno standard OMG (Object Management Group), dal novembre del 1997 Gli autori di UML Gli autori di UML (i tre amigos ) sono: Grady Booch Ivar Jacobson Jim Rumbaugh I co-proponenti sono: Microsoft, IBM, Oracle, HP, Platinum, Sterling, Unysis (e tanti altri) Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 3 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 4 Cos è UML UML è un linguaggio di progettazione, non un linguaggio di programmazione (come Java, VisualBasic, C++, ) UML serve a progettare un nuovo sistema, o a apportare modifiche alla progettazione di un sistema esistente, senza perdersi nei dettagli dei linguaggi di programmazione Cos è UML (cont.) UML è universale, nel senso che può rappresentare sistemi molto diversi senza differenze legate alla tecnologia: dai sistemi web a quelli più tradizionali, dalle vecchie applicazioni Cobol a quelle object oriented e a componenti UML è un linguaggio, non un metodo (come quelli di Yourdon e DeMarco, o di Rumbaugh o Jacobson) Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 5 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 6

Cos è UML (cont.) UML definisce una notazione standard, ma non prescrive una sequenza di processo, cioè non dice prima bisogna fare questa attività, poi quest altra UML può quindi essere utilizzato da persone e gruppi che seguono metodi diversi (è indipendente dai metodi ) UML è un linguaggio non proprietario, standard Cos è UML (cont.) Gli autori di UML (Grady Booch, Jim Rumbaugh e Ivar Jacobson) non hanno il copyright su di esso La versione di UML diventata standard OMG (Object Management Group) ha ricevuto i contributi di molti altri metodologi, e delle più importanti società di software mondiali Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 7 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 8 UML come evoluzione... UML è un evoluzione di modelli preesistenti, non una rivoluzione UML ha forti affinità con modelli e diagrammi molto noti: Entity - Relationship Flow Chart modelli object oriented UML introduce alcune innovazione rispetto ai modelli precedenti per adeguarsi alle architetture distribuite Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 9 Booch Rumbaugh Jacobson OOD 91 OOAD 94 Ott. 95 UNIFIED METHOD NOTATION (vers. 0.8) 94 (RATIONAL) (OMT) 91 (Objectory / OOSE) 92 Ott. 95 (RATIONAL) Lug. 96 UNIFIED MODELING LANGUAGE (vers. 0.9) OOSE Object Oriented Software Engineering OMT Object Modeling Technique Gen. 1997 UML 1.0 Storia di UML Microsoft, HP, Oracle e altri Nov. 1997 UML 1.1 IBM, Platinum e altri Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 10 Meta-modello UML è basato su un meta-modello integrato, composto da numerosi elementi collegati tra loro, secondo regole precise Grazie a queste regole, utilizzando gli elementi del meta-modello è possibile creare modelli particolari per le singole applicazioni da progettare Meta-modello e diagrammi Molti elementi del meta-modello (ad es. l elemento classe ) hanno una icona che li rappresenta graficamente Gli elementi del meta-modello possono comparire in diagrammi di diverso tipo Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 11 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 12

Diagrammi UML Livello logico : diagramma dei casi d uso (use case) diagramma delle classi (class) diagramma di sequenza (sequence) diagramma di collaborazione (collaboration) diagramma di transizione di stato (state) diagramma delle attività (activity) Diagrammi UML (cont.) Livello fisico : diagramma dei componenti (component) diagramma di distribuzione dei componenti (deployment) Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 13 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 14 Diagramma dei casi d uso Diagramma dei casi d'uso: vendita per corrispondenza Attore Utilizzatore del sistema (essere umano, altro sistema, ) Acquirente Verifica stato avanzamento Effettua Venditore Caso d uso Particolare modalità di utilizzo del sistema Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 15 Casi d uso: a cosa servono Rappresentano le modalità di utilizzo del sistema da parte di uno o più utilizzatori (attori) Descrivono l interazione tra attori e sistema, non la logica interna della funzione Sono espressi in forma testuale, comprensibile anche per i non addetti ai lavori Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 16 Casi d uso: a cosa servono Ruolo dei casi d uso Possono essere definiti a livelli diversi (sistema o parti del sistema) Ragionare sui casi d uso aiuta a scoprire i requisiti funzionali Requisiti Acquirente Effettua Venditore Modelli di analisi e disegno Ordine DataArrivo Cliente Numero nome Prezzo indirizzo 1 verifica( ) StabilisciCredito( ) evadi( ) Casi di prova Unità di rilascio Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 17 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 18

Diagramma delle classi Nome della classe Diagramma delle classi Classe Libro cod_libro titolo data edizione ISDN data acquisizione richiesta( ) restituzione( ) create( ) Libro prezioso valore : lire = 0 valorizza( ) 1..* pubblicato da Attributi Prestito scritto da 1 Editore ragione sociale nome breve indirizzo sede telefono variazione dati editore( ) Autore nome : type = initval cognome : type = initval anno nascita anno morte Utente variazione anagrafica( ) variazione anagrafica( ) Operazioni Libro cod_libro titolo data edizione ISDN data acquisizione richiesta( ) restituzione( ) create( ) Libro prezioso valore : lire = 0 valorizza( ) Classe associativa 1..* pubblicato da Gerarchia di specializzazione (superclassesottoclasse) Prestito scritto da 1 Editore ragione sociale nome breve indirizzo sede telefono variazione dati editore( ) Autore nome : type = initval cognome : type = initval anno nascita anno morte Utente variazione anagrafica( ) variazione anagrafica( ) Associazione (relationship) Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 19 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 20 Diagramma delle classi: Rappresenta le classi e gli oggetti che compongono il sistema, ed i relativi attributi ed operazioni Specifica, mediante le associazioni, i vincoli che legano tra loro le classi Può essere definito in fasi diverse (analisi, disegno di dettaglio) Può rappresentare diverse tipologie di oggetti (oggetti business, oggetti di interfaccia, ) Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 21 Specifica di scenario (caso d uso) interfaccia richiesta : Utente : interfaccia biblioteca consente all'utilizzatore di richiedere in prestito uno o più libri 1: RichiestaPrestito L'utente fornisce i dati 2: relativi al libro (ai libri) che vuole in prestito. Il sistema verifica se 5: l'utente è censito, 6: err: utente non censito ( Verifica quindi se ha 10: err: utente deve restituire 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 15: err: libro già in prestito disponibili, e se lo sono li fornisce all'utente, altrimenti segnala l'errore 9: 14: Attività dell oggetto controllo richiesta : Libro : Prestito Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 22 : Utente 3: ControlloUtentePerPrestito ( 4: 8: 11: richiesta (cod_libro) 13: Messaggio 7: PrestitiDelCliente ( ) 12: Prestito ( ) Oggetto Diagramma di sequenza Diagramma di sequenza: Evidenzia il modo in cui uno scenario (uno specifico percorso in un caso d uso) viene risolto dalla collaborazione tra un insieme di oggetti Specifica la sequenza dei messaggi che gli oggetti si scambiano Diagrammi di sequenza e diagrammi di collaborazione esprimono informazioni simili, ma le evidenziano in modo diverso Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 23 Diagramma di collaborazione : Utente biblioteca : Libro 1: RichiestaPrestito 10: err: utente deve restituire 6: err: utente non censito ( ) 15: err: libro già in prestito 13: 11: richiesta (cod_libro) 12: Prestito ( ) : Prestito interfaccia richiesta : interfaccia 9: 2: 5: 14: controllo richiesta Messaggio 3: ControlloUtentePerPrestito ( ) : Utente Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 24 8: 4: 7: PrestitiDelCliente ( ) Oggetto

Diagramma di collaborazione: Diagramma transizioni di stato Specifica gli oggetti che collaborano tra loro in un dato scenario, ed i messaggi che si indirizzano La sequenza dei messaggi è meno evidente che nel diagramma di sequenza, mentre sono più evidenti i legami tra gli oggetti Può essere utilizzato in fasi diverse (analisi, disegno di dettaglio), e rappresentare diverse tipologie di oggetti Stato finale acquisizione libro( dati libro, autori, editore ) acquisito cancellazione libro( ISDN ) restituzione( data restituzione ) prestito( data ) cancellazione libro( ISDN ) Stato iniziale restituzione( data restituzione ) Transizione di stato in prestito scadenza termini in ritardo sollecito Stato Evento Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 25 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 26 Diagramma transizioni di stato: Specifica il ciclo di vita degli oggetti di una classe, definendo le regole che lo governano Quando un oggetto si trova in un certo stato può essere interessato da determinati eventi (e non da altri) Come risultato di un evento l oggetto può passare ad un nuovo stato (transizione) Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 27 Cliente Vendite Magazzino richiedi servizio paga Join ricevi merce Start End Fork ricevi spedisci merce completa Attività Diagramma di attività Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 28 Diagramma di attività Diagramma di attività: Branch [rush order] Overnight Delivery Fill Order Regular Delivery [else] Guard A rappresentare sistemi di workflow, oppure la logica interna di un processo (di qualunque livello, dai business process ai processi di dettaglio) Permette di rappresentare processi paralleli e la loro sincronizzazione Merge Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 29 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 30

ricevi merce Cliente Vendite Magazzino richiedi servizio [effettuato] paga [spedito] ricevi spedisci merce [completato] [inserito] completa Diagramma di flusso oggetto-azione Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 31 Diagramma di flusso azioneoggetto: Serve a rappresentare le interazioni tra processi e oggetti È un caso particolare di diagramma di attività È un vero e proprio flow chart Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 32 diagramma dei componenti Diagramma dei componenti: l'esistenza dell' dipende da quella del cliente database server cliente Package Dipendenza form inserimento Componente Evidenzia l'organizzazione e le dipendenze esistenti tra componenti I componenti sono moduli software eseguibili, dotati di identità e con un'interfaccia ben specificata I componenti (come a livello logico le classi) possono essere raggruppati in package Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 33 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 34 diagramma di distribuzione Diagramma di distribuzione: client interfaccia utente Nodo tcp / ip Connessione tra nodi server locale application server tcp / ip server remoto Evidenzia la configurazione dei nodi elaborativi a run-time e dei componenti, processi ed oggetti ubicati in questi nodi Permette di rappresentare, a diversi livelli di dettaglio, l architettura fisica del sistema Paolo Maggi Sistemi Informativi data server Introduzione a UML - Pag. 35 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 36

Benefici portati da UML Superamento della "guerra dei metodi" decine (o centinaia?) di metodi di analisi e disegno proposti e praticati difficoltà per chi vuole passare all approccio object oriented: qual è il metodo migliore? quale strumento scegliere, se non c è chiarezza nel campo dei metodi? Benefici portati da UML (cont) Risposta ai problemi legati allo sviluppo di sistemi complessi con ambienti visuali ritorno di attenzione sul processo di lavoro e sugli approcci utilizzati, non solo sulle tecnologie il metamodello comune favorisce le possibilità di comunicazione tra strumenti di supporto alla progettazione, e più in generale tra i diversi ambienti utilizzabili dai progettisti nello sviluppo Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 37 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 38 UML è troppo complesso? Il metamodello di UML è veramente complesso, perché ha l'ambizione di poter rappresentare qualunque tipo di sistema software, a livelli di astrazione differenziati Il numero dei diagrammi è elevato, e per molti diagrammi è possibile scegliere tra forme di rappresentazione leggermente diverse tra loro UML è troppo complesso? UML non suggerisce, né tantomeno prescrive una sequenza di utilizzo dei diversi diagrammi, lascia anzi molte strade aperte, tra le quali i progettisti sono liberi di scegliere Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 39 Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 40 UML va adattato alle proprie esigenze Le realtà che sviluppano software sono molto eterogenee: chi sviluppa da solo, per conto proprio, non ha le stesse esigenze di documentazione e comunicazione di chi opera in un gruppo di lavoro all'interno di un'azienda Tra aziende diverse possono esserci differenze anche notevoli nel livello di formalizzazione richiesto ai progettisti, nelle tecniche da adottare, negli approcci da seguire, nel tipo di documentazione da produrre Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 41 UML va adattato alle proprie esigenze (cont.) I progetti non sono tutti uguali: variano per dimensioni, per tipologia, per criticità, e per molti altri fattori Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 42

UML va adattato alle proprie esigenze (cont.) UML può essere utilizzato da tutti, perché è sufficientemente complesso per potersi adattare a tutte le esigenze Ma non ha senso che tutti utilizzino UML esattamente nello stesso modo: per scegliere il percorso "ottimale", e quali diagrammi utilizzare davvero tra tutti quelli che UML mette a disposizione, è necessario verificare quali siano le esigenze che dobbiamo concretamente soddisfare Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 43 Conclusioni UML è uno standard, e questo è un bene (uniformità nei concetti e nelle notazioni utilizzate, interoperabilità tra strumenti di sviluppo, indipendenza dai produttori, dalle tecnologie, dai metodi) UML è articolato: può rappresentare qualunque sistema software, a diversi livelli di astrazione UML è complesso: va adattato ("ritagliato") in base alle specifiche esigenze dei progettisti e dei progetti, utilizzando solo ciò che serve nello specifico contesto Paolo Maggi Sistemi Informativi Introduzione a UML - Pag. 44