QM доступен для Windows, Linux и macOS.
Основные цели инструмента моделирования QM™:
- чтобы помочь вам разбить ваше программное обеспечение на управляемые событиями компоненты, называемые активными объектами;
- чтобы помочь вам графически спроектировать иерархические конечные автоматы, связанные с этими активными объектами, и
- автоматически генерировать код производственного качества, полностью отслеживаемый с вашего дизайна.
Основными целями разработки QM™ являются простота и минимизация необходимости «борьбы с инструментом». По сравнению с большинством других инструментов моделирования «высокой церемониальности», представленных сегодня на рынке, QM™ намного проще, ориентирован на код и относительно низкоуровневый. Эта характеристика не уничижительна. Это просто означает, что QM™ недвусмысленно и напрямую отображает проект в код C или C++, без промежуточных слоев «независимых от платформы моделей» (PIM), «моделей, специфичных для платформы» (PSM), сложных «преобразований моделей» или «Языки действия». Все действия, выполняемые конечными автоматами, заносятся в модель непосредственно на языке C или C++.
Как и большинство других инструментов, способных генерировать код, модели, которые вы создаете с помощью QM™, основаны на платформе, управляемой событиями. Это связано с тем, что такая платформа предоставляет четко определенные «точки расширения платформы», предназначенные для настройки платформы в приложения, которые, в свою очередь, предоставляют четко определенные правила для создания кода.
Однако большая часть простоты QM™ обусловлена тем фактом, что он поставляется со встроенным семейством фреймворков QP™ (QP/C, QP/C++ и QP-nano), а не поддерживает неограниченное число еще не определенных фреймворков и языков программирования.
Примечание
QM™ предполагает определенную общую архитектуру вашего приложения, которая сочетает объектную ориентацию с конкретной моделью параллелизма, известной как активные объекты (также известные как «актеры»). В этой архитектуре программное приложение состоит из взаимодействующих активных объектов, управляемых событиями, которые в совокупности обеспечивают желаемое поведение.