Je n'ai jamais utilisé Papyrus, mais je viens de suivre un tutoriel à ce sujet.
La plus grande différence que je vois est que Papyrus semble être principalement un outil de modélisation UML. La génération de code est un "composant annexe" (Le terme exact de l'avant-dernière page de Un tutoriel sur l'utilisation de Papyrus pour les débutants (2010-10-01) .) Voici un Question StackOverflow sur la génération de code avec Papyrus ... ça a l'air compliqué. J'ai parcouru le forum et les didacticiels de Papyrus et je n'ai rien trouvé d'immédiatement utile concernant la génération de code.
UML est traditionnellement considéré comme une technologie de la phase de conception dans le processus de développement logiciel Waterfall. Ainsi, une fois le logiciel modélisé en UML, sa mise en œuvre est un processus distinct. Ce n'est pas le cas de QM.
QM, contrairement à Papyrus, n'est pas un outil de modélisation UML général ; il sert à modéliser les Statecharts UML dans le seul but de les compiler, au sein de l'outil, en code C ou C++ traçable. Comme vous le savez, QM est lié à QP, un framework de machine à états. QM construit le code qui utilise QP.
QM's est votre modélisateur et votre IDE. Votre code source final, à l'exception des bibliothèques externes, est généré à 100% par QM. Lorsque vous développez graphiquement vos diagrammes d'état UML, vous êtes censé écrire du code C ou C++ qui s'exécute lors des transitions vers/depuis vos états. Lorsque vous compilez, QM combine votre code écrit avec son propre code généré pour produire un fichier source que vous pouvez compiler immédiatement sans apporter de modifications supplémentaires.