Hi Kessel,
Sorry for the answer delay but i was on holidays.
I'm the new maintainer of the C2UML component, for 3 months only.
Therefore i will try to treat your problem and answer your questions.
Le 27/07/2011 00:31, Topcased user list where issues are discussed a
écrit :
So, the questions came up on:
* how mature is the C2UML reverse engineering, what do I have to setup
to get it to work properly?
The module successfully reversed and generate as the same, the full code
base of the flight software for en experimental satellite of the CNES.
It is used daily in this project and another one near me, because all
the software conception is realized in UML (now was done with STOOD
previously). The UML model contains all the code base and allow the full
documentation delivered to the CNES thanks to Gendoc2.
Some reverse actions are made from newly created or modified code (out
of the UML editors). That code is tested, validated and then reversed
into the model with C2UML.
* can I exclude the reverse engineering of some code?
For this you need to explicitly remove the module or the file from the C
build options in Eclipse (Menu File > Properties - or right click on the
file - > C/C++ Build > Exclude resource from build, should be checked)
* how mature is the code generation, what does it all generate?
For our usage the generated code is expected to be identical (modulo
comments generation and declaration order) to the reversed code.
(Ok this should be accomplished only if your code is successfully
reversed first !)
The C compiler shall compile equally the reversed and the generated code.
* can I exclude the generation of some elements (e.g. variant handling)?
The generation takes all the UML classes in order to generate the
corresponding module, you should put the UML entities you don't want to
be generated out of the "src package" path. See the project options into
Menu Project > Properties > Topcased > C to UML > General Settings.
But excluding from generation a artifact that is defined or reference
into a class that will be generated in not currently possible.
* is there a notion of "external files" like files (like in Rhapsody),
like external legacy files, which need to be there for
usage-dependency, but should never be part of code genration?
The code generation process only generates the C modules which are
represented into the UML model and as said above, into the "src path"
defined in the project properties. For reverse, if you need to exclude a
specific file i've also explained it above. And for later use of this
file into the CDT environment, after the reverse, you should checkout
the exclude option.
Any other file which is not part of the UML model or the C source is not
reversed.
* since you state, that big companies are using Topcased, what and how
are they using Topcased in real projects, what are the drawbacks?
* so you are traversing to papyrus, will they also get the diagram
outline (e.g. the one that states [package] XYZ
* are you planning to implement the UML timing diagram?
I will let the TOPCASED technical committee answer to your questions
here :) i'm to young in the project !
Back to my actual problem, I get the following when RE'ing an
CANbedded stack. (Tried it with Topcased 4.3.0 and the 5.0RC3)
There first come some warnings then errors, and finally it bails out,
probably on the same file, over and over again.
From the message stack i can explain your problem with a missing type
declaration in your C code base. The reverse module can't find some
types nor in your code nor in any referenced library. Maybe you have
some external types that are referenced in the C source file but which
are not referenced in the Eclipse project ?
That's my primary analysis, but without more data i couldn't find out more.
I agreed that the exception stack is quite horrific, but this seems to
be the result of a second problem maybe caused by your "external files"
: excluding these files during the reverse may do disappear that part of
the error log.
I hope that this answer will help you to carry out a successful reverse.
If it's not the case, maybe direct mail exchange could be done to
provide me more data, let me know.
Also don't hesitate to fill in bugs or a features requests for the C2UML
component, we need more external feedback on this component in order to
improve it.
Regards,
Fabien
--
Fabien Toral
CS Systèmes d'Information
+33 5 67 69 68 10
_______________________________________________
Topcased-users mailing list
[email protected]
http://lists.gforge.enseeiht.fr/cgi-bin/mailman/listinfo/topcased-users