diff --git a/Ingegneria del Software/0621_20/correct.txt b/Ingegneria del Software/0621_20/correct.txt deleted file mode 100644 index de99e64..0000000 --- a/Ingegneria del Software/0621_20/correct.txt +++ /dev/null @@ -1 +0,0 @@ -S = (1/b)*ln(C/R) \ No newline at end of file diff --git a/Ingegneria del Software/0621_20/quest.txt b/Ingegneria del Software/0621_20/quest.txt deleted file mode 100644 index 9a91655..0000000 --- a/Ingegneria del Software/0621_20/quest.txt +++ /dev/null @@ -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? \ No newline at end of file diff --git a/Ingegneria del Software/0621_20/wrong0.txt b/Ingegneria del Software/0621_20/wrong0.txt deleted file mode 100644 index 9807142..0000000 --- a/Ingegneria del Software/0621_20/wrong0.txt +++ /dev/null @@ -1 +0,0 @@ -S = b*ln(R/C) \ No newline at end of file diff --git a/Ingegneria del Software/0621_20/wrong1.txt b/Ingegneria del Software/0621_20/wrong1.txt deleted file mode 100644 index 587fc4b..0000000 --- a/Ingegneria del Software/0621_20/wrong1.txt +++ /dev/null @@ -1 +0,0 @@ -S = (1/b)*ln(R/C) \ No newline at end of file diff --git a/Ingegneria del Software/0621_31/correct.txt b/Ingegneria del Software/0621_31/correct.txt deleted file mode 100644 index 2563af3..0000000 --- a/Ingegneria del Software/0621_31/correct.txt +++ /dev/null @@ -1 +0,0 @@ -Plan driven \ No newline at end of file diff --git a/Ingegneria del Software/0621_31/quest.txt b/Ingegneria del Software/0621_31/quest.txt deleted file mode 100644 index f48b2fb..0000000 --- a/Ingegneria del Software/0621_31/quest.txt +++ /dev/null @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0621_31/wrong0.txt b/Ingegneria del Software/0621_31/wrong0.txt deleted file mode 100644 index 32417b7..0000000 --- a/Ingegneria del Software/0621_31/wrong0.txt +++ /dev/null @@ -1 +0,0 @@ -Basato sul riuso \ No newline at end of file diff --git a/Ingegneria del Software/0621_31/wrong1.txt b/Ingegneria del Software/0621_31/wrong1.txt deleted file mode 100644 index f28b849..0000000 --- a/Ingegneria del Software/0621_31/wrong1.txt +++ /dev/null @@ -1 +0,0 @@ -Iterativo \ No newline at end of file diff --git a/Ingegneria del Software/0621_33/correct.txt b/Ingegneria del Software/0621_33/correct.txt deleted file mode 100644 index a910f40..0000000 --- a/Ingegneria del Software/0621_33/correct.txt +++ /dev/null @@ -1 +0,0 @@ -Gli utenti del sistema lavorano insieme al team di sviluppo per testare il software nel sito di sviluppo. \ No newline at end of file diff --git a/Ingegneria del Software/0621_33/quest.txt b/Ingegneria del Software/0621_33/quest.txt deleted file mode 100644 index c35e04d..0000000 --- a/Ingegneria del Software/0621_33/quest.txt +++ /dev/null @@ -1 +0,0 @@ -Quale delle seguenti affermazioni è vera riguardo all'alpha testing ? \ No newline at end of file diff --git a/Ingegneria del Software/0621_33/wrong0.txt b/Ingegneria del Software/0621_33/wrong0.txt deleted file mode 100644 index e43ca64..0000000 --- a/Ingegneria del Software/0621_33/wrong0.txt +++ /dev/null @@ -1 +0,0 @@ -Test automatizzati sono eseguiti sulla prima release del sistema. \ No newline at end of file diff --git a/Ingegneria del Software/0621_33/wrong1.txt b/Ingegneria del Software/0621_33/wrong1.txt deleted file mode 100644 index 9a5ec0f..0000000 --- a/Ingegneria del Software/0621_33/wrong1.txt +++ /dev/null @@ -1 +0,0 @@ -Test automatizzati sono eseguiti su una versione preliminare del sistema. \ No newline at end of file diff --git a/Ingegneria del Software/0621_4/correct.txt b/Ingegneria del Software/0621_4/correct.txt deleted file mode 100644 index 8c7d085..0000000 --- a/Ingegneria del Software/0621_4/correct.txt +++ /dev/null @@ -1 +0,0 @@ -Sviluppo Plan-driven. \ No newline at end of file diff --git a/Ingegneria del Software/0621_4/quest.txt b/Ingegneria del Software/0621_4/quest.txt deleted file mode 100644 index ddce8d2..0000000 --- a/Ingegneria del Software/0621_4/quest.txt +++ /dev/null @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0621_4/wrong0.txt b/Ingegneria del Software/0621_4/wrong0.txt deleted file mode 100644 index 774698d..0000000 --- a/Ingegneria del Software/0621_4/wrong0.txt +++ /dev/null @@ -1 +0,0 @@ -Extreme programming. \ No newline at end of file diff --git a/Ingegneria del Software/0621_4/wrong1.txt b/Ingegneria del Software/0621_4/wrong1.txt deleted file mode 100644 index 61e542a..0000000 --- a/Ingegneria del Software/0621_4/wrong1.txt +++ /dev/null @@ -1 +0,0 @@ -Sviluppo Iterativo. \ No newline at end of file diff --git a/Ingegneria del Software/0721_1/correct.txt b/Ingegneria del Software/0721_1/correct.txt new file mode 100644 index 0000000..f8c9568 --- /dev/null +++ b/Ingegneria del Software/0721_1/correct.txt @@ -0,0 +1 @@ +Per tutti gli istanti di tempo della forma 1 + 4*k (con k = 0, 1, 2, 3, ...) x vale 1. \ No newline at end of file diff --git a/Ingegneria del Software/0721_1/quest.txt b/Ingegneria del Software/0721_1/quest.txt new file mode 100644 index 0000000..c5af322 --- /dev/null +++ b/Ingegneria del Software/0721_1/quest.txt @@ -0,0 +1,13 @@ +Si consideri il seguente modello Modelica: +
+class System +Integer x; +initial equation +x = 0; +equation +when sample(0, 2) then + x = 1 - pre(x); +end when; +end System; ++Quale delle seguenti affermazioni è vera per la variabile intera x? \ No newline at end of file diff --git a/Ingegneria del Software/0721_1/wrong1.txt b/Ingegneria del Software/0721_1/wrong1.txt new file mode 100644 index 0000000..f485a50 --- /dev/null +++ b/Ingegneria del Software/0721_1/wrong1.txt @@ -0,0 +1 @@ +Per tutti gli istanti di tempo della forma 3 + 4*k (con k = 0, 1, 2, 3, ...) x vale 1. \ No newline at end of file diff --git a/Ingegneria del Software/0721_1/wrong2.txt b/Ingegneria del Software/0721_1/wrong2.txt new file mode 100644 index 0000000..a7af2cb --- /dev/null +++ b/Ingegneria del Software/0721_1/wrong2.txt @@ -0,0 +1 @@ +Per tutti gli istanti di tempo della forma 1 + 4*k (con k = 0, 1, 2, 3, ...) x vale 0. \ No newline at end of file diff --git a/Ingegneria del Software/0721_10/correct.txt b/Ingegneria del Software/0721_10/correct.txt new file mode 100644 index 0000000..f4e4c53 --- /dev/null +++ b/Ingegneria del Software/0721_10/correct.txt @@ -0,0 +1 @@ +Il performance testing è tipicamente eseguito una volta che il sistema è stato completamento integrato. \ No newline at end of file diff --git a/Ingegneria del Software/0721_10/quest.txt b/Ingegneria del Software/0721_10/quest.txt new file mode 100644 index 0000000..4a711a4 --- /dev/null +++ b/Ingegneria del Software/0721_10/quest.txt @@ -0,0 +1 @@ +Quale delle seguenti affermazioni è vera riguardo al performance testing? \ No newline at end of file diff --git a/Ingegneria del Software/0721_10/wrong1.txt b/Ingegneria del Software/0721_10/wrong1.txt new file mode 100644 index 0000000..4885062 --- /dev/null +++ b/Ingegneria del Software/0721_10/wrong1.txt @@ -0,0 +1 @@ +Il performance testing è tipicamente eseguito su un prototipo del sistema. \ No newline at end of file diff --git a/Ingegneria del Software/0721_10/wrong2.txt b/Ingegneria del Software/0721_10/wrong2.txt new file mode 100644 index 0000000..bd881bc --- /dev/null +++ b/Ingegneria del Software/0721_10/wrong2.txt @@ -0,0 +1 @@ +Il performance testing è tipicamente eseguito solo sulle componenti del sistema prima dell'integrazione. \ No newline at end of file diff --git a/Ingegneria del Software/0721_11/correct.txt b/Ingegneria del Software/0721_11/correct.txt new file mode 100644 index 0000000..a2f00b3 --- /dev/null +++ b/Ingegneria del Software/0721_11/correct.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_11/quest.txt b/Ingegneria del Software/0721_11/quest.txt new file mode 100644 index 0000000..a8b6d94 --- /dev/null +++ b/Ingegneria del Software/0721_11/quest.txt @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_11/wrong1.txt b/Ingegneria del Software/0721_11/wrong1.txt new file mode 100644 index 0000000..0696007 --- /dev/null +++ b/Ingegneria del Software/0721_11/wrong1.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_11/wrong2.txt b/Ingegneria del Software/0721_11/wrong2.txt new file mode 100644 index 0000000..76b58b0 --- /dev/null +++ b/Ingegneria del Software/0721_11/wrong2.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_12/correct.txt b/Ingegneria del Software/0721_12/correct.txt new file mode 100644 index 0000000..1c03108 --- /dev/null +++ b/Ingegneria del Software/0721_12/correct.txt @@ -0,0 +1 @@ +Costruire un prototipo, eseguirlo usando dati storici dai log di produzione e valutare la capacità del prototipo di ridurre gli scarti. \ No newline at end of file diff --git a/Ingegneria del Software/0721_12/quest.txt b/Ingegneria del Software/0721_12/quest.txt new file mode 100644 index 0000000..3dbfadb --- /dev/null +++ b/Ingegneria del Software/0721_12/quest.txt @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0721_12/wrong1.txt b/Ingegneria del Software/0721_12/wrong1.txt new file mode 100644 index 0000000..5187be2 --- /dev/null +++ b/Ingegneria del Software/0721_12/wrong1.txt @@ -0,0 +1 @@ +Costruire un prototipo, eseguirlo usando dati storici dai log di produzione e valutarne le performance. \ No newline at end of file diff --git a/Ingegneria del Software/0721_12/wrong2.txt b/Ingegneria del Software/0721_12/wrong2.txt new file mode 100644 index 0000000..52330c1 --- /dev/null +++ b/Ingegneria del Software/0721_12/wrong2.txt @@ -0,0 +1 @@ +Costruire un prototipo, eseguirlo usando dati storici dai log di produzione ed identificare errori di implementazione. \ No newline at end of file diff --git a/Ingegneria del Software/0721_13/correct.txt b/Ingegneria del Software/0721_13/correct.txt new file mode 100644 index 0000000..9b5317b --- /dev/null +++ b/Ingegneria del Software/0721_13/correct.txt @@ -0,0 +1,18 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_13/quest.txt b/Ingegneria del Software/0721_13/quest.txt new file mode 100644 index 0000000..c105449 --- /dev/null +++ b/Ingegneria del Software/0721_13/quest.txt @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0721_13/wrong1.txt b/Ingegneria del Software/0721_13/wrong1.txt new file mode 100644 index 0000000..9b5317b --- /dev/null +++ b/Ingegneria del Software/0721_13/wrong1.txt @@ -0,0 +1,18 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_13/wrong2.txt b/Ingegneria del Software/0721_13/wrong2.txt new file mode 100644 index 0000000..78c7306 --- /dev/null +++ b/Ingegneria del Software/0721_13/wrong2.txt @@ -0,0 +1,18 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_14/correct.txt b/Ingegneria del Software/0721_14/correct.txt new file mode 100644 index 0000000..d3daba4 --- /dev/null +++ b/Ingegneria del Software/0721_14/correct.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_14/quest.txt b/Ingegneria del Software/0721_14/quest.txt new file mode 100644 index 0000000..ed5dffb --- /dev/null +++ b/Ingegneria del Software/0721_14/quest.txt @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_14/wrong1.txt b/Ingegneria del Software/0721_14/wrong1.txt new file mode 100644 index 0000000..5bdf9c8 --- /dev/null +++ b/Ingegneria del Software/0721_14/wrong1.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_14/wrong2.txt b/Ingegneria del Software/0721_14/wrong2.txt new file mode 100644 index 0000000..169ec7c --- /dev/null +++ b/Ingegneria del Software/0721_14/wrong2.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_15/correct.txt b/Ingegneria del Software/0721_15/correct.txt new file mode 100644 index 0000000..355e195 --- /dev/null +++ b/Ingegneria del Software/0721_15/correct.txt @@ -0,0 +1 @@ +Costruire un prototipo, metterlo in esercizio ed accertarsi che i porti i benefici attesi. \ No newline at end of file diff --git a/Ingegneria del Software/0721_15/quest.txt b/Ingegneria del Software/0721_15/quest.txt new file mode 100644 index 0000000..15dbdf2 --- /dev/null +++ b/Ingegneria del Software/0721_15/quest.txt @@ -0,0 +1 @@ +Quali delle seguenti attività può contribuire a validare i requisiti di un sistema ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_15/wrong1.txt b/Ingegneria del Software/0721_15/wrong1.txt new file mode 100644 index 0000000..6806506 --- /dev/null +++ b/Ingegneria del Software/0721_15/wrong1.txt @@ -0,0 +1 @@ +Costruire un prototipo e valutarne attentamente le performance. \ No newline at end of file diff --git a/Ingegneria del Software/0721_15/wrong2.txt b/Ingegneria del Software/0721_15/wrong2.txt new file mode 100644 index 0000000..586ebee --- /dev/null +++ b/Ingegneria del Software/0721_15/wrong2.txt @@ -0,0 +1 @@ +Costruire un prototipo e testarlo a fondo per evidenziare subito errori di implementazione. \ No newline at end of file diff --git a/Ingegneria del Software/0721_16/correct.txt b/Ingegneria del Software/0721_16/correct.txt new file mode 100644 index 0000000..a4a8878 --- /dev/null +++ b/Ingegneria del Software/0721_16/correct.txt @@ -0,0 +1 @@ +Testare l'interazione tra le componenti del sistema (cioè, integrazione di molte unità di sistema). \ No newline at end of file diff --git a/Ingegneria del Software/0721_16/quest.txt b/Ingegneria del Software/0721_16/quest.txt new file mode 100644 index 0000000..8bbcdb8 --- /dev/null +++ b/Ingegneria del Software/0721_16/quest.txt @@ -0,0 +1 @@ +Il system testing si concentra su: \ No newline at end of file diff --git a/Ingegneria del Software/0721_16/wrong1.txt b/Ingegneria del Software/0721_16/wrong1.txt new file mode 100644 index 0000000..3214f65 --- /dev/null +++ b/Ingegneria del Software/0721_16/wrong1.txt @@ -0,0 +1 @@ +Testare le interfacce per ciascuna componente. \ No newline at end of file diff --git a/Ingegneria del Software/0721_16/wrong2.txt b/Ingegneria del Software/0721_16/wrong2.txt new file mode 100644 index 0000000..6a9cb98 --- /dev/null +++ b/Ingegneria del Software/0721_16/wrong2.txt @@ -0,0 +1 @@ +Testare le funzionalità di unità software individuali, oggetti, classi o metodi. \ No newline at end of file diff --git a/Ingegneria del Software/0721_17/correct.txt b/Ingegneria del Software/0721_17/correct.txt new file mode 100644 index 0000000..d3826b5 --- /dev/null +++ b/Ingegneria del Software/0721_17/correct.txt @@ -0,0 +1 @@ +Ad ogni istante di tempo della forma 1 + 4*k (k = 0, 1, 2, 3, ...), x vale "true". \ No newline at end of file diff --git a/Ingegneria del Software/0721_17/quest.txt b/Ingegneria del Software/0721_17/quest.txt new file mode 100644 index 0000000..4e55a8a --- /dev/null +++ b/Ingegneria del Software/0721_17/quest.txt @@ -0,0 +1,13 @@ +Si consideri il seguente modello Modelica. +
+class System +Boolean x; +initial equation +x = false; +equation +when sample(0, 2) then + x = not (pre(x)); +end when; +end System; ++Quale delle seguenti affermazioni vale per la variabile booleana x ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_17/wrong1.txt b/Ingegneria del Software/0721_17/wrong1.txt new file mode 100644 index 0000000..6245a2f --- /dev/null +++ b/Ingegneria del Software/0721_17/wrong1.txt @@ -0,0 +1 @@ +At time instants of form 1 + 4*k (with k = 0, 1, 2, 3, ...) x takes value "false". \ No newline at end of file diff --git a/Ingegneria del Software/0721_17/wrong2.txt b/Ingegneria del Software/0721_17/wrong2.txt new file mode 100644 index 0000000..0ba96d3 --- /dev/null +++ b/Ingegneria del Software/0721_17/wrong2.txt @@ -0,0 +1 @@ +Ad ogni istante di tempo della forma 3 + 4*k (k = 0, 1, 2, 3, ...), x vale "true". \ No newline at end of file diff --git a/Ingegneria del Software/0721_18/correct.txt b/Ingegneria del Software/0721_18/correct.txt new file mode 100644 index 0000000..eea60e9 --- /dev/null +++ b/Ingegneria del Software/0721_18/correct.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_18/quest.txt b/Ingegneria del Software/0721_18/quest.txt new file mode 100644 index 0000000..c46480d --- /dev/null +++ b/Ingegneria del Software/0721_18/quest.txt @@ -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? \ No newline at end of file diff --git a/Ingegneria del Software/0721_18/wrong1.txt b/Ingegneria del Software/0721_18/wrong1.txt new file mode 100644 index 0000000..f66dbc7 --- /dev/null +++ b/Ingegneria del Software/0721_18/wrong1.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_18/wrong2.txt b/Ingegneria del Software/0721_18/wrong2.txt new file mode 100644 index 0000000..2192e79 --- /dev/null +++ b/Ingegneria del Software/0721_18/wrong2.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_19/correct.txt b/Ingegneria del Software/0721_19/correct.txt new file mode 100644 index 0000000..44ac343 --- /dev/null +++ b/Ingegneria del Software/0721_19/correct.txt @@ -0,0 +1,35 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_19/quest.txt b/Ingegneria del Software/0721_19/quest.txt new file mode 100644 index 0000000..6229852 --- /dev/null +++ b/Ingegneria del Software/0721_19/quest.txt @@ -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? \ No newline at end of file diff --git a/Ingegneria del Software/0721_19/wrong1.txt b/Ingegneria del Software/0721_19/wrong1.txt new file mode 100644 index 0000000..45f3fbe --- /dev/null +++ b/Ingegneria del Software/0721_19/wrong1.txt @@ -0,0 +1,35 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_19/wrong2.txt b/Ingegneria del Software/0721_19/wrong2.txt new file mode 100644 index 0000000..f6b2fef --- /dev/null +++ b/Ingegneria del Software/0721_19/wrong2.txt @@ -0,0 +1,35 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_2/correct.txt b/Ingegneria del Software/0721_2/correct.txt new file mode 100644 index 0000000..68bfd31 --- /dev/null +++ b/Ingegneria del Software/0721_2/correct.txt @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0721_2/quest.txt b/Ingegneria del Software/0721_2/quest.txt new file mode 100644 index 0000000..4589c15 --- /dev/null +++ b/Ingegneria del Software/0721_2/quest.txt @@ -0,0 +1 @@ +Quale delle seguenti affermazione è vera riguardo al beta testing ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_2/wrong1.txt b/Ingegneria del Software/0721_2/wrong1.txt new file mode 100644 index 0000000..f021931 --- /dev/null +++ b/Ingegneria del Software/0721_2/wrong1.txt @@ -0,0 +1 @@ +Test automatizzato sono eseguiti sulla versione finale del sistema presso il cliente. \ No newline at end of file diff --git a/Ingegneria del Software/0721_2/wrong2.txt b/Ingegneria del Software/0721_2/wrong2.txt new file mode 100644 index 0000000..ab58544 --- /dev/null +++ b/Ingegneria del Software/0721_2/wrong2.txt @@ -0,0 +1 @@ +Test automatizzato sono eseguiti sulla versione finale del sistema presso il sito di sviluppo del software. \ No newline at end of file diff --git a/Ingegneria del Software/0721_20/correct.txt b/Ingegneria del Software/0721_20/correct.txt new file mode 100644 index 0000000..2771487 --- /dev/null +++ b/Ingegneria del Software/0721_20/correct.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_20/quest.txt b/Ingegneria del Software/0721_20/quest.txt new file mode 100644 index 0000000..5c0b607 --- /dev/null +++ b/Ingegneria del Software/0721_20/quest.txt @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_20/wrong1.txt b/Ingegneria del Software/0721_20/wrong1.txt new file mode 100644 index 0000000..d681803 --- /dev/null +++ b/Ingegneria del Software/0721_20/wrong1.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_20/wrong2.txt b/Ingegneria del Software/0721_20/wrong2.txt new file mode 100644 index 0000000..44ac950 --- /dev/null +++ b/Ingegneria del Software/0721_20/wrong2.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_21/correct.txt b/Ingegneria del Software/0721_21/correct.txt new file mode 100644 index 0000000..67edba8 --- /dev/null +++ b/Ingegneria del Software/0721_21/correct.txt @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0721_21/quest.txt b/Ingegneria del Software/0721_21/quest.txt new file mode 100644 index 0000000..02d9102 --- /dev/null +++ b/Ingegneria del Software/0721_21/quest.txt @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_21/wrong1.txt b/Ingegneria del Software/0721_21/wrong1.txt new file mode 100644 index 0000000..2c917d7 --- /dev/null +++ b/Ingegneria del Software/0721_21/wrong1.txt @@ -0,0 +1 @@ +Costruire un prototipo del sistema e valutarne i requisiti non funzionali usando i dati storici dall'azienda. \ No newline at end of file diff --git a/Ingegneria del Software/0721_21/wrong2.txt b/Ingegneria del Software/0721_21/wrong2.txt new file mode 100644 index 0000000..1aa1cd5 --- /dev/null +++ b/Ingegneria del Software/0721_21/wrong2.txt @@ -0,0 +1 @@ +Costruire un prototipo del sistema e testarlo rispetto ai requisiti funzionali usando i dati storici dall'azienda. \ No newline at end of file diff --git a/Ingegneria del Software/0721_22/correct.txt b/Ingegneria del Software/0721_22/correct.txt new file mode 100644 index 0000000..6971583 --- /dev/null +++ b/Ingegneria del Software/0721_22/correct.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_22/quest.txt b/Ingegneria del Software/0721_22/quest.txt new file mode 100644 index 0000000..45f5869 --- /dev/null +++ b/Ingegneria del Software/0721_22/quest.txt @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0721_22/wrong1.txt b/Ingegneria del Software/0721_22/wrong1.txt new file mode 100644 index 0000000..ea8f817 --- /dev/null +++ b/Ingegneria del Software/0721_22/wrong1.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_22/wrong2.txt b/Ingegneria del Software/0721_22/wrong2.txt new file mode 100644 index 0000000..6971583 --- /dev/null +++ b/Ingegneria del Software/0721_22/wrong2.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_23/correct.txt b/Ingegneria del Software/0721_23/correct.txt new file mode 100644 index 0000000..a3a4b67 --- /dev/null +++ b/Ingegneria del Software/0721_23/correct.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_23/quest.txt b/Ingegneria del Software/0721_23/quest.txt new file mode 100644 index 0000000..de77723 --- /dev/null +++ b/Ingegneria del Software/0721_23/quest.txt @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_23/wrong1.txt b/Ingegneria del Software/0721_23/wrong1.txt new file mode 100644 index 0000000..9f7ef6a --- /dev/null +++ b/Ingegneria del Software/0721_23/wrong1.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_23/wrong2.txt b/Ingegneria del Software/0721_23/wrong2.txt new file mode 100644 index 0000000..bce472e --- /dev/null +++ b/Ingegneria del Software/0721_23/wrong2.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_24/correct.txt b/Ingegneria del Software/0721_24/correct.txt new file mode 100644 index 0000000..3a1f159 --- /dev/null +++ b/Ingegneria del Software/0721_24/correct.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_24/quest.txt b/Ingegneria del Software/0721_24/quest.txt new file mode 100644 index 0000000..5a1289f --- /dev/null +++ b/Ingegneria del Software/0721_24/quest.txt @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0721_24/wrong1.txt b/Ingegneria del Software/0721_24/wrong1.txt new file mode 100644 index 0000000..7ef2e87 --- /dev/null +++ b/Ingegneria del Software/0721_24/wrong1.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_24/wrong2.txt b/Ingegneria del Software/0721_24/wrong2.txt new file mode 100644 index 0000000..daf450c --- /dev/null +++ b/Ingegneria del Software/0721_24/wrong2.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_25/correct.txt b/Ingegneria del Software/0721_25/correct.txt new file mode 100644 index 0000000..a068be6 --- /dev/null +++ b/Ingegneria del Software/0721_25/correct.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_25/quest.txt b/Ingegneria del Software/0721_25/quest.txt new file mode 100644 index 0000000..6473814 --- /dev/null +++ b/Ingegneria del Software/0721_25/quest.txt @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_25/wrong1.txt b/Ingegneria del Software/0721_25/wrong1.txt new file mode 100644 index 0000000..8086f1c --- /dev/null +++ b/Ingegneria del Software/0721_25/wrong1.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_25/wrong2.txt b/Ingegneria del Software/0721_25/wrong2.txt new file mode 100644 index 0000000..c22f966 --- /dev/null +++ b/Ingegneria del Software/0721_25/wrong2.txt @@ -0,0 +1,17 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_26/correct.txt b/Ingegneria del Software/0721_26/correct.txt new file mode 100644 index 0000000..8c66f86 --- /dev/null +++ b/Ingegneria del Software/0721_26/correct.txt @@ -0,0 +1,20 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_26/quest.txt b/Ingegneria del Software/0721_26/quest.txt new file mode 100644 index 0000000..cf6929a --- /dev/null +++ b/Ingegneria del Software/0721_26/quest.txt @@ -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? \ No newline at end of file diff --git a/Ingegneria del Software/0721_26/wrong1.txt b/Ingegneria del Software/0721_26/wrong1.txt new file mode 100644 index 0000000..b89b025 --- /dev/null +++ b/Ingegneria del Software/0721_26/wrong1.txt @@ -0,0 +1,20 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_26/wrong2.txt b/Ingegneria del Software/0721_26/wrong2.txt new file mode 100644 index 0000000..49262e8 --- /dev/null +++ b/Ingegneria del Software/0721_26/wrong2.txt @@ -0,0 +1,22 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_27/correct.txt b/Ingegneria del Software/0721_27/correct.txt new file mode 100644 index 0000000..9be970c --- /dev/null +++ b/Ingegneria del Software/0721_27/correct.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_27/quest.txt b/Ingegneria del Software/0721_27/quest.txt new file mode 100644 index 0000000..2eb7f69 --- /dev/null +++ b/Ingegneria del Software/0721_27/quest.txt @@ -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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_27/wrong1.txt b/Ingegneria del Software/0721_27/wrong1.txt new file mode 100644 index 0000000..8b6fcac --- /dev/null +++ b/Ingegneria del Software/0721_27/wrong1.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_27/wrong2.txt b/Ingegneria del Software/0721_27/wrong2.txt new file mode 100644 index 0000000..40a2ce0 --- /dev/null +++ b/Ingegneria del Software/0721_27/wrong2.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_28/correct.txt b/Ingegneria del Software/0721_28/correct.txt new file mode 100644 index 0000000..c0acec0 --- /dev/null +++ b/Ingegneria del Software/0721_28/correct.txt @@ -0,0 +1,23 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_28/quest.txt b/Ingegneria del Software/0721_28/quest.txt new file mode 100644 index 0000000..04a9c59 --- /dev/null +++ b/Ingegneria del Software/0721_28/quest.txt @@ -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. \ No newline at end of file diff --git a/Ingegneria del Software/0721_28/wrong1.txt b/Ingegneria del Software/0721_28/wrong1.txt new file mode 100644 index 0000000..af5ef9e --- /dev/null +++ b/Ingegneria del Software/0721_28/wrong1.txt @@ -0,0 +1,23 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_28/wrong2.txt b/Ingegneria del Software/0721_28/wrong2.txt new file mode 100644 index 0000000..7e94fc7 --- /dev/null +++ b/Ingegneria del Software/0721_28/wrong2.txt @@ -0,0 +1,23 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_29/correct.txt b/Ingegneria del Software/0721_29/correct.txt new file mode 100644 index 0000000..cb4fc9a --- /dev/null +++ b/Ingegneria del Software/0721_29/correct.txt @@ -0,0 +1,21 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 1) then + if (countdown <= 0) + then + countdown := 1 + integer(floor(10*myrandom())); + x := x + (-1 + 2*myrandom()); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_29/quest.txt b/Ingegneria del Software/0721_29/quest.txt new file mode 100644 index 0000000..8f5424d --- /dev/null +++ b/Ingegneria del Software/0721_29/quest.txt @@ -0,0 +1,2 @@ +L'input di un sistema software è costituito da una sequenza di valori reali. Ad ogni unità di tempo il valore di input può rimanere uguale al precedente oppure differire di un numero random in [-1, 1]. L'input resta costante per numero random di unità di tempo in [1, 10]. +Quale dei seguenti modelli Modelica modella meglio l'environment descritto sopra. \ No newline at end of file diff --git a/Ingegneria del Software/0721_29/wrong1.txt b/Ingegneria del Software/0721_29/wrong1.txt new file mode 100644 index 0000000..f32ca15 --- /dev/null +++ b/Ingegneria del Software/0721_29/wrong1.txt @@ -0,0 +1,21 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 1) then + if (countdown <= 0) + then + countdown := 1 + integer(floor(10*myrandom())); + x := x + (-1 + 4*myrandom()); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_29/wrong2.txt b/Ingegneria del Software/0721_29/wrong2.txt new file mode 100644 index 0000000..38e1c17 --- /dev/null +++ b/Ingegneria del Software/0721_29/wrong2.txt @@ -0,0 +1,21 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 1) then + if (countdown <= 0) + then + countdown := 1 + integer(floor(10*myrandom())); + x := x - myrandom(); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_3/correct.txt b/Ingegneria del Software/0721_3/correct.txt new file mode 100644 index 0000000..1a8a50a --- /dev/null +++ b/Ingegneria del Software/0721_3/correct.txt @@ -0,0 +1 @@ +Per ciascun requisito, dovremmo essere in grado di scrivere un inseme di test che può dimostrare che il sistema sviluppato soddisfa il requisito considerato. \ No newline at end of file diff --git a/Ingegneria del Software/0721_3/quest.txt b/Ingegneria del Software/0721_3/quest.txt new file mode 100644 index 0000000..a3ca550 --- /dev/null +++ b/Ingegneria del Software/0721_3/quest.txt @@ -0,0 +1 @@ +Quale delle seguenti frasi meglio descrive il criterio di "requirements verifiability" che è parte della "requirements validation activity". \ No newline at end of file diff --git a/Ingegneria del Software/0721_3/wrong1.txt b/Ingegneria del Software/0721_3/wrong1.txt new file mode 100644 index 0000000..fac8307 --- /dev/null +++ b/Ingegneria del Software/0721_3/wrong1.txt @@ -0,0 +1 @@ +Per ciascuna coppia di componenti, dovremmo essere in grado di scrivere un insieme di test che può dimostrare che l'interazione tra le componenti soddisfa tutti i requisiti di interfaccia. \ No newline at end of file diff --git a/Ingegneria del Software/0721_3/wrong2.txt b/Ingegneria del Software/0721_3/wrong2.txt new file mode 100644 index 0000000..3fdb31e --- /dev/null +++ b/Ingegneria del Software/0721_3/wrong2.txt @@ -0,0 +1 @@ +Per ciascuna componente del sistema, dovremmo essere in grado di scrivere un insieme di test che può dimostrare che essa soddisfa tutti i requisiti. \ No newline at end of file diff --git a/Ingegneria del Software/0721_31/correct.txt b/Ingegneria del Software/0721_31/correct.txt new file mode 100644 index 0000000..a7029bc --- /dev/null +++ b/Ingegneria del Software/0721_31/correct.txt @@ -0,0 +1 @@ +La variabile x è nell'intervallo [1, 4] oppure nell'intervallo [15, 20]. \ No newline at end of file diff --git a/Ingegneria del Software/0721_31/quest.txt b/Ingegneria del Software/0721_31/quest.txt new file mode 100644 index 0000000..a279fbb --- /dev/null +++ b/Ingegneria del Software/0721_31/quest.txt @@ -0,0 +1,17 @@ +Si consideri il monitor seguente che ritorna true appena il sistema viola il requisito monitorato. +
+block Monitor +input Real x; +output Boolean y; +Boolean w; +initial equation +y = false; +equation +w = ((x < 1) or (x > 4)) and ((x < 15) or (x > 20)); +algorithm +when edge(w) then +y := true; +end when; +end Monitor; ++Quale delle seguenti affermazioni meglio descrive il requisito monitorato? \ No newline at end of file diff --git a/Ingegneria del Software/0721_31/wrong1.txt b/Ingegneria del Software/0721_31/wrong1.txt new file mode 100644 index 0000000..a82929b --- /dev/null +++ b/Ingegneria del Software/0721_31/wrong1.txt @@ -0,0 +1 @@ +La variabile x è nell'intervallo [1, 4] e fuori dall'intervallo [15, 20]. \ No newline at end of file diff --git a/Ingegneria del Software/0721_31/wrong2.txt b/Ingegneria del Software/0721_31/wrong2.txt new file mode 100644 index 0000000..710b111 --- /dev/null +++ b/Ingegneria del Software/0721_31/wrong2.txt @@ -0,0 +1 @@ +La variabile x è fuori dall'intervallo [1, 4] e fuori dall'intervallo [15, 20]. \ No newline at end of file diff --git a/Ingegneria del Software/0721_32/correct.txt b/Ingegneria del Software/0721_32/correct.txt new file mode 100644 index 0000000..e13eda2 --- /dev/null +++ b/Ingegneria del Software/0721_32/correct.txt @@ -0,0 +1 @@ +Accertarsi che i requisiti definiscano un sistema che risolve il problema che l'utente pianifica di risolvere. \ No newline at end of file diff --git a/Ingegneria del Software/0721_32/quest.txt b/Ingegneria del Software/0721_32/quest.txt new file mode 100644 index 0000000..ea06339 --- /dev/null +++ b/Ingegneria del Software/0721_32/quest.txt @@ -0,0 +1 @@ +Quali delle seguenti attività è parte del processo di validazione dei requisiti ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_32/wrong1.txt b/Ingegneria del Software/0721_32/wrong1.txt new file mode 100644 index 0000000..b24f900 --- /dev/null +++ b/Ingegneria del Software/0721_32/wrong1.txt @@ -0,0 +1 @@ +Accertarsi che il sistema soddisfi i requisiti dati. \ No newline at end of file diff --git a/Ingegneria del Software/0721_32/wrong2.txt b/Ingegneria del Software/0721_32/wrong2.txt new file mode 100644 index 0000000..884d6b1 --- /dev/null +++ b/Ingegneria del Software/0721_32/wrong2.txt @@ -0,0 +1 @@ +Accertarsi che l'architettura del sistema soddisfi i requisiti dati. \ No newline at end of file diff --git a/Ingegneria del Software/0721_33/correct.txt b/Ingegneria del Software/0721_33/correct.txt new file mode 100644 index 0000000..9f4a8bf --- /dev/null +++ b/Ingegneria del Software/0721_33/correct.txt @@ -0,0 +1,23 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Integer x0 = 0; +OutputInteger x; +algorithm +when initial() then +x := x0; +elsewhen sample(0, 1) then + if (myrandom() <= 0.8) + then + if (myrandom() <= 0.7) + then + x := 0; + else + x := 1; + end if; + else + x := -1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_33/quest.txt b/Ingegneria del Software/0721_33/quest.txt new file mode 100644 index 0000000..496b6af --- /dev/null +++ b/Ingegneria del Software/0721_33/quest.txt @@ -0,0 +1,2 @@ +L'environment di un sistema software è costituito da uno user che, ogni untià di tempo (ad esempio, un secondo) invia al sistema tre numeri: -1, 0, 1, con probabilità, rispettivamente, 0.2, 0.56, 0.24. +Quale dei seguenti modelli Modelica modella correttamente l'environment descritto sopra. \ No newline at end of file diff --git a/Ingegneria del Software/0721_33/wrong1.txt b/Ingegneria del Software/0721_33/wrong1.txt new file mode 100644 index 0000000..8e7ebc7 --- /dev/null +++ b/Ingegneria del Software/0721_33/wrong1.txt @@ -0,0 +1,23 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Integer x0 = 0; +OutputInteger x; +algorithm +when initial() then +x := x0; +elsewhen sample(0, 1) then + if (myrandom() <= 0.8) + then + if (myrandom() <= 0.7) + then + x := 1; + else + x := 0; + end if; + else + x := -1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_33/wrong2.txt b/Ingegneria del Software/0721_33/wrong2.txt new file mode 100644 index 0000000..2fd0f2e --- /dev/null +++ b/Ingegneria del Software/0721_33/wrong2.txt @@ -0,0 +1,23 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Integer x0 = 0; +OutputInteger x; +algorithm +when initial() then +x := x0; +elsewhen sample(0, 1) then + if (myrandom() <= 0.7) + then + if (myrandom() <= 0.8) + then + x := 0; + else + x := 1; + end if; + else + x := -1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_34/correct.txt b/Ingegneria del Software/0721_34/correct.txt new file mode 100644 index 0000000..5bca5f8 --- /dev/null +++ b/Ingegneria del Software/0721_34/correct.txt @@ -0,0 +1 @@ +Testare le interfacce per ciascun componente. \ No newline at end of file diff --git a/Ingegneria del Software/0721_34/quest.txt b/Ingegneria del Software/0721_34/quest.txt new file mode 100644 index 0000000..561755a --- /dev/null +++ b/Ingegneria del Software/0721_34/quest.txt @@ -0,0 +1 @@ +Il component testing si concentra su: \ No newline at end of file diff --git a/Ingegneria del Software/0721_34/wrong1.txt b/Ingegneria del Software/0721_34/wrong1.txt new file mode 100644 index 0000000..7a3fe03 --- /dev/null +++ b/Ingegneria del Software/0721_34/wrong1.txt @@ -0,0 +1 @@ +Testare l'interazione tra molte componenti (cioè integrazione di molte unità). \ No newline at end of file diff --git a/Ingegneria del Software/0721_34/wrong2.txt b/Ingegneria del Software/0721_34/wrong2.txt new file mode 100644 index 0000000..d4074cf --- /dev/null +++ b/Ingegneria del Software/0721_34/wrong2.txt @@ -0,0 +1 @@ +Testare funzionalità di unità software individuali, oggetti, classi o metodi. \ No newline at end of file diff --git a/Ingegneria del Software/0721_35/correct.txt b/Ingegneria del Software/0721_35/correct.txt new file mode 100644 index 0000000..ca92838 --- /dev/null +++ b/Ingegneria del Software/0721_35/correct.txt @@ -0,0 +1,17 @@ +
+class Monitor + +InputReal x, y; // plant output +OutputBoolean wy; + +Boolean wz; +initial equation +wy = false; +equation +wz = (time > 10) and (x >= 10) and (x <= 20) and ((y < 0.5*x) or (y > 0.7*x)) ; +algorithm +when edge(wz) then +wy := true; +end when; +end Monitor; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_35/quest.txt b/Ingegneria del Software/0721_35/quest.txt new file mode 100644 index 0000000..b1c19dc --- /dev/null +++ b/Ingegneria del Software/0721_35/quest.txt @@ -0,0 +1,3 @@ +Si consideri il seguente requisito: +RQ: Dopo 10 unità di tempo dall'inizio dell'esecuzione vale la seguente proprietà: se la variabile x è nell'intervallo [10, 20] allora la variabile y è compresa tra il 50% di x ed il 70% di x. +Quale dei seguenti monitor meglio descrive il requisito RQ ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_35/wrong1.txt b/Ingegneria del Software/0721_35/wrong1.txt new file mode 100644 index 0000000..434e904 --- /dev/null +++ b/Ingegneria del Software/0721_35/wrong1.txt @@ -0,0 +1,17 @@ +
+class Monitor + +InputReal x, y; // plant output +OutputBoolean wy; + +Boolean wz; +initial equation +wy = false; +equation +wz = (time > 10) and ((x < 10) or (x > 20)) and ((y < 0.5*x) or (y > 0.7*x)) ; +algorithm +when edge(wz) then +wy := true; +end when; +end Monitor; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_35/wrong2.txt b/Ingegneria del Software/0721_35/wrong2.txt new file mode 100644 index 0000000..c0e3311 --- /dev/null +++ b/Ingegneria del Software/0721_35/wrong2.txt @@ -0,0 +1,17 @@ +
+class Monitor + +InputReal x, y; // plant output +OutputBoolean wy; + +Boolean wz; +initial equation +wy = false; +equation +wz = (time > 10) and (x >= 10) and (x <= 20) and (y >= 0.5*x) and (y <= 0.7*x) ; +algorithm +when edge(wz) then +wy := true; +end when; +end Monitor; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_36/correct.txt b/Ingegneria del Software/0721_36/correct.txt new file mode 100644 index 0000000..3a0f9a1 --- /dev/null +++ b/Ingegneria del Software/0721_36/correct.txt @@ -0,0 +1 @@ +Stiamo costruendo il sistema giusto ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_36/quest.txt b/Ingegneria del Software/0721_36/quest.txt new file mode 100644 index 0000000..f7ef080 --- /dev/null +++ b/Ingegneria del Software/0721_36/quest.txt @@ -0,0 +1 @@ +La validazione risponde alla seguenete domanda: \ No newline at end of file diff --git a/Ingegneria del Software/0721_36/wrong1.txt b/Ingegneria del Software/0721_36/wrong1.txt new file mode 100644 index 0000000..6633b8c --- /dev/null +++ b/Ingegneria del Software/0721_36/wrong1.txt @@ -0,0 +1 @@ +Sono soddisfatti i requisti funzionali ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_36/wrong2.txt b/Ingegneria del Software/0721_36/wrong2.txt new file mode 100644 index 0000000..7edd4bc --- /dev/null +++ b/Ingegneria del Software/0721_36/wrong2.txt @@ -0,0 +1 @@ +Stiamo costruendo il sistema nel modo giusto ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_37/correct.txt b/Ingegneria del Software/0721_37/correct.txt new file mode 100644 index 0000000..56ad9f9 --- /dev/null +++ b/Ingegneria del Software/0721_37/correct.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_37/quest.txt b/Ingegneria del Software/0721_37/quest.txt new file mode 100644 index 0000000..06f6627 --- /dev/null +++ b/Ingegneria del Software/0721_37/quest.txt @@ -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 x era maggiore di 0 allora ora y è negativa. +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 ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_37/wrong1.txt b/Ingegneria del Software/0721_37/wrong1.txt new file mode 100644 index 0000000..976ab6a --- /dev/null +++ b/Ingegneria del Software/0721_37/wrong1.txt @@ -0,0 +1,16 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_37/wrong2.txt b/Ingegneria del Software/0721_37/wrong2.txt new file mode 100644 index 0000000..3184bf8 --- /dev/null +++ b/Ingegneria del Software/0721_37/wrong2.txt @@ -0,0 +1,15 @@ +
+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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_38/correct.txt b/Ingegneria del Software/0721_38/correct.txt new file mode 100644 index 0000000..2ff8b15 --- /dev/null +++ b/Ingegneria del Software/0721_38/correct.txt @@ -0,0 +1,27 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Integer x0 = 0; +parameter Integer xmax = 100; +OutputInteger x; +algorithm +when initial() then +x := x0; +elsewhen sample(0, 1) then +if (x < xmax) +then + if (myrandom() <= 0.9) + then + if (myrandom() <= 0.8) + then + x := x + 1; + else + x := max(0, x - 1); + end if; + else + x := max(0, x - 1); + end if; +end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_38/quest.txt b/Ingegneria del Software/0721_38/quest.txt new file mode 100644 index 0000000..704b6cc --- /dev/null +++ b/Ingegneria del Software/0721_38/quest.txt @@ -0,0 +1,8 @@ +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. +Alla fine di ogni fase viene eseguita una batteria di tests. I risultati del testing possono essere: +a) si può passare alla fase successiva; +b) bisogna ripetere la fase corrente; +c) bisogna rivedere il lavoro fatto nella fase precedente (reworking). +Dai dati storici è noto che la probabilità del caso a) è 0.72, del caso b) è 0.18 e del caso c) è 0.1. +Allo scopo di stimare attraverso una simulazione MonteCarlo il valore atteso del tempo di completamento del progetto viene realizzato un modello Modelica del processo di sviluppo descritto sopra. +Quale dei seguenti modelli Modelica modella correttamente il processo di sviluppo descritto sopra? \ No newline at end of file diff --git a/Ingegneria del Software/0721_38/wrong1.txt b/Ingegneria del Software/0721_38/wrong1.txt new file mode 100644 index 0000000..9180ff4 --- /dev/null +++ b/Ingegneria del Software/0721_38/wrong1.txt @@ -0,0 +1,27 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Integer x0 = 0; +parameter Integer xmax = 100; +OutputInteger x; +algorithm +when initial() then +x := x0; +elsewhen sample(0, 1) then +if (x < xmax) +then + if (myrandom() <= 0.9) + then + if (myrandom() <= 0.72) + then + x := x + 1; + else + x := max(0, x - 1); + end if; + else + x := max(0, x - 1); + end if; +end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_38/wrong2.txt b/Ingegneria del Software/0721_38/wrong2.txt new file mode 100644 index 0000000..87539ea --- /dev/null +++ b/Ingegneria del Software/0721_38/wrong2.txt @@ -0,0 +1,27 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Integer x0 = 0; +parameter Integer xmax = 100; +OutputInteger x; +algorithm +when initial() then +x := x0; +elsewhen sample(0, 1) then +if (x < xmax) +then + if (myrandom() <= 0.8) + then + if (myrandom() <= 0.9) + then + x := x + 1; + else + x := max(0, x - 1); + end if; + else + x := max(0, x - 1); + end if; +end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_39/correct.txt b/Ingegneria del Software/0721_39/correct.txt new file mode 100644 index 0000000..346657f --- /dev/null +++ b/Ingegneria del Software/0721_39/correct.txt @@ -0,0 +1,21 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 1) then + if (countdown <= 0) + then + countdown := 1 + integer(floor(10*myrandom())); + x := 1 - pre(x); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_39/quest.txt b/Ingegneria del Software/0721_39/quest.txt new file mode 100644 index 0000000..46a79dc --- /dev/null +++ b/Ingegneria del Software/0721_39/quest.txt @@ -0,0 +1,2 @@ +L'input di un sistema software è costituito da una sequenza di 0 (false) ed 1 (true). Ad uno 0 segue un 1 ed ad un 1 segue uno 0. Il tempo tra un valore di input e l'altro è un valore random compreso tra 1 e 10 unità di tempo. +Quale dei seguenti modelli Modelica modella meglio l'environment descritto sopra. \ No newline at end of file diff --git a/Ingegneria del Software/0721_39/wrong1.txt b/Ingegneria del Software/0721_39/wrong1.txt new file mode 100644 index 0000000..0a7e119 --- /dev/null +++ b/Ingegneria del Software/0721_39/wrong1.txt @@ -0,0 +1,21 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 10) then + if (countdown <= 0) + then + countdown := 1 + integer(floor(myrandom())); + x := 1 - pre(x); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_39/wrong2.txt b/Ingegneria del Software/0721_39/wrong2.txt new file mode 100644 index 0000000..52a6432 --- /dev/null +++ b/Ingegneria del Software/0721_39/wrong2.txt @@ -0,0 +1,21 @@ +
+block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 1) then + if (countdown >= 0) + then + countdown := 1 + integer(floor(10*myrandom())); + x := 1 - pre(x); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +\ No newline at end of file diff --git a/Ingegneria del Software/0621_12/wrong0.txt b/Ingegneria del Software/0721_4/correct.txt similarity index 96% rename from Ingegneria del Software/0621_12/wrong0.txt rename to Ingegneria del Software/0721_4/correct.txt index 677ef8b..fe4a402 100644 --- a/Ingegneria del Software/0621_12/wrong0.txt +++ b/Ingegneria del Software/0721_4/correct.txt @@ -1,3 +1,4 @@ +
model Env Integer x; // Pulsante premuto dall'utente (0 nessun pulsante) Real r1024; @@ -16,4 +17,5 @@ elsewhen sample(0,1) then if (r1024 <= 0.4) then x := 1; else x:= 0; end if; end if; end when; -end Env; \ No newline at end of file +end Env; +\ No newline at end of file diff --git a/Ingegneria del Software/0621_12/quest.txt b/Ingegneria del Software/0721_4/quest.txt similarity index 100% rename from Ingegneria del Software/0621_12/quest.txt rename to Ingegneria del Software/0721_4/quest.txt diff --git a/Ingegneria del Software/0621_12/wrong1.txt b/Ingegneria del Software/0721_4/wrong1.txt similarity index 96% rename from Ingegneria del Software/0621_12/wrong1.txt rename to Ingegneria del Software/0721_4/wrong1.txt index 752ea2c..ad42984 100644 --- a/Ingegneria del Software/0621_12/wrong1.txt +++ b/Ingegneria del Software/0721_4/wrong1.txt @@ -1,3 +1,4 @@ +
model Env Integer x; // Pulsante premuto dall'utente (0 nessun pulsante) Real r1024; @@ -16,4 +17,5 @@ elsewhen sample(0,1) then if (r1024 <= 0.3) then x := 0; else x:= 1; end if; end if; end when; -end Env; \ No newline at end of file +end Env; +\ No newline at end of file diff --git a/Ingegneria del Software/0621_12/wrong2.txt b/Ingegneria del Software/0721_4/wrong2.txt similarity index 96% rename from Ingegneria del Software/0621_12/wrong2.txt rename to Ingegneria del Software/0721_4/wrong2.txt index 2e77985..bb62616 100644 --- a/Ingegneria del Software/0621_12/wrong2.txt +++ b/Ingegneria del Software/0721_4/wrong2.txt @@ -1,3 +1,4 @@ +
model Env Integer x; // Pulsante premuto dall'utente (0 nessun pulsante) Real r1024; @@ -16,4 +17,5 @@ elsewhen sample(0,1) then if (r1024 <= 0.2) then x := 1; else x:= 0; end if; end if; end when; -end Env; \ No newline at end of file +end Env; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_40/correct.txt b/Ingegneria del Software/0721_40/correct.txt new file mode 100644 index 0000000..ddb0d65 --- /dev/null +++ b/Ingegneria del Software/0721_40/correct.txt @@ -0,0 +1 @@ +La variabile x è nell'intervallo [0, 5]. \ No newline at end of file diff --git a/Ingegneria del Software/0721_40/quest.txt b/Ingegneria del Software/0721_40/quest.txt new file mode 100644 index 0000000..030fe95 --- /dev/null +++ b/Ingegneria del Software/0721_40/quest.txt @@ -0,0 +1,17 @@ +Si consideri il monitor seguente che ritorna true appena i requisiti per il sistema monitorato sono violati. +
+block Monitor +input Real x; +output Boolean y; +Boolean w; +initial equation +y = false; +equation +w = ((x < 0) or (x > 5)); +algorithm +when edge(w) then +y := true; +end when; +end Monitor; ++Quale delle seguenti affermazioni meglio descrive il requisito monitorato. \ No newline at end of file diff --git a/Ingegneria del Software/0721_40/wrong1.txt b/Ingegneria del Software/0721_40/wrong1.txt new file mode 100644 index 0000000..7c7a691 --- /dev/null +++ b/Ingegneria del Software/0721_40/wrong1.txt @@ -0,0 +1 @@ +La variable x è minore di 0. \ No newline at end of file diff --git a/Ingegneria del Software/0721_40/wrong2.txt b/Ingegneria del Software/0721_40/wrong2.txt new file mode 100644 index 0000000..3e05ae7 --- /dev/null +++ b/Ingegneria del Software/0721_40/wrong2.txt @@ -0,0 +1 @@ +La variabile x è fuori dall'intervallo [0, 5]. \ No newline at end of file diff --git a/Ingegneria del Software/0721_5/correct.txt b/Ingegneria del Software/0721_5/correct.txt new file mode 100644 index 0000000..0902686 --- /dev/null +++ b/Ingegneria del Software/0721_5/correct.txt @@ -0,0 +1 @@ +Requisito funzionale. \ No newline at end of file diff --git a/Ingegneria del Software/0721_5/quest.txt b/Ingegneria del Software/0721_5/quest.txt new file mode 100644 index 0000000..c5dbb4e --- /dev/null +++ b/Ingegneria del Software/0721_5/quest.txt @@ -0,0 +1,2 @@ +"Ogni giorno, per ciascuna clinica, il sistema genererà una lista dei pazienti che hanno un appuntamento quel giorno." +La frase precedente è un esempio di: \ No newline at end of file diff --git a/Ingegneria del Software/0721_5/wrong1.txt b/Ingegneria del Software/0721_5/wrong1.txt new file mode 100644 index 0000000..396c8d3 --- /dev/null +++ b/Ingegneria del Software/0721_5/wrong1.txt @@ -0,0 +1 @@ +Requisito di performance. \ No newline at end of file diff --git a/Ingegneria del Software/0721_5/wrong2.txt b/Ingegneria del Software/0721_5/wrong2.txt new file mode 100644 index 0000000..6084c49 --- /dev/null +++ b/Ingegneria del Software/0721_5/wrong2.txt @@ -0,0 +1 @@ +Requisito non-funzionale. \ No newline at end of file diff --git a/Ingegneria del Software/0721_6/correct.txt b/Ingegneria del Software/0721_6/correct.txt new file mode 100644 index 0000000..fc3d081 --- /dev/null +++ b/Ingegneria del Software/0721_6/correct.txt @@ -0,0 +1,14 @@ +
+class System +Real x; // MB in buffer +Real u; // input pulse +initial equation +x = 3; +u = 0; +equation +when sample(0, 1) then + u = 1 - pre(u); +end when; +der(x) = 2*u - 1.0; +end System; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_6/quest.txt b/Ingegneria del Software/0721_6/quest.txt new file mode 100644 index 0000000..40a0c99 --- /dev/null +++ b/Ingegneria del Software/0721_6/quest.txt @@ -0,0 +1 @@ +Un I/O buffer è alimentato da una componente che fornisce un input periodico di periodo 2 secondi. Durante la prima met� del periodo, l'input rate è 2MB/s mentre durante la seconda metà del periodo l'input rate è 0. Quindi l'input rate medio è di 1MB/s. L' I/O buffer, a sua volta, alimenta una componente che richiede (in media) 1MB/s. Quale dei seguenti modelli Modelica è un modello ragionevole per il sistema descritto sopra ? \ No newline at end of file diff --git a/Ingegneria del Software/0721_6/wrong1.txt b/Ingegneria del Software/0721_6/wrong1.txt new file mode 100644 index 0000000..eeb1bba --- /dev/null +++ b/Ingegneria del Software/0721_6/wrong1.txt @@ -0,0 +1,14 @@ +
+class System +Real x; // MB in buffer +Real u; // input pulse +initial equation +x = 3; +u = 0; +equation +when sample(0, 1) then + u = 1 - pre(u); +end when; +der(x) = 2*u - 2.0; +end System; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_6/wrong2.txt b/Ingegneria del Software/0721_6/wrong2.txt new file mode 100644 index 0000000..eb68041 --- /dev/null +++ b/Ingegneria del Software/0721_6/wrong2.txt @@ -0,0 +1,14 @@ +
+class System +Real x; // MB in buffer +Real u; // input pulse +initial equation +x = 3; +u = 0; +equation +when sample(0, 1) then + u = 1 - pre(u); +end when; +der(x) = 2*u + 1.0; +end System; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_7/correct.txt b/Ingegneria del Software/0721_7/correct.txt new file mode 100644 index 0000000..0dcbeca --- /dev/null +++ b/Ingegneria del Software/0721_7/correct.txt @@ -0,0 +1 @@ +Per ciascun incremento di funzionalità, scrivi test automatizzati, implementa la funzionalità, esegui i test e rivedi l'implementazione come necessario. \ No newline at end of file diff --git a/Ingegneria del Software/0721_7/quest.txt b/Ingegneria del Software/0721_7/quest.txt new file mode 100644 index 0000000..f3019d0 --- /dev/null +++ b/Ingegneria del Software/0721_7/quest.txt @@ -0,0 +1 @@ +Si consideri il Test-Driven Development (TDD). Quale delle seguenti affermazioni è vera? \ No newline at end of file diff --git a/Ingegneria del Software/0721_7/wrong1.txt b/Ingegneria del Software/0721_7/wrong1.txt new file mode 100644 index 0000000..2891ab7 --- /dev/null +++ b/Ingegneria del Software/0721_7/wrong1.txt @@ -0,0 +1 @@ +Scrivi test automatizzati per tutti i requisiti di sistema, esegui i test e rivedi l'implementazione come necessario. \ No newline at end of file diff --git a/Ingegneria del Software/0721_7/wrong2.txt b/Ingegneria del Software/0721_7/wrong2.txt new file mode 100644 index 0000000..cf5eab4 --- /dev/null +++ b/Ingegneria del Software/0721_7/wrong2.txt @@ -0,0 +1 @@ +Per ciascun incremento di funzionalità, implementa la funzionalità, scrivi test automatizzati, esegui i test e rivedi l'implementazione come necessario. \ No newline at end of file diff --git a/Ingegneria del Software/0721_8/correct.txt b/Ingegneria del Software/0721_8/correct.txt new file mode 100644 index 0000000..99b5226 --- /dev/null +++ b/Ingegneria del Software/0721_8/correct.txt @@ -0,0 +1,35 @@ +
+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] = +[ +p, 1-p, 0, 0; +p, 0, 1-p, 0; +p, 0, 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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_8/quest.txt b/Ingegneria del Software/0721_8/quest.txt new file mode 100644 index 0000000..ebf5ec9 --- /dev/null +++ b/Ingegneria del Software/0721_8/quest.txt @@ -0,0 +1,4 @@ +img=https://i.imgur.com/rw4Tvcj.png + +Si consideri la seguente Markov Chain: +Quale dei seguenti modelli Modelica fornisce un modello ragionevole per la Markov Chain di cui sopra? \ No newline at end of file diff --git a/Ingegneria del Software/0721_8/wrong1.txt b/Ingegneria del Software/0721_8/wrong1.txt new file mode 100644 index 0000000..75546bd --- /dev/null +++ b/Ingegneria del Software/0721_8/wrong1.txt @@ -0,0 +1,35 @@ +
+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] = +[ +p, 0 , 1-p, 0; +p, 1-p, 0, 0; +p, 0, 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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_8/wrong2.txt b/Ingegneria del Software/0721_8/wrong2.txt new file mode 100644 index 0000000..ed6823c --- /dev/null +++ b/Ingegneria del Software/0721_8/wrong2.txt @@ -0,0 +1,35 @@ +
+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] = +[ +p, 0, 1-p, 0; +0, p, 1-p, 0; +p, 0, 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; +\ No newline at end of file diff --git a/Ingegneria del Software/0721_9/correct.txt b/Ingegneria del Software/0721_9/correct.txt new file mode 100644 index 0000000..d4074cf --- /dev/null +++ b/Ingegneria del Software/0721_9/correct.txt @@ -0,0 +1 @@ +Testare funzionalità di unità software individuali, oggetti, classi o metodi. \ No newline at end of file diff --git a/Ingegneria del Software/0721_9/quest.txt b/Ingegneria del Software/0721_9/quest.txt new file mode 100644 index 0000000..367356f --- /dev/null +++ b/Ingegneria del Software/0721_9/quest.txt @@ -0,0 +1 @@ +Unit testing si concentra su: \ No newline at end of file diff --git a/Ingegneria del Software/0721_9/wrong1.txt b/Ingegneria del Software/0721_9/wrong1.txt new file mode 100644 index 0000000..5d19792 --- /dev/null +++ b/Ingegneria del Software/0721_9/wrong1.txt @@ -0,0 +1 @@ +Testare l'interazione tra componenti. \ No newline at end of file diff --git a/Ingegneria del Software/0721_9/wrong2.txt b/Ingegneria del Software/0721_9/wrong2.txt new file mode 100644 index 0000000..f67535f --- /dev/null +++ b/Ingegneria del Software/0721_9/wrong2.txt @@ -0,0 +1 @@ +Testare le interfacce di ciascuna componente. \ No newline at end of file diff --git a/Scraper/scraper.py b/Scraper/scraper.py index 7712c96..1693632 100644 --- a/Scraper/scraper.py +++ b/Scraper/scraper.py @@ -11,8 +11,8 @@ matricola = os.getenv('UTENTE') password = os.getenv('PASSWORD') -url_risultati_esame = "https://elearning.uniroma1.it/mod/quiz/review.php?attempt=1096076&cmid=385932" -codice_esame = "0321" +url_risultati_esame = "https://elearning.uniroma1.it/mod/quiz/review.php?attempt=1096697&cmid=408285" +codice_esame = "0721" # Main Function diff --git a/risposte.txt b/risposte.txt new file mode 100644 index 0000000..f53a6a7 --- /dev/null +++ b/risposte.txt @@ -0,0 +1,60 @@ +1. +block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 1) then + if (countdown <= 0) + then + countdown := 1 + integer(floor(10*myrandom())); + x := 1 - pre(x); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +2. +block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 10) then + if (countdown <= 0) + then + countdown := 1 + integer(floor(myrandom())); + x := 1 - pre(x); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; +3. +block MarkovChain +//external function myrandom() returns a random real number in [0, 1] +parameter Real x0 = 0; +OutputReal x; +Integer countdown; +algorithm +when initial() then + x := x0; + countdown := 0; +elsewhen sample(0, 1) then + if (countdown >= 0) + then + countdown := 1 + integer(floor(10*myrandom())); + x := 1 - pre(x); + else + countdown := countdown - 1; + end if; +end when; +end MarkovChain; \ No newline at end of file