Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
MODELLAZIONE UML
- MODELLARE ➔ MODELLO ➔ astrazione della realtà che si vuole rappresentare e che ne cattura le proprietà salienti
- modealre permette di idealizzare situazioni complesse in modo tale da evidenziare i tratti importanti facilitandone la comprensione.
- la nostra mente compie continuamente operazioni di modellazione, producendo schemi per comprendere ed elaborare quello che viene percepito. la realtà è pertanto un'istanza del modello.
Perché modellare?
- Comprendere il soggetto in analisi
- Conoscere il soggetto in analisi
- Comunicare la conoscenza del soggetto
- Prendendo ad esempio un tipico progetto software spesso coinvolge numerosi sviluppatori pertanto modealre può permettere:
- separare compiti e responsabilità
- raggruppare informazioni e suddividerle in livelli
- Le caratteristiche di un progetto possono mutare nel tempo
- avere a disposizione dei modelli permette di comunicare in modo più chiaro e preciso
- prevedere e adattarsi ai cambiamenti
- stimare costi, tempo e risorse
- Senza avere un modello cui far riferimento, come si può ragionare su un determinato problema?
LINGUAGGIO DI MODELLAZIONE
Un linguaggio di modellazione fornisce primitive a cui ricondurre la realtà in esame. Permette di esprimere sistemi complessi per mezzo delle entità fondamentali che lo compongono specificando caratteristiche e relazioni tra di esse.
- In un progetto il LINGUAGGIO è normalmente distinto dal PROCESSO di sviluppo
- LINGUAGGIO → cosa deve essere ottenuto
- PROCESSO → passi da seguire per ottenerlo
- LINGUAGGIO + PROCESSO → metodo di sviluppo
CHE COS'È UML
- UML → Unified Modeling Language
- SPECIFICARE
- VISUALIZZARE
- REALIZZARE
- MODIFICARE
- DOCUMENTARE
UML → linguaggio di modellazione
- CAPIRE
- DESCRIVERE
caratteristiche di un nuovo sistema o di uno esistente
- ARTEFATTI → prodotto tangibile del progetto
- SORGENTI
- ESEGUIBILI
- DOCUMENTAZIONE
- FILE DI CONFIGURAZIONE
- TABELLE / BENCHMARK
- INDIPENDENTE ambito del progetto processo di sviluppo linguaggio di programmazione, infatti è progettato per adattarsi ai linguaggi OBJECT-ORIENTED
fa parte di un metodo di sviluppo ma non è esso stesso il metodo
Vantaggi Approccio Visuale
- Progettista software necessità → rappresentare diversi aspetti del progetto
- Diagrammi differenti → aspetti differenti
- Visione completa da più punti di vista
- Visione di dettaglio e particolari
Generazione del Modello
- Tramite il concetto di astrazione anche una realtà molto complessa viene rappresentata semplificandola in un modello
- Analisi e progettazione → generazione modello → identificare e isolare le caratteristiche di un sistema
- Progettista screma le caratteristiche rilevanti e definisce relazioni tra queste
Tipi di Relazioni
- Strutturali → es. Associazioni tra classi
- Temporali → es. Sequenza di messaggi
- Causa-Effetto → es. Diagramma di stato
- Organizzative → es. Raggruppamento degli elementi
- Evolutive → es. Dipendenza tra i diagrammi
UML - Unified Modeling Language
- Linguaggio di modellazione visuale
- Consente agli analisti e progettisti di sistemi orientati agli oggetti di modellare, rappresentare e documentare sistemi software
- Non è un linguaggio di programmazione, tuttavia esistono software che convertono diagrammi UML in elementi software da eseguire
- Non è una metodologia di sviluppo del software
- UML è un linguaggio, un insieme di regole e di elementi, mancante di specifica formale
- CASI D’USO
- visione d’insieme del sistema che si sta analizzando
- fondamentale nella FASE INIZIALE del PROGETTO
- rappresentano il sistema visto dell’utilizzatore
- modellano il dialogo tra UTILIZZATORE e SISTEMA
- interazione ATTORE / SISTEMA (coppia astratta)
- espressi in forma testuale
- diversi livelli di definizione (sistema complesso/parziale)
- rappresentano modalità d’uso del sistema da parte di uno o più attori
- consentono di scoprire requisiti funzionali
- ausilio dialogo con utenti
- fondamentali con espansioni non felici
- vengono rappresentati da un diagramma
diagramma dei casi d’uso
- rappresenta i casi d’uso, gli attori e le associazioni che li legano
- visualizzano le modalità di utilizzo del sistema da parte di uno o più utilizzatori, definiti ATTORI
- i singoli casi d’uso descrivono le interazioni tra sistema e attori
- un ATTORE è un elemento esterno al sistema che fornisce un input a cui il sistema deve rispondere
ATTORE - utilizzatore del sistema che interagisce con i casi d’uso
- può essere umano o un altro sistema
- rappresenta un ruolo di un oggetto
- un oggetto fisico (classe) può assumere ruoli diversi e quindi essere modellato da più attori
- nel caso di attori umani, il nome di un attore identifica le sue richieste/azioni
- se l’attore svolge un ruolo contestuale, allora è suo incarico o mansione
Attributi
- Visibilità
- Nome
- Tipo
- Molteplicità
- Default
- Proprietà
visibilità nome : tipo molteplicità = default {proprietà}
- Visibilità → attributo pubblico (+) o privato (-)
- Nome → nome della variabile
- Tipo → tipo di dato (string, integer, classe, ...)
- Molteplicità → numeri di elementi
- Default → valore iniziale dell'attributo
- Proprietà → proprietà aggiuntive (const, readonly, ...)
Operazioni (firma)
visibilità nome (nome parametro : tipo, ... ) : tipo restituito
- Visibilità → pubblico (+) o privato (-)
- Nome → nome del metodo (camel case)
- Parametri → elenco nomi e tipo di dato
- Tipo Restituito → tipo di dato restituito
ogni operazione di una classe deve avere una firma univoca (signature)
Visibilità
L'elemento è visibile all'esterno del namespace o della classe che lo contiene a secondo della sua visibilità, concetto fondamentale della OOP: incapsulamento o information hiding
- + public → altri elementi possono vedere ed usare
- # protected → solo dei suoi discendenti (ereditarietà)
- - private → solo degli elementi nell'elemento stesso
- ∼ package → solo degli elementi nello stesso package
Relazioni
Legame tra due oggetti, normalmente tra istanze di classi diverse (non necessariamente)
UML fornisce rappresentazioni grafiche per
- Associazione ← Aggregazione
- Composizione
- Generazione
- Dipendenza → Uso Realizzazione