diff --git a/Final-thesis/halstead.txt b/Final-thesis/halstead.txt new file mode 100644 index 0000000..b0f36a9 --- /dev/null +++ b/Final-thesis/halstead.txt @@ -0,0 +1,60 @@ +Halstead: +1: +\begin{comment} +start: +13 distinct operands +1 distinct operator +33 operands +3 operators + +move: +2 new distinct operands +5 new distinct operators +27 operands +6 operators + +nextTurn: +0 new distinct operands +1 new distinct operator +13 operands +5 operators + +throws: +3 new distinct operands +2 new distinct operators +30 operands +10 operators + +$n_1 = 9, n_2 = 18, N_1 = 24, N_2 = 103$ + Volume is 127*4.75 = 603.25 + +IOSTS: +22 distinct operands +5 distinct operators +62 operands +25 operators + +$n_1 = 5, n_2 = 22, N_1 = 25, N_2 = 62$ + Volume is 87*4.75 = 413.25 +\end{comment} + +2: + +\begin{comment} +start: 12 new operands, 26 operands +?c: 3 new operators, 0 new operands. 5 operators, 17 operands +?c-invalid: 0 new operators, 1 new operand. 2 operators, 14 operands +!retry: 0-0. 1 operator, 2 operands. +!eaten: 0-0. 9 operators, 36 operands +!done: 8 operators, 30 operands +\end{comment} + +3: + +\begin{comment} +start: 1 - 25. 13 - 46 +?o: 1 - 2. 1 - 14 +!po: 2 - 3. 4 - 24 +?p: 0 - 0. 3 - 18 +!pp: 3 - +\end{comment} \ No newline at end of file diff --git a/Final-thesis/img/fwgc/g-fwgc-extended.tikz b/Final-thesis/img/fwgc/g-fwgc-extended.tikz new file mode 100644 index 0000000..40502eb --- /dev/null +++ b/Final-thesis/img/fwgc/g-fwgc-extended.tikz @@ -0,0 +1,29 @@ +% To use this figure in your LaTeX document +% import the package groove/resources/groove2tikz.sty +% +% Special colors +\begin{tikzpicture}[ +% Special color styles +scale=\tikzscale] +\node[node] (n5) at (1.465, -3.425){}; +\node[node] (n4) at (1.395, -1.735) {\ml{goat}}; +\node[quantnode] (n6) at (2.525, -3.435) {\ml{$\forall$}}; +\node[node] (n3) at (2.595, -1.385) {\ml{farmer}}; +\node[node] (n0) at (1.345, -2.515) {\ml{bank}}; +\node[node] (n1) at (2.575, -2.515) {\ml{bank}}; +\path[edge, -](n0.east |- 2.575, -2.515) -- node[lab]{\textit{!=}} (n1) ; +\path[deledge] (n3) -- node[dellab]{at} (n0) ; +\path[newedge] (n4) .. controls (1.600, -1.410) and (1.530, -1.220) .. (1.530, -1.220).. controls (1.510, -1.160) and (1.210, -1.180) .. (1.200, -1.230).. controls (1.200, -1.230) and (1.140, -1.430) .. (n4) ; +\node[newlab] at (1.362, -1.225){moved}; +\path[newedge](n3.south -| 2.575, -2.515) -- (n1) ; +\node[newlab] at (2.585, -1.960){at}; +\path[quantedge](n5.east |- 2.525, -3.435) -- node[lab]{@} (n6) ; +\path[newedge] (n3) .. controls (2.800, -1.110) and (2.750, -0.940) .. (2.750, -0.940).. controls (2.730, -0.880) and (2.450, -0.880) .. (2.440, -0.930).. controls (2.440, -0.930) and (2.370, -1.100) .. (n3) ; +\node[newlab] at (2.592, -0.935){moved}; +\path[deledge] (n5) .. controls (1.730, -3.140) and (1.690, -2.930) .. (1.690, -2.930).. controls (1.680, -2.880) and (1.380, -2.840) .. (1.360, -2.900).. controls (1.360, -2.900) and (1.260, -3.090) .. (n5) ; +\node[dellab] at (1.531, -2.916){moved}; +\path[newedge] (n4) -- node[newlab]{at} (n1) ; +\path[deledge](n4.south -| 1.345, -2.515) -- node[dellab]{at} (n0) ; +\userdefinedmacro +\end{tikzpicture} +\renewcommand{\userdefinedmacro}{\relax} diff --git a/Final-thesis/img/fwgc/n-fwgc-extended.tikz b/Final-thesis/img/fwgc/n-fwgc-extended.tikz new file mode 100644 index 0000000..35cb84b --- /dev/null +++ b/Final-thesis/img/fwgc/n-fwgc-extended.tikz @@ -0,0 +1,23 @@ +% To use this figure in your LaTeX document +% import the package groove/resources/groove2tikz.sty +% +% Special colors +\begin{tikzpicture}[ +% Special color styles +scale=\tikzscale] +\node[node] (n4) at (1.205, -3.465){}; +\node[quantnode] (n5) at (2.205, -3.405) {\ml{$\forall$}}; +\node[node] (n0) at (1.125, -2.780) {\ml{bank}}; +\node[node] (n1) at (2.225, -2.755) {\ml{bank}}; +\node[node] (n2) at (1.695, -2.205) {\ml{farmer}}; +\path[newedge] (n2) -- node[newlab]{at} (n1) ; +\path[deledge] (n4) .. controls (0.930, -3.800) and (1.000, -4.050) .. (1.000, -4.050).. controls (1.010, -4.100) and (1.350, -4.110) .. (1.370, -4.060).. controls (1.370, -4.060) and (1.450, -3.820) .. (n4) ; +\node[dellab] at (1.184, -4.055){moved}; +\path[newedge] (n2) .. controls (1.890, -1.930) and (1.850, -1.730) .. (1.850, -1.730).. controls (1.830, -1.650) and (1.560, -1.630) .. (1.560, -1.640).. controls (1.560, -1.640) and (1.480, -1.870) .. (n2) ; +\node[newlab] at (1.666, -1.673){moved}; +\path[deledge] (n2) -- node[dellab]{at} (n0) ; +\path[quantedge](n4.east |- 2.205, -3.405) -- node[lab]{@} (n5) ; +\path[edge, -](n0.east |- 2.225, -2.755) -- node[lab]{\textit{!=}} (n1) ; +\userdefinedmacro +\end{tikzpicture} +\renewcommand{\userdefinedmacro}{\relax} diff --git a/Final-thesis/img/fwgc/w-fwgc-extended.tikz b/Final-thesis/img/fwgc/w-fwgc-extended.tikz new file mode 100644 index 0000000..83c220f --- /dev/null +++ b/Final-thesis/img/fwgc/w-fwgc-extended.tikz @@ -0,0 +1,29 @@ +% To use this figure in your LaTeX document +% import the package groove/resources/groove2tikz.sty +% +% Special colors +\begin{tikzpicture}[ +% Special color styles +scale=\tikzscale] +\node[node] (n1) at (2.575, -2.515) {\ml{bank}}; +\node[node] (n0) at (1.345, -2.515) {\ml{bank}}; +\node[node] (n3) at (2.595, -1.385) {\ml{farmer}}; +\node[quantnode] (n6) at (2.525, -3.435) {\ml{$\forall$}}; +\node[node] (n4) at (1.395, -1.735) {\ml{wolf}}; +\node[node] (n5) at (1.465, -3.425){}; +\path[edge, -](n0.east |- 2.575, -2.515) -- node[lab]{\textit{!=}} (n1) ; +\path[deledge] (n3) -- node[dellab]{at} (n0) ; +\path[newedge] (n4) .. controls (1.600, -1.410) and (1.530, -1.220) .. (1.530, -1.220).. controls (1.510, -1.160) and (1.210, -1.180) .. (1.200, -1.230).. controls (1.200, -1.230) and (1.140, -1.430) .. (n4) ; +\node[newlab] at (1.362, -1.225){moved}; +\path[newedge](n3.south -| 2.575, -2.515) -- (n1) ; +\node[newlab] at (2.585, -1.960){at}; +\path[quantedge](n5.east |- 2.525, -3.435) -- node[lab]{@} (n6) ; +\path[newedge] (n3) .. controls (2.800, -1.110) and (2.750, -0.940) .. (2.750, -0.940).. controls (2.730, -0.880) and (2.450, -0.880) .. (2.440, -0.930).. controls (2.440, -0.930) and (2.370, -1.100) .. (n3) ; +\node[newlab] at (2.592, -0.935){moved}; +\path[deledge] (n5) .. controls (1.730, -3.140) and (1.690, -2.930) .. (1.690, -2.930).. controls (1.680, -2.880) and (1.380, -2.840) .. (1.360, -2.900).. controls (1.360, -2.900) and (1.260, -3.090) .. (n5) ; +\node[dellab] at (1.531, -2.916){moved}; +\path[newedge] (n4) -- node[newlab]{at} (n1) ; +\path[deledge](n4.south -| 1.345, -2.515) -- node[dellab]{at} (n0) ; +\userdefinedmacro +\end{tikzpicture} +\renewcommand{\userdefinedmacro}{\relax} diff --git a/Final-thesis/iosts_scrp.tex b/Final-thesis/iosts_scrp.tex index 6dd61e4..c63735a 100644 --- a/Final-thesis/iosts_scrp.tex +++ b/Final-thesis/iosts_scrp.tex @@ -108,12 +108,6 @@ & & $\mathit{s21}\xrightarrow{\mathit{!230}, \mathit{true}, \{\}}\mathit{s22},\mathit{s210}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s212},\mathit{s211}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s212},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s212}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s213},\mathit{s213}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s214},\mathit{s214}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s233},$ \\ & & $\mathit{s215}\xrightarrow{\mathit{!503}, \mathit{true}, \{\}}\mathit{s218},\mathit{s215}\xrightarrow{\mathit{!502}, \mathit{true}, \{\}}\mathit{s217},\mathit{s215}\xrightarrow{\mathit{!211}, \mathit{true}, \{\}}\mathit{s216},$ \\ @@ -155,12 +149,6 @@ & & $\mathit{s263}\xrightarrow{\mathit{!202}, \mathit{true}, \{\}}\mathit{s264},\mathit{s263}\xrightarrow{\mathit{!502}, \mathit{true}, \{\}}\mathit{s267},\mathit{s263}\xrightarrow{\mathit{!531}, \mathit{true}, \{\}}\mathit{s265},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s263}\xrightarrow{\mathit{!501}, \mathit{true}, \{\}}\mathit{s266},\mathit{s263}\xrightarrow{\mathit{!503}, \mathit{true}, \{\}}\mathit{s268},\mathit{s264}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s274},$ \\ & & $\mathit{s265}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s274},\mathit{s266}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s274},\mathit{s267}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s273},$ \\ @@ -202,12 +190,6 @@ & & $\mathit{s312}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s314},\mathit{s313}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s314},\mathit{s314}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s315},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s315}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s316},\mathit{s316}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s357},\mathit{s317}\xrightarrow{\mathit{?PRINT\_EXIST}, \mathit{true}, \{\}}\mathit{s318},$ \\ & & $\mathit{s318}\xrightarrow{\mathit{!502}, \mathit{true}, \{\}}\mathit{s321},\mathit{s318}\xrightarrow{\mathit{!503}, \mathit{true}, \{\}}\mathit{s322},\mathit{s318}\xrightarrow{\mathit{!260}, \mathit{true}, \{\}}\mathit{s319},$ \\ @@ -290,12 +272,6 @@ & & $\mathit{s414}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s415},\mathit{s415}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s532},\mathit{s416}\xrightarrow{\mathit{!503}, \mathit{true}, \{\}}\mathit{s420},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s416}\xrightarrow{\mathit{!502}, \mathit{true}, \{\}}\mathit{s419},\mathit{s416}\xrightarrow{\mathit{!201}, \mathit{true}, \{\}}\mathit{s417},\mathit{s416}\xrightarrow{\mathit{!503}, \mathit{true}, \{\}}\mathit{s418},$ \\ & & $\mathit{s417}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s426},\mathit{s418}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s426},\mathit{s419}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s425},$ \\ @@ -337,9 +313,6 @@ & & $\mathit{s468}\xrightarrow{\mathit{!210}, \mathit{(cr\_variable = ``CS\_EVENT") \land (cr\_value = ``EV\_NONE")}, \{\}}\mathit{s470},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s468}\xrightarrow{\mathit{!210}, \mathit{(cr\_variable = ``CS\_EVENT") \land (cr\_value = ``EV\_INFO")}, \{\}}\mathit{s469},$ \\ & & $\mathit{s469}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s471},\mathit{s47}\xrightarrow{\mathit{?IDLE}, \mathit{true}, \{\}}\mathit{s48},\mathit{s470}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s471},$ \\ @@ -381,9 +354,6 @@ & & $\mathit{s51}\xrightarrow{\mathit{?GET}, \mathit{(var\_name = ``CS\_EVENT")}, \{\}}\mathit{s52},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s510}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s516},$ \\ & & $\mathit{s511}\xrightarrow{\mathit{?GET}, \mathit{(var\_name = ``CS\_EVENT")}, \{\}}\mathit{s512},$ \\ @@ -425,9 +395,6 @@ & & $\mathit{s559}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s561},\mathit{s56}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s57},\mathit{s560}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s561},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s561}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s562},\mathit{s562}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s563},$ \\ & & $\mathit{s563}\xrightarrow{\mathit{?GET}, \mathit{(var\_name = ``CERTDATA")}, \{\}}\mathit{s564},$ \\ @@ -510,9 +477,6 @@ & & $\mathit{s647}\xrightarrow{\mathit{!210}, \mathit{(cr\_variable = ``CS\_EVENT") \land (cr\_value = ``EV\_WARN")}, \{\}}\mathit{s650},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s647}\xrightarrow{\mathit{!210}, \mathit{(cr\_variable = ``CS\_EVENT") \land (cr\_value = ``EV\_ERROR")}, \{\}}\mathit{s651},$ \\ & & $\mathit{s647}\xrightarrow{\mathit{!210}, \mathit{(cr\_variable = ``CS\_EVENT") \land (cr\_value = ``EV\_NONE")}, \{\}}\mathit{s648},$ \\ @@ -554,15 +518,6 @@ & & $\mathit{s687}\xrightarrow{\mathit{!210}, \mathit{(cr\_variable = ``CS\_EVENT") \land (cr\_value = ``EV\_INFO")}, \{\}}\mathit{s689},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - -\begin{tabular}{lcp{350px}} -\end{tabular} - -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{s688}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s692},\mathit{s689}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s692},\mathit{s69}\xrightarrow{\mathit{?IDLE}, \mathit{true}, \{\}}\mathit{s70},$ \\ & & $\mathit{s690}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s692},\mathit{s691}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s692},\mathit{s692}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s707},$ \\ @@ -768,12 +723,6 @@ & & $\mathit{assending}\xrightarrow{\mathit{?GET}, \mathit{(var\_name = ``CS\_SIGN")}, \{\}}\mathit{s760},$ \\ \end{tabular} -\begin{tabular}{lcp{350px}} -\end{tabular} - -\begin{tabular}{lcp{350px}} -\end{tabular} - \begin{tabular}{lcp{350px}} & & $\mathit{assidle}\xrightarrow{\mathit{?RESUME}, \mathit{true}, \{\}}\mathit{s252},\mathit{assidle}\xrightarrow{\mathit{\tau}, \mathit{true}, \{\}}\mathit{s240},$ \\ & & $\mathit{assidle}\xrightarrow{\mathit{?GET}, \mathit{(var\_name = ``CS\_SIGN")}, \{\}}\mathit{s194},$ \\ diff --git a/Final-thesis/model-examples/fwgc-groove.gps/g.gpr b/Final-thesis/model-examples/fwgc-groove.gps/g.gpr index 28b3f93..3e6802d 100644 --- a/Final-thesis/model-examples/fwgc-groove.gps/g.gpr +++ b/Final-thesis/model-examples/fwgc-groove.gps/g.gpr @@ -1,139 +1,127 @@ - + curly curly - + - 265 153 61 48 + 131 327 31 31 - + - 398 242 51 33 + 102 157 75 33 - + - 114 221 51 48 + 238 327 29 33 - 243 220 49 33 + 228 122 63 33 - - - 356 348 29 33 - - - + - 107 334 36 32 + 109 235 51 33 - + - 268 347 31 31 + 232 235 51 33 - + - del:at + - + - new:at + at - + - new:moved + del:moved - 500 0 316 165 316 132 277 133 277 165 12 + 500 0 146 342 169 293 136 290 146 342 12 - + - farmer + goat - + - not:side + new:moved - - - - bank + + 500 0 139 173 153 122 120 123 139 173 12 - + - side + new:at - + - bank + del:at - + - new:at + forall: - + - new:moved - - - 500 0 260 248 260 281 289 284 273 248 12 + farmer - + del:at - + - goat + new:at - - - - forall: + + 509 0 259 138 257 251 11 - + - + new:moved + + + 500 0 259 138 275 94 244 93 259 138 12 - + - + bank - + - del:moved - - - 500 0 284 363 270 406 299 405 284 363 12 + != - + - at + bank diff --git a/Final-thesis/model-examples/fwgc-groove.gps/n.gpr b/Final-thesis/model-examples/fwgc-groove.gps/n.gpr index fd9cbef..dc1f808 100644 --- a/Final-thesis/model-examples/fwgc-groove.gps/n.gpr +++ b/Final-thesis/model-examples/fwgc-groove.gps/n.gpr @@ -1,111 +1,96 @@ - + curly curly - + - 246 263 63 33 + 105 331 31 31 - + - 255 164 51 33 + 206 324 29 33 - 87 254 51 48 - - - - - 88 148 36 32 + 87 261 51 33 - + - 208 335 29 33 + 197 259 51 33 - + - 107 342 31 31 + 138 204 63 33 - + - new:moved - - - 500 0 277 280 264 329 295 328 277 280 12 + - + - del:at + del:moved - - - - new:at + + 500 0 120 346 100 405 137 406 120 346 12 - + - farmer + at - + - bank + forall: - + - not:side + bank - + - side + != - + bank - + - + farmer - + - forall: + new:at - + - + new:moved - - - - at + + 500 0 169 220 185 173 156 164 169 220 12 - + - del:moved - - - 500 0 123 358 102 416 139 417 123 358 12 + del:at diff --git a/Final-thesis/model-examples/fwgc-groove.gps/w.gpr b/Final-thesis/model-examples/fwgc-groove.gps/w.gpr index a00529d..8537daf 100644 --- a/Final-thesis/model-examples/fwgc-groove.gps/w.gpr +++ b/Final-thesis/model-examples/fwgc-groove.gps/w.gpr @@ -1,139 +1,127 @@ - + curly curly - - - 76 40 31 31 - - - 346 113 51 33 + 232 235 51 33 - 70 133 51 48 + 109 235 51 33 - 163 120 61 48 + 228 122 63 33 - 380 276 29 33 + 238 327 29 33 - 168 212 47 48 + 115 157 49 33 - 279 284 31 31 + 131 327 31 31 - + - + bank - + - not:side + bank - + - bank + != - + - side + farmer - + - bank + del:at - + new:at + + 509 0 259 138 257 251 11 + - + new:moved - 500 0 193 144 208 106 181 105 193 144 12 - - - - - del:at + 500 0 259 138 275 94 244 93 259 138 12 - + - farmer + forall: - + - forall: + wolf - + new:moved - 500 0 191 236 173 287 208 288 191 236 12 + 500 0 139 173 153 122 120 123 139 173 12 - + - wolf + new:at - + del:at - + - new:at + - + - + at - + del:moved - 500 0 295 300 310 257 280 257 295 300 12 - - - - - at + 500 0 146 342 169 293 136 290 146 342 12 diff --git a/Final-thesis/report2.aux b/Final-thesis/report2.aux index 02ea192..7a86f4c 100644 --- a/Final-thesis/report2.aux +++ b/Final-thesis/report2.aux @@ -356,7 +356,81 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {The not signed on error rule}}}{41}{subfigure.3.5}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {The close account success rule}}}{41}{subfigure.3.6}} \newlabel{fig:gg-scrp}{{5.3}{41}{A few selected rules from the IOGG of the Scanflow Cash Register Protocol\relax \relax }{figure.caption.68}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5.3}Measurements on examples}{42}{section.5.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}Simulation and redundancy}{42}{subsection.5.3.1}} +\@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces Simulation and redundancy results for the farmer-wolf-goat-cabbage puzzle\relax }}{42}{table.caption.72}} +\newlabel{tab:fwgc-simulate}{{5.1}{42}{Simulation and redundancy results for the farmer-wolf-goat-cabbage puzzle\relax \relax }{table.caption.72}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5.2}{\ignorespaces Simulation and redundancy results for the bar-tab system\relax }}{42}{table.caption.74}} +\newlabel{tab:bar-tab-simulate}{{5.2}{42}{Simulation and redundancy results for the bar-tab system\relax \relax }{table.caption.74}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5.3}{\ignorespaces Simulation and redundancy results for the SCRP\relax }}{43}{table.caption.76}} +\newlabel{tab:scrp-simulate}{{5.3}{43}{Simulation and redundancy results for the SCRP\relax \relax }{table.caption.76}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}Performance}{43}{subsection.5.3.2}} +\@writefile{lot}{\contentsline {table}{\numberline {5.4}{\ignorespaces Performance measurements\relax }}{43}{table.caption.77}} +\newlabel{tab:performance}{{5.4}{43}{Performance measurements\relax \relax }{table.caption.77}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}Model complexity}{43}{subsection.5.3.3}} +\@writefile{lot}{\contentsline {table}{\numberline {5.5}{\ignorespaces The Halstead measurements on the boardgame models\relax }}{43}{table.caption.78}} +\newlabel{tab:halstead}{{5.5}{43}{The Halstead measurements on the boardgame models\relax \relax }{table.caption.78}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}Extendability}{43}{subsection.5.3.4}} +\newlabel{fig:start-bg-extended}{{5.4a}{44}{Subfigure 5 5.4a\relax }{subfigure.5.4.1}{}} +\newlabel{sub@fig:start-bg-extended}{{(a)}{a}{Subfigure 5 5.4a\relax }{subfigure.5.4.1}{}} +\newlabel{fig:nextTurn-bg-extended}{{5.4b}{44}{Subfigure 5 5.4b\relax }{subfigure.5.4.2}{}} +\newlabel{sub@fig:nextTurn-bg-extended}{{(b)}{b}{Subfigure 5 5.4b\relax }{subfigure.5.4.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces The extended graph grammar of the board game example in Figure\nobreakspace {}\ref {fig:example_groove}\relax }}{44}{figure.caption.80}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The initial graph}}}{44}{subfigure.4.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {The next turn rule}}}{44}{subfigure.4.2}} +\newlabel{fig:gg-bg-extended}{{5.4}{44}{The extended graph grammar of the board game example in Figure~\ref {fig:example_groove}\relax \relax }{figure.caption.80}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5.4}Conclusions}{45}{section.5.4}} \bibdata{bib/bibliography} +\newlabel{fig:eaten-undo-fwgc}{{5.5a}{46}{Subfigure 5 5.5a\relax }{subfigure.5.5.1}{}} +\newlabel{sub@fig:eaten-undo-fwgc}{{(a)}{a}{Subfigure 5 5.5a\relax }{subfigure.5.5.1}{}} +\newlabel{fig:c-fwgc-extended}{{5.5b}{46}{Subfigure 5 5.5b\relax }{subfigure.5.5.2}{}} +\newlabel{sub@fig:c-fwgc-extended}{{(b)}{b}{Subfigure 5 5.5b\relax }{subfigure.5.5.2}{}} +\newlabel{fig:g-fwgc-extended}{{5.5c}{46}{Subfigure 5 5.5c\relax }{subfigure.5.5.3}{}} +\newlabel{sub@fig:g-fwgc-extended}{{(c)}{c}{Subfigure 5 5.5c\relax }{subfigure.5.5.3}{}} +\newlabel{fig:w-fwgc-extended}{{5.5d}{46}{Subfigure 5 5.5d\relax }{subfigure.5.5.4}{}} +\newlabel{sub@fig:w-fwgc-extended}{{(d)}{d}{Subfigure 5 5.5d\relax }{subfigure.5.5.4}{}} +\newlabel{fig:n-fwgc-extended}{{5.5e}{46}{Subfigure 5 5.5e\relax }{subfigure.5.5.5}{}} +\newlabel{sub@fig:n-fwgc-extended}{{(e)}{e}{Subfigure 5 5.5e\relax }{subfigure.5.5.5}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces The extended graph grammar of the farmer-wolf-goat-cabbage puzzle\relax }}{46}{figure.caption.82}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {!eaten (undo)}}}{46}{subfigure.5.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?c}}}{46}{subfigure.5.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?g}}}{46}{subfigure.5.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {?w}}}{46}{subfigure.5.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {?n}}}{46}{subfigure.5.5}} +\newlabel{fig:gg-fwgc-extended}{{5.5}{46}{The extended graph grammar of the farmer-wolf-goat-cabbage puzzle\relax \relax }{figure.caption.82}{}} +\newlabel{fig:start-tab-extended}{{5.6a}{47}{Subfigure 5 5.6a\relax }{subfigure.5.6.1}{}} +\newlabel{sub@fig:start-tab-extended}{{(a)}{a}{Subfigure 5 5.6a\relax }{subfigure.5.6.1}{}} +\newlabel{fig:process_discount}{{5.6b}{47}{Subfigure 5 5.6b\relax }{subfigure.5.6.2}{}} +\newlabel{sub@fig:process_discount}{{(b)}{b}{Subfigure 5 5.6b\relax }{subfigure.5.6.2}{}} +\newlabel{fig:order-tab-extended}{{5.6c}{47}{Subfigure 5 5.6c\relax }{subfigure.5.6.3}{}} +\newlabel{sub@fig:order-tab-extended}{{(c)}{c}{Subfigure 5 5.6c\relax }{subfigure.5.6.3}{}} +\newlabel{fig:discount}{{5.6d}{47}{Subfigure 5 5.6d\relax }{subfigure.5.6.4}{}} +\newlabel{sub@fig:discount}{{(d)}{d}{Subfigure 5 5.6d\relax }{subfigure.5.6.4}{}} +\newlabel{fig:process_order-extended}{{5.6e}{47}{Subfigure 5 5.6e\relax }{subfigure.5.6.5}{}} +\newlabel{sub@fig:process_order-extended}{{(e)}{e}{Subfigure 5 5.6e\relax }{subfigure.5.6.5}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces The extended IOGG of the bar tab system\relax }}{47}{figure.caption.84}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The initial graph}}}{47}{subfigure.6.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!pd (priority 1)}}}{47}{subfigure.6.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?o (priority 1)}}}{47}{subfigure.6.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {?d (priority 0)}}}{47}{subfigure.6.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!po (priority 1)}}}{47}{subfigure.6.5}} +\newlabel{fig:gg-bartab-extended}{{5.6}{47}{The extended IOGG of the bar tab system\relax \relax }{figure.caption.84}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces The extended IOSTS of the bar tab system\relax }}{48}{figure.caption.85}} +\newlabel{fig:sts-bartab-extended}{{5.7}{48}{The extended IOSTS of the bar tab system\relax \relax }{figure.caption.85}{}} +\newlabel{fig:start-scrp-ext}{{5.8a}{48}{Subfigure 5 5.8a\relax }{subfigure.5.8.1}{}} +\newlabel{sub@fig:start-scrp-ext}{{(a)}{a}{Subfigure 5 5.8a\relax }{subfigure.5.8.1}{}} +\newlabel{fig:open-account-success-ext}{{5.8b}{48}{Subfigure 5 5.8b\relax }{subfigure.5.8.2}{}} +\newlabel{sub@fig:open-account-success-ext}{{(b)}{b}{Subfigure 5 5.8b\relax }{subfigure.5.8.2}{}} +\newlabel{fig:open-account-invalid-ext}{{5.8c}{48}{Subfigure 5 5.8c\relax }{subfigure.5.8.3}{}} +\newlabel{sub@fig:open-account-invalid-ext}{{(c)}{c}{Subfigure 5 5.8c\relax }{subfigure.5.8.3}{}} +\newlabel{fig:close-account-success-ext}{{5.8d}{48}{Subfigure 5 5.8d\relax }{subfigure.5.8.4}{}} +\newlabel{sub@fig:close-account-success-ext}{{(d)}{d}{Subfigure 5 5.8d\relax }{subfigure.5.8.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces The extended graph grammar of Scanflow Cash Register Protocol\relax }}{48}{figure.caption.87}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The initial graph}}}{48}{subfigure.8.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {The open account success rule}}}{48}{subfigure.8.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {The open account invalid rule}}}{48}{subfigure.8.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {The close account success rule}}}{48}{subfigure.8.4}} +\newlabel{fig:gg-fwgc-extended}{{5.8}{48}{The extended graph grammar of Scanflow Cash Register Protocol\relax \relax }{figure.caption.87}{}} \bibcite{Andries1999}{1} \bibcite{Belinfante:JTorX}{2} \bibcite{brinksma:testgeneration}{3} @@ -388,178 +462,178 @@ \bibcite{Veanes:SpecExplorer}{29} \bibcite{Zhu:coverage}{30} \bibstyle{plain} -\@writefile{toc}{\contentsline {chapter}{List of Symbols}{46}{chapter*.71}} -\@writefile{toc}{\contentsline {chapter}{\numberline {A}Farmer-Wolf-Goat-Cabbage IOGG}{48}{appendix.A}} +\@writefile{toc}{\contentsline {chapter}{List of Symbols}{52}{chapter*.90}} +\@writefile{toc}{\contentsline {chapter}{\numberline {A}Farmer-Wolf-Goat-Cabbage IOGG}{54}{appendix.A}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{app:fwgc}{{A}{48}{Farmer-Wolf-Goat-Cabbage IOGG\relax }{appendix.A}{}} -\newlabel{fig:start-fwgc}{{A.1a}{48}{Subfigure A A.1a\relax }{subfigure.A.1.1}{}} +\newlabel{app:fwgc}{{A}{54}{Farmer-Wolf-Goat-Cabbage IOGG\relax }{appendix.A}{}} +\newlabel{fig:start-fwgc}{{A.1a}{54}{Subfigure A A.1a\relax }{subfigure.A.1.1}{}} \newlabel{sub@fig:start-fwgc}{{(a)}{a}{Subfigure A A.1a\relax }{subfigure.A.1.1}{}} -\newlabel{fig:n-fwgc}{{A.1b}{48}{Subfigure A A.1b\relax }{subfigure.A.1.2}{}} +\newlabel{fig:n-fwgc}{{A.1b}{54}{Subfigure A A.1b\relax }{subfigure.A.1.2}{}} \newlabel{sub@fig:n-fwgc}{{(b)}{b}{Subfigure A A.1b\relax }{subfigure.A.1.2}{}} -\newlabel{fig:w-fwgc}{{A.1c}{48}{Subfigure A A.1c\relax }{subfigure.A.1.3}{}} +\newlabel{fig:w-fwgc}{{A.1c}{54}{Subfigure A A.1c\relax }{subfigure.A.1.3}{}} \newlabel{sub@fig:w-fwgc}{{(c)}{c}{Subfigure A A.1c\relax }{subfigure.A.1.3}{}} -\newlabel{fig:w-invalid-fwgc}{{A.1d}{48}{Subfigure A A.1d\relax }{subfigure.A.1.4}{}} +\newlabel{fig:w-invalid-fwgc}{{A.1d}{54}{Subfigure A A.1d\relax }{subfigure.A.1.4}{}} \newlabel{sub@fig:w-invalid-fwgc}{{(d)}{d}{Subfigure A A.1d\relax }{subfigure.A.1.4}{}} -\newlabel{fig:g-fwgc}{{A.1e}{48}{Subfigure A A.1e\relax }{subfigure.A.1.5}{}} +\newlabel{fig:g-fwgc}{{A.1e}{54}{Subfigure A A.1e\relax }{subfigure.A.1.5}{}} \newlabel{sub@fig:g-fwgc}{{(e)}{e}{Subfigure A A.1e\relax }{subfigure.A.1.5}{}} -\newlabel{fig:g-invalid-fwgc}{{A.1f}{48}{Subfigure A A.1f\relax }{subfigure.A.1.6}{}} +\newlabel{fig:g-invalid-fwgc}{{A.1f}{54}{Subfigure A A.1f\relax }{subfigure.A.1.6}{}} \newlabel{sub@fig:g-invalid-fwgc}{{(f)}{f}{Subfigure A A.1f\relax }{subfigure.A.1.6}{}} -\newlabel{fig:c-fwgc}{{A.1g}{48}{Subfigure A A.1g\relax }{subfigure.A.1.7}{}} +\newlabel{fig:c-fwgc}{{A.1g}{54}{Subfigure A A.1g\relax }{subfigure.A.1.7}{}} \newlabel{sub@fig:c-fwgc}{{(g)}{g}{Subfigure A A.1g\relax }{subfigure.A.1.7}{}} -\newlabel{fig:c-invalid-fwgc}{{A.1h}{48}{Subfigure A A.1h\relax }{subfigure.A.1.8}{}} +\newlabel{fig:c-invalid-fwgc}{{A.1h}{54}{Subfigure A A.1h\relax }{subfigure.A.1.8}{}} \newlabel{sub@fig:c-invalid-fwgc}{{(h)}{h}{Subfigure A A.1h\relax }{subfigure.A.1.8}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The initial graph}}}{48}{subfigure.1.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?n (priority 0)}}}{48}{subfigure.1.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?w valid (priority 0)}}}{48}{subfigure.1.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {?w invalid (priority 0)}}}{48}{subfigure.1.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {?g valid (priority 0)}}}{48}{subfigure.1.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {?g invalid (priority 0)}}}{48}{subfigure.1.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {?c valid (priority 0)}}}{48}{subfigure.1.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {?c invalid (priority 0)}}}{48}{subfigure.1.8}} -\newlabel{fig:retry-fwgc}{{A.1i}{49}{Subfigure A A.1i\relax }{subfigure.A.1.9}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The initial graph}}}{54}{subfigure.1.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?n (priority 0)}}}{54}{subfigure.1.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?w valid (priority 0)}}}{54}{subfigure.1.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {?w invalid (priority 0)}}}{54}{subfigure.1.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {?g valid (priority 0)}}}{54}{subfigure.1.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {?g invalid (priority 0)}}}{54}{subfigure.1.6}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {?c valid (priority 0)}}}{54}{subfigure.1.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {?c invalid (priority 0)}}}{54}{subfigure.1.8}} +\newlabel{fig:retry-fwgc}{{A.1i}{55}{Subfigure A A.1i\relax }{subfigure.A.1.9}{}} \newlabel{sub@fig:retry-fwgc}{{(i)}{i}{Subfigure A A.1i\relax }{subfigure.A.1.9}{}} -\newlabel{fig:reinit}{{A.1j}{49}{Subfigure A A.1j\relax }{subfigure.A.1.10}{}} +\newlabel{fig:reinit}{{A.1j}{55}{Subfigure A A.1j\relax }{subfigure.A.1.10}{}} \newlabel{sub@fig:reinit}{{(j)}{j}{Subfigure A A.1j\relax }{subfigure.A.1.10}{}} -\newlabel{fig:done}{{A.1k}{49}{Subfigure A A.1k\relax }{subfigure.A.1.11}{}} +\newlabel{fig:done}{{A.1k}{55}{Subfigure A A.1k\relax }{subfigure.A.1.11}{}} \newlabel{sub@fig:done}{{(k)}{k}{Subfigure A A.1k\relax }{subfigure.A.1.11}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {!retry (priority 1)}}}{49}{subfigure.1.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(j)}{\ignorespaces {!eaten (priority 1)}}}{49}{subfigure.1.10}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(k)}{\ignorespaces {!done (priority 1)}}}{49}{subfigure.1.11}} -\@writefile{toc}{\contentsline {chapter}{\numberline {B}Bar Tab IOGG}{50}{appendix.B}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {!retry (priority 1)}}}{55}{subfigure.1.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(j)}{\ignorespaces {!eaten (priority 1)}}}{55}{subfigure.1.10}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(k)}{\ignorespaces {!done (priority 1)}}}{55}{subfigure.1.11}} +\@writefile{toc}{\contentsline {chapter}{\numberline {B}Bar Tab IOGG}{56}{appendix.B}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{app:bar-tab}{{B}{50}{Bar Tab IOGG\relax }{appendix.B}{}} -\newlabel{fig:start-tab}{{B.1a}{50}{Subfigure B B.1a\relax }{subfigure.B.1.1}{}} +\newlabel{app:bar-tab}{{B}{56}{Bar Tab IOGG\relax }{appendix.B}{}} +\newlabel{fig:start-tab}{{B.1a}{56}{Subfigure B B.1a\relax }{subfigure.B.1.1}{}} \newlabel{sub@fig:start-tab}{{(a)}{a}{Subfigure B B.1a\relax }{subfigure.B.1.1}{}} -\newlabel{fig:order-tab}{{B.1b}{50}{Subfigure B B.1b\relax }{subfigure.B.1.2}{}} +\newlabel{fig:order-tab}{{B.1b}{56}{Subfigure B B.1b\relax }{subfigure.B.1.2}{}} \newlabel{sub@fig:order-tab}{{(b)}{b}{Subfigure B B.1b\relax }{subfigure.B.1.2}{}} -\newlabel{fig:process_order}{{B.1c}{50}{Subfigure B B.1c\relax }{subfigure.B.1.3}{}} +\newlabel{fig:process_order}{{B.1c}{56}{Subfigure B B.1c\relax }{subfigure.B.1.3}{}} \newlabel{sub@fig:process_order}{{(c)}{c}{Subfigure B B.1c\relax }{subfigure.B.1.3}{}} -\newlabel{fig:pay-tab}{{B.1d}{50}{Subfigure B B.1d\relax }{subfigure.B.1.4}{}} +\newlabel{fig:pay-tab}{{B.1d}{56}{Subfigure B B.1d\relax }{subfigure.B.1.4}{}} \newlabel{sub@fig:pay-tab}{{(d)}{d}{Subfigure B B.1d\relax }{subfigure.B.1.4}{}} -\newlabel{fig:process_payment}{{B.1e}{50}{Subfigure B B.1e\relax }{subfigure.B.1.5}{}} +\newlabel{fig:process_payment}{{B.1e}{56}{Subfigure B B.1e\relax }{subfigure.B.1.5}{}} \newlabel{sub@fig:process_payment}{{(e)}{e}{Subfigure B B.1e\relax }{subfigure.B.1.5}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {B.1}{\ignorespaces The IOGG of the bar tab system\relax }}{50}{figure.caption.74}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The initial graph}}}{50}{subfigure.1.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?o (priority 0)}}}{50}{subfigure.1.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!po (priority 1)}}}{50}{subfigure.1.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {?p (priority 0)}}}{50}{subfigure.1.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!pp (priority 1)}}}{50}{subfigure.1.5}} -\@writefile{toc}{\contentsline {chapter}{\numberline {C}SCRP Commands \& Responses}{51}{appendix.C}} +\@writefile{lof}{\contentsline {figure}{\numberline {B.1}{\ignorespaces The IOGG of the bar tab system\relax }}{56}{figure.caption.93}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The initial graph}}}{56}{subfigure.1.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?o (priority 0)}}}{56}{subfigure.1.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!po (priority 1)}}}{56}{subfigure.1.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {?p (priority 0)}}}{56}{subfigure.1.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!pp (priority 1)}}}{56}{subfigure.1.5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {C}SCRP Commands \& Responses}{57}{appendix.C}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{app:scrp-specification}{{C}{51}{SCRP Commands \& Responses\relax }{appendix.C}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {C.1}{\ignorespaces Registration Account State Machine\relax }}{52}{figure.caption.76}} -\newlabel{fig:account-lifecycle}{{C.1}{52}{Registration Account State Machine\relax \relax }{figure.caption.76}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {D}Scanflow Cash Register IOGG}{58}{appendix.D}} +\newlabel{app:scrp-specification}{{C}{57}{SCRP Commands \& Responses\relax }{appendix.C}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {C.1}{\ignorespaces Registration Account State Machine\relax }}{58}{figure.caption.95}} +\newlabel{fig:account-lifecycle}{{C.1}{58}{Registration Account State Machine\relax \relax }{figure.caption.95}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {D}Scanflow Cash Register IOGG}{64}{appendix.D}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{app:scrp-gg}{{D}{58}{Scanflow Cash Register IOGG\relax }{appendix.D}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.1}{\ignorespaces Account Article Registration\relax }}{58}{figure.caption.97}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ARTREG\_EXIST}}}{58}{subfigure.1.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?ARTREG\_NEXIST}}}{58}{subfigure.1.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!212}}}{58}{subfigure.1.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{58}{subfigure.1.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!511}}}{58}{subfigure.1.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!232}}}{58}{subfigure.1.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.2}{\ignorespaces Account Article Return\relax }}{59}{figure.caption.98}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ARTRET\_EXIST}}}{59}{subfigure.2.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?ARTRET\_NEXIST}}}{59}{subfigure.2.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!212}}}{59}{subfigure.2.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{59}{subfigure.2.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!511}}}{59}{subfigure.2.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!511}}}{59}{subfigure.2.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {!232}}}{59}{subfigure.2.7}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.3}{\ignorespaces Account Close\relax }}{60}{figure.caption.99}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?CLOSE}}}{60}{subfigure.3.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!212}}}{60}{subfigure.3.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{60}{subfigure.3.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!230}}}{60}{subfigure.3.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.4}{\ignorespaces Account Ending\relax }}{61}{figure.caption.100}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?IDLE}}}{61}{subfigure.4.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!531}}}{61}{subfigure.4.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!233}}}{61}{subfigure.4.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.5}{\ignorespaces Account Endtotal\relax }}{62}{figure.caption.101}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ENDTOT}}}{62}{subfigure.5.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!212}}}{62}{subfigure.5.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{62}{subfigure.5.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!230}}}{62}{subfigure.5.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.6}{\ignorespaces Account Open\relax }}{63}{figure.caption.102}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?OPEN}}}{63}{subfigure.6.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?OPEN\_EXIST}}}{63}{subfigure.6.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?OPEN\_NEXIST}}}{63}{subfigure.6.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{63}{subfigure.6.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!530}}}{63}{subfigure.6.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!231}}}{63}{subfigure.6.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.7}{\ignorespaces Account Stamp Registration\relax }}{64}{figure.caption.103}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?STAMPREG}}}{64}{subfigure.7.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!212}}}{64}{subfigure.7.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{64}{subfigure.7.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!511}}}{64}{subfigure.7.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!232}}}{64}{subfigure.7.5}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.8}{\ignorespaces Account Trans\relax }}{65}{figure.caption.104}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?TRANS}}}{65}{subfigure.8.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?TRANS}}}{65}{subfigure.8.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?TRANS}}}{65}{subfigure.8.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{65}{subfigure.8.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!240}}}{65}{subfigure.8.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!240}}}{65}{subfigure.8.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.9}{\ignorespaces Artid\relax }}{66}{figure.caption.105}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ARTID\_EXIST}}}{66}{subfigure.9.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?ARTID\_NEXIST}}}{66}{subfigure.9.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!511}}}{66}{subfigure.9.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!213}}}{66}{subfigure.9.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.10}{\ignorespaces General Responses\relax }}{66}{figure.caption.106}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {!550}}}{66}{subfigure.10.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!501}}}{66}{subfigure.10.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!900}}}{66}{subfigure.10.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.11}{\ignorespaces Get Variable\relax }}{67}{figure.caption.107}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?GET}}}{67}{subfigure.11.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!510}}}{67}{subfigure.11.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!210}}}{67}{subfigure.11.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.12}{\ignorespaces Initialize\relax }}{67}{figure.caption.108}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {!220}}}{67}{subfigure.12.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Initial graph}}}{67}{subfigure.12.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.13}{\ignorespaces Print\relax }}{68}{figure.caption.109}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?PRINT\_EXIST}}}{68}{subfigure.13.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?PRINT\_NEXIST}}}{68}{subfigure.13.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!560}}}{68}{subfigure.13.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{68}{subfigure.13.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!530}}}{68}{subfigure.13.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!260}}}{68}{subfigure.13.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.14}{\ignorespaces Receipt\relax }}{68}{figure.caption.110}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RECEIPT}}}{68}{subfigure.14.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!261}}}{68}{subfigure.14.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{68}{subfigure.14.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!561}}}{68}{subfigure.14.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!261}}}{68}{subfigure.14.5}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.15}{\ignorespaces Receipt Hardcopy\relax }}{69}{figure.caption.111}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RHCOPY\_EXIST}}}{69}{subfigure.15.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?RHCOPY\_NEXIST}}}{69}{subfigure.15.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!560}}}{69}{subfigure.15.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!530}}}{69}{subfigure.15.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!260}}}{69}{subfigure.15.5}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.16}{\ignorespaces Resetcr\relax }}{69}{figure.caption.112}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RESETCR}}}{69}{subfigure.16.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!531}}}{69}{subfigure.16.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!202}}}{69}{subfigure.16.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.17}{\ignorespaces Resume\relax }}{70}{figure.caption.113}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RESUME}}}{70}{subfigure.17.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!503}}}{70}{subfigure.17.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!201}}}{70}{subfigure.17.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!201}}}{70}{subfigure.17.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.18}{\ignorespaces Signoff\relax }}{70}{figure.caption.114}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?SIGNOFF}}}{70}{subfigure.18.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!450}}}{70}{subfigure.18.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!250}}}{70}{subfigure.18.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {D.19}{\ignorespaces Signon\relax }}{71}{figure.caption.115}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?SIGNON\_EXIST}}}{71}{subfigure.19.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?SIGNON\_NEXIST}}}{71}{subfigure.19.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!551}}}{71}{subfigure.19.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!450}}}{71}{subfigure.19.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!251}}}{71}{subfigure.19.5}} -\@writefile{toc}{\contentsline {chapter}{\numberline {E}Scanflow Cash Register IOSTS}{72}{appendix.E}} +\newlabel{app:scrp-gg}{{D}{64}{Scanflow Cash Register IOGG\relax }{appendix.D}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.1}{\ignorespaces Account Article Registration\relax }}{64}{figure.caption.116}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ARTREG\_EXIST}}}{64}{subfigure.1.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?ARTREG\_NEXIST}}}{64}{subfigure.1.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!212}}}{64}{subfigure.1.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{64}{subfigure.1.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!511}}}{64}{subfigure.1.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!232}}}{64}{subfigure.1.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.2}{\ignorespaces Account Article Return\relax }}{65}{figure.caption.117}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ARTRET\_EXIST}}}{65}{subfigure.2.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?ARTRET\_NEXIST}}}{65}{subfigure.2.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!212}}}{65}{subfigure.2.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{65}{subfigure.2.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!511}}}{65}{subfigure.2.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!511}}}{65}{subfigure.2.6}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {!232}}}{65}{subfigure.2.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.3}{\ignorespaces Account Close\relax }}{66}{figure.caption.118}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?CLOSE}}}{66}{subfigure.3.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!212}}}{66}{subfigure.3.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{66}{subfigure.3.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!230}}}{66}{subfigure.3.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.4}{\ignorespaces Account Ending\relax }}{67}{figure.caption.119}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?IDLE}}}{67}{subfigure.4.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!531}}}{67}{subfigure.4.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!233}}}{67}{subfigure.4.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.5}{\ignorespaces Account Endtotal\relax }}{68}{figure.caption.120}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ENDTOT}}}{68}{subfigure.5.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!212}}}{68}{subfigure.5.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{68}{subfigure.5.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!230}}}{68}{subfigure.5.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.6}{\ignorespaces Account Open\relax }}{69}{figure.caption.121}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?OPEN}}}{69}{subfigure.6.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?OPEN\_EXIST}}}{69}{subfigure.6.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?OPEN\_NEXIST}}}{69}{subfigure.6.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{69}{subfigure.6.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!530}}}{69}{subfigure.6.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!231}}}{69}{subfigure.6.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.7}{\ignorespaces Account Stamp Registration\relax }}{70}{figure.caption.122}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?STAMPREG}}}{70}{subfigure.7.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!212}}}{70}{subfigure.7.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{70}{subfigure.7.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!511}}}{70}{subfigure.7.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!232}}}{70}{subfigure.7.5}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.8}{\ignorespaces Account Trans\relax }}{71}{figure.caption.123}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?TRANS}}}{71}{subfigure.8.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?TRANS}}}{71}{subfigure.8.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {?TRANS}}}{71}{subfigure.8.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{71}{subfigure.8.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!240}}}{71}{subfigure.8.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!240}}}{71}{subfigure.8.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.9}{\ignorespaces Artid\relax }}{72}{figure.caption.124}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?ARTID\_EXIST}}}{72}{subfigure.9.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?ARTID\_NEXIST}}}{72}{subfigure.9.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!511}}}{72}{subfigure.9.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!213}}}{72}{subfigure.9.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.10}{\ignorespaces General Responses\relax }}{72}{figure.caption.125}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {!550}}}{72}{subfigure.10.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!501}}}{72}{subfigure.10.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!900}}}{72}{subfigure.10.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.11}{\ignorespaces Get Variable\relax }}{73}{figure.caption.126}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?GET}}}{73}{subfigure.11.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!510}}}{73}{subfigure.11.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!210}}}{73}{subfigure.11.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.12}{\ignorespaces Initialize\relax }}{73}{figure.caption.127}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {!220}}}{73}{subfigure.12.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Initial graph}}}{73}{subfigure.12.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.13}{\ignorespaces Print\relax }}{74}{figure.caption.128}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?PRINT\_EXIST}}}{74}{subfigure.13.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?PRINT\_NEXIST}}}{74}{subfigure.13.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!560}}}{74}{subfigure.13.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!531}}}{74}{subfigure.13.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!530}}}{74}{subfigure.13.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {!260}}}{74}{subfigure.13.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.14}{\ignorespaces Receipt\relax }}{74}{figure.caption.129}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RECEIPT}}}{74}{subfigure.14.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!261}}}{74}{subfigure.14.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!531}}}{74}{subfigure.14.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!561}}}{74}{subfigure.14.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!261}}}{74}{subfigure.14.5}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.15}{\ignorespaces Receipt Hardcopy\relax }}{75}{figure.caption.130}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RHCOPY\_EXIST}}}{75}{subfigure.15.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?RHCOPY\_NEXIST}}}{75}{subfigure.15.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!560}}}{75}{subfigure.15.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!530}}}{75}{subfigure.15.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!260}}}{75}{subfigure.15.5}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.16}{\ignorespaces Resetcr\relax }}{75}{figure.caption.131}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RESETCR}}}{75}{subfigure.16.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!531}}}{75}{subfigure.16.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!202}}}{75}{subfigure.16.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.17}{\ignorespaces Resume\relax }}{76}{figure.caption.132}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?RESUME}}}{76}{subfigure.17.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!503}}}{76}{subfigure.17.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!201}}}{76}{subfigure.17.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!201}}}{76}{subfigure.17.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.18}{\ignorespaces Signoff\relax }}{76}{figure.caption.133}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?SIGNOFF}}}{76}{subfigure.18.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {!450}}}{76}{subfigure.18.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!250}}}{76}{subfigure.18.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {D.19}{\ignorespaces Signon\relax }}{77}{figure.caption.134}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {?SIGNON\_EXIST}}}{77}{subfigure.19.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {?SIGNON\_NEXIST}}}{77}{subfigure.19.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {!551}}}{77}{subfigure.19.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {!450}}}{77}{subfigure.19.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {!251}}}{77}{subfigure.19.5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {E}Scanflow Cash Register IOSTS}{78}{appendix.E}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{app:scrp-sts}{{E}{72}{Scanflow Cash Register IOSTS\relax }{appendix.E}{}} +\newlabel{app:scrp-sts}{{E}{78}{Scanflow Cash Register IOSTS\relax }{appendix.E}{}} diff --git a/Final-thesis/report2.log b/Final-thesis/report2.log index 1f58cfb..445ba79 100644 --- a/Final-thesis/report2.log +++ b/Final-thesis/report2.log @@ -1,7 +1,7 @@ -This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2012.9.9) 17 JAN 2013 18:19 +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2012.9.9) 20 JAN 2013 21:33 entering extended mode %&-line parsing enabled. -**report2.tex +**report2 (./report2.tex LaTeX2e <2009/09/24> Babel and hyphenation patterns for english, usenglishmax, dumylang, noh @@ -755,7 +755,11 @@ Package: enumerate 1999/03/05 v3.00 enumerate extensions (DPC) ) (./symbol-macros.tex) \c@definition=\count150 -(./report2.aux) +(./report2.aux + +LaTeX Warning: Label `fig:gg-fwgc-extended' multiply defined. + +) \openout1 = `report2.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 36. @@ -912,11 +916,11 @@ Underfull \hbox (badness 1748) in paragraph at lines 57--57 ) [5] [6] Chapter 2. (./tex/background-introduction.tex) (./tex/model-based-testing.tex -<./img/model-based-testing.pdf, id=385, 379.58545pt x 141.73691pt> +<./img/model-based-testing.pdf, id=415, 379.58545pt x 141.73691pt> File: ./img/model-based-testing.pdf Graphic file (type pdf) -<./img/mbt-on-the-fly.pdf, id=389, 357.48773pt x 141.7426pt> +<./img/mbt-on-the-fly.pdf, id=419, 357.48773pt x 141.7426pt> File: ./img/mbt-on-the-fly.pdf Graphic file (type pdf) [7 @@ -949,14 +953,14 @@ Underfull \hbox (badness 10000) in paragraph at lines 166--166 (./img/priority-example/add_rhs.tex ) (./img/priority-example/sub_lhs.tex ) (./img/priority-example/sub_rhs.tex )) (./tex/tooling.tex -<./img/atm-diagram.pdf, id=555, 513.8086pt x 289.56181pt> +<./img/atm-diagram.pdf, id=585, 513.8086pt x 289.56181pt> File: ./img/atm-diagram.pdf Graphic file (type pdf) LaTeX Warning: `h' float specifier changed to `ht'. -[17] <./img/groove-diagram.pdf, id=576, 362.04158pt x 220.67444pt> +[17] <./img/groove-diagram.pdf, id=606, 362.04158pt x 220.67444pt> File: ./img/groove-diagram.pdf Graphic file (type pdf) @@ -1033,20 +1037,20 @@ Overfull \hbox (13.86055pt too wide) in paragraph at lines 1--41 (./img/item_example_c4_rhs.tex )) [30] Chapter 4. (./tex/implementation.tex -<./img/gratis_diagram.pdf, id=801, 465.09459pt x 260.6538pt> +<./img/gratis_diagram.pdf, id=831, 465.09459pt x 260.6538pt> File: ./img/gratis_diagram.pdf Graphic file (type pdf) [31 <./img/gratis_diagram.pdf>] -<./img/strategy.pdf, id=821, 202.07094pt x 136.22896pt> +<./img/strategy.pdf, id=851, 202.07094pt x 136.22896pt> File: ./img/strategy.pdf Graphic file (type pdf) - <./img/STS.pdf, id=824, 305.98314pt x 218.23532pt> + <./img/STS.pdf, id=854, 305.98314pt x 218.23532pt> File: ./img/STS.pdf Graphic file (type pdf) [32 <./img/strategy.pdf>] -<./img/STS_objects.pdf, id=853, 485.85414pt x 309.55649pt> +<./img/STS_objects.pdf, id=883, 485.85414pt x 309.55649pt> File: ./img/STS_objects.pdf Graphic file (type pdf) @@ -1071,7 +1075,7 @@ n-sief emails gewis-seld met Lodewijk Bergmans ) (./tex/all-examples.tex [35] [36] [37] (./img/start-reservation.tikz) (./img/makeReservation.tikz) -<./img/scanflow.jpg, id=919, 359.3425pt x 377.41pt> +<./img/scanflow.jpg, id=951, 359.3425pt x 377.41pt> File: ./img/scanflow.jpg Graphic file (type jpg) Underfull \hbox (badness 2735) in paragraph at lines 155--156 @@ -1092,29 +1096,87 @@ Overfull \hbox (8.39388pt too wide) in paragraph at lines 236--253 (./img/scrp/account.open.success.tikz) (./img/scrp/account.open.invalid_ss_on.tikz) (./img/scrp/general_responses.not_signed_on.tikz) -(./img/scrp/account.close.success.tikz) [41]) [42] (./report2.bbl [43 +(./img/scrp/account.close.success.tikz) [41]) +(./tex/measurements_on_examples.tex +Underfull \hbox (badness 1107) in paragraph at lines 3--3 +\T1/cmr/m/n/10 ify this us- + [] + + +Overfull \hbox (2.3886pt too wide) in paragraph at lines 13--19 + [] + [] + -] [44]) -[45] (./symbols.tex [46 +Overfull \hbox (2.3886pt too wide) in paragraph at lines 30--36 +[][] + [] + + +Overfull \hbox (2.3886pt too wide) in paragraph at lines 47--53 + [] + [] -]) [47] +[42] +Underfull \hbox (badness 10000) in paragraph at lines 101--101 +[]\T1/cmr/m/n/10 Deze + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 101--101 +\T1/cmr/m/n/10 metin-gen + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 101--101 +\T1/cmr/m/n/10 gechecked + [] + +(./img/start-bg-extended.tikz) (./img/nextTurn-bg-extended.tikz) [43] +(./img/fwgc/eaten-undo-fwgc.tikz) (./img/fwgc/c-fwgc-extended.tikz) +(./img/fwgc/g-fwgc-extended.tikz) (./img/fwgc/w-fwgc-extended.tikz) +(./img/fwgc/n-fwgc-extended.tikz) +Overfull \hbox (72.14275pt too wide) in paragraph at lines 148--169 +[]$ + [] + +[44] (./img/start-tab-extended.tikz) (./img/process_discount-extended.tikz) +(./img/order-extended.tikz) (./img/discount-extended.tikz) +(./img/process_order-extended.tikz) + +LaTeX Warning: Float too large for page by 9.90907pt on input line 191. + +(./img/sts_tab-extended.tex ) (./img/start-scrp-extended.tikz) +(./img/scrp/account.open.success-extended.tikz) +(./img/scrp/account.open.invalid_ss_on-extended.tikz) +(./img/scrp/account.close.success-extended.tikz)) [45] (./report2.bbl [46] +[47] [48] [49 + +] [50]) [51] (./symbols.tex [52 + +]) [53] Appendix A. (./img/fwgc/start-fwgc.tikz) (./img/fwgc/n-fwgc.tikz) (./img/fwgc/w-fwgc.tikz) (./img/fwgc/w-invalid-fwgc.tikz) (./img/fwgc/g-fwgc.tikz) (./img/fwgc/g-invalid-fwgc.tikz) (./img/fwgc/c-fwgc.tikz) (./img/fwgc/c-invalid-fwgc.tikz) (./img/fwgc/retry-fwgc.tikz) -(./img/fwgc/eaten-reinit-fwgc.tikz) (./img/fwgc/done-fwgc.tikz) [48 +(./img/fwgc/eaten-reinit-fwgc.tikz) (./img/fwgc/done-fwgc.tikz) [54 -] [49] +] [55] Appendix B. (./img/start-tab.tikz) (./img/order-tab.tikz) (./img/process_order.tikz) -(./img/pay-tab.tikz) (./img/process_payment.tikz) [50 +(./img/pay-tab.tikz) (./img/process_payment.tikz) [56 ] Appendix C. (./tex/scrp_commands_responses.tex -<./img/account_lifecycle.png, id=1075, 590.205pt x 591.20876pt> +<./img/account_lifecycle.png, id=1179, 590.205pt x 591.20876pt> File: ./img/account_lifecycle.png Graphic file (type png) @@ -1122,7 +1184,7 @@ Overfull \hbox (3.4369pt too wide) in paragraph at lines 31--36 [] [] -[51 +[57 ] Overfull \hbox (3.4369pt too wide) in paragraph at lines 38--43 @@ -1139,7 +1201,7 @@ Overfull \hbox (3.4369pt too wide) in paragraph at lines 54--60 [] [] -[52 <./img/account_lifecycle.png (PNG copy)>] +[58 <./img/account_lifecycle.png (PNG copy)>] Overfull \hbox (3.4369pt too wide) in paragraph at lines 62--68 [] [] @@ -1159,7 +1221,7 @@ Overfull \hbox (3.4369pt too wide) in paragraph at lines 88--93 [] [] -[53] +[59] Overfull \hbox (3.4369pt too wide) in paragraph at lines 95--103 [] [] @@ -1169,7 +1231,7 @@ Overfull \hbox (3.4369pt too wide) in paragraph at lines 105--115 [] [] -[54] +[60] Overfull \hbox (3.4369pt too wide) in paragraph at lines 117--125 [] [] @@ -1184,7 +1246,7 @@ Overfull \hbox (3.4369pt too wide) in paragraph at lines 136--142 [] [] -[55] +[61] Overfull \hbox (3.4369pt too wide) in paragraph at lines 144--150 [] [] @@ -1204,7 +1266,7 @@ Overfull \hbox (3.4369pt too wide) in paragraph at lines 171--177 [] [] -[56]) +[62]) Overfull \hbox (3.4369pt too wide) in paragraph at lines 179--147 [] [] @@ -1214,14 +1276,14 @@ Underfull \hbox (badness 10000) in paragraph at lines 179--147 [] -[57] +[63] Appendix D. (./scrp_figures.tex (./img/scrp/account.article_registration.request_exist.tikz ) (./img/scrp/account.article_registration.request_nexist.tikz) (./img/scrp/account.article_registration.displays.tikz) (./img/scrp/account.article_registration.invalid_ss_on.tikz) (./img/scrp/account.article_registration.no_such_article.tikz) -(./img/scrp/account.article_registration.success.tikz) [58 +(./img/scrp/account.article_registration.success.tikz) [64 ] (./img/scrp/account.article_return.request_exist.tikz) @@ -1230,28 +1292,28 @@ Appendix D. (./img/scrp/account.article_return.invalid_ss_on.tikz) (./img/scrp/account.article_return.no_such_article.tikz) (./img/scrp/account.article_return.no_such_article_registered.tikz) -(./img/scrp/account.article_return.success.tikz) [59] +(./img/scrp/account.article_return.success.tikz) [65] (./img/scrp/account.close.request.tikz) (./img/scrp/account.close.displays.tikz ) (./img/scrp/account.close.invalid_ss_on.tikz) -(./img/scrp/account.close.success.tikz) [60] +(./img/scrp/account.close.success.tikz) [66] (./img/scrp/account.ending.request.tikz) (./img/scrp/account.ending.invalid_ss_on.tikz) -(./img/scrp/account.ending.success.tikz) [61] +(./img/scrp/account.ending.success.tikz) [67] (./img/scrp/account.endtotal.request.tikz) (./img/scrp/account.endtotal.displays.tikz) (./img/scrp/account.endtotal.invalid_ss_on.tikz) -(./img/scrp/account.endtotal.success.tikz) [62] +(./img/scrp/account.endtotal.success.tikz) [68] (./img/scrp/account.open.request.tikz) (./img/scrp/account.open.request_exist.tikz) (./img/scrp/account.open.request_nexist.tikz) (./img/scrp/account.open.invalid_ss_on.tikz) (./img/scrp/account.open.no_such_account.tikz) -(./img/scrp/account.open.success.tikz) [63] +(./img/scrp/account.open.success.tikz) [69] (./img/scrp/account.stamp_registration.request.tikz) (./img/scrp/account.stamp_registration.displays.tikz) (./img/scrp/account.stamp_registration.invalid_ss_on.tikz) (./img/scrp/account.stamp_registration.no_such_article.tikz) -(./img/scrp/account.stamp_registration.success.tikz) [64] +(./img/scrp/account.stamp_registration.success.tikz) [70] (./img/scrp/account.trans.request_tm_bank.tikz) (./img/scrp/account.trans.request_tm_cash.tikz) (./img/scrp/account.trans.request_tm_store.tikz) @@ -1285,7 +1347,7 @@ Appendix D. (./img/scrp/signon.request_nexist.tikz) (./img/scrp/signon.signing_auth_failed.tikz) (./img/scrp/signon.signing_rejected.tikz) (./img/scrp/signon.success.tikz)) -[65] [66] [67] [68] [69] [70] [71] +[71] [72] [73] [74] [75] [76] [77] Appendix E. (./iosts_scrp.tex Overfull \hbox (30.78506pt too wide) in paragraph at lines 6--7 @@ -1318,71 +1380,74 @@ Underfull \hbox (badness 6658) in paragraph at lines 7--8 \T1/cmr/m/n/10 ?ARTRET_NEXIST, ?RE-SETCR, !512, !213, ?SIG-NOFF, ?END-TOT, [] -[72 +[78 -] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] -[87] [88] [89] -Underfull \hbox (badness 10000) in paragraph at lines 750--751 +] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] +[93] +Underfull \hbox (badness 10000) in paragraph at lines 705--706 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -Underfull \hbox (badness 10000) in paragraph at lines 762--763 +Underfull \hbox (badness 10000) in paragraph at lines 717--718 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -Underfull \hbox (badness 10000) in paragraph at lines 763--764 +Underfull \hbox (badness 10000) in paragraph at lines 718--719 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -Underfull \hbox (badness 10000) in paragraph at lines 766--767 +Underfull \hbox (badness 10000) in paragraph at lines 721--722 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -[90] +[94] Overfull \vbox (77.92526pt too high) has occurred while \output is active [] -[91] -Underfull \hbox (badness 10000) in paragraph at lines 786--787 +[95] +Underfull \hbox (badness 10000) in paragraph at lines 735--736 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -Underfull \hbox (badness 10000) in paragraph at lines 791--792 +Underfull \hbox (badness 10000) in paragraph at lines 740--741 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -Underfull \hbox (badness 10000) in paragraph at lines 799--800 +Underfull \hbox (badness 10000) in paragraph at lines 748--749 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -Underfull \hbox (badness 10000) in paragraph at lines 800--801 +Underfull \hbox (badness 10000) in paragraph at lines 749--750 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -Underfull \hbox (badness 10000) in paragraph at lines 802--803 +Underfull \hbox (badness 10000) in paragraph at lines 751--752 []|$[] [] []\OML/cmm/m/it/10 ; [] [] [] -) [92] (./report2.aux) +) [96] (./report2.aux) LaTeX Warning: There were undefined references. + +LaTeX Warning: There were multiply-defined labels. + ) Here is how much of TeX's memory you used: - 21343 strings out of 495061 - 379744 string characters out of 1182622 - 1036894 words of memory out of 3000000 - 23052 multiletter control sequences out of 15000+50000 + 21757 strings out of 495061 + 387674 string characters out of 1182622 + 1266263 words of memory out of 3000000 + 23366 multiletter control sequences out of 15000+50000 30003 words of font info for 75 fonts, out of 3000000 for 9000 28 hyphenation exceptions out of 8191 - 63i,24n,79p,1530b,1572s stack positions out of 5000i,500n,10000p,200000b,50000s + 63i,24n,79p,1526b,1572s stack positions out of 5000i,500n,10000p,200000b,50000s -Output written on report2.pdf (94 pages, 1200853 bytes). +Output written on report2.pdf (98 pages, 1303845 bytes). PDF statistics: - 2287 PDF objects out of 2487 (max. 8388607) - 500 named destinations out of 1000 (max. 500000) - 511 words of extra memory for PDF output out of 10000 (max. 10000000) + 2398 PDF objects out of 2487 (max. 8388607) + 546 named destinations out of 1000 (max. 500000) + 559 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Final-thesis/report2.out b/Final-thesis/report2.out index 480974d..2fc7be2 100644 --- a/Final-thesis/report2.out +++ b/Final-thesis/report2.out @@ -48,7 +48,13 @@ \BOOKMARK [2][-]{subsection.5.2.3}{Example 3: bar tab system}{section.5.2} \BOOKMARK [2][-]{subsection.5.2.4}{Failed example: restaurant reservations}{section.5.2} \BOOKMARK [2][-]{subsection.5.2.5}{Case study: Scanflow Cash Register Protocol}{section.5.2} -\BOOKMARK [0][-]{chapter*.71}{List of Symbols}{} +\BOOKMARK [1][-]{section.5.3}{Measurements on examples}{chapter.5} +\BOOKMARK [2][-]{subsection.5.3.1}{Simulation and redundancy}{section.5.3} +\BOOKMARK [2][-]{subsection.5.3.2}{Performance}{section.5.3} +\BOOKMARK [2][-]{subsection.5.3.3}{Model complexity}{section.5.3} +\BOOKMARK [2][-]{subsection.5.3.4}{Extendability}{section.5.3} +\BOOKMARK [1][-]{section.5.4}{Conclusions}{chapter.5} +\BOOKMARK [0][-]{chapter*.90}{List of Symbols}{} \BOOKMARK [0][-]{appendix.A}{Farmer-Wolf-Goat-Cabbage IOGG}{} \BOOKMARK [0][-]{appendix.B}{Bar Tab IOGG}{} \BOOKMARK [0][-]{appendix.C}{SCRP Commands \046 Responses}{} diff --git a/Final-thesis/report2.pdf b/Final-thesis/report2.pdf index b49cc43..8699390 100644 Binary files a/Final-thesis/report2.pdf and b/Final-thesis/report2.pdf differ diff --git a/Final-thesis/report2.tex b/Final-thesis/report2.tex index a94ad38..7ed8bc6 100644 --- a/Final-thesis/report2.tex +++ b/Final-thesis/report2.tex @@ -86,7 +86,7 @@ \input{./tex/validation-introduction} \input{./tex/measurements.tex} \input{./tex/all-examples} - %\input{./tex/measurements_on_examples.tex} + \input{./tex/measurements_on_examples.tex} %\newpage %\chapter{Conclusion}\label{chapter:conclusion} diff --git a/Final-thesis/report2.toc b/Final-thesis/report2.toc index d7e3ff2..7a7a860 100644 --- a/Final-thesis/report2.toc +++ b/Final-thesis/report2.toc @@ -48,9 +48,15 @@ \contentsline {subsection}{\numberline {5.2.3}Example 3: bar tab system}{37}{subsection.5.2.3} \contentsline {subsection}{\numberline {5.2.4}Failed example: restaurant reservations}{37}{subsection.5.2.4} \contentsline {subsection}{\numberline {5.2.5}Case study: Scanflow Cash Register Protocol}{38}{subsection.5.2.5} -\contentsline {chapter}{List of Symbols}{46}{chapter*.71} -\contentsline {chapter}{\numberline {A}Farmer-Wolf-Goat-Cabbage IOGG}{48}{appendix.A} -\contentsline {chapter}{\numberline {B}Bar Tab IOGG}{50}{appendix.B} -\contentsline {chapter}{\numberline {C}SCRP Commands \& Responses}{51}{appendix.C} -\contentsline {chapter}{\numberline {D}Scanflow Cash Register IOGG}{58}{appendix.D} -\contentsline {chapter}{\numberline {E}Scanflow Cash Register IOSTS}{72}{appendix.E} +\contentsline {section}{\numberline {5.3}Measurements on examples}{42}{section.5.3} +\contentsline {subsection}{\numberline {5.3.1}Simulation and redundancy}{42}{subsection.5.3.1} +\contentsline {subsection}{\numberline {5.3.2}Performance}{43}{subsection.5.3.2} +\contentsline {subsection}{\numberline {5.3.3}Model complexity}{43}{subsection.5.3.3} +\contentsline {subsection}{\numberline {5.3.4}Extendability}{43}{subsection.5.3.4} +\contentsline {section}{\numberline {5.4}Conclusions}{45}{section.5.4} +\contentsline {chapter}{List of Symbols}{52}{chapter*.90} +\contentsline {chapter}{\numberline {A}Farmer-Wolf-Goat-Cabbage IOGG}{54}{appendix.A} +\contentsline {chapter}{\numberline {B}Bar Tab IOGG}{56}{appendix.B} +\contentsline {chapter}{\numberline {C}SCRP Commands \& Responses}{57}{appendix.C} +\contentsline {chapter}{\numberline {D}Scanflow Cash Register IOGG}{64}{appendix.D} +\contentsline {chapter}{\numberline {E}Scanflow Cash Register IOSTS}{78}{appendix.E} diff --git a/Final-thesis/tex/measurements.tex b/Final-thesis/tex/measurements.tex index 8070f3c..f231896 100755 --- a/Final-thesis/tex/measurements.tex +++ b/Final-thesis/tex/measurements.tex @@ -3,7 +3,7 @@ \section{Measurements}\label{sec:measurements} This section lists the possible measurements on the models and execution of GRATiS on those models. \subsection{Simulation and redundancy} -For each of the cases, we can create IOSTSs in two ways: manually and through GRATiS. The IOSTS created by GRATiS and the IOSTS created by hand can be compared. It can be observed whether the IOSTS created by GRATiS simulates the IOSTS created by hand and vice versa. When either is not the case, the models show a different possible behaviour for the SUT. The reasons behind this difference are then explored. +For each of the cases, we can create IOSTSs in two ways: manually and through GRATiS. The generated IOSTS and the modelled IOSTS can be compared. It can be observed whether the generated IOSTS simulates the IOSTS and vice versa. When either is not the case, the models show a different possible behaviour for the SUT. The reasons behind this difference are then explored. The tool LTSmin~\footnote{http://fmt.cs.utwente.nl/tools/ltsmin/} is used to verify whether the models simulate each other. It is possible that the generated IOSTS $s$ is larger than the IOSTS built by hand $t$, even if both simulate each other. If $t$ simulates $s$, it is measured whether the set of switch relations or location variables is strictly smaller in $t$ than in $s$, while the other set is at least as small in $t$ as in $s$. Formally: \vspace{5px} \\ diff --git a/Final-thesis/tex/measurements_on_examples.tex b/Final-thesis/tex/measurements_on_examples.tex index 33cdf08..ddcae0e 100644 --- a/Final-thesis/tex/measurements_on_examples.tex +++ b/Final-thesis/tex/measurements_on_examples.tex @@ -1,163 +1,110 @@ \section{Measurements on examples} -\subsection{Simulation and redundancy 1}\marginpar{Need to verify this using LTS min} -The responses used by the IOSTS and by the IOGG are different. Both models, used as examples to clarify the IOSTS and IOGG formalisms, were built with a different behavior in mind. Both allow a die to be thrown, after which the IOSTS directly moves the player to the correct location and passes the turn and the IOGG moves the player by a series of responses ended with a $!nextTurn$. Therefore, both IOSTSs do not simulate each other. - -\subsection{Simulation and redundancy 2} -Both the generated IOSTS and the IOSTS built by hand allow all inputs and give the appropriate responses when necessary. This shows that both IOSTSs simulate each other. The generated IOSTS has 50 switch relations and 0 location variables. The IOSTS built by hand has 11 switch relations and 4 location variables. The IOGG does not use variables to track the location of each item. Therefore the generated IOSTS has a location per state of the puzzle. - -\subsection{Simulation and redundancy 4} -Both the generated IOSTS and the IOSTS built by hand correctly allow the ordering of drinks and payment of bar tabs. This shows that both IOSTSs simulate each other. The generated IOSTS has 24 switch relations and 13 location variables. The IOSTS built by hand has 10 switch relations and 5 location variables. This shows that the generated IOSTSs is redundant. The first IOSTS keeps the name and price of drinks as location variables, whereas the latter IOSTS hard-codes these into the guards and updates. The generated IOSTS builds a switch relation with gate $?o$ for each combination of customer and drink. It also builds a switch relation with gate $?p$ for each customer. The target locations of all these switch relations have one switch relation back to the initial location. Therefore, the number of switch relations is $3*3*2+3*1*2 = 24$. - -\subsection{Simulation and redundancy scrp} -The generated IOSTS has 540 switch relations and 2 location variables. It simulates the IOSTS made by Axini, but not vice versa. The generated IOSTS allows every stimulus in every location. The IOSTS by hand is modelled to test a subset of the more interesting behavior. - -\subsection{Performance 1} -The IOSTS is generated in a runtime of 300 ms using a heap-size of 1.9 MB. - -\subsection{Performance 2} -The IOSTS is generated in a runtime of 770 ms using a heap-size of 5.2 MB. - -\subsection{Performance 4} -The IOSTS is generated in a runtime of 250 ms using a heap-size of 2.1 MB. +\subsection{Simulation and redundancy}\marginpar{Need to verify this using LTS min} -\subsection{Performance scrp} -The IOSTS is generated in a runtime of 9530 ms using a heap-size of 6.6 MB. Comparing to the examples in the previous chapter, this shows little increase in heap-size and approximately 20 times higher runtime. The algorithm scales reasonably well, considering the generated IOSTS is approximately 10 times larger in size than those of the examples in the previous chapter. +\paragraph*{Boardgame} +The responses used by the IOSTS and by the IOGG are different. Both models, used as examples to clarify the IOSTS and IOGG formalisms, were built with a different behavior in mind. Both allow a die to be thrown, after which the IOSTS directly moves the player to the correct location and passes the turn and the IOGG moves the player by a series of responses ended with a $!nextTurn$. Therefore, both IOSTSs do not simulate each other. -\subsection{Model complexity 1} -\begin{comment} -start: -13 distinct operands -1 distinct operator -33 operands -3 operators - -move: -2 new distinct operands -5 new distinct operators -27 operands -6 operators - -nextTurn: -0 new distinct operands -1 new distinct operator -13 operands -5 operators - -throws: -3 new distinct operands -2 new distinct operators -30 operands -10 operators - -$n_1 = 9, n_2 = 18, N_1 = 24, N_2 = 103$ - Volume is 127*4.75 = 603.25 +\paragraph*{Farmer-wolf-goat-cabbage puzzle} +Table~\ref{tab:fwgc-simulate} shows the results for this measurement for the puzzle. -IOSTS: -22 distinct operands -5 distinct operators -62 operands -25 operators +\begin{table}[ht] +\begin{center} +\begin{tabular}{|l|c|c|c|c|} +\hline +\textbf{Model} & \textbf{Simulates?} & \textbf{Switch relations} & \textbf{Location variables} & \textbf{Redundant?} \\ \hline +Generated IOSTS & true & 50 & 0 & false \\ \hline +Modelled IOSTS & true & 11 & 4 & false \\ \hline +\end{tabular} +\end{center} +\caption{Simulation and redundancy results for the farmer-wolf-goat-cabbage puzzle} +\label{tab:fwgc-simulate} +\end{table} -$n_1 = 5, n_2 = 22, N_1 = 25, N_2 = 62$ - Volume is 87*4.75 = 413.25 -\end{comment} +The IOGG does not use variables to track the location of each item. Therefore, the generated IOSTS has a location per state of the puzzle. Since on neither side both the number of switch relations and location variables are higher, both models are not redundant. -Table~\ref{tab:halstead-bg} shows the measurements on the operators and operands of both models.\marginpar{lastig om te bepalen wat meegenomen moet worden. GGs hebben ook transition label, priority level, etc. Eigenlijk verborgen complexiteit} +\paragraph*{Bar-tab system} +Table~\ref{tab:bar-tab-simulate} shows the results for this measurement for the bar-tab system. \begin{table}[ht] -\begin{center} -\begin{tabular}{| l | c | c | c | c | c |} - \hline - & $n_1$ & $n_2$ & $N_1$ & $N_2$ & Volume \\ \hline - IOGG & 9 & 18 & 24 & 103 & 603.25 \\ \hline - IOSTS & 5 & 22 & 25 & 62 & 413.25 \\ - \hline +\begin{tabular}{|l|c|c|c|c|} +\hline +\textbf{Model} & \textbf{Simulates?} & \textbf{Switch relations} & \textbf{Location variables} & \textbf{Redundant?} \\ \hline +Generated IOSTS & true & 24 & 13 & true \\ \hline +Modelled IOSTS & true & 10 & 5 & false \\ \hline \end{tabular} -\end{center} -\caption{The Halstead measurements on the boardgame models} -\label{tab:halstead-bg} -\end{table}\marginpar{Heb hier eigenlijk vrij weinig over te zeggen. Conclusies komen later.} +\caption{Simulation and redundancy results for the bar-tab system} +\label{tab:bar-tab-simulate} +\end{table} -\subsection{Model complexity 2} -\begin{comment} -start: 12 new operands, 26 operands -?c: 3 new operators, 0 new operands. 5 operators, 17 operands -?c-invalid: 0 new operators, 1 new operand. 2 operators, 14 operands -!retry: 0-0. 1 operator, 2 operands. -!eaten: 0-0. 9 operators, 36 operands -!done: 8 operators, 30 operands -\end{comment} +The modelled IOSTS keeps the name and price of drinks as location variables, whereas the generated IOSTS hard-codes these into the guards and updates. The generated IOSTS builds a switch relation with gate $?o$ for each combination of customer and drink. It also builds a switch relation with gate $?p$ for each customer. The target locations of all these switch relations have one switch relation back to the initial location. Therefore, the number of switch relations is $3*3*2+3*1*2\: =\: 24$. This could have been avoided by modelling GG variables for the price and drinks. However, this would make the IOGG more complex. -Table~\ref{tab:halstead-fwgc} shows the measurements on the operators and operands of both models. +\paragraph*{SCRP} +Table~\ref{tab:scrp-simulate} shows the results for this measurement for the case study. \begin{table}[ht] \begin{center} -\begin{tabular}{| l | c | c | c | c | c |} - \hline - & $n_1$ & $n_2$ & $N_1$ & $N_2$ & Volume \\ \hline - IOGG & 3 & 13 & 25 & 125 & 498.29 \\ \hline - IOSTS & 9 & 22 & 25 & 62 & 431.02 \\ - \hline +\begin{tabular}{|l|c|c|c|c|} +\hline +\textbf{Model} & \textbf{Simulates?} & \textbf{Switch relations} & \textbf{Location variables} & \textbf{Redundant?} \\ \hline +Generated IOSTS & ? & 540 & 2 & ? \\ \hline +Modelled IOSTS & ? & 1302 & 2 & ? \\ \hline \end{tabular} \end{center} -\caption{The Halstead measurements of the farmer-wolf-goat-cabbage puzzle} -\label{tab:halstead-fwgc} -\end{table}\marginpar{berekening heeft weggelaten regels en switch relations niet meegenomen} +\caption{Simulation and redundancy results for the SCRP} +\label{tab:scrp-simulate} +\end{table} -\subsection{Model complexity 4} -\begin{comment} -start: 1 - 25. 13 - 46 -?o: 1 - 2. 1 - 14 -!po: 2 - 3. 4 - 24 -?p: 0 - 0. 3 - 18 -!pp: 3 - -\end{comment} +%The generated IOSTS allows every stimulus in every location. The IOSTS by hand is modelled to test a subset of the more interesting behavior. -Table~\ref{tab:halstead-bartab} shows the measurements on the operators and operands of both models. +\subsection{Performance} +The performance of GRATiS on all models is in Table~\ref{tab:performance}. \begin{table}[ht] \begin{center} -\begin{tabular}{| l | c | c | c | c | c |} - \hline - & $n_1$ & $n_2$ & $N_1$ & $N_2$ & Volume \\ \hline - IOGG & 3 & 13 & 25 & 125 & 498.29 \\ \hline - IOSTS & 9 & 22 & 25 & 62 & 431.02 \\ - \hline +\begin{tabular}{|l|c|c|} +\hline +\textbf{Example} & \textbf{runtime (ms)} & \textbf{heap-size (MB)} \\ \hline +boardgame & 300 & 1.9 \\ \hline +farmer-wolf-goat-cabbage puzzle & 770 & 5.2 \\ \hline +bar-tab system & 250 & 2.1 \\ \hline +SCRP & 9530 & 6.6 \\ \hline \end{tabular} \end{center} -\caption{The Halstead measurements of the farmer-wolf-goat-cabbage puzzle} -\label{tab:halstead-bartab} -\end{table}\marginpar{moet nog even een abs in groove hebben, maakt uit voor deze berekening} - -model complexity 1 -The volume of the IOGG has increased by 35.95. $n_1 = 8, n_2 = 18, N_1 = 23, N_2 = 113$ Volume is 136*4.70 = 639.20 -The volume of the IOSTS has increased by 130.28. $n_1 = 5, n_2 = 23, N_1 = 34, N_2 = 79$ Volume is 113*4.81 = 543.53 +\caption{Performance measurements} +\label{tab:performance} +\end{table} -\subsection{Model complexity scrp} -\begin{comment} -start: -\end{comment} +Comparing to the examples the case-study shows little increase in heap-size and approximately 20 times higher runtime. The algorithm scales reasonably well, considering the generated IOSTS is approximately 10 times larger in size than those of the examples. -Table~\ref{tab:halstead-scrp} shows the measurements on the operators and operands of both models. +\subsection{Model complexity} +Table~\ref{tab:halstead} shows the measurements on the operators and operands of all models. \begin{table}[ht] \begin{center} -\begin{tabular}{| l | c | c | c | c | c |} +\begin{tabular}{| l | l | c | c | c | c | c |} \hline - & $n_1$ & $n_2$ & $N_1$ & $N_2$ & Volume \\ \hline - IOGG & 9 & 18 & 24 & 103 & 603.25 \\ \hline - IOSTS & 5 & 22 & 25 & 62 & 413.25 \\ + \textbf{Example} & \textbf{Model} & $n_1$ & $n_2$ & $N_1$ & $N_2$ & Volume \\ \hline + boardgame & IOGG & 9 & 18 & 24 & 103 & 603.25 \\ + & IOSTS & 5 & 22 & 25 & 62 & 413.25 \\ \hline + farmer-wolf-goat-cabbage puzzle & IOGG & 3 & 13 & 25 & 125 & 498.29 \\ + & IOSTS & 9 & 22 & 25 & 62 & 431.02 \\ \hline + bar-tab system & IOGG & 3 & 13 & 25 & 125 & 498.29 \\ + & IOSTS & 9 & 22 & 25 & 62 & 431.02 \\ \hline + SCRP & IOGG & 9 & 18 & 24 & 103 & 603.25 \\ + & IOSTS & 5 & 22 & 25 & 62 & 413.25 \\ \hline \end{tabular} \end{center} -\caption{The Halstead measurements on the case study} -\label{tab:halstead-scrp} -\end{table} +\caption{The Halstead measurements on the boardgame models} +\label{tab:halstead} +\end{table}\marginpar{Deze metingen moeten nog gechecked worden} \subsection{Extendability} -\paragraph*{Extendability 1} -The boardgame is extended to include more players and locations. For the IOGG, this means adding new locations and players to the initial graph. The players get a fixed order in which they play. This means that the next turn rule also has to be extended. The result is in Figure~\ref{fig:gg-bg-extended}. This extension reduces the distinct number of operators by 1 and introduces no new operands. The number of operator occurences has decreased by 1 and the number of operand occurences has grown by 10. +The next paragraphs contain a hypothetical extension to each example. New models are given which feature the extension. In the last paragraph, the increase in model complexity for each example is given in a table. + +\paragraph*{Boardgame} +The boardgame is extended to include one more player and one more location. For the IOGG, this means adding new locations and players to the initial graph. The players get a fixed order in which they play. This means that the next turn rule also has to be extended. The rest of the rules stay as they are. The extended rules are in Figure~\ref{fig:gg-bg-extended}. \begin{figure}[ht] \begin{center} @@ -168,32 +115,78 @@ \subsection{Extendability} \label{fig:gg-bg-extended} \end{figure} -The IOSTS gains a variable and a switch relation for the new player. \begin{comment}The result is in Figure~\ref{fig:sts-bg-extended}.\end{comment} The distinct number of operators has not increased and the distinct number of operands has increased by 1. The number of operator occurences has increased by 9 and the number of operand occurences has increased by 17. - -\paragraph*{Extendability 3} -In another variant of this puzzle, when one of the items is eaten, the puzzle does not reset but undoes the last action. Figure~\ref{fig:gg-fwgc-extended} shows this extension in two rules: the 'move cabbage' and the 'eaten undo' rule. The rules keep track of the last moved items. When an item gets eaten, the last move can be undone.\marginpar{veranderde model complexity moet nog gegeven worden}\marginpar{Ik moet quantification nog uitleggen, in GROOVE} +The IOSTS gains a variable and a switch relation for the new player: +\vspace{5px} \\ +$\begin{array}{lcl} +\Locations & = & \{t, m\} \\ +\initialLocation & = & t \\ +\LocationVariables & = & \{T, P1, P2, P3, D\} \\ +\initializationFunction & = & \{T \mapsto 0, P1 \mapsto 0, P2 \mapsto 2, P3 \mapsto 0, D \mapsto 0\} \\ +\InteractionVariables & = & \{d, p, l\} \\ +\Gates & = & \{?throw, !move\} \\ +\Switches & = & \{t\xrightarrow{?throw, 1 <= d <= 6, D \mapsto d}m, \\ + & & m\xrightarrow{!move, T=1 \land l=(P1+D)\%5, P1 \mapsto l, T \mapsto 2}t, \\ + & & m\xrightarrow{!move, T=2 \land l=(P2+D)\%5, P2 \mapsto l, T \mapsto 3}t, \\ + & & m\xrightarrow{!move, T=3 \land l=(P3+D)\%5, P3 \mapsto l, T \mapsto 1}t\} +\end{array}$ + +\paragraph*{Farmer-wolf-goat-cabbage puzzle} +In another variant of this puzzle, when one of the items is eaten, the puzzle can reset, but it can also undo the last action. The $\mathit{!eaten}$ rule can have either effect. In Figure~\ref{fig:gg-fwgc-extended} shows this extension for the IOGG in five rules. The rules keep track of the last moved items. When an item gets eaten, the last move can be undone. \begin{figure}[ht] \begin{center} - \subfloat[The move cabbage rule]{\label{fig:start-bg-extended}\input{./img/c-fwgc-extended.tikz}}\hspace{20px} - \subfloat[The eaten undo rule]{\label{fig:c-fwgc}\input{./img/eaten-undo-fwgc.tikz}} + \subfloat[!eaten (undo)]{\label{fig:eaten-undo-fwgc}\input{./img/fwgc/eaten-undo-fwgc.tikz}} \hspace{20px} + \subfloat[?c]{\label{fig:c-fwgc-extended}\input{./img/fwgc/c-fwgc-extended.tikz}} \\ + \subfloat[?g]{\label{fig:g-fwgc-extended}\input{./img/fwgc/g-fwgc-extended.tikz}} \hspace{20px} + \subfloat[?w]{\label{fig:w-fwgc-extended}\input{./img/fwgc/w-fwgc-extended.tikz}} \\ + \subfloat[?n]{\label{fig:n-fwgc-extended}\input{./img/fwgc/n-fwgc-extended.tikz}} \end{center} - \caption{The extended graph grammar of the farmer-wolf-goat-cabbage puzzle in Figure~\ref{fig:gg-fwgc}} + \caption{The extended graph grammar of the farmer-wolf-goat-cabbage puzzle} \label{fig:gg-fwgc-extended} -\end{figure}\marginpar{Extended STS is ook nauwelijks weer te geven. Ik vraag me hier af ok ik niet gewoon de LTS moet geven, wellicht is die simpeler. De STS moet nu namelijk met variabelen de vorige posities van alle items bij gaan houden oid} +\end{figure} -\paragraph*{Extendability 4} -The system is extended to allow ordering multiple drinks of different types. The stimulus \\$?o(i,d_1,q_1,d_2,q_2,d_3,q_3)$ is used to order a quantity $q_n$ of drink $d_n$. The bar tab id is still given by $i$. Also, a customer can purchase the option of receiving 10\% discount on all ordered drinks for 50 euros (added to the tab). The stimulus given is $?\mathit{d}$ and the response is $!pd(b)$ where $b$ is the new balance. Figure~\ref{fig:gg-bartab-extended} shows the extended rules and initial graph. The $?p$ and $!pp$ rules have remained the same.\marginpar{Deze GG en STS zijn vrij lelijk} +The IOSTS keeps extra variables for the previous positions of the items and adds one switch relation that restores the items to their previous positions when an item gets eaten. +\vspace{5px} \\ +$\begin{array}{lcl} +\Locations & = & \{l_0, l_1\} \\ +\initialLocation & = & l_0 \\ +\LocationVariables & = & \{N,W,G,C,Np, Wp, Gp, Cp\} \\ +\initializationFunction & = & \{N \mapsto false, W \mapsto false, G \mapsto false, C \mapsto false,Np \mapsto false, Wp \mapsto false, Gp \mapsto false, Cp \mapsto false\} \\ +\InteractionVariables & = & \{\} \\ +\Gates & = & \{?n, ?w, ?g, ?c, !eaten, !done, !retry\} \\ +\Switches & = & \{l_0\xrightarrow{?n, \neg(N \neq G \land G=C)\lor(N \neq W \land W=G), \{N \mapsto \neg N, Np \mapsto N, Wp \mapsto W, Gp \mapsto G, Cp \mapsto C\}}l_0, \\ +& & l_0\xrightarrow{?w, N=W \land (N = G \lor G\neq C)\land (N = W \lor W\neq G), \{W \mapsto \neg W, N \mapsto \neg N, Np \mapsto N, Wp \mapsto W, Gp \mapsto G, Cp \mapsto C\}}l_0,\\ +& & l_0\xrightarrow{?g, N=G \land (N = G \lor G\neq C)\land (N = W \lor W\neq G), \{G \mapsto \neg G, N \mapsto \neg N, Np \mapsto N, Wp \mapsto W, Gp \mapsto G, Cp \mapsto C\}}l_0,\\ +& & l_0\xrightarrow{?c, N=C \land (N = G \lor G\neq C)\land (N = W \lor W\neq G), \{C \mapsto \neg C, N \mapsto \neg N, Np \mapsto N, Wp \mapsto W, Gp \mapsto G, Cp \mapsto C\}}l_0,\\ +& & l_0\xrightarrow{?w, N\neq W \land (N = G \lor G\neq C)\land (N = W \lor W\neq G), \{W \mapsto \neg W, N \mapsto \neg N, Np \mapsto N, Wp \mapsto W, Gp \mapsto G, Cp \mapsto C\}}l_1,\\ +& & l_0\xrightarrow{?g, N\neq G \land (N = G \lor G\neq C)\land (N = W \lor W\neq G), \{G \mapsto \neg G, N \mapsto \neg N, Np \mapsto N, Wp \mapsto W, Gp \mapsto G, Cp \mapsto C\}}l_1,\\ +& & l_0\xrightarrow{?c, N\neq C \land (N = G \lor G\neq C)\land (N = W \lor W\neq G), \{C \mapsto \neg C, N \mapsto \neg N, Np \mapsto N, Wp \mapsto W, Gp \mapsto G, Cp \mapsto C\}}l_1,\\ +& & l_1\xrightarrow{!retry,true,\{\}}l_0,\\ +& & l_0\xrightarrow{!eaten, (N \neq G \land G=C)\lor(N \neq W \land W=G), \{N \mapsto false, W \mapsto false, G \mapsto false, C \mapsto false\}}l_0, \\ +& & l_0\xrightarrow{!eaten, (N \neq G \land G=C)\lor(N \neq W \land W=G), \{N \mapsto Np, W \mapsto Wp, G \mapsto Gp, C \mapsto Cp\}}l_0, \\ +& & l_0\xrightarrow{!done, N \land W \land G \land C, \{N \mapsto false, W \mapsto false, G \mapsto false, C \mapsto false\}}l_0\} +\end{array}$ + +\paragraph*{Bar-tab system} +The system is extended to allow ordering multiple drinks of different types. Also, a customer can purchase the option of receiving 10\% discount on all ordered drinks for 50 euros, which is added to the tab of the customer. +\vspace{5px} +\begin{itemize} +\item $?o(i,d_1,q_1,d_2,q_2,d_3,q_3)$ is used to order a quantity $q_n$ of drink $d_n$ on bar tab $i$. +\item $?\mathit{d}$ is used to order the discount. +\item $!pd(b)$ process the discount where $b$ is the new balance. +\end{itemize} +\vspace{5px} +Figure~\ref{fig:gg-bartab-extended} shows the extended rules and initial graph. The $?p$ and $!pp$ rules have remained the same. \begin{figure}[ht] \begin{center} \subfloat[The initial graph]{\label{fig:start-tab-extended}\input{./img/start-tab-extended.tikz}}\hspace{20px} - \subfloat[The !pd rule with priority 1]{\label{fig:process_discount}\input{./img/process_discount-extended.tikz}}\\ - \subfloat[The extended ?o rule]{\label{fig:order-tab-extended}\input{./img/order-extended.tikz}}\hspace{20px} - \subfloat[The ?d rule with priority 0]{\label{fig:discount}\input{./img/discount-extended.tikz}}\\ - \subfloat[The extended !po rule]{\label{fig:process_order-extended}\input{./img/process_order-extended.tikz}}\\ + \subfloat[!pd (priority 1)]{\label{fig:process_discount}\input{./img/process_discount-extended.tikz}}\\ + \subfloat[?o (priority 1)]{\label{fig:order-tab-extended}\input{./img/order-extended.tikz}}\hspace{20px} + \subfloat[?d (priority 0)]{\label{fig:discount}\input{./img/discount-extended.tikz}}\\ + \subfloat[!po (priority 1)]{\label{fig:process_order-extended}\input{./img/process_order-extended.tikz}}\\ \end{center} - \caption{The extended graph grammar of the bar tab system} + \caption{The extended IOGG of the bar tab system} \label{fig:gg-bartab-extended} \end{figure} @@ -205,21 +198,39 @@ \subsection{Extendability} \label{fig:sts-bartab-extended} \end{figure} -\paragraph*{Extendability scan flow} +\paragraph*{SCRP} A recent extension on the protocol allows multiple accounts. While an account is not in state open, an idle account can be opened. This allows for a customer to scan his/her products, while another customer pays. Figure~\ref{fig:gg-fwgc-extended} shows the changes to the initial graph and the open account rules. Figure~\ref{fig:close-account-success-ext} shows the success response rule for closing an account: the order of closed accounts have to be kept, because the accounts have to be paid in that order. \begin{figure}[ht] \begin{center} \subfloat[The initial graph]{\label{fig:start-scrp-ext}\input{./img/start-scrp-extended.tikz}}\hspace{20px} - \subfloat[The open account success rule]{\label{fig:open-account-success-ext}\input{./img/account.open.success-extended.tikz}}\\ - \subfloat[The open account invalid rule]{\label{fig:open-account-invalid-ext}\input{./img/account.open.invalid_ss_on-extended.tikz}}\hspace{20px} - \subfloat[The close account success rule]{\label{fig:close-account-success-ext}\input{./img/account.close.success-extended.tikz}} + \subfloat[The open account success rule]{\label{fig:open-account-success-ext}\input{./img/scrp/account.open.success-extended.tikz}}\\ + \subfloat[The open account invalid rule]{\label{fig:open-account-invalid-ext}\input{./img/scrp/account.open.invalid_ss_on-extended.tikz}}\hspace{20px} + \subfloat[The close account success rule]{\label{fig:close-account-success-ext}\input{./img/scrp/account.close.success-extended.tikz}} \end{center} \caption{The extended graph grammar of Scanflow Cash Register Protocol} \label{fig:gg-fwgc-extended} \end{figure} -\section{Conclusions}\marginpar{conclusions per measurement, conclusions per case? General conclusions later} +\paragraph*{Model complexity increase} +\begin{comment} +1: +IOGG: +This extension reduces the distinct number of operators by 1 and introduces no new operands. The number of operator occurences has decreased by 1 and the number of operand occurences has grown by 10. +IOSTS: +The distinct number of operators has not increased and the distinct number of operands has increased by 1. The number of operator occurences has increased by 9 and the number of operand occurences has increased by 17. + +model complexity 1 +The volume of the IOGG has increased by 35.95. $n_1 = 8, n_2 = 18, N_1 = 23, N_2 = 113$ Volume is 136*4.70 = 639.20 +The volume of the IOSTS has increased by 130.28. $n_1 = 5, n_2 = 23, N_1 = 34, N_2 = 79$ Volume is 113*4.81 = 543.53 + +2: +IOGG: +\end{comment} + +\section{Conclusions} +\begin{comment} +\marginpar{conclusions per measurement, conclusions per case? General conclusions later} The simulation measurement in the boardgame example shows that not having a fixed specification leads to different behavior specified by the generated IOSTS. The translation of abstract stimuli and responses to the concrete stimuli and responses gives flexibility; an expected series of responses $!move(1) !move(1) !nextTurn$ can be translated from the concrete response $!move(1,2)$. However, this does give more work in the abstract to concrete stimuli/response translation. Also, the model does not reflect the specification precisely when using such a work-around. The redundancy measurement reveals an interesting result in the bar tab example. Here, the possible morphisms of the rules on the graph lead to more switch relations than when the IOSTS is created by hand. This effect is common: in a GG, it is easy to represent the actors and rules specifying the interaction between these actors. The result is a switch relation for each combination of customer and drink. This is not a problem as long as the size of the generated IOSTS is manageable by GRATiS. If the number of switch relations becomes too great, creating the smaller IOSTS by hand also becomes unmanageable. @@ -244,3 +255,4 @@ \section{Conclusions}\marginpar{conclusions per measurement, conclusions per cas \subsection{SCRP conclusions} The case study showed a real life example of a software system, succefully modelled as a GG. Here, the strength of behavioral rules is apparent: instead of state-transition thinking, the graph transformation rules allow each behavioral aspect of a software system to be modelled by one rule. This is most visible in the 'not signed on' error rule. This rule models the aspect of giving an error when a request is done in the signed off state, regardless of any other state the system is in. Restrictions of where this rule applies can be easily added, as shown with the exception made for the 'sign on' request. This shows that GGs are very useful when it comes to changing requirements: only few rules need to be adjusted to accomodate these changes. Another example is the request structure of the GG. The stimulus and expected response are automatically included for every system state. This again shows the strength of GGs; behavior is modelled once and tested in every system state. +\end{comment} diff --git a/Final-thesis/todo.txt b/Final-thesis/todo.txt index 645f503..da85aec 100644 --- a/Final-thesis/todo.txt +++ b/Final-thesis/todo.txt @@ -45,7 +45,6 @@ all-examples.tex measurements_on_examples.tex - Need to verify simulation/bisimulation (LTSmin, difficult) (6 hours) -- Need to conduct most measurements on the models (3 hours) - Draw conclusions per example (2 hours) conclusion.tex @@ -59,4 +58,7 @@ future-work.tex - add description of wild cards to groove visual desc - change ?GET rule in IOGG to mulitple rules with all vars sts uses -- remove unused vars from stimuli/responses in description \ No newline at end of file +- remove unused vars from stimuli/responses in description +- Specify the extension of the IOSTS of SCRP +- Move extended figures to appendices +- write scripts to measure halstead on sts definition and tikz \ No newline at end of file