UML - Antonio Vasco

Transcript

UML - Antonio Vasco
UML
Unified Modelling Language
Linguaggio per la modellazione unificato.
La storia
• In ingegneria del software, UML (unified modelling
language, "linguaggio di modellizzazione unificato")
è un linguaggio di
modellizzazione e specifica basato sul paradigma
orientato agli oggetti.
• Il nucleo del linguaggio fu definito
nel 1996 daGrady Booch, Jim Rumbaugh e Ivar
Jacobson (detti "i tre amigos") sotto l'egida
dell'Object Management Group, consorzio che
tuttora gestisce lo standard UML.
(wikipedia)
La Storia
1991 Nascono le metodologie Object – Oriented
(Booch, Rumbaugh, Jacobson)
1994 Booch e Rumbaugh si uniscono a Rational
Software
1995 Nasce Unified Metod versione 0,8
1996 UM versione 0,8 diventa UML 0,9
1997 UML 1,0 in partnership con Microsoft, Oracle,
HP, Digital, TI. OMG spinge per un framework che
consenta interoperabilità tra analisi e disegno.
La Storia
1999 UML 1,3
2003 UML 1,5
2005 UML 2,0
2010 UML 2,3
http://www.uml.org/
La Storia
• Gray Booch, Ivar Jacobson, Jim Rumbaugh avevano
sviluppato propri metodi per disegnare e
progettare il software e successivamente
cominciarono a collaborare.
• Presto le principali case di informatica, che avevano
il problema che non esisteva un metodo unificato
per progettare software, decisero di aiutare i tre
studiosi.
• Nel 1997 nasce UML 1.0 riconosciuto da OMG.
La Storia
UML ha lo scopo di aiutare i progettisti nel
• Disegno del nuovo sistema software.
• Utilizzando un linguaggio universale
• Documentando il sistema
4 fasi del UML
Nella metodologia UML le fasi sono 4 (ricalcano le
fasi del ciclo di vita del software)
1 – Analisi.
2 – Progettazione di sistema.
3 – Progettazione degli oggetti.
4 – Implementazione.
1 - Analisi
• Si costruisce un modello della realtà (es. una
libreria)
• Viene determinato COSA il sistema deve fare e non
COME deve essere fatto (gestione libreria, prestiti,
acquisti, giacenze).
• Si individuano quali sono:
• Gli oggetti su cui lavora il software (libri, ordini, prestiti)
• Gli esperti che utilizzeranno il software (bibliotecari,
lettori).
2 - Progettazione del sistema
• Si definisce per bene, ma in maniera «astratta» cioè
in modo progettuale, non dettagliato, quello che il
sistema software deve fare.
• Si divide il sistema software in sottosistemi che poi
saranno realizzati separatamente in modo da dar
vita ad un lavoro modulare.
3 - Progettazione degli oggetti
• Si progettano come saranno gli oggetti del software
(libri, ordini, prestiti….)
• Si progettano le strutture dati.
• Si progettano gli algoritmi.
• Si individuano le classi su cui lavorare
4 - Implementazione
• È la fase di codifica.
• Si usa uno specifico linguaggio di programmazione.
• Le classi prima individuate vengono realizzate.
• Le scelte importanti sono già state fatte.
• Si devono seguire i principi della buona
realizzazione del software.
Diagrammi UML
• UML mette a disposizione molteplici tipi di
diagrammi utili per descrivere un po’ tutto:
•
•
•
•
Dati e archivi usati.
Funzione da implementare
Tempo ed evoluzione temporale
Stati e transizioni.
Diagrammi UML
• In particolare ci sono per la:
• Modellazione ad oggetti: diagramma delle classi.
• Modellazione funzionale: diagramma dei casi d’uso.
• Modellazione dinamica: diagrammi di stato, di
sequenza, di attività.
• Ogni modello che si fa ci descrive e CHIARISCE un
aspetto specifico del sistema in modo da non avere
incertezze e confusioni.
• I modelli sono però collegati tra loro.
Paradigma OO (Object Oriented)
• La programmazione orientata agli oggetti OOP è un
tipo (paradigma) di programmazione con la quale si
realizzano degli «oggetti software» in grado di
interagire tra loro scambiando informazioni
(messaggi).
• In una zona precisa del codice sorgente si dichiara
una struttura dati con cui si definisce la «classe» e
le procedure che operano su esse (metodi).
• Il codice è organizzato in «classi» così che si
favorisce la modularità ed il riuso.
Paradigma OO (Object Oriented)
1. Le classi quindi costituiscono dei modelli astratti
che al momento di esecuzione vengono invocate
generando una «istanza» cioè un «oggetto»
software.
2. Classi ed oggetti che le appartengono sono
dotate di attributi e metodi cioè di dati e
procedure specifiche.
Paradigma OO (Object Oriented)
• Ricordiamo i due concetti base del paradigma OO.
1. Incapsulamento: dati e procedure costituiscono
l’oggetto.
2. Information hiding: si può accedere all’oggetto
solo attraverso le procedure attivate che sono
l’interfaccia dell’oggetto.