Merge pull request #4 from appinfosapienza/0721

0721
This commit is contained in:
Federico Pizzari 2022-11-16 18:21:29 +01:00 committed by GitHub
commit 06252781a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
174 changed files with 1505 additions and 21 deletions

View file

@ -1 +0,0 @@
S = (1/b)*ln(C/R)

View file

@ -1 +0,0 @@
Il rischio R può essere calcolato come R = P*C, dove P è la probabilità dell'evento avverso (software failure nel nostro contesto) e C è il costo dell'occorrenza dell'evento avverso. Assumiamo che la probabilità P sia legata al costo di sviluppo S dalla formula P = exp(-b*S), dove b è una opportuna costante note da dati storici aziendali. Quale sarà il costo dello sviluppo S di un software il cui costo della failure è C ed il rischio ammesso è R?

View file

@ -1 +0,0 @@
S = b*ln(R/C)

View file

@ -1 +0,0 @@
S = (1/b)*ln(R/C)

View file

@ -1 +0,0 @@
Plan driven

View file

@ -1 +0,0 @@
Un azienda ha un team di sviluppo in cui il 90% dei membri è junior (cioè con poca esperienza) ed il 10% è senior (cioè con molta esperienza). Con l'obiettivo di massimizzare il numero di progetti completati nell'unità di tempo, quale dei seguenti modelli di sviluppo software appare più opportuno.

View file

@ -1 +0,0 @@
Basato sul riuso

View file

@ -1 +0,0 @@
Iterativo

View file

@ -1 +0,0 @@
Gli utenti del sistema lavorano insieme al team di sviluppo per testare il software nel sito di sviluppo.

View file

@ -1 +0,0 @@
Quale delle seguenti affermazioni è vera riguardo all'alpha testing ?

View file

@ -1 +0,0 @@
Test automatizzati sono eseguiti sulla prima release del sistema.

View file

@ -1 +0,0 @@
Test automatizzati sono eseguiti su una versione preliminare del sistema.

View file

@ -1 +0,0 @@
Sviluppo Plan-driven.

View file

@ -1 +0,0 @@
Si pianifica lo sviluppo di un sistema software per controllare il sistema di anti-lock braking in un automobile. Quale dei seguenti è il tipico processo software usato per questo tipo di sistema software ?

View file

@ -1 +0,0 @@
Extreme programming.

View file

@ -1 +0,0 @@
Sviluppo Iterativo.

View file

@ -0,0 +1 @@
Per tutti gli istanti di tempo della forma 1 + 4*k (con k = 0, 1, 2, 3, ...) x vale 1.

View file

@ -0,0 +1,13 @@
Si consideri il seguente modello Modelica:
<pre>
class System
Integer x;
initial equation
x = 0;
equation
when sample(0, 2) then
x = 1 - pre(x);
end when;
end System;
</pre>
Quale delle seguenti affermazioni è vera per la variabile intera x?

View file

@ -0,0 +1 @@
Per tutti gli istanti di tempo della forma 3 + 4*k (con k = 0, 1, 2, 3, ...) x vale 1.

View file

@ -0,0 +1 @@
Per tutti gli istanti di tempo della forma 1 + 4*k (con k = 0, 1, 2, 3, ...) x vale 0.

View file

@ -0,0 +1 @@
Il performance testing è tipicamente eseguito una volta che il sistema è stato completamento integrato.

View file

@ -0,0 +1 @@
Quale delle seguenti affermazioni è vera riguardo al performance testing?

View file

@ -0,0 +1 @@
Il performance testing è tipicamente eseguito su un prototipo del sistema.

View file

@ -0,0 +1 @@
Il performance testing è tipicamente eseguito solo sulle componenti del sistema prima dell'integrazione.

View file

@ -0,0 +1,15 @@
<pre>
class Monitor
InputReal x, y;
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 40) and (delay(x, 10) > 1) and (y < 0);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,5 @@
Si consideri il seguente requisito:
RQ: Dopo 40 unità di tempo dall'inizio dell'esecuzione vale la seguente proprietà:
se 10 unità di tempo nel passato x era maggiore di 1 allora ora y è nonegativa.
Tenendo presente che, al tempo time, delay(z, w) ritorna 0 se time <= w e ritorna il valore che z aveva al tempo (time - w), se time = w.
Quale dei seguenti monitor meglio descrive il requisito RQ ?

View file

@ -0,0 +1,15 @@
<pre>
class Monitor
InputReal x, y;
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 40) and (delay(x, 10) > 1) and (y >= 0);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,15 @@
<pre>
class Monitor
InputReal x, y;
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 40) or (delay(x, 10) > 1) or (y < 0);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1 @@
Costruire un prototipo, eseguirlo usando dati storici dai log di produzione e valutare la capacità del prototipo di ridurre gli scarti.

View file

@ -0,0 +1 @@
Una azienda manifatturiera desidera costruire un sistema software per monitorare (attraverso sensori) la produzione al fine di ridurre gli scarti. Quali delle seguenti attività contribuisce a validare i requisiti del sistema.

View file

@ -0,0 +1 @@
Costruire un prototipo, eseguirlo usando dati storici dai log di produzione e valutarne le performance.

View file

@ -0,0 +1 @@
Costruire un prototipo, eseguirlo usando dati storici dai log di produzione ed identificare errori di implementazione.

View file

@ -0,0 +1,18 @@
<pre>
function next
input Integer x;
output Integer y;
algorithm
y := 1 - x;
end next;
class System
Integer x;
initial equation
x = 0;
equation
when sample(0, 1) then
x = next(pre(x));
end when;
end System;
</pre>

View file

@ -0,0 +1,4 @@
Si consideri l'automa seguente:
0->1 e 1->0
Quale dei seguenti modelli Modelica fornisce un modello ragionevole per l'automa di cui sopra.

View file

@ -0,0 +1,18 @@
<pre>
function next
input Integer x;
output Integer y;
algorithm
y := 1 - x;
end next;
class System
Integer x;
initial equation
x = 0;
equation
when sample(0, 1) then
x = next(pre(x));
end when;
end System;
</pre>

View file

@ -0,0 +1,18 @@
<pre>
function next
input Integer x;
output Integer y;
algorithm
y := x;
end next;
class System
Integer x;
initial equation
x = 0;
equation
when sample(0, 1) then
x = next(pre(x));
end when;
end System;
</pre>

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 20) and ((x >= 30) or (x <= 20)) ;
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,3 @@
Si consideri il seguente requisito:
RQ1: Dopo 20 unità di tempo dall'inizio dell'esecuzione la variabile x è sempre nell'intervallo [20, 30].
Quale dei seguenti monitor meglio descrive il requisito RQ1 ?

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 20) and (x >= 20) and (x <= 30) ;
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 20) or ((x >= 20) and (x <= 30)) ;
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1 @@
Costruire un prototipo, metterlo in esercizio ed accertarsi che i porti i benefici attesi.

View file

@ -0,0 +1 @@
Quali delle seguenti attività può contribuire a validare i requisiti di un sistema ?

View file

@ -0,0 +1 @@
Costruire un prototipo e valutarne attentamente le performance.

View file

@ -0,0 +1 @@
Costruire un prototipo e testarlo a fondo per evidenziare subito errori di implementazione.

View file

@ -0,0 +1 @@
Testare l'interazione tra le componenti del sistema (cioè, integrazione di molte unità di sistema).

View file

@ -0,0 +1 @@
Il system testing si concentra su:

View file

@ -0,0 +1 @@
Testare le interfacce per ciascuna componente.

View file

@ -0,0 +1 @@
Testare le funzionalità di unità software individuali, oggetti, classi o metodi.

View file

@ -0,0 +1 @@
Ad ogni istante di tempo della forma 1 + 4*k (k = 0, 1, 2, 3, ...), x vale "true".

View file

@ -0,0 +1,13 @@
Si consideri il seguente modello Modelica.
<pre>
class System
Boolean x;
initial equation
x = false;
equation
when sample(0, 2) then
x = not (pre(x));
end when;
end System;
</pre>
Quale delle seguenti affermazioni vale per la variabile booleana x ?

View file

@ -0,0 +1 @@
At time instants of form 1 + 4*k (with k = 0, 1, 2, 3, ...) x takes value "false".

View file

@ -0,0 +1 @@
Ad ogni istante di tempo della forma 3 + 4*k (k = 0, 1, 2, 3, ...), x vale "true".

View file

@ -0,0 +1,16 @@
<pre>
model Env
Integer x; // Pulsante premuto dall'utente
Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := 0;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.6) then x := 0; else x := 1; end if;
end when;
end Env;
</pre>

View file

@ -0,0 +1,3 @@
L'input ad un sistema è costituito da un utente (umano) che preme due pulsanti etichettati con 0 ed 1.
Con probabilità 0.6 l'utente preme il pulsante 0, con probabilità 0.4 l'utente preme il pulsante 1.
Quale dei seguenti modelli Modelica fornisce un modello ragionevole per l'utente di cui sopra?

View file

@ -0,0 +1,16 @@
<pre>
model Env
Integer x; // Pulsante premuto dall'utente
Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := 0;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 >= 0.6) then x := 0; else x := 1; end if;
end when;
end Env;
</pre>

View file

@ -0,0 +1,16 @@
<pre>
model Env
Integer x; // Pulsante premuto dall'utente
Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := 0;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.6) then x := 1; else x := 0; end if;
end when;
end Env;
</pre>

View file

@ -0,0 +1,35 @@
<pre>
model System
parameter Integer F1 = 1;
parameter Integer F2 = 2;
parameter Integer F3 = 3;
parameter Integer End = 4;
parameter Real p = 0.3;
parameter Real A[4, 4] =
[
0, 1, 0, 0;
p, 0, 1-p, 0;
0, p, 0, 1-p;
0, 0, 0, 1
];
Integer x; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := F1;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= A[x, F1]) then
x := F1;
elseif (r1024 <= A[x, F1] + A[x, F2]) then
x := F2;
elseif (r1024 <= A[x, F1] + A[x, F2] + A[x, F3]) then
x := F3;
else
x := End;
end if;
end when;
end System;
</pre>

View file

@ -0,0 +1,4 @@
img=https://i.imgur.com/c4UjAQc.png
Si consideri la seguente Markov Chain:
Quale dei seguenti modelli Modelica fornisce un modello ragionevole per la Markov Chain di cui sopra?

View file

@ -0,0 +1,35 @@
<pre>
model System
parameter Integer F1 = 1;
parameter Integer F2 = 2;
parameter Integer F3 = 3;
parameter Integer End = 4;
parameter Real p = 0.3;
parameter Real A[4, 4] =
[
0, 1, 0, 0;
p, 1-p, 0, 0;
0, 0, p, 1-p;
0, 0, 0, 1
];
Integer x; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := F1;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= A[x, F1]) then
x := F1;
elseif (r1024 <= A[x, F1] + A[x, F2]) then
x := F2;
elseif (r1024 <= A[x, F1] + A[x, F2] + A[x, F3]) then
x := F3;
else
x := End;
end if;
end when;
end System;
</pre>

View file

@ -0,0 +1,35 @@
<pre>
model System
parameter Integer F1 = 1;
parameter Integer F2 = 2;
parameter Integer F3 = 3;
parameter Integer End = 4;
parameter Real p = 0.3;
parameter Real A[4, 4] =
[
0, 1, 0, 0;
p, 0, 0, 1-p;
0, 0, p, 1-p;
0, 0, 0, 1
];
Integer x; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := F1;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= A[x, F1]) then
x := F1;
elseif (r1024 <= A[x, F1] + A[x, F2]) then
x := F2;
elseif (r1024 <= A[x, F1] + A[x, F2] + A[x, F3]) then
x := F3;
else
x := End;
end if;
end when;
end System;
</pre>

View file

@ -0,0 +1 @@
Una release del software è resa disponibile agli utenti (beta users) per permettergli di sperimentare e quindi segnalare eventuali problemi rilevati agli sviluppatori.

View file

@ -0,0 +1 @@
Quale delle seguenti affermazione è vera riguardo al beta testing ?

View file

@ -0,0 +1 @@
Test automatizzato sono eseguiti sulla versione finale del sistema presso il cliente.

View file

@ -0,0 +1 @@
Test automatizzato sono eseguiti sulla versione finale del sistema presso il sito di sviluppo del software.

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 0) and ((x >= 5) or (x <= 0)) and ((x >= 15) or (x <= 10)) ;
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,3 @@
Si consideri il seguente requisito:
RQ1: Durante l'esecuzione del programma (cioè per tutti gli istanti di tempo positivi) la variabile x è sempre nell'intervallo [0, 5] oppure [10, 15]
Quale dei seguenti monitor meglio descrive il requisito RQ1 ?

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 0) and ( ((x >= 0) and (x <= 5)) or ((x >= 10) and (x <= 15)) );
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 0) and ((x >= 0) or (x <= 5)) and ((x >= 10) or (x <= 15)) );
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1 @@
Costruire un modello di simulazione per i principali aspetti dei processi di business dell'azienda e per il sistema software da realizzare e valutare le migliorie apportate dal sistema software ai processi di business dell'azienda mediante simulazione.

View file

@ -0,0 +1 @@
Una azienda finanziaria desidera costruire un sistema software per ottimizzare i processi di business. Quali delle seguenti attività può contribuire a validare i requisiti del sistema ?

View file

@ -0,0 +1 @@
Costruire un prototipo del sistema e valutarne i requisiti non funzionali usando i dati storici dall'azienda.

View file

@ -0,0 +1 @@
Costruire un prototipo del sistema e testarlo rispetto ai requisiti funzionali usando i dati storici dall'azienda.

View file

@ -0,0 +1,15 @@
<pre>
model System
Integer y; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
equation
y = if (r1024 <= 0.2) then -1 else if (r1024 <= 0.7) then 0 else 1;
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
end when;
end System;
</pre>

View file

@ -0,0 +1 @@
Si consideri l'ambiente (use case) consistente di un utente che ad ogni unità di tempo (ad esempio, un secondo) invia al nostro sistema input -1 con probabilità 0.2, input 0 con probabilità 0.5 ed input 1 con probabilità 0.3. Quale dei seguenti modelli Modelica rappresenta correttamente tale ambiente.

View file

@ -0,0 +1,15 @@
<pre>
model System
Integer y; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
equation
y = if (r1024 <= 0.2) then -1 else if (r1024 <= 0.5) then 0 else 1;
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
end when;
end System;
</pre>

View file

@ -0,0 +1,15 @@
<pre>
model System
Integer y; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
equation
y = if (r1024 <= 0.2) then -1 else if (r1024 <= 0.7) then 0 else 1;
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
end when;
end System;
</pre>

View file

@ -0,0 +1,15 @@
<pre>
class Monitor
InputReal x, y;
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 60) and (delay(x, 10) > 0) and (y <= 0);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,5 @@
Si consideri il seguente requisito:
RQ: Dopo 60 unità di tempo dall'inizio dell'esecuzione vale la seguente proprietà:
se 10 unità di tempo nel passato era stata richiesta una risorsa (variabile x positiva) allora ora è concesso l'accesso alla risorsa (variabile y positiva)
Tenendo presente che, al tempo time, delay(z, w) ritorna 0 se time < w e ritorna il valore che z aveva al tempo (time - w), se time >= w.
Quale dei seguenti monitor meglio descrive il requisito RQ ?

View file

@ -0,0 +1,15 @@
<pre>
class Monitor
InputReal x, y;
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 60) and (delay(x, 10) > 0) and (y > 0);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,15 @@
<pre>
class Monitor
InputReal x, y;
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 60) or (delay(x, 10) > 0) or (y <= 0);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,16 @@
<pre>
model System
Integer y;
Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
equation
y = if (r1024 <= 0.3) then 1 else 0;
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
end when;
end System;
</pre>

View file

@ -0,0 +1 @@
Si consideri l'ambiente (use case) che consiste di un utente che, ad ogni unità di tempo (ad esempio, un secondo) manda al nostro sistema input 1 (ad esempio, esegue una prenotazione) con probabilità 0.3 oppure input 0 con probabilità 0.7. Quale dei seguenti modelli Modelica rappresenta correttamente tale ambiente.

View file

@ -0,0 +1,15 @@
<pre>
model System
Integer y; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
equation
y = if (r1024 >= 0.3) then 1 else 0;
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
end when;
end System;
</pre>

View file

@ -0,0 +1,15 @@
<pre>
model System
Integer y; Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
equation
y = if (r1024 <= 0.3) then 0 else 1;
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
end when;
end System;
</pre>

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 0) and ((x > 5) or (x < 0));
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,3 @@
Si consideri il seguente requisito:
RQ: Durante l'esecuzione del programma (cioè per tutti gli istanti di tempo positivi) la variabile x è sempre nell'intervallo [0, 5].
Quale dei seguenti monitor meglio descrive il requisito RQ ?

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 0) and (x > 0) and (x < 5);
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,17 @@
<pre>
class Monitor
InputReal x; // plant output
OutputBoolean y;
Boolean z;
initial equation
y = false;
equation
z = (time > 0) and ((x > 0) or (x < 5));
algorithm
when edge(z) then
y := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,20 @@
<pre>
block MarkovChain
//external function myrandom() returns a random real number in [0, 1]
parameter Integer x0 = 0;
parameter Integer xmax = 100;
OutputInteger x; // Connector
algorithm
when initial() then
x := x0;
elsewhen sample(0, 1) then
if (x < xmax)
then
if (myrandom() <= 0.8)
then
x := x + 1;
end if;
end if;
end when;
end MarkovChain;
</pre>

View file

@ -0,0 +1,4 @@
Un'azienda decide di organizzare il processo di sviluppo di un grosso software in 101 phasi sequenziali, numerate da 0 a 100. La phase 0 è quella iniziale. La phase 100 è quella finale in cui lo sviluppo è completato. Tutte le fasi hanno circa la stessa durata.
Si decide di realizzare un approccio incrementale in cui, alla fine di ogni fase, si passa alla fase successiva solo nel caso in cui tutti i test per la fase vengono superati. In caso contrario bisogna ripetere la phase. Dai dati storici è noto che la probabilità che il team di sviluppo passi da una fase a quella successiva è 0.8.
Allo scopo di stimare attraverso una simulazione MonteCarlo il valore atteso del tempo di completamento del progetto viene realizzato un modello Modelica delo processo di sviluppo descritto sopra.
Quale dei seguenti modelli Modelica modella correttamente il processo di sviluppo descritto sopra?

View file

@ -0,0 +1,20 @@
<pre>
block MarkovChain
//external function myrandom() returns a random real number in [0, 1]
parameter Integer x0 = 0;
parameter Integer xmax = 100;
OutputInteger x; // Connector
algorithm
when initial() then
x := x0;
elsewhen sample(0, 1) then
if (x < xmax)
then
if (myrandom() >= 0.8)
then
x := x + 1;
end if;
end if;
end when;
end MarkovChain;
</pre>

View file

@ -0,0 +1,22 @@
<pre>
block MarkovChain
//external function myrandom() returns a random real number in [0, 1]
parameter Integer x0 = 0;
parameter Integer xmax = 100;
OutputInteger x; // Connector
algorithm
when initial() then
x := x0;
elsewhen sample(0, 1) then
if (x < xmax)
then
if (myrandom() <= 0.8)
then
x := x + 1;
else
x := x - 1;
end if;
end if;
end when;
end MarkovChain;
</pre>

View file

@ -0,0 +1,16 @@
<pre>
class Monitor
InputReal x, y, z; // plant output
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 50) and (x < 0.6*y) and (x + y <= 0.3*z);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,4 @@
Si consideri il seguente requisito:
RQ: Dopo 50 unità di tempo dall'inizio dell'esecuzione vale la seguente proprietà:
se la variabile x è minore del 60% della variabile y allora la somma di x ed y è maggiore del 30% della variabile z
Quale dei seguenti monitor meglio descrive il requisito RQ ?

View file

@ -0,0 +1,16 @@
<pre>
class Monitor
InputReal x, y, z; // plant output
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 50) and (x < 0.6*y) and (x + y > 0.3*z);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,16 @@
<pre>
class Monitor
InputReal x, y, z; // plant output
OutputBoolean wy;
Boolean wz;
initial equation
wy = false;
equation
wz = (time > 50) and (x >= 0.6*y) and (x + y <= 0.3*z);
algorithm
when edge(wz) then
wy := true;
end when;
end Monitor;
</pre>

View file

@ -0,0 +1,23 @@
<pre>
block MarkovChain
//external function myrandom() returns a random real number in [0, 1]
parameter Real x0 = 1;
OutputReal x;
algorithm
when initial() then
x := x0;
elsewhen sample(0, 1) then
if (myrandom() <= 0.9)
then
if (myrandom() <= 0.7)
then
x := 1.1*x;
else
x := 0.9*x;
end if;
else
x := 0.73*x;
end if;
end when;
end MarkovChain;
</pre>

View file

@ -0,0 +1,2 @@
L'input di un sistema software è costituito da un sensore che ogni unità di tempo (ad esempio, un secondo) invia un numero reale. Con probabilità 0.63 il valore inviato in una unità di tempo è maggiore del 10% rispetto quello inviato nell'unità di tempo precedente. Con probabilità 0.1 è inferiore del 27% rispetto al valore inviato nell'unità di tempo precedente. Con probabilità 0.27 è inferiore del 10% rispetto quello inviato nell'unità di tempo precedente.
Quale dei seguenti modelli Modelica modella correttamente l'environment descritto sopra.

View file

@ -0,0 +1,23 @@
<pre>
block MarkovChain
//external function myrandom() returns a random real number in [0, 1]
parameter Real x0 = 1;
OutputReal x;
algorithm
when initial() then
x := x0;
elsewhen sample(0, 1) then
if (myrandom() <= 0.9)
then
if (myrandom() <= 0.7)
then
x := 0.9*x;
else
x := 01.1*x;
end if;
else
x := 0.73*x;
end if;
end when;
end MarkovChain;
</pre>

View file

@ -0,0 +1,23 @@
<pre>
block MarkovChain
//external function myrandom() returns a random real number in [0, 1]
parameter Real x0 = 1;
OutputReal x;
algorithm
when initial() then
x := x0;
elsewhen sample(0, 1) then
if (myrandom() <= 0.7)
then
if (myrandom() <= 0.9)
then
x := 1.1*x;
else
x := 0.9*x;
end if;
else
x := 0.73*x;
end if;
end when;
end MarkovChain;
</pre>

Some files were not shown because too many files have changed in this diff Show more