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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 6<br />

Conclusions<br />

In this master thesis we introduced a systematic approach to combine a<br />

tool that provides abstraction technique and a <strong>model</strong> checker to improve<br />

<strong>efficiency</strong> <strong>of</strong> <strong>model</strong> <strong>checking</strong>. In short, our approach uses an existing tool to<br />

generate abstract <strong>model</strong>s for a <strong>model</strong> checker to verify. We hoped that the<br />

abstraction tool would help to reduce the <strong>model</strong> <strong>of</strong> the system being verified<br />

and thus <strong>model</strong> <strong>checking</strong> on that <strong>model</strong> would be more efficient. If this<br />

approach works, it will help to employ abstraction in <strong>model</strong> checkers without<br />

directly implementing the abstraction function in those <strong>model</strong> checkers.<br />

Nbac, PMC and Uppaal are tools involved in the implementation <strong>of</strong> our<br />

approach. Nbac is a <strong>model</strong> checker that has a built-in abstraction utility<br />

which is based on the theoretical framework <strong>of</strong> abstract interpretation. PMC<br />

and Uppaal are two <strong>model</strong> checkers aimed at real-time systems. We started<br />

the implementation <strong>of</strong> our approach by combining Nbac and PMC. Dueto<br />

the fact that PMC lacks in some important features such as Boolean variables<br />

and operators, logical operator OR, we had to switch our implementation to<br />

combining Nbac and Uppaal. Our approach is depicted by Figure 6.1.<br />

Of course, to do the <strong>model</strong> <strong>checking</strong>, an input <strong>model</strong> <strong>of</strong> the system is<br />

needed. Since Nbac is responsible for generating abstract <strong>model</strong>s, the input<br />

<strong>model</strong> must be specified in Nbac input language. Nbac input language is<br />

a low level language mainly consists <strong>of</strong> variable declarations and dataflow<br />

equations on variables. As a result, specifying an input system in Nbac specification<br />

language is a complicated job for verification engineers. Among<br />

three different ways to specify an input <strong>model</strong>, transforming a <strong>model</strong> <strong>model</strong>ed<br />

in PMC/Uppaal to an Nbac <strong>model</strong> is likely to be the most popular one.<br />

In Chapter 2, we have established a framework to do such transformation.<br />

It turned out that even when a transformation framework is available, the<br />

manual transformation is an error-prone process. A tool to take over that<br />

57

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

Saved successfully!

Ooh no, something went wrong!