Presentation Open Access

Modeling with Mocking

Stoel, Jouke; Storm, van der, Tijs; Vinju, Jurgen

Writing formal specifications often requires users to abstract from the original problem. Especially when verification techniques such as model checking are used. Without applying abstraction the search space the model checker need to traverse tends to grow quickly beyond the scope of what can be checked within reasonable time.

The downside of this need to omit details is that it increases the distance to the implementation. Ideally, the created specifications could be used to generate software from (either manually or automatically). But having an incomplete description of the desired system is not enough for this purpose.

In this work we introduce the REBEL2 specification language. REBEL2 lets the user write full system specifications in the form of state machines with data without the need to apply abstraction while still preserving the ability to verify non-trivial properties. This is done by allowing the user to _forget_  and  _mock_ specifications when running the model checker. The original specifications are untouched by these techniques.

We compare the expressiveness of REBEL2 and the effectiveness of _mock_ and _forget_ by implementing two case studies: one from the automotive domain and one from the banking domain. We find that REBEL2 is expressive enough to implement both case studies in a concise manner. Next to that, when performing checks in isolation, mocking can speed up model checking significantly.

Files (75.0 MB)
Name Size
Modeling_with_Mocking_Pres_Jouke_Stoel.mp4
md5:8471647ee3149f9fba7c8d8832accf5c
75.0 MB Download
40
16
views
downloads
All versions This version
Views 4040
Downloads 1616
Data volume 1.2 GB1.2 GB
Unique views 3333
Unique downloads 1616

Share

Cite as