Anteprima
Vedrai una selezione di 4 pagine su 14
Progettazione del Software - parte 2 Pag. 1 Progettazione del Software - parte 2 Pag. 2
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Progettazione del Software - parte 2 Pag. 6
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Progettazione del Software - parte 2 Pag. 11
1 su 14
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

State ......................................................................................................................................................... 11

Strategy .................................................................................................................................................... 12

Proxy ........................................................................................................................................................ 12

Adapter .................................................................................................................................................... 12

Decorator ................................................................................................................................................. 12

Abstract Factory ...................................................................................................................................... 13

Composite ................................................................................................................................................ 13

Façade ...................................................................................................................................................... 14

Observer .................................................................................................................................................. 14

MVC ............................................................................................................................................................. 14

Interaction diagram

Descrivono il comportamento dinamico di un gruppo di oggetti che “interagiscono” per risolvere un

problema. Tipicamente rappresentano il comportamento di uno specifico use case o scenario in termini di

specifiche entità (oggetti) e messaggi scambiati (metodi). UML propone due diversi tipi di interaction

diagram: sequence diagram e communication diagram.

Sequence diagram

Evidenziano la sequenza temporale delle azioni: oggetti partecipanti e sequenze (temporali) di messaggi

scambiati. Non si vedono le associazioni tra oggetti. Usabili in due forme diverse:

• la forma generica: tutte le sequenze (esecuzioni) possibili

• la forma d’istanza: una sequenza particolare (consistente con quella generica)

In ascissa sono disposti vari oggetti (istanze specifiche). L’ordinata rappresenta il tempo: in genere la scala

non importa, interessa solo la sequenza cioè il rapporto di precedenza tra eventi, non la loro distanza, ma

per sistemi real-time si può usare. Se necessario gli assi orizzontale e verticale possono essere scambiati.

Gli oggetti possono essere creati e distrutti.

Possono essere indicati come oggetti anche: istanze di attori, quando il sequence diagram è posseduto da

uno use case e altri elementi dai robustness diagrams.

Analisi di robustezza

Tre tipi di oggetti. Sostanzialmente il pattern Model View Control. Regole di comunicazione ben precise: ogni

tipo di oggetto può “parlare” solo con i suoi vicini nella gerarchia

• actor

• interface object

• entity object

• control object

Messaggi

Possono essere:

• completi (di risposta)

• lost or found

• sincroni o asincroni

• call o signal

Possono essere mandati da un oggetto a sé stesso.

Un messaggio è lost se non arrivano al destinatario stabilito, oppure se non se ne conosce il destinatario. Un

messaggio è found se arrivano da un mittente sconosciuto, oppure se arrivano da un mittente non indicato

nel diagramma.

Semantica di frammenti e composizione

• Alt: una scelta di comportamento, al più una delle opzioni sarà scelta, tra quelle con guardia

verificata. Se nessuna opzione ha una guardia vera, nessuna opzione viene eseguita.

• Opt: come alt con una sola opzione (o con due opzioni, di cui una vuota).

• Loop: l’operando viene ripetuto tante volte quanto indicato dalla guardia. La guardia può riportare

un numero minimo e massimo di iterazioni e una condizione booleana. Le iterazioni sono in numero

compreso tra il minimo e il massimo. Oltre il minimo si itera fintanto che la guardia è vera.

• Par: composizione parallela tra i comportamenti degli operandi.

• Critical (Regione Critica): la regione è trattata atomicamente dal frammento circostante quando si

determinano le sequenze possibili (tracce) di esecuzione.

• Neg: indica tracce non valide. Serve a escludere dei comportamenti indesiderati.

• Assert: le sequenze degli operandi dell’asserzione sono le uniche tracce valide. Le altre sono escluse.

Temporizzazione

Si indica tramite vincoli.

sendTime: individua l’istante di invio di un messaggio da parte di un oggetto. receiveTime: individua l’istante

di ricezione di un messaggio da parte di un oggetto.

Communication diagram

Simili ai diagrammi di sequenza, ma evidenziano le interazioni tra le parti, pongono maggior attenzione allo

scambio messaggi. Sono adatti per concorrenza e thread, invocazioni innestate e interazioni “sofisticate”.

Il tempo non è associato ad una dimensione precisa: le sequenze si scoprono usando la numerazione.

Sequenze alternative possono essere modellate sullo stesso diagramma.

Se si usa la numerazione “decimale” allora si ha un’ indicazione chiara su quale operazione chiama quale

altra.

Confronto tra sequence e comunication diagram

I Sequence Diagram mettono più enfasi sulla sequenza temporale delle operazioni. Indicano esplicitamente

la vita degli oggetti.

I comunication diagram indicano la connessione tra oggetti ma non sono proprio statici.

Automi a stati finiti

Rappresentano il comportamento dei singoli oggetti di una classe in termini di eventi a cui gli oggetti (la

classe) sono sensibili, azioni prodotte, transizioni di stato e identificazione degli stati interni degli oggetti.

Offrono la possibilità di descrivere evoluzioni parallele. Gli state Diagram rappresentano il comportamento

di una classe di oggetti, descrivendone i possibili stati e la reazione ad eventi esterni, in termini di

cambiamenti di stato e/o azioni svolte. I diagrammi di stato danno un'astrazione di stati, eventi e transizioni.

Stato

Uno stato rappresenta una situazione durante la quale una condizione (solitamente implicita) è verificata. La

condizione può rappresentare una situazione statica, come l’attesa di un evento esterno, o semplicemente

una situazione stabile che può essere modificata solo da un intervento esterno. Uno stato perdura nel tempo,

finché un evento non fa cambiare stato all’oggetto.

Macchine a stati

Le macchine astratte sono usate anche per modellare il protocollo di utilizzo di parte del sistema (Protocol

State machines). Indicano le transizioni legali che un classificatore può causare. La macchina a stati

rappresenta convenientemente il ciclo di vita degli oggetti, o un possibile ordine di invocazione delle sue

operazioni. Non escludono alcuna implementazione del comportamento, ma impongono gli scenari legali di

utilizzo, di conseguenza sono associate a classificatori (tipicamente classi), interfacce e porte.

Le macchine a stati (state machines) possono essere usate per descrivere il comportamento di una parte del

sistema. Il comportamento è modellato come l’attraversamento di un grafo di nodi-stati interconnessi da

archi-transizioni, causato dall’arrivo di una serie di eventi. Durante questo attraversamento, la macchina a

stati esegue una serie di attività associate ai vari elementi della macchina. Il classificatore cui è associata la

macchina a stati definisce quali segnali e chiamate sono definite per la macchina a stati, e quali attributi e

operazioni sono disponibili nelle attività della macchina: segnali e chiamate dipendono dalle operazioni e

‘reception’ definiti per il classificatore.

Stato determinato da condizione statica e stati dinamici

Lo stato determinato da condizione statica è l'insieme dei valori degli attributi e dei link posseduti da un

oggetto in un certo istante. È un dato astratto. Può corrispondere a diverse -anche infinite -combinazioni di

valori degli attributi. Lo stato influenza il comportamento: l'oggetto reagisce in modo qualitativamente

diverso agli eventi esterni, in funzione dello stato in cui si trova. Il comportamento quantitativo è influenzato

dal valore degli attributi, dei link e dei parametri delle operazioni.

La condizione verificata in uno stato può anche rappresentare la dinamica dell’oggetto (l’elemento entra

nello stato quando inizia una certa attività e lo lascia appena l’attività viene completata).

Identificare gli stati

Per ciascun oggetto occorre identificare tutti gli stati in cui può trovarsi. Suggerimenti: trascurare gli attributi

ininfluenti in quanto alcuni attributi non modificano in modo qualitativo il comportamento di un oggetto, ma

al più i valori degli eventi che l'oggetto produce, individuare le condizioni limite, trovare tutti i confini e i limiti

dello stato e definire un corretto livello di astrazione.

Lo scenario

Uno scenario è una sequenza di eventi occorsi durante una specifica esecuzione del sistema. Dà un’idea

dell’ordine degli eventi: talune coppie indicano un ordinamento necessario, altre un ordine casuale.

Ricavare il diagramma degli stati

Una collezione sufficientemente ricca di sequence diagram descrive tutte le possibili evoluzioni dell’oggetto

considerato: il fatto di poterle descrivere tutte deriva dalla capacità di astrazione. Ad esempio, in uno

scenario il chiamante riaggancia per primo, in un altro scenario riaggancia il ricevente: occorre rappresentare

la reazione dell’oggetto ad entrambi questi eventi.

Condizioni, operazioni ed eventi

Le condizioni sono funzioni booleane sui valori degli oggetti, valide in un intervallo di tempo, utili come

guardie delle transizioni di stato (non basta l'evento, deve essere verificata la condizione).

Durante la loro vita gli oggetti eseguono operazioni associate allo stato (attività), associate alle transizioni

(azioni).

Le azioni sono operazioni che hanno durata istantanea (rispetto alla granularità del tempo). Tipicamente

produzione di eventi. Sono associate alle transizioni di stato oppure all'ingresso o all'uscita da uno stato.

Le attività sono operazioni con durata significativa. Sono associate ad uno stato. Possono essere continue o

sequenziali.

Se uno stato ha una attività associata e una freccia senza eventi esce da questo, la freccia indica la transizione

svolta automaticamente al completamento dell’attività.

L’evento è uno stimolo esterno. Può causare nell'oggetto destinatario un cambio di valore, di stato o la

produzione di ulteriori eventi. Si intende che un evento ha una individualità ben definita: raggruppabili in

classi di

Dettagli
Publisher
A.A. 2017-2018
14 pagine
2 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher tovy97 di informazioni apprese con la frequenza delle lezioni di Progettazione del software e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi dell' Insubria o del prof Morasca Sandro.