Feature Higlights

  • Graphical modeling based on the UML state machine subset
  • Automatic generation of production-quality C or C++ code
  • Automatic model verification during the code generation
  • Built-in support for QP/C, QP/C++, and QP-nano frameworks
  • 100% traceability from design to code
  • Ultimate flexibility in generated code design
  • Friendly to version control systems (VCS)
  • Intuitive diagramming environment for making clean, good-looking diagrams
  • Export of diagrams to EMF vector format for direct pasting into MS-Office and Open Office applications
  • Modern user interface with docking windows with the layout saved across sessions
  • State of the art editors for action code with syntax highlighting
  • Undo/redo of all model edits
  • Quick Clipboard-based navigation between the model and third-party tools
  • Support for user-generated model templates
  • Ready-made project examples and online tutorials
  • Available on Windows, Linux, and Mac OS X
  • Completely free to download and free to use
  • Some feature missing? Make a feature request

Welcome to the 21st century!

About QM™

What is it?

QM™ (QP™ Modeler) is a freeware graphical modeling tool for designing and implementing real-time embedded software based on the UML state machines and the lightweight QP™ active object frameworks. QM™ is available for Windows 64-bit, Linux 64-bit, and Mac OS X.

What is it good for?

QM™ has the following main goals:

What's special about it?

Compared to most other "high ceremony" modeling tools on the market today, such as IBM Rhapsody, Mentor Graphics Bridgepoint, Sparx Systems Enterprise Architect, or IAR VisualSTATE, QM™ is much simpler, code-centric, and lower-level. This characterization is not pejorative. It simply means that QM™ maps the design unambiguously and directly to code, without intermediate layers of "Platform-Independent Models" (PIMs), complex "Model-Transformations", or "Action Languages". All actions and guards executed by state machines are entered into the model directly in C or C++, depending on your initial choice of the QP framework type.

QM™ is a strictly forward-engineering tool without attempts to support round-trip-engineering of hand-crafted code. Instead, QM™ provides mechanisms to quickly go back and forth between the model and the generated code so that any changes can be conveniently applied directly to the model rather than the code.

Keeping the QM™ tool small and simple has many real benefits. Once you learn the architecture of the underlying QP™ frameworks, you can learn the tool quickly without constantly "fighting the tool". You can understand, and indeed regularly use most of the QM™ features.

How is it licensed?

The QM™ graphical modeling tool is freeware. It is free to download and free to use for any purpose, including commercial projects, but is not open source. During the installation you will need to accept a basic End-User License Agreement (EULA), which legally protects Quantum Leaps from any warranty claims, prohibits removing any copyright notices from QM, selling it, and creating similar competitive products.

QM™ uses the Qt toolkit under LGPL v2.1. Please refer to the LGPL Compliance Package for QM™ for more information how to obtain, install, and build the Qt toolkit from sources.

QM™ Tutorials

Related Blog Posts

Screenshot Gallery

QM user interface Code generation Copy-and-paste diagrams in EMF vector format

QM on dual monitors

The QM™ graphical modeling tool can handle massive models and works best in this case with a lot of screen real estate. The following screen shot shows QM™ on dual, full HD monitors (3840x1080 pixels total). QM™ remembers the most recently used arrangement of the dock windows and toolbars, so it is easy to customize it for any screen arrangement. In the screen shot below, you can see from the left: the QM online help, the Model Explorer, the Property Editor, the Bidrd's Eye view, the Log window (below), and the main MDI-window with diagrams and code on the right. (Click on the image below to see the original size).

Bug Reports and Feature Requests

QM™ Help

Last updated: July 16, 2014