Skip to content
D

DESUMA Wiki

DESUMA Software

DESUMA1.png The Discrete Event System, University of Michigan and Mount Allison University, or DESUMA, is a software and educational tool used to build, analyze and control models of Discrete Event Systems (DES) as finite-state automata (FSA). It consists of the integration between the UMDES library (a set of commands for DES operations), developed at the University of Michigan under Prof. Stéphane Lafortune, and the graphical environment for visualizing discrete event systems, called GIDDES (Graphical Interface for the Design of Discrete Event Systems), developed at Mount Allison University under Prof. Laurie Ricker. DESUMA allows the user to perform a variety of manipulations of discrete event systems modeled by FSA related to model-building, fault diagnosis, verification, control under full and partial observation, and decentralized control.

Continuous development of DESUMA is a joint effort between Mount Allison University (Prof. Ricker and her colleagues) and University of Michigan (Prof. Lafortune and his colleagues).

Note: UMDES commands are embedded within the DESUMA software. However, running commands from the command line is also possible. See UMDES section for more information in this regard.

DESUMA2

DESUMA2.png DESUMA2 is the latest software version made public in 2014. Notable changes from the previous DESUMA version include the FSA layout being done using J-Graph instead of GraphViz due to compatibility problems with the latest JAVA versions. Several GUI related enhancements were made, and known bugs in the underlying UMDES commands were fixed.

DESUMA and UMDES Beyond 2022

We do not expect to make changes to DESUMA and to UMDES in the future. Instead, we refer the users to our new open-source Python-based tool MDESops as well as to the other related tools of the DES community. An informative list of these tools can be found at Resources page of the IEEE CSS Technical Committee on DES. We appreciate all the feedback that we have received over the years regarding DESUMA and UMDES.

DESUMA Resources

Tutorial

DESUMA Software Download

  • Click this link to download the latest and/or older versions of DESUMA

UMDES

UMDES is a library of routines, written in C, for creating and manipulating discrete event systems modeled as FSA. In particular, many of the algorithms for the theory of supervisory control and from the theory of diagnosability of DES are implemented in UMDES. While the main commands in UMDES are embedded within DESUMA, users are still able to run these commands from the command line. For this reason, compiled UMDES commands are available for download.

Note: A slight source of confusion is that the names of the UMDES executables do not always exactly match the names of the same commands in DESUMA and DESUMA2 menus for UMDES.

UMDES Resource

Please go to the UMDES Software Library page for more information on downloading and using UMDES separately from DESUMA and DESUMA2.

UMDES21

UMDES21 is a library of routines, written in java, for verifying the opacity of discrete event systems modeled as FSA. In particular, current-state opacity, initial-state opacity, infinite-step opacity, and K-step opacity verification are implemented in UMDES21. The main commands in UMDES21 are embedded within DESUMA, and users are able to run these commands under the UMDES21 menu in DESUMA.

Input Reference

Current State Opacity Verifier

  • Input: 1) A graph to perform current-state opacity test on
    • Format: .fsm
  • 2) A state data file: a file that lists the names of all the secret states
    • Format: .states
  • Output: 1) "This fsm obeys current-state opacity"
  • 2) "This fsm violates current-state opacity"
    • "The violating states (in the observer) are…”

Initial State Opacity Verifier

  • Input:
  • 1) A graph to perform initial-state opacity test on
    • Format: .fsm
  • 2) An initial state data file: a file that lists the names of all the initial states, and their secrecy status
    • Format: .init
  • Output:
  • 1) "This fsm obeys initial-state opacity"
  • 2) "This fsm violates initial-state opacity",
    • "The violating states (in the observer of the reversed automaton) are…”

Infinite/K-Step Opacity Verifier

  • Input: 1) A graph to perform infinite/K-step opacity test on
    • Format: .fsm
  • 2) A state data file: a file that lists the names of all the secret states
    • Format: .states
  • 3) K value: infinite step(any input K<0), K-step(the specific value K>=0)
    • Format: integer
  • 4) Ultra fast mode: no Two-Way Observer generated; or
    • Fast mode: Two-Way Observer generated
  • Output:
  • 1) "This fsm obeys infinite/K step opacity"
  • 2) "This fsm violates infinite/K step opacity",
    • "The violating states (in the Two-Way Observer) are…”
  • 3) If “Fast Mode” is chosen, the Two-Way Observer will be generated in .fsm format under the directory /temp.

Format Reference

1) .fsm

  • Line1: <#of states>
  • Line2: <marked? 1(Y):0(N)> <#of transitions>
  • Line3: <observable? o(Y):uo(N)>

Example:

  • 4
  • state0 0 2
  • uo state1 uo
  • uo state2 uo
  • state1 0 2
  • a state3 o
  • state2 0 1
  • b state1 o
  • state3 1 1
  • a state2 o

2) .states

  • Line1:
  • Line2:

Example:

  • state4
  • state2

3) .init

  • Line1: <secret? 1(Y):0(N)>
  • Line2: <secret? 1(Y):0(N)>

Example:

  • state2 1
  • state3 0
  • state0 1