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.

• Hytech [1] is an automatic tool for the analysis <strong>of</strong> embedded systems.<br />

HyTech computes the condition under which a linear hybrid system<br />

satisfies a temporal requirement. It was developed at Cornell University<br />

and improvements were added at University <strong>of</strong> California, Berkeley.<br />

Although <strong>model</strong> <strong>checking</strong> is successfully applied in the area <strong>of</strong> hardware<br />

and protocol verification, its use in s<strong>of</strong>tware engineering is limited. The<br />

most significant limitation <strong>of</strong> <strong>model</strong> <strong>checking</strong> in practice is the potential<br />

state space explosion when it is applied to moderate and large size systems.<br />

Section 1 <strong>of</strong> [16] provides with a simple example to exemplify the state space<br />

explosion problem. In order to tackle this problem, abstraction techniques<br />

have been sought to avoid exhaustive state space exploration. The general<br />

idea <strong>of</strong> abstraction is that the state space <strong>of</strong> the system is reduced to a<br />

smaller one, an abstract <strong>model</strong>, so that the verification is feasible. More<br />

precisely, the <strong>model</strong> checker will verify the abstract <strong>model</strong> rather than the<br />

original one, then the result obtained from verification on the abstract <strong>model</strong><br />

is concluded for the original <strong>model</strong>.<br />

A practical issue arising is that how we can employ abstraction technique<br />

into <strong>model</strong> checkers. A natural direction is to put abstraction technique into<br />

the <strong>model</strong> <strong>checking</strong> algorithm. This involves defining an abstraction function<br />

(to map concrete values to abstract values) suitable for the property to be<br />

verified, constructing the abstract <strong>model</strong> and relating the verification results<br />

to the behavior <strong>of</strong> the original (concrete) <strong>model</strong>[12]. This is not an easy<br />

task especially for real-time <strong>model</strong>s. Integrating abstraction technique into<br />

an existing <strong>model</strong> checker is even more difficult.<br />

Another possibility to employ abstraction in <strong>model</strong> checkers is to make<br />

use <strong>of</strong> existing technology, i.e to use a tool that provides abstraction function<br />

to generate abstract <strong>model</strong>s and then feed those <strong>model</strong>s into the <strong>model</strong><br />

checker under considering.<br />

This thesis reports the work <strong>of</strong> a master project, which was originally<br />

part <strong>of</strong> the larger project aimed at the theoretical and practical development<br />

<strong>of</strong> a verification algorithm for real-time embedded systems based on a<br />

combination between two tools Nbac and PMC:<br />

• Nbac is a <strong>model</strong> checker developed in Verimag, France to prove safety<br />

properties <strong>of</strong> synchronous programs. The highlight <strong>of</strong> Nbac is that it<br />

employs an abstraction technique to reduce the state space and thus<br />

scale up the size <strong>of</strong> systems that can be verified.<br />

• PMC is a <strong>model</strong> checker developed in TU Delft to verify fair-TCTL<br />

properties <strong>of</strong> real-time systems. Although the application area <strong>of</strong> PMC<br />

2

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

Saved successfully!

Ooh no, something went wrong!