- 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
What is it?
QM™ (QP™ Modeler) is a free, cross-platform, graphical UML modeling tool for designing and implementing real-time embedded applications based on the QP™ active object frameworks. QM™ provides best-in-class, intuitive diagramming environment and generates very compact C or C++ code that is 100% traceable from your design. QM™ is available for Windows, Linux, and Mac OS X.
What's special about it?
The main objective of QM™ is to empower your designs without standing in your way. The tool achieves this at several levels. At the high level, QM™ gives you complete control over all aspects of your design, both the logical structure and physical partitioning into directories and files. The tool respects your design decisions and lets you determine the generated code structure, directory names, file names, and elements that go into every file. You can mix your own code with the synthesized code and use QM to generate as much or as little of the overall code as you see fit. At the low level, QM™ respects your graphical layout as much as possible and will not re-attach or re-route connectors, resize nodes, or adjust text annotations. You will find that you don't need to "fight" the tool.
How does it work?
QM™ is designed as a strictly forward-engineering tool without reverse-engineering capabilities. This means that the code generated by QM™ is not to be modified in any way, because the changes won't be incorporated back into the model. However, the tool provides special mechanisms to very quickly locate any model element from any third-party editor by copying special comments placed in the synthesized code into the clipboard and pasting them into the tool.
QM™ is designed to support fast development cycle and is very friendly to version control systems (VCS). The QM model itself is stored in XML, so it is easy to maintain in a VCS. The code generator is careful not to touch files that have not changed (it always compares the generated file with the file on disk and replaces the latter only when the new file is different.) This avoids unnecessary churn of the code and avoids recompilations to keep the development cycle as short as possible.
How is it licensed?
The QM™ graphical modeling tool is free to download and free to use, 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 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).
Last updated: December 09, 2012