- QUICK START
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.
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.
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.
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.
The ultimate criterion for success of a modeling tool is the return on investment (ROI) you get from using it. As it turns out, the ROI of software modeling is lousy unless the models are used to generate substantial portions of the production code. For example, according to the UML Modeling Maturity Index (UMMI), without code generation UML can reach at most 30% of its potential, and this is assuming correct use of behavioral modeling (i.e., state machines). Without it, the benefits are below 10%. This is just too low to outweigh all the costs.
Consequently, the main philosophy of QM™ is to provide the most effective code generation at the lowest overall cost to you, whereas the term "cost" is understood here much more broadly than the cost of the tool itself and also includes: the learning curve, the added maintenance costs, as well as the hidden costs of "fighting the tool". QM drastically reduces the complexity of the code engineering process compared to other "high ceremony" tools on the market, such as IBM Rhapsody, Mentor Graphics Bridgepoint, Sparx Systems Enterprise Architect, or IAR VisualSTATE. The biggest difference of QM™ is that in QM you skip several layers of indirection (such as creating Platform Independent Models) and you work much closer to the code than in most other tools. Any code that you enter into your QM model (and every model regardless of the tool has a lot of textual information, such as actions executed by state machines) is directly in C or C++, depending on your initial choice of the QP framework type. Specifically, no indirection of an "Action Language" is used. Also, QM generates code for a specific framework (QP/C, QP/C++, or QP-nano). Again, this drastically simplifies code generation, because all the mechanisms you need inside state machine actions, such as generating events, posting or publishing events, requesting timeouts, etc. are provided by the external framework and don't need to be duplicated in the tool.
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: January 06, 2014