Qompass developer guide
The objective of this guide is to provide information about the architecture of Qompass designer and enable developers to
contribute to its development, i.e. it is not intend for people that want to develop applications with Qompass designer.
This guide is currently quite incomplete and should give a rough overview of the Qompass plug-ins.
In general, there is a separation between the generic transformation mechanisms and the model libraries defining
interaction components and container extensions. It is quite likely that a contribution only focusses on one of these two,
for instance on a model library for a dedicated interaction mechanism.
The transformation mechanisms consists of the following plug.ins:
- org.eclipse.papyrus.qompass.designer.feature This plugin contains the definition of the Qompass feature
- org.eclipse.papyrus.qompass.designer.core: The main Qompass plugin
- org.eclipse.papyrus.qompass.designer.validation: A set of validation rules that check the well-formedness of models,
for instance, whether a connection betwee ports if syntactically valid.
The validation plug-ins defines a set of EMF validation rules in form of Java code.
- org.eclipse.papyrus.qompass.designer.cpp: A plugin with support for C++, in particular (1) for the creation
and configuration of Eclipse CDT projects and (2) the interaction with the C++ code generator.
- org.eclipse.papyrus.fcm.profile: A plugin container the Flex-eware component model in form of a static profile
- org.eclipse.papyrus.codegen.cpp: C++ code generator and simple C++ view
In addition to the generation plugins, Qompass contains a set of model libraries that are
dedicated for a specific domain and/or interaction mechanisms.
- org.eclipse.papyrus.qompass.designer.modellibs.core: A set of basic interaction mechanisms and container rules as well
as port kinds along with the calculation of provided and required interface from the port type
and kind ("mapping rules").
- org.eclipse.papyrus.qompass.designer.modellibs.marte: A modeling library for MARTE, contains a set of FCM port kinds
suitable for MARTE (client/server and flow ports) and model elements for RtUnit and PpUnit.
A model listener performs automatic synchronization between MARTE and FCM stereotypes, e.g.
will automatically initialize the FCM port kind attribute with the kind that corresponds to
the MARTE stereotype and apply container rules associated with Rtunit and Ppunit.
- org.eclipse.papyrus.qompass.designer.modellibs.distribution: Distribution support via sockets
- org.eclipse.papyrus.qompass.designer.modellibs.tracing: Tracing support (container rule and interceptor) for OTF