17 Im Uml 2019
17 Im Uml 2019
4
5
STORIA DI UML
3 DIFFERENT
METHODOLOGIES FOR
SOFTWARE
DEVELOPMENT WITH A
PROPER SET OF SYMBOLS
AND PRINCIPLES
1995 àUNIFICATION OF
THE 3 METHODOLOGIES
NOW
UML 2.5
UML IN SOFTWARE ENGINEERING
Studio di fattibilità
modello UML
Definizione
Progettazione
modello UML
Utilizzo
Integrazione e test di sistema
VISTE VISTE
STATICHE DINAMICHE
• Use case • Sequence
diagrams diagrams
• Class diagram • Collaboration
• Component diagrams
diagram • State chart
• Deployment diagrams
diagram • Activity
• Object diagram diagrams
DIAGRAMMI UML: tipologia di
rappresentazione
DIAGRAMMI STRUTTURALI
• Class diagrams
• Object diagrams
• Component diagrams
• Composite structures
• Deployment diagrams
• Package diagrams
DIAGRAMMI COMPORTAMENTALI
• Use case diagrams
• State chart diagrams
• Activity diagrams
DIAGRAMMI DI INTERAZIONE
• Sequence diagrams
• Communication diagrams
• Timing diagrams
• Interaction diagrams
• Overviews
9
• I casi d’uso non rappresentano sottosistemi, per cui non possono interagire o
scambiarsi messaggi fra di loro, ma possono essere legati da relazioni.
INCLUSIONE
• Use case inserito in un altro use case
• Viene eseguito sempre quando lo use case di riferimento è
eseguito
ESTENSIONE
• Uso opzionale di uno use case in concomitanza di un altro
• L’esecuzione dello use case può anche non avvenire
GENERALIZZAZIONE
• Relazione tra elementi del modello del tipo
classe/sottoclasse
• Definizione di una relazione “is type of”
10
USE CASE DIAGRAM:
NOTAZIONE GRAFICA
Actor
Generalization
<< extend >>
(extension points)
11
CLASS DIAGRAMS
• Le classi rappresentano OGGETTI e CATEGORIE con
significato diverso
CONCETTUALEà
Rappresentazione dei concetti in
un dominio
DI SPECIFICAà
Specifica di interfacce (non di
implementazione) in un dominio
DI IMPLEMENTAZIONEà
Classi del linguaggio di
programmazione
12
13
CLASS DIAGRAM: NOTAZIONE
GRAFICA
• Ogni classe ha un’intestazione, degli attributi e delle
operazioni
• Una classe viene rappresentata graficamente da un
rettangolo contenente il nome della classe e,
opzionalmente, l’elenco degli attributi e delle operazioni.
Class Name
Class Name
attribute:Type = initialValue
operation(arg list) : return type
14
ATTRIBUTI
<visibilita‘> <nome> <molteplicita‘> : <tipo> = <val-iniziale>
• Nome à obbligatorio
• Tipo:
– tipi fondamentali predefiniti dall’UML (corrispondenti a quelli usati comunemente nei linguaggi di
programmazione)
– tipo definito in un linguaggio di programmazione
– classe definita (in UML) dallo sviluppatore;
• Visibilità: privata, protetta, pubblica, package; quest’ultimo livello di visibilità significa che l’attributo è
visibile da tutte le classi appartenenti allo stesso package
– + pubblica
– # protetta
– ~ package
– - privata
• Molteplicità: ´ındica se l’attributo può essere replicato, cioè avere più valori (array). Si ındica con un
numero o un intervallo numerico fra parentesi quadre
– [3] tre valori
– [1..4] da uno a quattro valori
– [1..*] uno o pi´u valori
– [0..1] zero o un valore (attributo opzionale)
• Valore iniziale: valore assegnato all’attributo quando si crea l’oggetto.
OPERAZIONI
<visibilita‘> <nome> (<lista-parametri>) : <tipo>
• PARAMETRI
– Direzione: ingresso (in), uscita (out), ingresso e uscita (inout);
– Tipo;
– Valore default: valore passato al metodo che implementa la funzione.
– Solo il nome del parametro è obbligatorio
– Parametri separati da virgole
• OPERAZIONI
– Visibilità (come attributi)
– Tipo del valore restituito
15
16
role B
Association Class A
role A
Class B
Supertype
Generalization discriminator
Subtype 1 Subtype 2
CLASS DIAGRAM: NOTAZIONE GRAFICA
1
Multiplicities Class exactly one
m .. n numerically specified
Class
Aggregation Class
Composition Class
17
18
ASSOCIAZIONI
• ASSOCIAZIONE = relazione tra due classi
Class Class
Association
Class
20
AGGREGAZIONE
• AGGREGAZIONE = associazione che lega un’entità
complessa (aggregato) alle proprie parti componenti.
21
AGGREGAZIONI
22
23
COMPOSIZIONE
24
AGGREGAZIONE E COMPOSIZIONE
25
26
STEREOTIPI
• Stereotipi = nuovi elementi di modello ottenuti da elementi
già esistenti (per esempio, dall’elemento classe o
dall’elemento associazione) aggiungendo informazioni di
vario tipo alla loro semantica, per mezzo di vincoli e valori
etichettati.
Distinguo le classi destinate
all’interfacciamento con l’utente (boundary)
dalle classi che rappresentano i server (server)
e da quelle che definiscono la logica
dell’applicazione (control)
GENERALIZZAZIONE
• Una classe (classe base o superclasse) generalizza un’altra classe (classe derivata o
sottoclasse) quando definisce un insieme di elementi che include l’insieme di
elementi definiti dalla classe derivata
• Una classe base può avere più classi derivate, e in questo caso ne riassume alcune
caratteristiche comuni (attributi, operazioni, associazioni, vincoli. . . ).
• Un oggetto appartenente ad una classe derivata appartiene anche alla classe base.
• Principio di sostituzione (di Barbara Liskov): un’istanza della classe derivata può
sostituire un’istanza della classe base à importante per verificare se la relazione
di generalizzazione è corretta (soprattutto nel caso di restrizione)
EREDITARIETÀ
28
29
INSIEME DI GENERALIZZAZIONI
• Generalizzazione à spesso usata per classificare le entità del dominio
analizzato
• Insieme di generalizzazioni:
– modo di raggruppare le sottoclassi di una classe base (insieme di
sottoinsiemi), a cui si può dare un nome che descriva il criterio con
cui si raggruppano le sottoclassi.
– Insieme completo: ogni istanza della classe base appartiene ad
almeno una delle sottoclassi
– Insieme disgiunto: le sottoclassi sono disgiunte (intersezione vuota)
– Per default, un insieme di generalizzazioni è incompleto e disgiunto.
30
OGGETTI
• Oggetto à rettangolo contenente
– i nomi dell’oggetto e della classe d’appartenenza,
sottolineati e separati dal carattere ‘:’,
– (opzionalmente) gli attributi con i rispettivi valori.
– Il nome della classe o quello dell’oggetto possono
mancare. In questo caso, il nome della classe viene
preceduto dal carattere ‘:’
31
ACTIVITY DIAGRAMS
• Comportamento condizionale:
• Branch à un input con diversi output sotto condizione
• Merge à più input danno luogo ad un singolo output
– Comportamento parallelo:
• Fork à da una transizione ne escono molte parallele
• Join à da più percorsi paralleli, si torna ad un solo percorso comune, quando tutte
le attività parallele sono completate
Activity
fork
Activity Activity
merge
join
end
SWIMLANE
33
USE CASE DIAGRAM ESEMPIO
34
CLASS DIAGRAM ESEMPIO
35
ACTIVITY DIAGRAM ESEMPIO
36
SEQUENCE DIAGRAMS
• Diagrammi di interazione
• Rappresentano i messaggi che gli oggetti si
scambiano in determinate situazioni
• Oggetti à rettangoli posti all’inizio di linee verticali
tratteggiate
• Linea della vita dell’oggetto à
– Linea verticale tratteggiata
– Rettangolo verticale sulla linea della vita:
momento in cui l’oggetto è attivo e scambia
messaggi
• Messaggi à
– Frecce tra le linee della vita di due oggetti
– L’ordine va dall’alto verso il basso
– Selfcall: messaggio che l’oggetto scambia con se
stesso
37
SEQUENCE DIAGRAM: NOTAZIONE
GRAFICA
an Object
create
new Object
return
delete
38
39
• COMPONENT DIAGRAM:
– Rappresentano le componenti del sistema e le loro dipendenze
– Componente: package software
– Dipendenza: relazione tra due componenti (come un
componente influisce sul cambiamento dell’altro)
• node
Component 2
Component 1
40
SEQUENCE DIAGRAM: ESEMPIO
Reference Clinical Data Verification XML XML Concept
Prescription Mobile App
terminology Repository Privacy interface Creator Translator
Criteria
Healthcare
professional
Signature Request
Signature
Access
New Prescription
Request
Transmit
Credentials
Credentials
Verify credentials
CHV
Access
granted
Request prescription
Request XML
creation
Request
Query
translation
Retrieve
UMLS code
Prescription
CHV
translation
Translation
Structured XML
Structured
XML
Encryption
41 Prescription
(structured/translated)
DEPLOYMENT E COMPONENT DIAGRAM:
ESEMPIO