Author Topic: UML Plugin  (Read 60170 times)

Offline Ceniza

  • Developer
  • Lives here!
  • *****
  • Posts: 1441
    • CenizaSOFT
Re: UML Plugin
« Reply #15 on: December 18, 2008, 06:40:43 pm »
Speaking of which, I've also been looking for a plugin that lists you the include chain for a file, it'd be very useful :) (hint: The command "CPP -M[M] file" does it, but it needs to keep track of include dirs)

I was able to produce such output with my preprocessor library, for which I also wrote a plugin. You feed it with g++'s defines and include dirs, and it'll do all the preprocessing stage. From this process you could extract the "include chain". I did it when I was "debugging" it. I even wrote a new string class to speed up the process (I also wrote an article of the whole design and benchmarks and put the link somewhere in the forums). I'm sure the library needs more testing. At least the tests I ran produced the same output as g++.

I could arrange a source download if you want to check it out. I also have the documentation of the library and a document explaining the design (this one is in Spanish, but that wouldn't be a problem for you :wink:).

Offline ethicalstar

  • Multiple posting newcomer
  • *
  • Posts: 12
Re: UML Plugin
« Reply #16 on: December 18, 2008, 09:45:05 pm »
Its in planning phase! I like to see UML diagrams generation directly from codeblocks.

Yes, the generating of UML diagrams from C++ source code would be a very important feature.

Do, you think it is worth it to plan to generate C++ code from UML diagrams?

Tim S

Edit: I think Umbrello an KDE UML program is also worth checking out.

http://en.wikipedia.org/wiki/Umbrello_UML_Modeller
http://uml.sourceforge.net/index.php

Gaphor is written in Python so could be not worth checking out.
http://gaphor.devjavu.com/
http://www.ohloh.net/p/gaphor

Code
Software    Licence     Language    Output Format   Widget Toolkit
Umbrello    GPL         C++         XML/XMI         KDE
UML Pad     GPL         C++         XML             wxWidgets
BOUML       GPL         C++         ??              Qt
Gaphor      GPL         Python      ??              GTK+


Hi stahta01!
   Nice info.. I also think that Umbrello is great. Similarly BOUML but to be economic with dependencies in codeblocks, i think it is better to use something that uses wxWidgets ( although i actually prefer GTK+) . I will wait for your reply and if we decide,  we can start trying UML Pad...


Offline ethicalstar

  • Multiple posting newcomer
  • *
  • Posts: 12
Re: UML Plugin
« Reply #17 on: December 18, 2008, 09:46:18 pm »
Hi everyone!
    I just looked the whole site for a  uml plugin development in codeblocks. It is not under development. Is anyone interested to join me and do it?
I am new to codeblocks so i dont know abt plugin development. If anyone could help me with plugin creation docs, it would be nice..

tnx.

I am interested in helping out on this project.

I have not created an Plugin myself, but have compiled the default plugin template and Compile Code::Blocks from source on Windows.

Tim S

PS: I am trying once more to get UML Pad to compile and link to Unicode wxWidgets.


Gr8!!! We can try UML pad...

Offline dje

  • Lives here!
  • ****
  • Posts: 683
Re: UML Plugin
« Reply #18 on: December 18, 2008, 10:18:42 pm »
There is also Class Builder:
http://members.lycos.nl/JimmyVenema/ClassBuilder/ClassBuilder.htm
It is developped in C++, targets C++ and is released under the the zlib/libpng License

Look(ed?) quite promising and can reverse C++ project (not perfect but good).

Dje

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: UML Plugin
« Reply #19 on: December 19, 2008, 06:23:25 am »
Gr8!!! We can try UML pad...

I am still working on Unicode version of UML Pad under wxWidgets 2.8.
I have gotten it to compile with wxWidgets 2.9 Unicode, but 2.8 needs more changes.

Update: The UML Pad uses std::string instead of wxString; I need to convert it to use wxString.

Tried converting for 5 try; it appears that I succeeded, but more testing is needed.

Tim S
« Last Edit: December 24, 2008, 01:20:48 am by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: UML Plugin
« Reply #20 on: December 24, 2008, 01:25:24 am »
I need added to project https://sourceforge.net/projects/umlblocks/ so I can submit this UMLPad Unicode version for 2.8 wxWidgets.

Edit: It is being complied as a standalone exe seperate from the Code::Blocks exe.
I have no idea how to put it into a C::B plugin and I not sure we should till we know more or at least I know more about Code::Blocks Plugins.

I suggest we start with a small C::B plugin that converts C++ into an XML file that can be displayed inside of our Unicode UML Pad as an class diagram.

I suggest cbUmlPad as the exe name of our Unicode UML Pad. I also suggest that we decide on an standard class name prefix; something like "umlb" short for UmlBlocks.

Tim S
« Last Edit: December 24, 2008, 07:35:39 am by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: UML Plugin
« Reply #21 on: December 24, 2008, 07:48:11 am »
Info I learned converting UML Pad to Unicode.

std::string does not support UTF16.
So, I assumed ASCII or UTF8; this is NOT really valid, but should mostly be true.

How to convert to wxString from std::string.
string(variableName.mb_str())

How to convert to std::string from wxString.
wxString(variableName.c_str(),wxConvUTF8)

What wxg prefix means on files in UML Pad; means wxGlade the IDE used to create it.

wxWidgets 2.9 defaults to basing wxString on std::string or std::wstring.
To turn this off set wxUSE_STD_STRING to 0 in setup.h; this make wx2.9 more like wx2.8.
Also, makes it harder to get UMLPad to compile, but I was getting better/different compile errors using wx2.9 with wxUSE_STD_STRING=0.

Tim S

C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline jfouche

  • Multiple posting newcomer
  • *
  • Posts: 28
Re: UML Plugin
« Reply #22 on: December 25, 2008, 08:13:30 pm »
Hi
How to convert to wxString from std::string.
string(variableName.mb_str())
Well, I always use utf8_str() :
Code
string(variableName.utf8_str().data());
I think it is easier to read, but I don't know if the result is different.
--
Jérémie

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: UML Plugin
« Reply #23 on: December 26, 2008, 06:15:28 am »
FYI:

I have finished Upgrading UMLPad to Unicode.

I uploaded it to
https://picmicroproject.svn.sourceforge.net/svnroot/picmicroproject/Tools/CASE/cbUmlPad/

Note: The BMP Files were not uploaded, so they are needed from the Original site.

Edit: Will move it to https://sourceforge.net/projects/umlblocks/ in a few days.
I just noticed that I was added to access for umlblocks an hour ago.
I plan to read up about how to do SVN Admin first, I think I might not have done it right on my picmicroproject site.

Tim S
PS: I am upgrading my computer, if all works well will be back tomorrow. But, if I goof up could be days.
« Last Edit: December 26, 2008, 08:32:02 am by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: UML Plugin
« Reply #24 on: December 30, 2008, 08:36:58 pm »
I am planning on Uploading cbUmlPad to https://sourceforge.net/projects/umlblocks/ today.
Tim S

I have moved it under a branch; since I am guessing the final project will be little or nothing like UmlPad.

http://umlblocks.svn.sourceforge.net/viewvc/umlblocks/branches/cbUmlPad/
« Last Edit: December 30, 2008, 09:14:10 pm by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: UML Plugin
« Reply #25 on: January 02, 2009, 05:54:43 am »
I have looked and the best Open Source project to get "reverse engineering" code to convert C++ to UML; still seems to be Umbrello in my opinion. Note, this is just based on project description. I plan know to look at the code of the Umbrello project. Tim S

http://uml.sourceforge.net/feature.php
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: UML Plugin
« Reply #26 on: January 02, 2009, 04:37:53 pm »
http://uml.sourceforge.net/feature.php
I personally work a lot with BoUML. It's really working very well - including reverse engineering. But: It's QT.

So... I believe making a C::B plugin out of UMLPad will be enough work already... don't worry so much about other "tools" have nicer features etc... An UML tool can be quite simple and already really powerful.
« Last Edit: January 02, 2009, 04:39:46 pm by MortenMacFly »
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: UML Plugin
« Reply #27 on: January 02, 2009, 08:48:51 pm »
http://uml.sourceforge.net/feature.php
I personally work a lot with BoUML. It's really working very well - including reverse engineering. But: It's QT.

So... I believe making a C::B plugin out of UMLPad will be enough work already... don't worry so much about other "tools" have nicer features etc... An UML tool can be quite simple and already really powerful.

While, I agree with what you said.

The project main objective is to convert C++ to an UML diagram; I just hope to use UMLPad for some display code.

I am liking Umbrello better than BoUML because it output is an XML file and the project is in SVN.

My second choice for code to do "C++ to an UML diagram" is the BoUML project.

Once, we figure out how to convert C++ to UML; then, we can start on displaying the UML diagram in Code::Blocks. Last, we can work on Editing the UML diagram and saving the results

Tim S
« Last Edit: January 02, 2009, 08:51:38 pm by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline iw2nhl

  • Multiple posting newcomer
  • *
  • Posts: 116
  • BASIC, C, C++, Qt, bash
Re: UML Plugin
« Reply #28 on: January 19, 2009, 11:17:06 pm »
Hi!
I just want to add another UML software that I used for over a year: ArgoUML.
http://argouml.tigris.org/

It's written in Java (with BSD Open Source License), but may be worthwhile to look at it: it has a lot of features, supports all 9 UML 1.4 Diagrams and it's stable.
A nice feature it has is a dynamic list of "critics": while you draw your diagram, it gives you a list of possible improvements or missing things.
Moreover it supports import/export of XMI files (standard XML file format for UML Tools).
Features list: http://argouml.tigris.org/features.html

Being written in Java, you can also run it from your browser using Java Web Start (see main page for instructions).

Good luck for your plugin!

Alessandro


Offline joubertdj

  • Multiple posting newcomer
  • *
  • Posts: 120
Re: UML Plugin
« Reply #29 on: January 24, 2009, 12:23:43 am »
I am planning on Uploading cbUmlPad to https://sourceforge.net/projects/umlblocks/ today.
Tim S

I have moved it under a branch; since I am guessing the final project will be little or nothing like UmlPad.

http://umlblocks.svn.sourceforge.net/viewvc/umlblocks/branches/cbUmlPad/

The latest SVN source for those interested is located at: https://umlblocks.svn.sourceforge.net/svnroot/umlblocks