Sei sulla pagina 1di 9

Compito di Ingegneria del Software del 30 giugno 2009

1 (18 punti).
Il sistema comprende tre tipi di organizzazioni: clienti, distributori e fornitori. Si progetti il processo
gestione ordini che opera nei distributori, insieme con il sistema informativo e le collaborazioni
relative.
Il processo, che è istanziato su un tipo di prodotto (TP) ricevuto da una collaborazione esterna,
riceve richieste d’acquisto (RA) dai clienti e offerte dai fornitori. Una RA si riferisce ad un tipo di
prodotto (TP) e contiene il numero n di unità richieste. Un’offerta si riferisce ad un tipo di prodotto
e contiene la data di scadenza d e la soglia s.
Il processo, quando riceve una RA, la collega all’offerta pendente che ha la soglia s minima; se non
ci sono offerte, scarta la richiesta e la rimanda al cliente con il messaggio di richiesta respinta. Non
appena la somma dei valori degli attributi n delle richieste collegate ad un’offerta pendente supera
la soglia s dell’offerta, il processo genera un ordine relativo all’offerta, scrive nell’attributo n
dell’ordine la somma dei valori degli attributi n delle richieste collegate all’offerta, poi invia
l’ordine al fornitore con il messaggio di offerta accettata e le richieste ai clienti con i messaggi di
richiesta esaudita.
Se scade un’offerta, il processo la rimanda al fornitore con il messaggio di offerta scaduta; se ci
sono richieste collegate all’offerta, le rimanda ai clienti con i messaggi di richiesta respinta.

Modello del sistema informativo (da completare)


Attributi:
RA: int n.
1
Offerta: Date d, int s. TP
Ordine: int n. 1

* 1
Cliente RA Offerta Fornitore
1 0..1
richieste 1

0..1 Ordine

Collaborazioni

Cliente – processo processo - Fornitore


Cliente - processo processo - Fornitore

ra, RA offerta, Offerta

alt alt oa, Ordine


re, RA

rr, RA os, Offerta

1
Modello del processo (da completare) – NOTA sostituire rr in basso a sinistra con re

rr, RA t, TP, t
respingeRA
offerta, Offerta
ra, RA min(s)
aggiunge, 1
at offerta.d
scartaOfferta
os, Offerta
rr, RA
offerta.richieste
offerta.richieste
ordine
generaOrdine
rr, RA oa, Ordine

Tabella delle transizioni

nome descrizione codice


transizione
aggiunge Il processo, quando riceve una RA, la collega ra.offerta == offerta.
all’offerta pendente che ha la soglia s minima.

respingeRA se non ci sono offerte, scarta la richiesta e la


rimanda al cliente con il messaggio di richiesta
respinta.
generaOrdine Non appena la somma dei valori degli attributi n g: offerta.richieste.sum(n) >
delle richieste collegate ad un’offerta pendente offerta.s;
supera la soglia s dell’offerta, il processo genera a: new Ordine ordine (.offerta
un ordine relativo all’offerta, scrive nell’attributo == offerta, .n ==
n dell’ordine la somma dei valori degli attributi n offerta.richieste.sum(n)).
delle richieste collegate all’offerta, poi invia
l’ordine al fornitore con il messaggio di offerta
accettata e le richieste ai clienti con i messaggi di
richiesta esaudita.
scartaOfferta Se scade un’offerta, il processo la rimanda al
fornitore con il messaggio di offerta scaduta; se ci
sono richieste collegate all’offerta, le rimanda ai
clienti con i messaggi di richiesta respinta.

2
2 (7 punti)
P1 La rete ha 4 token iniziali nei posti P1,
P3, P4 e P11.
Si analizzi la rete seguente senza ridurla.
T1 P2 T2
Quanti circuiti ha? 7
Quanti sono quelli privi di token iniziali
P3 P4
e quali sono?
2, T1 T2 T5 T3 T4 T1
P5
T3 P6 T3 T4 T6 T5 T3

P7 P8 Quanti token iniziali servono per


renderla live e safe e perché?

T4 P11 T5 4, perché 4 sono i


circuiti di base

P9 T6 P10

Si può rendere la rete live e safe spostando 1 solo token iniziale; se sì quale spostamento si può
effettuare?
Si può spostare il token da P3 a P7, oppure da P4 a P8 .

3 (5 punti). Rispondere alle domande seguenti:


- Use cases e activity diagrams sono due tipi di modelli UML; essi hanno scopi differenti, ma
possono essere usati in modo complementare. Quali sono i loro scopi e perché si possono usare in
modo complementare?
Scopo degli use cases: sono usati per esprimere requisiti funzionali in termini di unità di lavoro
svolte da ruoli specifici; non sono però in grado di indicare vincoli di ordinamento.

Scopo degli activity diagrams: sono simili ai flow charts, quindi mostrano work steps ordinati
secondo un control flow.

Uso complementare: i work steps di un activity diagram possono attivare use cases e ricevere eventi
da use cases. Oppure: un activity diagram può esprimere la dinamica di un caso d’uso complesso.

- Illustrare il concetto di token count e la sua applicazione all’analisi della safeness nei marked
graphs.
Concetto: n. totale di token iniziali in un circuito.
Applicazione: un MG live è safe se e solo se ciascun posto appartiene ad un circuito il cui token
count è pari a 1.

3
Compito di Ingegneria del Software del 20 luglio 2009
1 (18 punti).
Il sistema comprende tre tipi di organizzazioni: clienti, magazzini e fornitori. Si progetti il processo
di gestione che opera nei magazzini, insieme con il sistema informativo e le collaborazioni relative.
Il processo è istanziato su un’entità magazzino proveniente da una collaborazione esterna. Il
magazzino contiene il n. di prodotti disponibili (nd, intero) e la soglia di riordino (sr, intero) ed è
collegato ad alcuni fornitori (in modo non esclusivo).
Il processo riceve ordini dai clienti. Un ordine cliente (OC) è relativo ad un cliente e contiene il n.
di prodotti richiesti (nr, intero). Se ci sono abbastanza prodotti disponibili (cioè nd >= nr
dell’ordine), il processo lo serve immediatamente e invia al cliente un messaggio di consegna
immediata relativo all’ordine e aggiorna nd togliendo nr dell’ordine. Altrimenti invia al cliente un
messaggio di notifica di consegna differita relativo all’ordine e tiene l’ordine come pendente.
Quando il totale delle richieste degli ordini pendenti supera la soglia di riordino sr, il processo
genera un ordine fornitore (OF) a cui collega tutti gli ordini cliente pendenti. Nell’attributo n di tale
ordine scrive il n. totale di prodotti richiesti incrementato del 20% , poi associa l’ordine al fornitore
che ha il minimo valore del n. totale di prodotti ordinati (nTot, intero) e aggiunge n a nTot; infine
invia l’ordine al fornitore.
Quando il fornitore risponde con un messaggio di consegna relativo all’ordine, il processo invia ai
clienti i messaggi di consegna relativi agli ordini cliente associati all’ordine fornitore e aggiunge a
nd la differenza tra il n. dei prodotti ordinati e il n. di quelli consegnati.

Modello del sistema informativo (da completare)

Attributi
OC: int nr. OF: int n. +
Magazzino
Magazzino: int nd, int sr.
Fornitore: int nTot. +
+ of 1
Cliente OC 0..1 OF Fornitore
1
ordiniCliente

Collaborazioni

Cliente – processo processo - Fornitore

Collaborazioni
Cliente - processo processo - Fornitore
oc = ordine cliente
oc, OC of, OF
ci = consegna cliente
immediata
alt
ci, OC cf, OF
ncd = notifica di
consegna cliente differita
ncd, OC c = consegna

c, OC of = ordine fornitore
cf = consegna fornitore

4
Modello del processo (da completare)

Cliente Fornitore
m, Magazzino, m

ncd, OC
oc, OC
tiene

consegnaImm,1 of, OF
all inviaOrdineF
ordine
p, OC
ci, OC
c, OC
consegna
cf.ordiniCliente cf, OF

Tabella delle transizioni

nome descrizione codice


transizione
consegnaImm Se ci sono abbastanza prodotti disponibili (cioè nd g: oc.nr <= m.nd.
>= nr dell’ordine), il processo lo serve a: m.nd -= oc.nr.
immediatamente e invia al cliente un messaggio
di consegna immediata relativo all’ordine e
aggiorna nd togliendo nr dell’ordine.
tiene Altrimenti invia al cliente un messaggio di
notifica di consegna differita relativo all’ordine e
tiene l’ordine come pendente
inviaOrdineF Quando il totale delle richieste degli ordini g: Σp.sum(nr) > m.sr.
pendenti supera la soglia di riordino sr, il a: new OF ordine
processo genera un ordine fornitore (OF) a cui (.ordiniCliente == Σp, .n ==
collega tutti gli ordini cliente pendenti. Σp.sum(nr) * 1.2, .fornitore ==
Nell’attributo n di tale ordine scrive il n. totale di m.fornitori.min(nTot)),
prodotti richiesti incrementato del 20% , poi ordine.fornitore.nTot +=
associa l’ordine al fornitore che ha il minimo ordine.n).
valore del n. totale di prodotti ordinati (nTot,
intero) e aggiunge n a nTot; infine invia l’ordine
al fornitore.
consegna Quando il fornitore risponde con un messaggio di m.nd =+ cf.n –
consegna relativo all’ordine, il processo invia ai cf.ordiniCliente.sum(nr).
clienti i messaggi di consegna relativi agli ordini
cliente associati all’ordine fornitore e aggiunge a
nd la differenza tra il n. dei prodotti ordinati e il n.
di quelli consegnati.

5
2 (8 punti).

P1 T2 P3

La rete ha 1 token iniziale nel posto P1.


Si analizzi la rete seguente senza ridurla.
T1

P2 T3 P4

T4

Ci sono sifoni e trappole con 2 posti, se sì quali sono?


sifoni: P1 P3:
trappole: P1 P3 (marcata), P2 P4

Ci sono sifoni e trappole con 3 posti, se sì quali sono?


sifoni: P1 P2 P3, P1 P2 P4
trappole: P1 P3 P4, P2 P3 P4

La rete è live oppure no e perché?


La rete non è live perché il sifone P1, P2, P4 non contiene una trappola marcata inizialmente.

La rete è bounded oppure no e perché?


La rete non è bounded perché se scatta T1 la nuova marcatura 1,1,0,0 ricopre strettamente quella
iniziale 1,0,0,0.

3 (4 punti). Rispondere alle domande seguenti:

- Illustrare la differenza tra control flow e data flow nei modelli dei processi di business basati sugli
activity diagrams UML.
Scopo del control flow: indicare la successione delle attività.

Scopo del data flow: indicare i dati scambiati con l’esterno, quelli associati all’istanza di processo,
quelli usati nelle condizioni.

- Spiegare il concetto di metamodello e indicare con quale notazione UML si possono rappresentare
i metamodelli.
Concetto: Se consideriamo una categoria di modelli UML, ad es. gli use cases, tali modelli hanno
una struttura che si può rappresentare con un modello di astrazione più elevata detto metamodello.

Notazione usata per i metamodelli: la struttura di base è sempre un modello classi-relazioni (class
model), ad es. nel metamodello degli use cases ci sono 3 classi principali (UseCase, Actor e
Subject).

6
Compito di Ingegneria del Software del 31/08/2009
1 (18 punti). Il sistema comprende tre tipi di organizzazioni: clienti, venditori e fornitori. Si
progetti il processo gestione offerte che opera nei venditori, insieme con il sistema informativo e le
collaborazioni relative.
Il processo è istanziato su un’offerta proveniente da un fornitore. L’offerta è relativa ad un tipo di
prodotto e ha una scadenza d e le soglie s1 e s2 (valori interi).
Prima della scadenza d un cliente può inviare una richiesta di acquisto. Una richiesta è collegata al
cliente e contiene il numero di unità desiderate (nd, intero).
La richiesta è accettata se nd della richiesta più la somma degli nd delle richieste collegate
all’offerta non supera la soglia s2 dell’offerta; se accetta la richiesta, il processo la collega
all’offerta. Se non l’accetta, il processo la rimanda al cliente con il messaggio di richiesta respinta.
Non appena la somma degli nd delle richieste collegate all’offerta supera la soglia s1 dell’offerta, il
processo genera un ordine relativo all’offerta, scrive nell’attributo n dell’ordine la somma degli nd
delle richieste collegate all’offerta e invia al fornitore il messaggio di offerta accettata con l’ordine e
invia ai clienti delle richieste collegate all’offerta il messaggio di richiesta accettata (con la
richiesta).
Se invece scade l’offerta, il processo manda al fornitore il messaggio di offerta respinta e invia ai
clienti delle richieste collegate all’offerta il messaggio di richiesta respinta (con la richiesta).

Modello del sistema informativo

Attributi
Offerta: Date d, int s1, int s2.
Richiesta: int nd. Tipo
Ordine: int n. 1

1 0..1 1
Cliente Richiesta Offerta Fornitore
1

0..1
Ordine
Collaborazioni
clienteÆprocesso
Cliente Æ Venditore
before r.offerta.d processo Å Fornitore
r, Richiesta
alt o, Offerta
ra, Richiesta alt
oa, Ordine

or, Offerta
rr, Richiesta

7
Modello del processo
Cliente Fornitore

offerta.richieste or, Offerta


rr, Richiesta insuccesso
at offerta.d

r, Richiesta
offerta,
aggiunge, 1 Offerta,
rr, Richiesta offerta
scarta

successo
ra, Richiesta offerta.richieste oa, Ordine
ordine

Tabella delle transizioni

nome descrizione codice


transizione
aggiunge La richiesta è accettata se nd della richiesta più la g: r.nd +
somma degli nd delle richieste collegate all’offerta offerta.richieste.sum(nd) <=
non supera la soglia s2 dell’offerta; se accetta la offerta.s2.
richiesta, il processo la collega all’offerta. a: r.offerta == offerta.

successo Non appena la somma degli nd delle richieste g: offerta.richieste.sum(nd) >


collegate all’offerta supera la soglia s1 dell’offerta, offerta.s1.
il processo genera un ordine relativo all’offerta, a: new Ordine ordine (.offerta
scrive nell’attributo n dell’ordine la somma degli == offerta, .n ==
nd delle richieste collegate all’offerta e invia al offerta.richieste.sum(nd)).
fornitore il messaggio di offerta accettata con
l’ordine e invia ai clienti delle richieste collegate
all’offerta il messaggio di richiesta accettata (con
la richiesta).

8
2 (8 punti). La rete ha 2 token iniziali nei posti P1 e P2.
Si analizzi la rete senza ridurla.
Si costruisca il grafo delle marcature.
grafo delle marcature
P1 T2 1,1,0,0

T4
P2 P3
T1 T2

T1 T3 1,0,0,1 0,1,1,0
T4
T2
T3
P4 0,0,1,1
T4

Ragionando sul grafo si risponda alle domande seguenti:


La rete è live oppure no e perché?
Non è live perché T1 e T2 non sono live.
La rete è deadlock-free oppure no e perché?
è deadlock-free perché tutte le marcature hanno uscite.
La rete è safe oppure no e perché?
è safe (solo 0 e 1 nelle marcature).
La rete è reversibile oppure no e perché?
non è reversibile perché da 2 marcature non si raggiunge quella iniziale.

3 (4 punti). Rispondere alle domande seguenti:

- Indicare i principali vantaggi e svantaggi delle reti colorate rispetto a quelle ordinarie.

Le reti colorate sono più compatte ma non sono facilmente analizzabili.

- Spiegare la differenza tra transizioni di gruppo e transizioni di storia nelle macchine a stati
gerarchiche: si possono considerare complementari?

Le tr. di gruppo fanno uscire da uno stato composto, quelle di storia fanno rientrare in uno stato
composto e precisamente nello stato lasciato dall’ultima tr. di gruppo (in questo modo sono
complementari).

Potrebbero piacerti anche