corso di ingegneria del softwareingsoft1/lezioni2008-2009/versionipdf/bl… · ingegneria del...

119
Corso di Ingegneria del Software Paolo Bottoni Blocco 5: Modellazione di sistema e UML

Upload: others

Post on 31-Jul-2020

10 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Corso di Ingegneria del Software

Paolo Bottoni

Blocco 5: Modellazione di sistema e UML

Page 2: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Blocco5ModelingIngegneria del Software 22

Obiettivi

• Introdurre tipi di modelli di sistema

• Descrivere modellazione comportamentale,

di dati, a oggetti

• Introdurre alcune notazioni usate in Unified

Modeling Language (UML)

Page 3: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

3

Modellazione di sistema

• Aiuta analista a capire funzionalità sistema e

comunicare con clienti

• Modelli diversi presentano sistema da

prospettive diverse

– esterna mostra contesto o ambiente sistema

– dinamica mostra comportamento sistema

– strutturale mostra architettura sistema o dati

Ingegneria del Software Blocco5Modeling

Page 4: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

4

Tipi di modello

• Modello di elaborazione dati: flussi e fonti

• Modello di composizione: struttura entità

• Modello architetturale: sottosistemi principali e

meccanismismi di comunicazione

• Modello di classificazione: caratteristiche comuni entità

• Modello dinamico: comportamenti

– Autonomi

– Reattivi

– Collaborativi

Ingegneria del Software Blocco5Modeling

Page 5: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

5

Metodi strutturati

• Metodi strutturati incorporano modellazione di

sistema come parte inerente metodo

• Definiscono:

– insieme di modelli

– processo per derivarli

– regole e linee-guida da applicare a modelli

• Strumenti CASE supportano modellazione di

sistema come parte di metodo strutturato

Ingegneria del Software Blocco5Modeling

Page 6: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

6

Debolezze dei metodi

• Non modellano requisiti di sistema non-funzionali

• Solitamente non includono informazione su

appropriatezza metodo a dato problema

• Possono richiedere troppa documentazione

• Modelli sistema a volte troppo dettagliati e difficili

da capire per utenti

Ingegneria del Software Blocco5Modeling

Page 7: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

7

Modelli di contesto

• Illustrano contesto operativo sistema

– Cosa si trova fuori confini sistema

• Definizione confini influenzata da aspetti

sociali e organizzativi

• Modelli architetturali mostrano sistema e

relazioni con altri sistemi

• In UML forniti da casi d’uso

Ingegneria del Software Blocco5Modeling

Page 8: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

88

Contesto di sistema Bancomat

Sistema distributore

automatico

Sistema di

sicurezza

Sistema di

manutenzione

Base dati conti

clienti

Base dati

utilizzo

Sistema tenuta

conti agenzia

Sistema

sportello

agenzia

Ingegneria del Software Blocco5Modeling

Page 9: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Diagramma UC per modello di contesto

Ingegneria del Software 9Blocco5Modeling

Page 10: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

1010

Modello dei Casi d'Uso

• Modello di sistema con attori, casi d'uso e loro relazioni.• Può utilizzare package.• Utilizzabile anche per descrivere contesto sistema (attori)

Ingegneria del Software Blocco5Modeling

Page 11: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

1111

Attore (umano, dispositivo, sistema)

• Definisce ruolo

• Cosa farà in processo

Ingegneria del Software Blocco5Modeling

Page 12: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

1212

Descrizione di Caso d’uso I• Fatta dal punto di vista degli attori

• Specifica di insieme di azioni eseguite da sistema – (o elemento che può avere comportamento, subject)

• Produce risultato osservabile– Tipicamente risultato ha valore per uno o più attori / stakeholder di subject

• Rappresenta dichiarazione di comportamento offerto– Comportamento svolto in collaborazione con uno o più attori

– Può includere varianti, comportamenti eccezionali, gestione errori

– Risultato: cambiamento stato subject e/o comunicazione con ambiente

• Specifica unità di funzionalità utile offerta agli utenti– Iniziata da attore primario

– Deve essere completata• Non ci si aspettano altri ingressi

• Caso d’uso può ricominciare da capo o in stato di errore

Ingegneria del Software Blocco5Modeling

Page 13: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Descrizione di Caso d’uso II

• Comportamento

– Solitamente in linguaggio naturale

– Uso di diagrammi statechart, activity, collaboration, sequence

• Descrizione di sequenza di azioni

– Azioni di subject durante esecuzione caso d'uso

– Interazioni con attori

• Comportamento richiede pre-, asserisce post-condizioni.

– Di subject, non di situazione!

• Casi d'uso sono atomici. Non interagiscono.

• Ogni caso d’uso descrive uso completo subject

13Ingegneria del Software Blocco5Modeling

Page 14: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

14

Specifica comportamento in caso d’uso

• Diagrammi di interazione

• Diagrammi di attività

• Diagrammi di stato

• Pre e post-condizioni

• Testo in linguaggio naturale (strutturato)

• Descrizione indiretta tramite collaborazioni

• Descrizioni possono essere combinate

– Non necessarie tutte

– Non necessariamente alternative

Ingegneria del Software Blocco5Modeling

Page 15: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

1515

Cosa includere in una descrizione

• Stato di partenza come precondizione

– Precondizioni per esecuzione

– Precondizioni per successo

• Come e quando parte (trigger)

• Ordine di esecuzione azioni

• Come e quando finisce

• Possibili stati finali come postcondizioni

• Cammini di esecuzione non permessi

• Flussi alternativi inlined in flusso base

• Flussi alternativi estratti

• Interazioni con attori e messaggi scambiati

• Uso di oggetti, valori e risorse in sistema

• Separare responsabilità fra sistema e attore

Ingegneria del Software Blocco5Modeling

Page 16: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Espressione requisiti a livello utente

• Pre-condizioni: stato che permette attivazione

• Asserzioni: stato che garantisce successo

– Possono essere verificate durante esecuzione

• Post-condizioni: stato a termine flusso

• Flussi alternativi: quando rilevanti

• Descrizione obiettivo caso d’uso

Ingegneria del Software 16Blocco5Modeling

Page 17: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Espressione requisiti a livello sistema

• Raffinare pre-, post-condizioni e asserzioni

in relazione a sistema

• Descrivere completamente flusso eventi

• Indicare origine eventi e dati

• Completare descrizione flussi alternativi

Ingegneria del Software 17Blocco5Modeling

Page 18: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Specifica testuale del flusso

Ingegneria del Software 18Blocco5Modeling

Page 19: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Pre e post-condizioni

Ingegneria del Software 19

NON: L’utente vuole leggere un’area

NON: L’utente ha

letto l’area

Assunzione verificabile SOLO durante il corso del flusso

Blocco5Modeling

Page 20: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

2020

Relazioni fra attori e casi d’uso

Ingegneria del Software Blocco5Modeling

Page 21: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Raffinamento: include

• Caso d’uso includente contiene comportamento

definito in caso d’uso di addizione

• Usata quando ci sono parti comuni a due o più casi

d’uso. Parte comune estratta e riutilizzabile

• Caso d’uso includente incompleto senza addizione

• Comportamento addizione eseguito in locazione

caso d’uso includente

– Terminata addizione riprende esecuzione includente

Ingegneria del Software 2121Blocco5Modeling

Page 22: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Raffinamento: extend

• Specifica condizione per inserimento

comportamento che estende in caso d’uso esteso

• Estensione avviene in specifici punti di estensione

definiti in caso d’uso esteso

• Caso d’uso esteso indipendente da estensioni

• Caso che estende definisce comportamento

modulare eseguito in specifiche condizioni

• Comportamento può estendere più casi d’uso

• Può essere esteso a sua volta

2222Ingegneria del Software Blocco5Modeling

Page 23: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

2323

Differenza fra include e extend

• include indica frammento sempre eseguito

durante esecuzione caso d’uso principale

• extend indica frammento eseguito in

determinate circostanze

Ingegneria del Software Blocco5Modeling

Page 24: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

24

Distribuzione casi d’uso in package

24Ingegneria del Software Blocco5Modeling

Page 25: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Casi d'uso essenziali

• Formato a due colonne

– Intenzione attore

– Responsabilità sistema

• Indipendenti da tecnologia

• Nessun riferimento a interfaccia utente

25Ingegneria del Software Blocco5Modeling

Page 26: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Esempio di caso d'uso essenziale

26Ingegneria del Software Blocco5Modeling

Page 27: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Esempio di caso d'uso di sistema

27Ingegneria del Software Blocco5Modeling

Page 28: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Processi

• Casi d’uso rilevanti per processi

– Scenari, user stories

– Processi svolti da attori e elementi di sistema

• Processi + dati sistema

Ingegneria del Software I 28

Page 29: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

29

Modelli dei dati semantici

• Struttura logica dati elaborati

• Modello a entità-relazioni-attributi

• Usato in progetto basi dati

– Implementato rapidamente con basi di dati relazionali

• Esprimibili in UML con diagrammi di classi

Ingegneria del Software Blocco5Modeling

Page 30: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

30

Dizionari di dati

• Liste nomi usati in modelli sistema

– Includono descrizioni entità, relazioni, attributi

• Vantaggi

– Supporta gestione nomi ed evita duplicati

– Memorizza conoscenza organizzazione per

collegare analisi, progetto e implementazione

• Molti strumenti CASE supportano dizionari

Ingegneria del Software Blocco5Modeling

Page 31: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

31

Elementi nel dizionario dei dati

Name Description Type Date

ArticleDetails of the published article that may be ordered bypeople using LIBSYS.

Entity 30.12.2002

authorsThe names of the authors of the article who may be duea share of the fee.

Attribute 30.12.2002

BuyerThe person or organisation that orders a co py of thearticle.

Entity 30.12.2002

fee-payable-to

A 1:1 relationship between Article and the Copyright

Agency who should be paid the copyright fee.Relation 29.12.2002

Address(Buyer)

The address of the buyer. This is used to any paperbilling information that is required.

Attribute 31.12.2002

Ingegneria del Software Blocco5Modeling

Page 32: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

32

Elementi di modellazione delle classi

• Classi definiscono modello per costruzione istanze

– Struttura

– Interfaccia

– Vincoli su implementazione

• Diagramma classi definisce famiglia di modelli

– Relazioni fra classi

• Associazioni, dipendenze, generalizzazioni

– Vincoli su realizzazioni

• Molteplicità

• Vincoli da metamodello

• Vincoli specifici

Ingegneria del Software Blocco5Modeling

Page 33: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

33

Classe

• Descrive insieme di oggetti con stessa specifica

di caratteristiche, vincoli e semantica

• Ogni oggetto deve contenere valore per ogni

attributo classe, in accordo con tipo e molteplicità

• Se attributo ha default, se istanza non riceve

valore iniziale per attributo, inizializzato a default

• Operazioni classe invocabili su oggetto, insieme

di sostituzioni per parametri

• Caratteristiche sono di istanza o di classe

Ingegneria del Software Blocco5Modeling

Page 34: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

34

Associazioni

• Dichiara possibile presenza collegamenti fra

istanze tipi in associazione

• Relazione semantica possibile tra istanze tipate

• Almeno due capi, rappresentati da proprietà,

ognuna connessa a tipo

• Possibili più capi con stesso tipo

– Capi possono essere dichiarati unici e ordinati

• Capi posseduti da associazione o classificatore.

– Se posseduto da classificatore, navigabile

Ingegneria del Software Blocco5Modeling

Page 35: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

3535

Diagrammi di classi

Ingegneria del Software

Diagramma rappresenta vista su modello

AccountPerson owner

Blocco5Modeling

Page 36: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

36

Specifica di istanza

• Rappresentazione entità a un istante (snapshot)

– Specificare esistenza di entità in sistema

– Esempio di possibile entità in sistema

• Entità conforme a specifica di classificatore

– Attributi in classificatori rappresentati da slot in istanza

• Dettagli specifica possono essere incompleti

Parti trascurate non di interesse in modello

• Modello cambiamenti:specifica per ogni snapshot

• Istanze hanno:

– identità e stato

– comportamento vincolato da appartenenza a classeIngegneria del Software Blocco5Modeling

Page 37: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

37

Collegamenti (link)

• Specifica di istanza di associazione

• Tupla con valore per capo associazione

– Ogni valore istanza tipo per capo

• Possono rappresentare valori di attributi,

navigabili da istanza che possiede attributo

a istanza che rappresenta valore

– Decorati con nome attributo

• Connessione semantica fra due oggetti che

permette accesso efficiente

Ingegneria del Software Blocco5Modeling

Page 38: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

38

Diagrammi di istanza validi e non validi

Ingegneria del Software Blocco5Modeling

Assunzione che diagramma classi

precedente sia unica specifica

Page 39: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

39

Diagrammi di istanza validi e non validi

jim : Person

name = ’’Jim Arlow’’

age = 23

Ingegneria del Software Blocco5Modeling

Page 40: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

4040

Decorazioni su associazioni

Orientamento: semantica per utente, opzionaleNavigabilità: semantica per sistema, obbligatoria o implicitaMolteplicità: forma di vincolo, non implicita

Ingegneria del Software Blocco5Modeling

Page 41: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Classi d'associazione

• Elemento con proprietà di classe e di associazione

– Relazione semantica fra classificatori

– Caratteristiche proprie relazione, non di classificatori

• Insieme di oggetti implicati da classe e corrispondenti

a unico link con tipo associazione

– Corrispondenza 1-1con relazione semantica fra istanze

• Semantica statica/dinamica di associazione e classe

4141Ingegneria del Software Blocco5Modeling

Page 42: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

42

Istanze di classe di associazione

Ingegneria del Software Blocco5Modeling

Page 43: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

43

Associazioni riflessive

Ingegneria del Software Blocco5Modeling

Page 44: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

44

Relazione di generalizzazione

• Relazione tassonomica fra classificatori

– Classificatore più generale e classificatore più specifico

• Istanza di specifico istanza indiretta di generale

• Specifico eredita caratteristiche di generale

– Vincoli e associazioni

• Proprietà di sostituibilità

• Classificatore può partecipare a più relazioni sia

come sorgente sia come bersaglio

Ingegneria del Software Blocco5Modeling

Page 45: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

45

Relazione di Generalizzazione

Ingegneria del Software Blocco5Modeling

Page 46: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

46

Ereditarietà multipla

• Caratteristica può essere ripetuta in diversi

classificatori da cui si eredita

– Stessa proprietà statica o di istanza

• Per ogni slot in istanza deve esistere classificatore

con attributo corrispondente

• Per ogni attributo di classificatore (eventualmente

ripetuto), al più uno slot definito da esso in istanza

Ingegneria del Software Blocco5Modeling

Page 47: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

4747

Dipendenze

• Relazione fra elementi.

– Semantica, non strutturale.

• Elemento (cliente) ha bisogno di altri elementi

(fornitore) per specifica o implementazione

• Semantica clienti dipende da definizione fornitori

• Non ha conseguenze su semantica a run-time

Ingegneria del Software Blocco5Modeling

Page 48: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

4848

Tipi di dipendenza

• Usage:

– Definizione o implementazione cliente usa fornitore

• Abstraction:

– Fornitore più astratto di cliente

• Permission:

– Forme di accesso a contenuto fornitore

• Binding:

– Specializzazioni di template

Ingegneria del Software Blocco5Modeling

Page 49: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

4949

Dipendenze Usage

• <<use>>

– Operazione client usa parametro fornitore

– Operazione client restituisce tipo fornitore

– Operazione client usa tipo fornitore per implementazione• non come attributo

• <<call>>

– Client e fornitore sono operazioni. Prima invoca seconda

• <<send>>

– Fornitore di tipo signal, spedito da client

• <<create>>– Client è operazione che crea istanze fornitore

• <<instantiate>>

– Client è classificatore, contiene operazione che istanzia fornitore

Ingegneria del Software Blocco5Modeling

Page 50: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

5050

Dipendenze Abstraction

• <<trace>>

– Fornitore e client in modelli in fasi o flussi di lavoro diversi

• <<refine>>

– Tra elementi di stesso modello, non storica

• <<derive>>

– Informazione cliente derivabile da informazione fornitore

Ingegneria del Software Blocco5Modeling

Page 51: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

5151

Dipendenze Permission

• <<access>>

– Package client vede elementi pubblici package fornitore

– Namespace restano separati

• <<import>>

– Namespace fornitore fuso in namespace cliente

• <<friend>>

– Accesso a elemento fornitore, indipendentemente da visibilità

Ingegneria del Software Blocco5Modeling

Page 52: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

5252

Notazione

Ingegneria del Software Blocco5Modeling

Page 53: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

53

Aggregazione

• Relazione parte_di

• Intero domina.

• Se navigabilità unidirezionale, parte può non conoscere intero

• Aggregato può esistere indipendentemente da parti

• Parti possono esistere indipendentemente da aggregato

• Aggregato incompleto se parti mancanti

• Parti possono essere condivise fra aggregati

Ingegneria del Software Blocco5Modeling

Page 54: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

54

Vincoli su aggregazione

• Transitività

• Asimmetria (oggetto non può essere parte

di sé stesso, neanche indirettamente)

Ingegneria del Software Blocco5Modeling

Page 55: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

55

Gestione di aggregazioni riflessive

Product

*

*

a:Product

b:Product c:Product

d:Product

Product

*

*

a:Product

b:Product c:Product

d:Product

Trasformare in associazione

Ingegneria del Software Blocco5Modeling

Page 56: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

56

Composizione

• Analogo ad aggregazione, ma più vincolato

• Parti non hanno vita indipendente

• In ogni momento parte appartiene esattamente a un composto

• Composto ha responsabilità per creazione / distruzione parti

• Creazione composto comporta creazione parti

• Parti possono essere rilasciate solo verso altro composto

• Se composto è distrutto, deve distruggere sue parti, o cederne responsabilità ad altro composto

Ingegneria del Software Blocco5Modeling

Page 57: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

5757

Diagrammi di interazione

• Descrivono collaborazioni necessarie a

realizzare caso d’uso

• Descrivono ordine invio messaggi in scenario

• Rappresentano specifico insieme di messaggi

e interazioni tra oggetti

Ingegneria del Software Blocco5Modeling

Page 58: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

58

Modelli comportamentali

• Descrivono comportamento generale sistema

• Due tipi:

– Elaborazione dati.

• Mostrano come dati sono elaborati e fluiscono in sistema

• Per estensione anche flusso di controllo

– Macchine a stati. Mostrano risposte sistema ad eventi

• Prospettive diverse, necessarie entrambe

• In UML elaborazione dati come conseguenza

scambio messaggi, in diagrammi di interazione

Ingegneria del Software Blocco5Modeling

Page 59: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Interazioni

• Unità di comportamento

– Focalizzata su scambio osservabile informazione

– Informazione scambiata fra elementi

• Composte di frammenti di interazione

• Semantica data da coppia di insiemi di tracce

– Sequenza di occorrenze di eventi

– Tracce valide e non valide

• Rappresentazioni: comunicazione e sequenza

59Ingegneria del Software Blocco5Modeling

Page 60: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Mettono in luce scambio di messaggi su linee di vita

• Specifiche di esecuzione ordinate su linee di vita

• Pieno uso di costrutti composti

Diagrammi di sequenza

60Ingegneria del Software Blocco5Modeling

Page 61: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Esempio: visualizza info paziente Mentcare

61Ingegneria del Software Blocco5Modeling

Page 62: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Esempio:

trasferimento

dati

62Ingegneria del Software Blocco5Modeling

Page 63: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Sintassi

63

Notazione alternativa per frammento

parallelo se ordine occorrenze irrilevante

Comunicazione

tramite gate

Ingegneria del Software Blocco5Modeling

Page 64: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Definizione di interazione

64Ingegneria del Software Blocco5Modeling

Page 65: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Usi di interazione

65Ingegneria del Software Blocco5Modeling

Page 66: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Costrutti temporali

66Ingegneria del Software Blocco5Modeling

Page 67: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Durata messaggio Code misurata

• Vincolo su ricezione OK dipendente da osservazione

• Vincolo su durata emissione carta

• Vincolo su completamento emissione

• Primitiva now fornisce osservazione temporale

Occorrenze annotate con vincoli

67Ingegneria del Software Blocco5Modeling

Page 68: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Regioni critiche

68

r100 s100

r101 s101

r911 s911

r100 r911

s911 r101

s101 s100

r100 r911

s100 s911

Ingegneria del Software Blocco5Modeling

Page 69: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Vincolo su tracce

– Non si ammettono altre occorrenze

– Regione trattata atomicamente da frammento includente

• Limita effetto parallelismo

Regione critica

69Ingegneria del Software Blocco5Modeling

Page 70: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Iterazioni

70

Annidamento di loop

Regione interna iterata a

ogni iterazione regione includente

Ingegneria del Software Blocco5Modeling

Page 71: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

71

Modelli di elaborazione dati

• Diagrammi di flusso di dati modellano

elaborazione dati in sistema

• Mostrano passi di elaborazione mentre dati

fluiscono in sistema

• Parte intrinseca di molti metodi di analisi

• Notazione semplice e intuitiva per clienti

• Mostra elaborazione dati da inizio a fine

Ingegneria del Software Blocco5Modeling

Page 72: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

72

Diagrammi di flusso dei dati

• Prospettiva funzionale

• Tracciano associazione dati/processi

• Sviluppano comprensione generale sistema

• DFD anche usati per mostrare scambio di dati

fra sistema e altri sistemi in contesto

• Notazione ausiliaria in UML

– Rappresentazione flusso informazione fra elementi

Ingegneria del Software Blocco5Modeling

Page 73: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

73

DFD per pompa a insulina

Calcolo richiesta

insulina

Analisi zucchero

in sangue

Sensore zucchero

in sangue

Controllore

rilascio insulina

SangueParametri

sangue

Livello zucchero in

sangue

Insulina

Comandi

controllo

pompa Richiesta insulina

Ingegneria del Software

Pompa insulina

Blocco5Modeling

Page 74: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

74

Modelli di macchine a stati

• Comportamento sistema in risposta a eventi

– Eventi esterni o interni

– Spesso usati per sistemi a tempo reale

• Stati nodi, transizioni su eventi archi fra nodi

– Quando evento accade, sistema transisce di stato

• Statecharts parte integrale di UML

– Rappresentano modelli di macchina a stato

– Condizioni associabili a transizioni

Ingegneria del Software Blocco5Modeling

Page 75: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Modelli di comportamento discreto con stati finiti

• Behavioral state machines: variante Statecharts

– Associate a elementi di modello

• Comportamenti di classi attive, oparazioni, processi

• Protocol state machines: transizioni di stato

– Associabili a classificatori, interfacce porte

– Definisce aspetti comportamentali invocabili in stato

• Comportamento modellato come attraversamento di

grafo di nodi stato interconnessi da archi di

transizione, attivati da occorrenze di eventi

Macchine a stati

75Ingegneria del Software Blocco5Modeling

Page 76: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Può essere posseduta da BehavioredClassifier

• Definisce trigger e attributi e operazioni disponibili

– Trigger dipendono da operazioni e ricezioni in contesto

• Può essere associata a BehavioralFeature

– Rappresenta metodo

– Parametri macchina corrispondono a parametri feature

• Se manca classificatore contesto, trigger indipendenti

– Può definire template per macchine a stati

• Punti di connessione solo a stati iniziali o di uscita

Macchina a stati

76Ingegneria del Software Blocco5Modeling

Page 77: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Eventi presenti in pool

– Legata a istanza di classificatore o a classificatore che

possiede la BehavioralFeature

• Occorrenze eventi gestite una alla volta

• Elaborazione run-to-completion

– Evento gestito solo se gestione precedente completata

– Stato stabile: reazione a eventi completata

– Se invocazione sincrona, completamento a fine esecuzione

• Evento estratto scartato se transizioni non abilitate

– Possibilità di eventi differiti

Semantica

77Ingegneria del Software Blocco5Modeling

Page 78: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Trigger: occorrenza evento interno o esterno

• Guard: condizione booleana valutata prima

• Effect: comportamento associato

• Sequenza di esecuzione

– Uscita da stato sorgente principale

– Esecuzione ordinata comportamenti associati a transizioni

– Se si incontra decisione, selezione dinamica cammino

– Entrata in stato bersaglio principale

• Tipi di transizione

– local: parte da punto di ingresso o stato composto e resta

– external: originabile a qualunque vertice, uscirà da vertice

– internal: origine e bersaglio nello stesso stato

Transizioni

78Ingegneria del Software Blocco5Modeling

Page 79: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Parte ortogonale di stato composto o statemachine

– Possesso esclusivo stato o macchina a stati

• Contiene stati e transizioni

• Può avere al più un vertice iniziale

• Contiene vertici e transizioni fra vertici

– Transizioni composte per risposte complete a eventi

• Possono attraversare fork, join, choice, merge o junction

– Hanno trigger, guardia e comportamento associato

– Transizione abilitata se:

• Tutti stati sorgente in configurazione di stato attiva

• Uno dei trigger è soddisfatto da tipo occorrenza evento corrente

• Esiste almeno un cammino da configurazione sorgente a bersaglio

Regioni

79Ingegneria del Software Blocco5Modeling

Page 80: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• entry: eseguita a ogni ingresso in stato– Atomica. Nessun altro comportamento eseguibile prima

• exit: eseguita ad ogni uscita da stato– Solo dopo ogni transizione in stato completata

• do: iniziata eseguita fino a che si permane in stato, o fino a completamento, primo dei due. – Produce evento di completamento

• Trigger differiti. Mantenuti da macchina se non attivano transizione esterna, fino a che non si raggiunge configurazione in cui non più differito

Comportamenti

80Ingegneria del Software Blocco5Modeling

Page 81: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Sintassi grafica

81Ingegneria del Software Blocco5Modeling

Page 82: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

8282

Segnali

• Pacchetto di informazione comunicato

asincronamente fra due oggetti

• Evento di segnale avviene quando oggetto

riceve segnale

• Invio

• Ricezione

oggetto:Bersaglio

Ingegneria del Software Blocco5Modeling

Page 83: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Modellano situazioni in cui vale invariante

– Statica: es. attesa di evento.

– Dinamica: es. esecuzione di processo

• Stato semplice non ha regioni

• Stato composto: una o più regioni (ortogonali)

– Regioni hanno insiemi di vertici mutuamente esclusivi

– Ogni regione può avere stato finale e pseudostato iniziale

– Transizione a stato esterno è verso pseudostato iniziale

– Ogni sottostato eredita transizioni stato genitore

• Se conflitto, priorità transizione da stato annidato.

Stati

83Ingegneria del Software Blocco5Modeling

Page 84: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Diagramma di stato per operazioni forno

Blocco5ModelingIngegneria del Software 84

Page 85: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Stati composti

85Blocco5ModelingIngegneria del Software

Page 86: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Transizioni locali e esterne

86

Non provocano azioni di ingresso /

uscita per stato composto

Provocano azioni di ingresso / uscita

Ingegneria del Software Blocco5Modeling

Page 87: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Stati composti concorrenti

(from [3])87Ingegneria del Software Blocco5Modeling

Page 88: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Inserimento specifica di macchina a stati

• Permette fattorizzazione e riuso di

comportamenti comuni

• Stessa sottomacchina può occorrere più volte

• Equivalente a stato composto

Stati di sottomacchina

88Ingegneria del Software Blocco5Modeling

Page 89: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Sottomacchine

89Ingegneria del Software Blocco5Modeling

Page 90: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Riferimento a sottomacchine

90Ingegneria del Software Blocco5Modeling

Page 91: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• initial - transizione a stato default per regione

– Può avere effetto, ma non trigger o guard

• deepHistory - configurazione più recente composto

• shallowHistory - sottostato attivo più recente

• join – fonde transizioni da vertici ortogonali

• fork – divide transizione per vertici ortogonali

• junction – concatena transizioni multiple

– Merge - fonde transizioni che convergono su un cammino

– Branch - divide transizione in casi (statico)

• choice – valutazione dinamica, un solo selezionato

Pseudostati I

91Ingegneria del Software Blocco5Modeling

Page 92: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• entry point – punto di ingresso a stato composto.

Indica transizione a un vertice

• exit point – fa uscire da macchina o stato

composto. Attiva azione di exit

• terminate – esecuzione da parte di oggetto

contesto terminata. Non si compiono altre azioni

Pseudostati II

92Ingegneria del Software Blocco5Modeling

Page 93: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

93

Modelli di processo

• Mostrano processo generale e processi

supportati da sistema

• Modelli flusso dati usati per mostrare

processi e flussi di informazione.

• In UML supportati da modelli di attività

Ingegneria del Software Blocco5Modeling

Page 94: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

94

Processo di acquisizione equipaggiamento

Get cost

estimates

Accept

delivery of

equipment

Check

delivered

items

Validate

specification

Specify

equipment

required

Choose

supplier

Place

equipment

order

Install

equipment

Find

suppliersSupplier

database

Accept

delivered

equipment

Equipment

database

Equipment

spec.

Checked

spec.

Delivery

note

Delivery

note

Order

notification

Installation

instructions

Installation

acceptance

Equipment

details

Checked and

signed order form

Order

details plus

blank order

form

Spec. +

supplier +

estimate

Supplier list

Equipment

spec.

Ingegneria del Software Blocco5Modeling

Page 95: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Diagrammi di attività

• Modellano processo come collezione di attività e

transizioni fra attività.

• Enfasi su sequenza e condizioni coordinamento

comportamenti di basso livello, non su classificatori.• Flusso di controllo e flusso di oggetti

• In ultima analisi definita da azioni

– Azioni e attività vengono eseguite

• Condizioni di coordinamento per inizio azioni

– Completamento esecuzione azioni

– Disponibilità di oggetti e dati

– Eventi esterni

95Ingegneria del Software Blocco5Modeling

Page 96: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Livelli di complessità

• Attività fondamentali definite come sequenze

• Costrutti per parallelismo e scelte alternative

• Strutture di controllo iterative

• Costrutti per flussi di dati, eccezioni, etc.

96Ingegneria del Software Blocco5Modeling

Page 97: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Relazioni fra attività e azioni• Attività con nodi di attività e flussi di controllo e di dati

• Nodi di attività

– Nodi oggetto

– Nodi di esecuzione

– Nodi di controllo

• Attività possono formare gerarchie di attivazioni

• In modelli OO invocate indirettamente come metodi

legate a operazioni invocate direttamente

• Possono descrivere computazioni procedurali

• Attività non può essere autonoma

– Contesto: classificatore o feature comportamentale

97Ingegneria del Software Blocco5Modeling

Page 98: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Semantica attività

• Basata su flusso di token

• Dipendenza fra esecuzioni di nodi rappresentata da

archi fra nodi.

• Token contiene un oggetto, dato, o luogo di

controllo, presente in diagramma a nodo particolare

• Tutti token distinti fra loro, anche se stesso valore

• Nodo comincia esecuzione quando condizioni su

token di input soddisfatte

98Ingegneria del Software Blocco5Modeling

Page 99: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Flusso token

• Quando nodo inizia esecuzione, token accettati da

sottoinsieme ingressi e un token piazzato su nodo

• Quando nodo completa esecuzione, token rimosso

da nodo e token offerti su sottoinsieme archi uscita.

• Offerta: token possono essere rifiutati

– Regole per offrire e accettare token su archi

99Ingegneria del Software Blocco5Modeling

Page 100: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Concorrenza

• Vincoli su ordine esecuzione di due o più azioni

esplicitate fra relazioni di flusso

• Se azioni non ordinate direttamente o

indirettamente da relazioni di flusso, possono

eseguire concorrentemente

– Esecuzione parallela, non richiesta ma possibile

100Ingegneria del Software Blocco5Modeling

Page 101: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Relazione con contesto

• Activity in contesto classificatore:

– se metodo di behavioral feature

• invocata quando feature invocata

– se non metodo di behavioral feature

• invocabile dopo istanziazione classificatore

• Ovverriding di attività usate come metodi ereditati

• Invocabile anche direttamente da altre attività

– Non solo tramite chiamata a behavioral feature

– Possibilità ottimizzazione indipendente da classificatore

101Ingegneria del Software Blocco5Modeling

Page 102: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Flussi

• Realizzati mediante edge

– source e target in stessa attività

• Permettono passaggio di token

• Specifica weight per minimo numero di token su arco

– quando raggiunto, tutti token presenti offerti a bersaglio

– condizioni valutate e minimo numero deve superarle

– se weight illimitato tutti i token offerti devono superarle

• Flussi di controllo e di oggetti stessa notazione

102Ingegneria del Software Blocco5Modeling

Page 103: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Flussi di oggetti

• Flussi oggetti offrono token di tipo dato o oggetti

• Possibilità di avere pin per indicare cosa passato

• Offerti a target stesso ordine in cui presi da source

– anche in caso di offerta simultanea di più token

– se associato con selezione, trascura ordine

• Flussi da stesso nodo oggetto competono

– Duplicazione possibile tramite fork

• Associabile con trasformazione prima di dare a target

– trasformazione non può avere effetti collaterali

103Ingegneria del Software Blocco5Modeling

Page 104: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Gestione pesi

104Ingegneria del Software Blocco5Modeling

Page 105: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Nodi di controllo• Vincoli su flussi entranti o uscenti

• DecisionNode ha flussi dello stesso tipo

– Comportamento di decisione non ha effetti collaterali

– Ogni token entrante attraversa un solo arco uscente

• ForkNode divide flusso in vari flussi concorrenti

– Se almeno un token accettato, tutti token offerti rimossi da

source e copia su ogni flusso accettante

– Token non accettato causa fallimento bersaglio: pendente

• JoinNode emette token se condizione su entranti

– Se entranti sia dati sia controllo, solo dati offerti

• MergeNode non sincronizza, ma propaga

105Ingegneria del Software Blocco5Modeling

Page 106: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Coordinamento di attività

106Ingegneria del Software Blocco5Modeling

Page 107: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Comportamenti su scelte

107Ingegneria del Software Blocco5Modeling

Page 108: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Specifiche di join

108Ingegneria del Software Blocco5Modeling

Page 109: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Terminazione attività

• Token che raggiunge nodo finale fa cessare intera

attività ( o nodo strutturato)

– Fa terminare ogni azione in esecuzione

– Distrugge tutti i token in nodi oggetto, tranne quelli in

nodi parametro di output dell’attività

• Se termina azione invocazione sincrona, terminano

anche comportamenti in attesa ritorno da azione.

• Possibili più nodi finali per ogni attività

– Primo nodo con token fa terminare tutto

109Ingegneria del Software Blocco5Modeling

Page 110: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Terminazione flussi

• Nodi per finale di flusso.

• Se si usa singola esecuzione per ogni invocazione,

si distruggono token solo su flusso che ha

raggiunto nodo

• Se si usano esecuzioni separate, token per una

invocazione non influenzano altre.

110Ingegneria del Software Blocco5Modeling

Page 111: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Uso di terminazioni

111Ingegneria del Software Blocco5Modeling

Page 112: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Modo per raggruppare nodi con aspetti comuni

– es. unità organizzative in modelli di business

• Mostrano vista nodi contenuti

• Possono condividere contenuto

• Permettono allocare risorse fra nodi di una attività

Partizioni

112Ingegneria del Software Blocco5Modeling

Page 113: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Gestione ordine con partizioni

113Ingegneria del Software Blocco5Modeling

Page 114: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Dimensioni multiple

114Ingegneria del Software Blocco5Modeling

Page 115: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Scelta esclusiva fra alternative

– Un body eseguito fra tutti quelli con test positivi

• isAssured: almeno un test ha successo

• isDeterminate: al più un test ha successo

– Scelta non deterministica se ordine non definito tramite

successor e predecessor

– Se produce valori in uscita, ogni body deve produrli

Strutture di controllo: Condizionale

115Ingegneria del Software Blocco5Modeling

Page 116: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Sezioni di inizializzazione, test e corpo

• Ogni sezione regione annidata.

• Nodi loop seguono ogni predecessore del loop e

precedono ogni successore

• Test può precedere o seguire corpo.

– Risultato su pin raggiunto con decider

• Inizializzazione eseguita una volta prima di corpo

• Test e corpo eseguiti ripetutamente fino a test falso

• Risultati ultima esecuzione test o corpo disponibili

Strutture di controllo: Loop

116Ingegneria del Software Blocco5Modeling

Page 117: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Nodi eseguiti nell’ordine specificato.

• Se combinate in flussi, azioni devono anche

soddisfare ingressi di controllo e dati

Strutture di controllo: Sequenza

117Ingegneria del Software Blocco5Modeling

Page 118: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

• Tipo di gruppo di attività

• Archi che lasciano regione designati interrompibili

• Se token lascia regione su arco interrompibile,

ogni flusso in regione viene terminato

• Token uscito da regione non viene terminato

• Atomicità: se token lascia regione su arco non

interrompibile, completa trasferimento

Regioni interrompibili

118Ingegneria del Software Blocco5Modeling

Page 119: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti

Cancellazione di ordini

119Ingegneria del Software Blocco5Modeling