Aide à la définition de l'architecture d'un logiciel
Bonjour,
J'ai besoin d'aide et de conseil pour mon développement actuel.
Je me suis lancé pour développer une STAN (Daw), l'idée est qu'elle soit multi-platforme, mais surtout implémentable dans un système embarqué à l'avenir. Ainsi, pour me "simplifier" la tâche, j'ai choisi le C comme langage principale.
Mais, puisque mon premier objectif est de développer l'application sous Windows avec des fenêtres "esthétiques", j'ai choisi QT comme bibliothèque. Cela implique d'utiliser le C++. Cette idée ne me disconvient pas à partir du moment que cela servira d'interface, sans affecter, a priori, le moteur du logiciel qui sera en C.
Je suis cependant face à des questionnements quant à l'interfaçage du GUI et du moteur du logiciel.
Je ne suis pas un développeur pro, mais amateur, avec une bonne connaissance du développement C en mode console, mais sais aussi développer en C++, mais je n'ai jamais développé d'application avec fenêtre, du coup, j'ai dû mal à me représenter les choses, je veux dire : 1) définir l'architecture sous forme de diagramme de cette séparation GUI - moteur, et 2) concrètement, comment répondre à une action utilisateur une fois que le GUI passe la main au moteur.
Je sais créer des API en C et C++, mais du coup, comment se passe les transitions GUI - moteur (en supposant QT) ?
Est-ce que quelqu'un pourrait me donner des conseils sur une telle architecture logiciel (des exemples précis serait plus que bienvenus) ?
Je précise que ce n'est pas un développement "commercial", pour moi et peut-être diffuser gratuitement sous forme oppen-source et j'ai du temps à y consacrer...