25.12.2014 Views

On improving efficiency of model checking through systematically ...

On improving efficiency of model checking through systematically ...

On improving efficiency of model checking through systematically ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4. PMC does not support logical OR operator on invariants. We cannot also<br />

use AND and NOT to <strong>model</strong> OR on invariants. Since Nbac employs BDD<br />

structures to store Boolean expressions, text respresentations <strong>of</strong> those<br />

Boolean expressions are formed by logical AND,OR,NOT operators. The<br />

lack <strong>of</strong> this support in PMC makes it impossible to obtain an equivalent<br />

PMC <strong>model</strong> from an Nbac output <strong>model</strong>.<br />

Since the output Nbac <strong>model</strong> is already complicated in the sense that it<br />

contains a lot <strong>of</strong> locations, transitions and Boolean expressions, adding a<br />

number <strong>of</strong> locations and transitions to the <strong>model</strong> makes it extremely big<br />

in size. The practical result shows that PMC could not even initialize the<br />

data structure for the Fischer’s protocol consisting <strong>of</strong> two processes. The<br />

memory usage to initialize that <strong>model</strong> exceeds 2.2GB. Furthermore, the lack<br />

<strong>of</strong> support OR logical on invariant prevents us from verifying any systems.<br />

For those reasons, we had to turn our focus to Uppaal, which is more mature<br />

than PMC in terms <strong>of</strong> functionality.<br />

3.4.2 nbac2uppaal<br />

We also follow strictly the framework described in Section 3.3 to implement<br />

this tool. Figure 3.13 presents the input and output <strong>of</strong> the tool. The tool<br />

.xml file<br />

.ba file<br />

nbac2uppaal<br />

.q file<br />

Figure 3.13: Input and output <strong>of</strong> nbac2uppaal<br />

nbac2uppaal generates two file: .xml file and .q file. The .xml file contains<br />

the system <strong>model</strong> and the .q file contains the property to be verified. We<br />

test the functionality <strong>of</strong> this tool with a number <strong>of</strong> <strong>model</strong>s and it works<br />

properly for all cases we have tried it on.<br />

Note that in the resulting Uppaal <strong>model</strong>, there is no graphical information<br />

<strong>of</strong> the <strong>model</strong> because there is no such information in Nbac output<br />

<strong>model</strong>. Therefore, the <strong>model</strong> will be poorly placed and routed when we view<br />

it using the GUI version <strong>of</strong> Uppaal especially when the <strong>model</strong> contains too<br />

many items.<br />

34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!