The abstract model of your software is the centerpiece of the QM™ modeling tool. In fact, QM™ can be viewed as a multifaceted model editor, which allows you to create, view, and modify the abstract model and eventually to generate code based on this model.
A QM™ model is structured as a hierarchical tree↑, similar in concept to the hierarchical file system consisting of directories and files. The nodes of this tree are comprised of model items, many of which can contain other model items, similar to directories that can contain other directories and files.
A typical QM™ model has a hierarchical structure consisting of:
qpc
or qpcpp
) that provides you with foundation classes for derivation of your own classes, such as active objects, state machines, time events, etc. (NOTE: The QM™ Model is always based on one of the QP™ frameworks↑).The Model Item can be configured by the Model-Specific Property Sheet.
The Model Properties are as follows:
The first item of every QM™ model is the QP framework item, which is the main enabler for automatic code generation and also provides the foundation classes for derivation of your own classes, such as state machines, active objects, time events, etc.
The QP Framework names inside QM™ are abbreviated compared to their names in the PSiCC2 book↑ and other QP documentation↑. The following table provides the mapping:
QM Framework Item Name | QP Framework type |
---|---|
qpc | QP/C↑ |
qpcpp | QP/C++↑ |
The qpc, qpcpp model item contains a quite detailed and documented model of the selected QP™ framework↑, which you can use as a quick reference. For instance, you can check the signatures of various functions, macros, etc. You can also copy-and-paste the provided code examples into your own code anywhere in the editable parts of the model (see also Working with Code Editors).
As most software frameworks, the QP™ frameworks use the basic concepts of encapsulation (classes) and inheritance as primary mechanisms for customizing, specializing, and extending the framework to a particular application.