Introduzione a UML (c) TECNET DATI.

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

PAUE 0506 IV / 1 A B P a = 30 P b = 35 t = 2, tc = 1 Questo può essere un equilibrio? No! Politiche di un paese importatore: una tariffa allimportazione.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
II° Circolo Orta Nova (FG)
INGEGNERIA DEI PROCESSI GESTIONALI
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Introduzione ai Casi dUso (c) TECNET DATI (c) TECNET DATI Pag. 2 Dai requisiti ai casi duso obiettividefinire gli obiettivi –gli obiettivi del committente.
Unified Modeling Language
Java Enterprise Edition (JEE)
Principi di Programmazione Object-Oriented
Acquisti OnLine Progetto
Principi di Programmazione Object-Oriented
Frontespizio Economia Monetaria Anno Accademico
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
DIAGRAMMI DI FLUSSO DEI DATI
L’elasticità e le sue applicazioni
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Distributed Object Computing
1 Seconda ora Larchitettura di un sistema di e- government: parte seconda Un esempio di progetto di e-Government: il progetto servizi alle imprese Un esempio.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
EIE 0607 V / 1 sussidio unitario fisso allesportazione si avrà commercio se e solo se | P B AUT - P A AUT | > tc - P B = P A + tc – (A è il paese esportatore)
EPA 01/02 VII /1 Relazioni spaziali tra i prezzi Lo spazio: produzione e consumo non avvengono nello stesso punto il prodotto deve essere spostato, con.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
1 Il servizio di prestito e fornitura documenti ILL-SBN una visione di insieme caratteristiche della procedura illustrazione delle funzionalità
Corso di Informatica (Programmazione)
Corso di Informatica (Basi di Dati)
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
eliana minicozzi linguaggi1a.a lezione2
Il linguaggio UML Luca Lista. Metodi Object Oriented –Booch Method by Grady Booch –OMT by Jim Rumbaugh –Objectory (Use Cases) by Ivar Jacobson –CRC by.
1 Anatomia di una pagina Un insieme di pagine web hanno generalmente una parte invariante (o poco): header, navigazione, footer una parte variabile: contenuti.
Fare clic per modificare lo stile del sottotitolo dello schema Lezione 2 Corso di Contabilità Direzionale Prof. Riccardo Acernese Lezione 2 Prof. Riccardo.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
Il marketing: costruire una relazione profittevole con il cliente
Portale Capacità STOGIT
Contatore: esempio di circuito sequenziale
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
CORSO AVANZATO INFORMATICA
L’ingegneria del software
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Dipartimento di Informatica e Sistemistica
Il linguaggio UML Luca Lista.
Ingegneria del software Modulo 4 -Processi software Unità didattica 1 -Rational Unified Process Ernesto Damiani Università degli Studi di Milano Lezione.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Luca Bonini Dipartimento ricerca e sviluppo IUFFP Lugano
Esercitazioni di Ingegneria del Software con UML
Progettazione concettuale di SI basati su Web
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Programmazione ad oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
Introduzione a UML.
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Diagramma delle Classi
Analisi dettagliata e design
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Progettazione concettuale di SI basati su Web B. Pernici.
Unified Modeling Language. –un linguaggio (e notazione) universale, per rappresentare qualunque tipo di sistema software –uno standard OMG (Object Management.
UML Unified Modelling Language Linguaggio per la modellazione unificato.
Transcript della presentazione:

Introduzione a UML (c) TECNET DATI

Perché modelliamo Un modello è una semplificazione della realtà I modelli ci aiutano a “visualizzare” un sistema come è o come vorremmo che fosse ci permettono di specificare la struttura o il comportamento di un sistema ci forniscono un “template” che ci guida nella costruzione di un sistema documentano le decisioni che abbiamo preso

Perché modelliamo Divide et impera: tramite i modelli ci focalizziamo su un solo aspetto alla volta ogni modello può essere espresso a differenti livelli di precisione per un sistema non banale: non un solo modello ma un piccolo insieme di modelli, che possono essere costruiti e studiati separatamente, ma che sono strettamente interrelati

Approcci metodologici Un po’ di storia …. anni ‘70 Approccio Strutturato anni ‘80 Information Engineering anni ‘90 Approccio Object Oriented Non si tratta di vere e proprie metodologie, ma: sono impostazioni globali, che coprono più fasi del ciclo di sviluppo / manutenzione hanno avuto (ed hanno) notevole diffusione hanno ispirato (ed ispirano) le metodologie più diffuse

Approccio Strutturato (Yourdon - De Marco) Caratteristiche: “primo” tentativo di fornire regole per le attività di sviluppo SW il concetto di base è la modularizzazione utilizzo di modelli formali e diagrammatici utilizzo di tecniche specifiche per le diverse fasi di sviluppo l’attenzione è rivolta soprattutto alla componente funzionale

Approccio Strutturato Limiti origine anni ‘70: è fondato sul paradigma funzionale (process driven) caratteristico di sistemi mainframe batch tecniche e modelli diversi per dati e processi, per analisi e disegno difficoltà nel “passaggio” dall’analisi al disegno Che cosa resta attuale dell’approccio strutturato? la distinzione ferrea tra analisi (cosa) e disegno (come) l’attenzione alle interazioni tra sistema e ambiente esterno alcune tecniche di analisi (DFD, STD), sia pur calate in un diverso contesto metodologico i principi guida del disegno strutturato (coesione, coupling)

Information Engineering Inizio anni ‘80 (Clive Finkelstein, James Martin) Caratteristiche: utilizzo estensivo di modelli formali e diagrammatici automazione della produzione del software (CASE, generatori di codice) attenzione rivolta principalmente ai dati

Information Engineering Limiti origine anni ‘80: approccio data driven, ma ancora legato alla separazione dati - processi tecniche di analisi e disegno derivate dall’approccio strutturato l’ambiente target previsto è ancora monopiattaforma Che cosa resta attuale dell’Information Engineering? la suddivisione in macrofasi l’attenzione all’automazione del processo di sviluppo e manutenzione (CASE …) l’insistenza sulla partecipazione dell’utente a tutte le fasi del ciclo di sviluppo / manutenzione

Approccio Object Oriented Inizio anni ‘70 Programmazione OO fine anni ‘80 Analisi e Disegno OO Caratteristiche: superamento della distinzione tra dati e funzioni concetti “nuovi”: ereditarietà, information hiding, … forte tendenza al riutilizzo di componenti software già definite

Metodi di analisi e disegno OO Esplosione dei metodi: dal 1989 al 1994 sono passati da 5 a oltre 50, ma… con differenze spesso solo superficiali - notazioni, terminologia e poco più La confusione esistente a livello metodologico si ripercuote a livello di strumenti CASE per la progettazione object oriented Convergenza dei metodi: Unified Modeling Language

Unified Modeling Language un linguaggio (e notazione) universale, per la creazione di modelli software nel novembre ‘97 è diventato uno standard approvato dall’OMG (Object Management Group) numerosi i co-proponenti: Microsoft, IBM, Oracle, HP, Platinum, Sterling, Unysis …..

Unified Modeling Language è l’unificazione dei metodi: Booch-93 di Grady Booch OMT di Jim Rumbaugh OOSE di Ivar Jacobson ha accolto inoltre le idee di numerosi altri metodologi è tuttavia indipendente dai metodi, dalle tecnologie, dai produttori

UML è approvato dall’OMG Storia di UML Nov ‘97 UML è approvato dall’OMG Set ‘97 UML 1.1 IBM, Platinum e altri Gen ‘97 UML 1.0 Giu ‘96 UML 0.9 Microsoft, Oracle, HP e altri Ott ‘95 Unified Method 0.8 Jacobson Rumbaugh Booch

UML - linguaggio universale linguaggio per specificare, costruire, visualizzare e documentare gli artefatti di un sistema universale: può rappresentare sistemi molto diversi, da quelli web ai legacy, dalle tradizionali applicazioni Cobol a quelle object oriented e a componenti

UML non è un metodo è un linguaggio di modellazione, non un metodo, né una metodologia definisce una notazione standard, basata su un meta-modello integrato degli “elementi” che compongono un sistema software non prescrive una sequenza di processo, cioè non dice “prima bisogna fare questa attività, poi quest’altra”

UML e Processo Software “un unico processo universale buono per tutti gli stili dello sviluppo non sembra possibile e tanto meno desiderabile” in realtà UML assume un processo: basato sui Casi d’Uso (use case driven) incentrato sull’architettura iterativo e incrementale i dettagli di questo processo di tipo generale vanno adattati alle peculiarità della cultura dello sviluppo o del dominio applicativo di ciascuna organizzazione

UML: meta-modello UML si fonda su un meta-modello integrato, che definisce le caratteristiche e le relazioni esistenti tra i diversi elementi (classi, attributi, moduli, …) Il meta-modello è la base per l’implementazione dell’UML da parte dei produttori di strumenti di sviluppo (CASE, ambienti visuali, …) e per l’interoperabilità tra i diversi strumenti

UML: meta-modello UML prevede una serie di modelli diagrammatici basati sul meta-modello gli elementi del meta-modello possono comparire in diagrammi di diverso tipo alcuni elementi (ad es. la “classe”) hanno una icona che li rappresenta graficamente

Diagrammi UML livello “logico”: dei casi d’uso - Use Case Diagram delle classi - Class Diagram di sequenza - Sequence Diagram di collaborazione - Collaboration Diagram di transizione di stato - Statechart Diagram delle attività - Activity Diagram livello “fisico”: dei componenti - Component Diagram di distribuzione dei componenti - Deployment Diagram

Diagramma dei casi d’uso Mostra: le modalità di utilizzo del sistema (casi d’uso) gli utilizzatori e coloro che interagiscono con il sistema (attori) le relazioni tra attori e casi d’uso Un caso d’uso rappresenta un possibile “modo” di utilizzo del sistema descrive l’interazione tra attori e sistema, non la “logica interna” della funzione una funzionalità dal punto di vista di chi la utilizza

Diagramma dei casi d’uso attore: un utilizzatore del sistema acquistare articoli log in cassiere cliente caso d'uso: un "modo" di utilizzare il sistema rimborsare articoli venduti

Diagramma delle classi è il caposaldo dell’object oriented rappresenta le classi di oggetti del sistema con i loro attributi e operazioni mostra le relazioni tra le classi (associazioni, aggregazioni e gerarchie di specializzazione/generalizzazione) può essere utilizzato a diversi livelli di dettaglio (in analisi e in disegno)

Diagramma delle classi Pag. Contanti Prodotto Pagamento importo 1 1 Pag. Carta Credito descrive 1 aggregazione riferito a 1 1 Vendita 0..* 0..* ha data Riga vendita specializzazione / ora 1..* 1..* 1 1 generalizzazione crea_vendita() * 1 1 utilizzato da Cassiere POST associazione 1..* 1..* 1 1 1 1 1 1 avviato da * * Negozio nome 1 1 indirizzo Amministratore

Diagramma di sequenza è utilizzato per definire la logica di uno scenario (specifica sequenza di eventi) di un caso d’uso (in analisi e poi ad un maggior livello di dettaglio in disegno) è uno dei principali input per l’implementazione dello scenario mostra gli oggetti coinvolti specificando la sequenza temporale dei messaggi che gli oggetti si scambiano è un diagramma di interazione: evidenzia come un caso d’uso è realizzato tramite la collaborazione di un insieme di oggetti

Diagramma di sequenza registra_articolo (prodotto_id, qta) oggetto : POST : Vendita : Riga vendita : Prodotto : cassiere registra_articolo (prodotto_id, qta) [nuova vendita] crea vendita ( ) porzione del caso d'uso [vendita in corso] aggiungi riga vendita ( ) "Acquistare articoli" relativa alla crea riga vendita (prodotto_id, qta) registrazione articoli get_prezzo (prodotto_id) messaggio

Diagramma di collaborazione è un diagramma di interazione: rappresenta un insieme di oggetti che collaborano per realizzare il comportamento di uno scenario di un caso d’uso a differenza del diagramma di sequenza, mostra i link (legami) tra gli oggetti che si scambiano messaggi, mentre la sequenza di tali messaggi è meno evidente può essere utilizzato in fasi diverse (analisi, disegno di dettaglio)

Diagramma di collaborazione 2: [nuova vendita] crea vendita ( ) 3: [vendita in corso] aggiungi riga vendita ( ) 1: registra_articolo (prodotto_id, qta) : POST : Vendita : cassiere 4: crea riga vendita (prodotto_id, qta) 5: get_prezzo (prodotto_id) : Riga : Prodotto vendita link oggetto

Diagramma transizioni di stato è normalmente utilizzato per modellare il ciclo di vita degli oggetti di una singola classe mostra gli eventi che causano la transizione da uno stato all’altro, le azioni eseguite a fronte di un determinato evento quando un oggetto si trova in un certo stato può essere interessato da determinati eventi (e non da altri) è opportuno utilizzarlo solo per le classi che presentano un ciclo di vita complesso e segnato da una successione ben definita di eventi

Diagramma transizioni di stato aggiungi riga ordine stato iniziale acquisisci ordine acquisito stato Transizione di stato verifica ordine annullato verificato e completato scadenza termini di pagamento dopo un anno stato finale pagamento ricevuto dopo un anno spedizione al cliente pagato spedito

Diagramma di attività rappresenta sistemi di workflow, oppure la logica interna di un processo (processo di business o processo di dettaglio), di un caso d’uso o di una specifica operazione di una classe permette di modellare processi paralleli e la loro sincronizzazione è un caso particolare di diagrammi di stato, in cui ogni stato è uno stato di attività

Diagramma di attività Cliente Vendite Magazzino richiedi servizio ricevi ordine paga completa merce spedisci Cliente Vendite Magazzino

Diagramma dei componenti evidenzia l'organizzazione e le dipendenze tra i componenti software i componenti (come a livello logico i casi d’uso o le classi) possono essere raggruppati in package un componente è una qualunque porzione fisica riutilizzabile con un’identità e un’interfaccia (dichiarazione di servizi offerti) ben definite un componente può essere costituito dall’aggregazione di altri componenti

Diagramma dei componenti Vendita.java Java.awt Prodotto.java componente POST.java Vendita.exe relationship di dependency

Diagramma di distribuzione è utilizzato per mostrare come sono configurate e allocate le unità hardware e software per un’applicazione evidenzia la configurazione dei nodi elaborativi in ambiente di esecuzione (run-time), e dei componenti, processi ed oggetti allocati su questi nodi

Diagramma di distribuzione Application Server Data Server Client TCP/IP TCP/IP Connessione tra nodi nodo

Package consente di partizionare il sistema in sottosistemi costituiti da elementi omogenei di: natura logica (classi, casi d’uso, …) natura fisica (moduli, tabelle, …) altra natura (processori, risorse di rete, …) ogni elemento appartiene ad un solo package un package può referenziare elementi appartenenti ad altri package

Package Negozio Negozio POST Manager Package 1 1..* * 1 Servizi di base Oracle Java Virtual Machine Java.applet

UML - considerazioni finali UML rappresenta un’evoluzione dei modelli preesistenti, più che una rivoluzione è adatto a esprimere modelli di varia tipologia, creati per obiettivi diversi può descrivere un sistema software a diversi livelli di astrazione, dal piano più svincolato dalle caratteristiche tecnologiche fino all’allocazione dei componenti software nei diversi processori in un’architettura distribuita UML può essere utilizzato per: mostrare i confini di un sistema e le sue principaqli funzionalità utilizzando i casi d’uso e gli attori illustrare la realizzazione dei casi d’uso con i diagrammi di sequenza rappresentare la struttura statica di un sistema utilizzando i diagrammi delle classi modellare il comportamento degli oggetti con il diagramma di transizione di stato rappresentare l’architettura dell’implementazione fisica con i diagrammi dei componenti e di distribuzione estendere la tua funzionalità con gli stereotipi

UML - considerazioni finali UML è sufficientemente complesso per rispondere a tutte le necessità di modellazione, ma è opportuno “ritagliarlo” in base alle specifiche esigenze dei progettisti e dei progetti, utilizzando solo ciò che serve nello specifico contesto “keep the process as simple as possible!”

Le relazioni tra i modelli di UML Le tecniche di modellazione UML da un punto di vista iterativo Le frecce indicano una relationship “è input a”, ad es. un diagramma dei casi d’uso rappresenta un input per il diagramma delle classi. Le relationship tra i diversi modelli di UML riflettono la natura iterativa della modellazione OO.

I modelli di UML e le fasi del processo Le tecniche di modellazione UML da un punto di vista periodico Le frecce indicano una relationship “è documentato da”, ad es. un diagramma delle transizioni di stato è utilizzato per documentare un diagramma delle classi (normalmente una sola delle classi che compaiono nel diagramma delle classi). In modo simile, i componenti in un diagramma dei componenti possono essere documentati da un altro diagramma dei componenti, da un diagramma delle classi o da un modello dei casi d’uso. Il codice documenta le classi presenti in un diagramma delle classi. Normalmente si inizia un progetto con la raccolta dei requisiti e la specifica dei casi d’uso. Quindi si procede con le tecniche di analisi e disegno come il diagramma delle classi e i diagrammi di interazione. Anche se si continuerà a utilizzare tutte queste tecniche in modo iterativo e sebbene può succedere di scrivere del codice già in una fase iniziale di progetto, resta il fatto che generalmente sarà necessario dapprima identificare i requisiti, quindi analizzarli, disegnare il software e poi scrivere il codice.