Introduzione a UML

Transcript

Introduzione a UML
PROGETTAZIONE DEL SOFTWARE
EMILIANO CASALICCHIO
DIPARTIMENTO DI INFORMATICA E SISTEMISTICA
SAPIENZA UNIVERSITÀ DI ROMA – SEDE DI RIETI
HTTP://WWW.CE.UNIROMA2.IT/COURSES/PSW
UNIFIED MODELING LANGUAGE
•!
•!
•!
•!
•!
Cos’è UML
Linguaggi di modellazione formali e informali
Livelli d’uso di UML
Viste del modello
Panoramica sui diagrammi
–!
–!
–!
–!
–!
–!
Note e Stereotipi
Use Case
Activity Diagram
State Machine Diagram
Class/Object Diagram
Sequence Diagram
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
2
LA STORIA DI UML
•! UML sta per Unified Modeling Language, perché il progetto UML
nasce nel 1994 come unificazione di:
–! Booch
–! Rumbaugh: OMT (Object Medeling Technique)
–! Jacobson: OOSE (Object-Oriented Software Engineering)
•! Storia
–!
–!
–!
–!
–!
1995: Versione 0.8 (Booch, Rumbaugh)
1996: Versione 0.9 (Booch, Rumbaugh, Jacbson)
Versione 1.0 (BRJ + Digital, IBM, HP, ...)
1999, 2004: Versione 1,3, 1.4, 1.5, UML si diffonde universalmente
2005: Versione 2.0, nuova versione (estende la versione 1.5)
•! Riferimento:
–! G. Booch, J. Rumbaugh, I. Jacobson, “The unified modeling language
user guide”, Addison Wesley, 1999. (2° ed. 2005)
–! http://www.uml.org/
E.Casalicchio (basato su materiale di G.De Giacomo) Progettazione del SW – II Parte
3
COS’È UML
•! Il linuaggio di modellazione standard per lo sviluppo di software
e sistemi
•! UML permette di
–! Tenere traccia dei componenti di cui si ha bisogno e la loro funzione
–! Quali requisiti del cliente soddisfano
–! Condividere il lavoro (ossia i vari artefatti progettuali)
•! UML permette di modellare un sistema
–! Astrarre i dettagli inutili
–! Dare una visione semplificata del sistema/problema
•! Un linguaggio di modellazione formale permette di essere
“precisi” come con un linguaggio di programmazine
•! “precisione”=machine-readability, intrepretability, executability,
and transformation
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
4
LINGUAGGIO DI MODELLAZIONE
•! Notazione + Semantica
•! Notazione = elementi descrittivi quali
–!
–!
–!
–!
–!
–!
Pseudo-codice
Codice
Figure
Diagrammi
Descrizione testuale
…
•! Semantica = descrizione del significato degli elementi descrittivi
•! Perche’ UML? Ha 6 vantagi
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
5
VANTAGGI DI UML
•!
•!
•!
•!
•!
•!
E’ un linguaggio formale
E’ conciso
E’ completo
E’ Scalabile
Costruito sull’esperienza (on lesson learned)
E’ standard
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
6
ESEMPIO: MODELLAZIONE MEDIANTE CODICE
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
7
ESEMPIO: MODELLAZIONE MEDIANTE CODICE
•!
•!
•!
•!
Nessun dettaglio viene astratto
Modella solo l’implementazione del SW
Completo e non-ambiguo
Non mi da informazioni su
–! Come verrà usato il sw
–! Chi utilizzarà il software
–! Come verrà sviluppato, distribuito e supportato
•! Non da una visione globale “the big picture is missing entirely”
•! Non mi da strumenti per comunicare, ossia SPIEGARE il
software
–! Come, le varie componenti interaggiscono e come soddisfano i requisiti?
•! Il codice non sempre può essere riutilizzato, un modello può
spesso essere riutilizzato
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
8
MODELLARE CON LINGUAGGI INFORMALI
•! Verbosità, ambiguità e confusione
•! Non ci sono regole esatte per la notazione
•! Il modelo non può essere trasformato, e.g. non si può generare
codice a partire dal modelo
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
9
MODELLARE CON LINGUAGGI INFORMALI
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
10
MODELLARE CON LINGUAGGI FORMALI
•! No-ambiguità, giusto livello di verbosità, no confisione
•! Preciso significato attribuito alla notazione
•! Un diagramma (composizione di elementi della notazione)
descrive una parte del modello ma non tutto
•! Possibilità di trasformare il modello, e.g. generare codice
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
11
ESEMPIO DI DIAGRAMMA FORMALE: IL CLASS DIAGRAM
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
12
FORMALISMO = DISAMBIGUAZIONE
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
13
LIVELLI DI UTILIZZO DI UML
•! Come una bozza (as a sketch)
•! Come una mappa/disegno tecnico (as a blueprint)
•! Come un linguaggio di programmazione
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
14
KRUCTHEN 4+1 VIEW MODEL
•! Vista Logica
–! Parti del sistema
–! Class, object, state machine, interaction
diagram
•! Vista di Processo
Logical View
Use Case
View
–! Processo nel sistema
–! Activity diagram
•! Vista Fisica
Process View
Physical View
Development
View
–! Come il processo “è portato alla vita”
–! Deployment diagram
•! Vista Use Case
–! Funzionalità del sistema viste dal
mondo esterno
–! Use Case, description, overview
diagram
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
15
UN’ALTRA CLASSIFICAZIONE DEI
DIAGRAMMI UML
•! Diagrammi strutturali:
–! Diagramma delle classi e degli oggetti (class and object
diagram)
•! Diagrammi comportamentali:
–! Diagramma degli use case (use case diagram),
–! Diagramma degli stati e delle transizioni (state/transition
diagram),
–! Interaction (Sequence e Collaboration diagram),
–! Activity diagram
•! Diagrammi architetturali:
–! Component diagram
–! Deployment diagram
E.Casalicchio (basato su materiale di G.De Giacomo) Progettazione del SW – II Parte
16
UNIFIED MODELING LANGUAGE
•!
•!
•!
•!
•!
Cos’è UML
Linguaggi di modellazione formali e informali
Livelli d’uso di UML
Viste del modello
Panoramica sui diagrammi
–!
–!
–!
–!
–!
–!
Note e Stereotipi
Use Case
Activity Diagram
State Machine Diagram
Class/Object Diagram
Sequence Diagram
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
17
NOTE
•! Note: commenti addizionali = commenti nel codice
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
18
STEREOTIPI
•! Sterotype: uso speciale o intento d’uso di un elemento
–! applicabile ad ogni elemento
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
19
USE CASE DIAGRAM
•! Composto da Actors e Use Case
•! Funzionalità del sistema viste dal mondo esterno
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
20
USE CASE: BOUNDARIES E REFINEMENT (INCLUDE)
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
Logical View
Process View
21
ACTIVITY DIAGRAM
Use Case
View
Physical
View
Development
View
•! come il sistema svolgerà i suoi
compiti
•! simile ai flow-chart
•! modellazione dei business
process
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
22
ACTIVITY DIAGRAM: ACTIVITY AND ACTIONS
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
23
ACTIVITY DIAGRAM: DECISION
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
24
ACTIVITY DIAGRAM: DECISION
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
25
ACTIVITY DIAGRAM: UML 1.X VS UML 2.0
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
26
ACTIVITY DIAGRAM: FORK AND JOIN
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
27
ACTIVITY DIAGRAM: CHIAMATA DI ATTIVITÀ
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
28
ACTIVITY DIAGRAM: PASSAGGIO DI OGGETTI, INPUT/
OUTPUT, TRASFORMAZIONI
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
29
ACTIVITY DIAGRAM: CAMBIAMENTO DI STATO
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
30
ACTIVITY DIAGRAM: SWIMLANE
•! Partecipanti differenti (gruppi, ruoli)
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
CLASS DIAGRAM
•! Il diagramm UML più conosciuto
•! descrive i differenti tipi di oggetti
presenti nel sistema e le relazioni
che intercorrono tra le classi di
oggetti.
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
31
Logical View
Process View
Use Case
View
Physical View
Development
View
32
CLASS DIAGRAM
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
33
CLASS DIAGRAM: ATTRIBUTI E OPERAZIONI
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
34
SEQUENCE DIAGRAM
•! Come le parti di un sistema interagiscono
•! Catturano l’ordine delle interazioni tra le parti
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
35
SEQUENCE DIAGRAM
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
36
SEQUENCE DIAGRAM
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
STATE MACHINE DIAGRAM
•! Quando lo stato di un oggetto/sistema è
un elemento importante
37
Logical View
Process View
Use Case
View
–! real-time, mission critical systems
–! Dedicated devices il cui comportamento è
Physical View
definito dallo stato (ATM)
–! First-person shooter games (Doom, Half-life)
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
Development
View
38
STATE MACHINE DIAGRAM: TRIGGER, GUARDIE E
TRANSIZIONI
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
39
STATE MACHINE DIAGRAM: TRIGGER, GUARDIE E
TRANSIZIONI
E.Casalicchio -- Progettazione del Software a.a. 2009/2010
40