Home - dice-project/DICE-Simulation GitHub Wiki

About the DICE Simulation Tools

The DICE Simulation Tool provides software developers with a quality-driven framework for developing applications that meet performance and reliability requirements.

The simulation and the performance assessment of applications allow the prediction of the behaviour of the system prior to the deployment. Consequently, software developers can configure, adapt, or optimise their applications to specific execution environments.

The modelling and evaluation of applications is integrated in a single tool-chain that guides the software developer through all the design and analysis phases.

To this end, we propose the DICE Simulation Tool. The DICE Simulation Tool covers all the steps of the simulation workflow (i.e., model, transform, simulate, retrieve results).

DICE Simulation Tool features

From the end user point of view, the DICE Simulation Tool provides three main functionalities that address the quatitative analysis of systems, in particular, performance and reliability:

  • The tool allows the annotation of UML diagrams with system quantitative properties (e.g., host demands, routing rates or workloads) and metrics. The annotations follow the standard MARTE UML profile, as well as the DAM profile. The UML diagrams considered are activity diagrams, sequence diagrams and deployment diagrams.

  • The tool allows to compute performance metrics (response time, throughput and resource utilization) on a UML scenario that represents a system execution. By UML scenario we understand the combination of an activity diagram plus a deployment diagram, or a sequence diagram plus a deployment diagram.

  • The tool allows to compute reliability metrics (MTTF, availability and reliability) on a UML scenario that represents a system execution.

In addition to the previous main functionalities, the tool also:

  • Allows modeling specific quantitative properties of Apache Hadoop, Spark, Storm and Tez applications. The DICE profile provides the annotations for introducing this modelling in UML diagrams. This functionality improves the annotation of UML diagrams for addressing specific big data applications.

  • Can perform what-if or sensitivity analysis for performance and reliability metrics. So, the tool allows the user to see multiple output results, i.e. quantitative metrics, in a user-friendly format, as a plot chart.

  • Transforms a UML scenario into a stochastic Petri net. The format of the produced Petri net can be analysable (PNML, GreatSPN) or only graphical (DOT). These Petri nets are in fact used by the tool for computing performance metrics, but also they are made available to the user.

Finally, other complementary functionalities of the tool for the end users are:

  • The tool allows tweaking the simulation parameters (accuracy and seed) for performance analysis. This is because the tool mainly uses the GreatSPN tool for computing metrics on the Petri nets, thus, the GreatSPN simulation parameters can be configured by our tool throug a user interface.

  • The tool allows stopping long run simulations when doing performance analysis, while useful results are presented. This is because some simulations may last for long time periods, depending on the parameters used. Our tool offers a simple user interface button to cut these simulations, while the results produced so far are presented.

  • The tool allows configuring and using simulators installed in remote computers: the GreatSPN tool can be running anywhere in the world since our tool provides a friendly user interface for remotely configuring and use it. Communication between remote computers and the DICE Simulation Tool happens in through a secure and encrypted SSH tunnel.

Before you start...

Using the DICE Simulation Tool

Quick Reference

Developer resources

Additional resources