corso di ingegneria del softwareingsoft1/lezioni2008-2009/versionipdf/bl… · ingegneria del...
TRANSCRIPT
![Page 1: Corso di Ingegneria del Softwareingsoft1/Lezioni2008-2009/versioniPDF/Bl… · Ingegneria del Software Blocco5Modeling. 34 Associazioni • Dichiara possibile presenza collegamenti](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/60.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/67.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/69.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/70.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/71.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/72.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/73.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/74.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/75.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/76.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/77.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/78.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/79.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/80.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/81.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/82.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/83.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/84.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/85.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/86.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/87.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/88.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/89.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/90.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/91.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/92.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/93.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/94.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/95.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/96.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/97.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/98.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/99.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/100.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/101.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/102.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/103.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/104.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/105.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/106.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/107.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/108.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/109.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/110.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/111.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/112.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/113.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/114.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/115.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/116.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/117.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/118.jpg)
• 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](https://reader034.vdocuments.pub/reader034/viewer/2022042808/5f838786913f0c49f25e4585/html5/thumbnails/119.jpg)
Cancellazione di ordini
119Ingegneria del Software Blocco5Modeling