ProB2-UI: Difference between revisions

(→‎Download: Release history is now in the Git repo)
 
(46 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== The ProB2 JavaFX Main Window ==
'''ProB2-UI''' is the new Java-based user interface for ProB. __NOTOC__
 
== Download ==
 
'''[[Download#ProB2-UI|Download the latest version of ProB2-UI here]]'''. See also the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history].
 
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source 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
[https://mediathek.hhu.de/watch/1c7946da-3042-423f-a1c3-06833f348ec2 video highlighting the core features] (also on [https://youtu.be/HqTlr6y-hwk YouTube]) on a model the from [https://gitlab.cs.uni-duesseldorf.de/general/stups/visb-visualisation-examples visb-visualisation-examples]:
 
<html>
<iframe width='570' height='321' style='width: 570px; height: 321px; border: 1px solid #ccc;' src='https://mediathek.hhu.de/embed/1c7946da-3042-423f-a1c3-06833f348ec2' frameborder='0' allowfullscreen></iframe>
</html>
 
== Paper/Citing ==
 
Paper: [https://link.springer.com/chapter/10.1007/978-3-030-85248-1_12 Springer Link], [https://www.researchgate.net/publication/353989368_ProB2-UI_A_Java-Based_User_Interface_for_ProB ResearchGate]
 
BibTeX citation:
 
<pre>
@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"
}
</pre>
 
== The ProB2-UI Main Window ==




Line 6: Line 63:
* In the left pane, the Operations view , showing the operations whose preconditions and guards are true in this state (the view also uses a blue circular arrow icon when an operation does not change the state);
* In the left pane, the Operations view , showing the operations whose preconditions and guards are true in this state (the view also uses a blue circular arrow icon when an operation does not change the state);
* In the middle the State View, containing the current state of the B machine, listing e.g., the current values of the machine variables;
* In the middle the State View, containing the current state of the B machine, listing e.g., the current values of the machine variables;
* In the right pane there are a variety of subviews, which can be activate:
* In the right pane there are a variety of subviews, which can be activated:
* The History of operations leading to this state (History).
** [[History_View|The History of operations leading to this state (History)]]
* The Project view
** [[Project_View|The Project view]]
* The Verification view
** [[Verification_View|The Verification view]]
* The Statistics view
** [[Statistics_View|The Statistics view]]
 
[[File:ProB2JavaFX_UI_Overview.png]].


== The ProB2 JavaFX Main Menu Bar ==
[[File:ProB2JavaFX_UI_Overview_New.png||1000px]]


The menu bar contains the various commands to access the features of ProB. It includes the traditional "File" menu with a sub-menu "Recent Files" to quickly access the files previously opened in ProB. Notice the commands "Open\Save", "Reopen\Save" and "Reopen"; the latter reopens the currently opened file and reinitializes the state of the animation and the model checking processes completely. The "About" menu provides help on the tool and includes a command to check if an update is available on the ProB website.
== 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:File.png|none]]
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.
[[File:Edit.png|none]]
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.
[[File:Formula.png|none]]
Here you can add formulas for visualization and open the history chart window.
[[File:Consoles.png|none]]
This submenu leads to two consoles, one Groovy, one B.
[[File:Perspectives.png|none]]
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.
[[File:View.png|none]]
This submenu allows you to adjust font and button size in the ProB2-UI.
[[File:Help.png|none]]
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.

Latest revision as of 15:58, 20 June 2023

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

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:

Paper/Citing

Paper: Springer Link, ResearchGate

BibTeX 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"
}

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.