Utiliser UML pour la programmation en C

Je développe un logiciel embarqué basé sur une spécification standard. Le logiciel est gros et j’ai besoin d’une conception de mon logiciel avant de commencer à coder. Le langage UML est un langage orienté object et pourrait constituer une solution, mais je ne sais pas comment l’utiliser pour les logiciels C.

Existe-t-il un document qui aide à utiliser UML pour la programmation en C? ou existe-t-il un autre langage de conception pour les logiciels c?

Oui, vous pouvez le faire, principalement pour deux raisons:

  • Vous pouvez réellement faire de la programmation orientée object avec C (bien que cela soit fastidieux et pas tout à fait conseillé), il existe quelques livres sur le sujet que vous pouvez lire.
  • Vous pouvez toujours utiliser des diagrammes de classes pour modéliser des structures de données et des méthodes statiques. Mais UML ne concerne pas seulement les diagrammes de classes: vous avez également des diagrammes d’états, des diagrammes d’interaction, des diagrammes de cas d’utilisation … Et ils sont également utiles pour la programmation structurée.

Eh bien, nous utilisons Enterprise Architect pour modéliser notre logiciel intégré bien que nous ne puissions pas générer le code. EA peut également générer du code C bien que nous l’utilisions parce qu’il se sent plus naturel combiné à UML. Vous pouvez l’essayer et voir si cela répond à vos besoins, ce n’est pas non plus coûteux. Il peut également procéder à une ingénierie inverse de votre code C, ce qui peut être une aide.

J’ai deux produits en tête qui pourraient vous aider:

  • LieberLieber Software Embedded Extension , basé sur EA et vous donnant une idée de UML et C ou

  • Eclipse Papyrus , qui supporte UML et SysML

Je ne suis pas un expert des logiciels intégrés, mais avez-vous recours à https://www.polarsys.org/ ? “PolarSys est un groupe de travail du secteur Eclipse créé par de grands acteurs du secteur et par des fournisseurs d’outils afin de collaborer à la création et au support d’outils Open Source pour le développement de systèmes embarqués.”

Il s’agit d’une plate-forme basée sur Eclipse dédiée aux logiciels embarqués. Il utilise Papyrus pour la modélisation UML / SysML et implémente le profil MARTE. “Papyrus est la solution PolarSys pour la modélisation SysML et UML. Il s’appuie sur la plate-forme Eclipse sous-jacente et sur d’autres offres basées sur Polarsys et Eclipse pour répondre aux besoins d’intégration du cycle de vie, tels que le C / C ++.”