ProB2-UI

Revision as of 10:12, 27 August 2021 by Fabian Vu (talk | contribs)

ProB2-UI is the new Java-based user interface for ProB.

Paper: https://www.researchgate.net/publication/353989368_ProB2-UI_A_Java-Based_User_Interface_for_ProB

Citation:

@InProceedings{prob2ui,
author="Bendisposto, Jens
and Gele{\ss}us, David
and Jansing, Yumiko
and Leuschel, Michael
and P{\"u}tz, Antonia
and Vu, Fabian
and Werth, Michelle",
editor="Lluch Lafuente, Alberto
and Mavridou, Anastasia",
title="ProB2-UI: A Java-Based User Interface for ProB",
booktitle="Formal Methods for Industrial Critical Systems",
year="2021",
publisher="Springer International Publishing",
address="Cham",
pages="193--201",
abstract="ProB2-UI is a modern JavaFX-based user interface for the animator, constraint solver, and model checker ProB. We present the main features of the tool, especially compared to ProB's previous user interfaces and other available tools for B, Event-B, and other formalisms. We also present some of ProB2-UI's history as well as its uses in the industry since its release in 2019.",
isbn="978-3-030-85248-1"
}

Download

Download the latest version of ProB2-UI here. See also the release history.

The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following these instructions.

Features

Compared to the original UI based on Tcl/Tk, this new UI has some unique new features:

  • Projects which store formal models, ProB preferences, and verification settings
  • Load Rodin models from Rodin workspaces (without having to export them within Rodin)
  • Managing and storing multiple trace files for a model, being able to replay all traces
  • MC/DC test-case generation
  • A view for managing LTL formulas for a model
  • Visualisation of models using VisB and SVG graphics
  • An integrated view for all dot-based graph visualisations (state space, machine hierarchy, formulas, projection diagrams, enabling graphs, event refinement hierarchy, ....)
  • An integrated view to access all table based statistics (event coverage, MC/DC coverage, read-write matrices, WD POs, ...)
  • A multi-language interface, currently providing English, French, German and Russian


We have developed a small video highlighting the core features (also on YouTube) on a model the from visb-visualisation-examples:

The ProB2-UI Main Window

By default the main window is split into three vertical panes (see below).

ProB2JavaFX UI Overview New.png

The ProB2-UI Main Menu Bar

The menu bar contains the various commands to access the features of ProB. It includes the menus

  • File,
  • Edit,
  • Formula,
  • Consoles,
  • Perspectives,
  • View,
  • Window and
  • Help
File.png

The File submenu allows you to create a new Project, open an existing project or a machine, open recent projects shown as list and/or clear the list of recent projects, close the ProB2-UI, save your project or reload the currently running machine.

Edit.png

The Edit submenu provides two ways to edit the current machine (either in the editor provided by the ProB2-UI or in the your operating systems standard editor) and allows to edit your general and global preferences by opening a seperate window.

Formula.png

Here you can add formulas for visualization and open the history chart window.

Consoles.png

This submenu leads to two consoles, one Groovy, one B.

Perspectives.png

The Perspectives submenu allows you to change the appearance of the main view. The default view is shown at the top and two additional perspectives (Seperated History and Seperated History and Statistics) are preset. By Detach Components the view can be shown in seperate windows. Load allows you to make your own perspective by providing an FXML file containing the views but be aware that this might ruin the ability to detach components.

View.png

This submenu allows you to adjust font and button size in the ProB2-UI.

Help.png

The Help submenu provides you with help about the ProB2-UI, information about the ProB2 UI, ProB2 kernel, ProB CLI and Java version used here and a way to report issues regarding the ProB2-UI.