G#

cancel
Showing results for 
Search instead for 
Did you mean: 

starUML ReverseEngineer bug

Hi,

I am sorry to only write in the forum when I find a bug, but it happened again I just started t ouse the Actor framework for LabVIEW and thought about how usefull would it be to see the UML diagrams. First of all, the diagram can be created for LvNative classes! Great, I thought it works only for G# classes, good work! But when I included the Actor.lvlib (the Actor framework) in the project things got messed up:

So, I have a LvNative class in a project.

- do reverse engineer -> works

- include the Actor.lvlib in the project

- do reverse engineer -> the reverse engineer LV window stops executing and stays on the screen. In the StarUML nothing happens.

- I remove the lvlib from the project

- do reverse engineer -> everithing works again

I use the latest G# and StarUML plugin with LV 2011 32bit, on Win7

To me it seems like that it doesn't like that there is a library, or maybe that the library has LV classes in it...

0 Kudos
Message 1 of 14
(12,279 Views)

Oh, and one more thing: When I try to Generate code, the protected methods in the StartUML become private methods in the LV project.

Message 2 of 14
(7,065 Views)

Hello Kormorbela!

I'm glad you report these things so that we can correct them!

I will try to see what is going on with .lvlibs and the reverse engineering process. I'll correct the private -> protected thing also.

Thanks for your report and for using G# StarUML Plug-In!

Andreas

Message 3 of 14
(7,065 Views)

Hi,

Another bug in G# Reverse Enginnering:

If I have a LvNative class, and a DataMember is I32 ARRAY, the data type is reverse engineered as STRING array.

The other way around (Generate Code) works fine:

STRING

  • -> STRING ARRAY
  • I32

  • -> I32 ARRAY
  • And I would also suggest a feature if you don't mind:

    When I generate code, the Method generated for a class is empty, and that's ok, but the defined parameters type and return type ("name(parameters):returnType") could be placed on the block diagram and connected on the connector pane...

    Of course this brings up many questions like how the connector pane should look like, what pattern to follow when connecting the pane, etc. But you can have a look at the FP FIX SubVI tool from Mark Balla. That handles these problems automatically. May it be incorporated, or used as a starting point?

    What do you think?

    0 Kudos
    Message 4 of 14
    (7,065 Views)

    Hello Komorbela!

    I am working on a new release and will add bugfixes for these things as well.

    The parameter type and returntype feature you suggest is very interesting and we will consider this for the next bigger release.

    Thanks for your bugreports and good ideas!

    Andreas

    0 Kudos
    Message 5 of 14
    (7,065 Views)

    Hello Komorbela!

    I have finished up my testing of your bug reports. The I32 array revererse engineering bug is now solved.

    It seems I can not replicate the "protected becomes private" method when generating code or the lvlib bug.

    Could you please check the version of G# framework and G# Star-UML plug and post it to me?

    I really would like to get to the bottom of theese bugs. Is there any chance you can make me a sample project with code that replicates the behaviour you are describing?

    Sincerly,

    Andreas

    0 Kudos
    Message 6 of 14
    (7,065 Views)

    Ok, so first the "lvlib" bug. Maybe it has nothing to do with lvlibs

    I created a project that had this bug, and just saved it and reopened before sending it to you to check if it's replicatable. And guess what... it just went fine.

    So I descided to start it again. I created the project again, but this time I used TortoiseHG source code control, and committed after every step

    You have to install TortoiseHG to be able to use the repository I give you.

    So, update the status of the project to the 3rd changeset:"Created protected incNum method with G# IDE."

    And follow the steps I have done manually:

    - Start StarUML 5.0.2.1570 in G# approach.

    - Reverse Engineer the project. (Success)

    - Add a Untitled 1.vi with Launch actor in it.

    - Open Untitled 1.vi

    - Inherit Main class from Actor.

    - Try reverse engineer with Include Dependencies turned ON.

    - Generation windows stops and stays open.

    Sorry to make it so complicated, but when I just reopened the project, the bug was gone.

    note: If you don't want to use TortoiseHG I include a zip about the mentioned state of the project.

    0 Kudos
    Message 7 of 14
    (7,065 Views)

    The following sequence also created the same problem:

    - Add a Untitled 1.vi with Launch actor in it.

    - Inherit Main class from Actor.

    - Start StarUML 5.0.2.1570 in G# approach.

    - Try reverse engineer with Include Dependencies turned ON.

    - Generation windows stops and stays open.

    0 Kudos
    Message 8 of 14
    (7,065 Views)

    About the "protected to private" problem:

    - I reverse engineered a StarUML file from the previously attached StarUML_RE_bug_FinalState project.

    - Open the UML. (UML attached)

    - Generate code from it into a newly created project!

    - The protected method became private.

    So I hope it helped.

    The versions of my tools:

    LV2011 11.0 32 bit

    G# framework: 1.4.4

    G# version: 1.5.0

    G# starUML plugin: 1.2.1

    OP: Win7 Professional Service pack1

    0 Kudos
    Message 9 of 14
    (7,065 Views)

    Hi Andreas,

    So, could you recreate the bugs? Were the instuctions helpful? Can I help in anything more?

    0 Kudos
    Message 10 of 14
    (7,065 Views)