[Problème]Génération de code - state machine

Questions / Réponses sur l'utilisation d'Enterprise Architect

[Problème]Génération de code - state machine

Messagepar Heero_91 » Jeu 8 Avr 2010, 11:20

Bonjour,

je viens d'arriver en stage dans une entreprise dans le cadre de mon stage de fin d'études en électronique. On m'a demandé d'utiliser entreprise architect et d'essayer de générer du code source en utilisant cet outil et une machine à état (le logiciel n'est utilisé que par moi dans l'entreprise pour le moment). Alors j'ai lu pas mal de choses sur ce logiciel, notemment qu'il fallait que le diagram se trouve dans une classe.

Alors c'est ce que j'ai essayer de faire, je me suis créer une classe Personne, avec dedans des attributs de base (Age, nom, prénom) et 3 méthodes. J'ai ensuite créer mon diagramme d'état dans la classe, fait un état initial naissance, un état enfant, adulte et l'état final mort. Le problème c'est que quand je génère le code de la classe Personne, je n'ai aucune ligne en rapport avec mon diagramme, et même aucune ligne qui relate mes expressions OCL ... La je bloque, je tourne en rond. J'ai envoyer un mail au support de sparx, mais pas de nouvelle pour le moment.

Si vous pouviez m'aider pour débuter ce serait super sympa (un tuto, un exemple, une explication, je prends tout ce que vous pouvez m'offrir :) ).

Merci

Heero_91
Heero_91
 
Messages: 5
Inscrit le: Jeu 8 Avr 2010, 11:14

Re: [Problème]Génération de code - state machine

Messagepar Yves » Ven 9 Avr 2010, 13:37

Bonjour Heero_91,

as tu vu la page suivante du guide EA : http://www.sparxsystems.com/uml_tool_gu ... achin.html

Elle précise exactement le code généré pour un state diagram. Tu as également un exemple de code qui est fourni en Java. Il n'y a notamment pas de prise en compte des contraintes OCL.

Tu devrais donc retrouver une énumération qui contient tes états, une énumération qui contient tes transitions et puis les attributs et opérations indiqués.
Yves
 
Messages: 59
Inscrit le: Mer 10 Sep 2008, 12:01

Re: [Problème]Génération de code - state machine

Messagepar Heero_91 » Ven 9 Avr 2010, 13:50

Après moult recherches, j'ai trouvé quelques trucs!

Déjà pour la génération de code en C il faut appliquer l'option "oriented object". Ensuite je comprends bien le problèmes des contraintes OCL et à la limite cela m'arrange (l'OCL c'est pas mon dada!)

Mais moi, ce que je voudrais faire, c'est créer du code sur mes états (et puis un tout petit peu aussi sur mes transitions :) ) pour que la génération corresponde vraiment à ce que je recherche, mais la je bloque! Il y a plein d'options, plein de champs à remplir (ou pas) ... je suis un peu perdu au milieu de tout ce tralala :S

J'ai trouvé un lien ou l'on a une explication vidéo, mais je n'ai pas le son au travail, donc impossible à regarder. (le lien, au passage http://www.sparxsystems.com/resources/demos/75_overview/index.html)

Personne ne génère de code avec EA ici?
Heero_91
 
Messages: 5
Inscrit le: Jeu 8 Avr 2010, 11:14

Re: [Problème]Génération de code - state machine

Messagepar Heero_91 » Lun 12 Avr 2010, 14:04

Je vais revenir sur mon sujet, histoire de dire ou j'en suis et précisé mes attentes ...

J'ai été capable de générer du code C, avec des transitions. Je suis un peu embetté par le "orienté objet" que j'ai du choisir car mon code est normalement pour l'embarqué, et ce n'est pas très cool les malloc en embarqué (pour ne pas dire pas cool du tout :( )

Maintenant ce que j'aimerais c'est ajouté du code à mes états, et donc un comportement. Et ça, je n'y arrive pas, et c'est la ou j'ai besoin de votre aide. De même j'essaye de trouver comment je pourrais faire pour implémenter directement dans la génération le fait d'appeller certaines fonctions via des threads, mais la pareil, je bloque à mort :(

Merci d'avance de votre aide qui sera je suppose plus que précieuse. :)
Heero_91
 
Messages: 5
Inscrit le: Jeu 8 Avr 2010, 11:14

Re: [Problème]Génération de code - state machine

Messagepar Heero_91 » Mar 13 Avr 2010, 10:46

Alors update du jour, si il y a des intéressés ...

Si vous voulez mettre du code source sur un état (donc du comportement) il faut créer une opération attachée à votre état. Choisir le type (Do, Entry ou Exit) et mettre le code source dans Behavior. (n'oublier pas de cliquer sur save!)

Maintenant je ne suis pas super satisfait de EA, qui je trouve est assez mal documenté et au sein duquel on peut facilement perdre le fil ...

Moi ce qui m'intéresse maintenant c'est le problème d'appel d'état par gestion de thread. Je ne sais pas du tout si EA est capable de proposer une transition qui me permette de faire ça. Si c'est le cas je suis plus qu'intéressé par la réponse, parce que c'est franchement un truc qui pourrait servir!

Aussi si vous avez des info quand au comportement global de la machine à état, c'est à dire sur comment elle peut changer son "CommandType" de entry vers do ou exit (ou une autre transition) je suis plus qu'intéressé parce que j'ai le code source généré sous les yeux et je ne comprends toujours pas comment ça fonctionne à ce niveau.
Heero_91
 
Messages: 5
Inscrit le: Jeu 8 Avr 2010, 11:14

Re: [Problème]Génération de code - state machine

Messagepar Tony » Ven 16 Avr 2010, 14:07

Je considère EA comme l'un des meilleur outil de modélisation.

Malheureusement, pour générer du code en langage C pour des machines d'états (c'est-à-dire non OO) , c'est une autre histoire.

Je t'invite à tester l'outil suivant qui est limité à 8 états en version démo...
Il sait exploiter les diagrammes d'états EA.
http://www.sinelabore.com/Main/Main.html

Pour finir, je n'ai pas encore réussi à générer du code d'un diagramme d'activité avec l'option "Langage C".
En C++, ça semble correct.
Mais en C, rien n'est généré.

Moi, j'aimerai bien savoir générer du langage C (et sans ++) à partir d'un diagramme d'activité (ou de séquence) réalisé sous EA...
Tony
 
Messages: 2
Inscrit le: Jeu 21 Jan 2010, 18:24

Re: [Problème]Génération de code - state machine

Messagepar Heero_91 » Ven 16 Avr 2010, 15:03

J'étais dans le même cas de toi et après vérification avec mon chef de projet on a décidé de changer d'outils et de prendre quelque chose de bien plus complet que EA au niveau technique, à savoir PragmaDev. Je ne sais pas combien il coûte, je pense que je préfère ne pas le savoir pour le moment, mais il répond très bien aux problématiques de l'électronique embarquée (compatible POSIX, entre autre, et donc RTEMS) et permet même de faire de la simulation, voir du débug il me semble (je n'en suis pas encore là, j'ai eu le soft seulement ce matin, pour le moment je découvre :) ).

Le gros gros avantage c'est aussi qu'il a un tuto complet, bien fait en plus. Par contre pas de modélisation aussi propre qu'avec EA, je pense qu'il est impossible d'écrire des spec avec ... Mais ça me semble logique en même temps et ne me choque pas plus que ça!

Maintenant si tu veux vas sur le site de sparx, j'ai posté un sujet sur leur forum (il faut savoir parler anglais un minimum, ou connaitre quelqu'un qui s'en sort bien) par rapport à la génération de code en C pour machine à état. Un mec super sympa m'a proposé de m'aider, j'ai eu un peu de contacts avec lui, essaye de voir si il peut t'orienter! Sinon tu peux aussi t'intéresser à SMC http://smc.sourceforge.net/ il m'avait conseillé d'utiliser ça et EA si je voulais, mais je ne comprenais pas bien comment ceci fonctionnait et même je dois dire que chez moi SMC ne semble pas fonctionner :S

Voilà, tiens moi au courant si jamais tu arrive à faire quelque chose (ou pas) ça pourrait aussi m'être utile par la suite!
Heero_91
 
Messages: 5
Inscrit le: Jeu 8 Avr 2010, 11:14


Retourner vers Forum général

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 7 invités

cron