Next
Previous
Contents
The KlassModeler is a tool for visually creating and documenting classes. It
is not unlike other UML design tools except for four major differences:
- It does MUCH less. This is mostly because I'm not interested in 90% of
UML. I just want to be able to draw my classes and document them.
I don't like having lots of documentation in my header files, so this is a
better place for me to see it.
- It generates code. I think there are some UML tools out
there that do this, but they tend to generate it with lots of special comments
that tell the tool where things are and how to re-write the files and all
that. The KlassModeler is much less sophisticated, it just looks for the
"Class ClassName" token and goes from there.
- It reads existing C++ header files. You can point it to a header file and it
will read it in and create a class diagram.
- HTML Documentation. It spits out a set of HTML pages that puts all your
documentation in an easy to read format that can be used with any web browser. A
very big plus for helping other people understand your code.
Anyway, I hope someone out there finds this thing useful. Please feel free to
change the code and add whatever you like. If you do that please send me the
changes so I can integrate them into future releases. Also if you have
any suggestions on how it could be more usefull let me know.
James
james@wells.net
www.jameswells.net
Check out the ChangeLog file that comes with the distribution. I'll paste in here
now, but that file has a better chance of being up to date then the docs:
8/15/2003: v0.8.1 (the Anatoli update):
- fixed some very evil bugs in header reading.
- added support for const functions.
- Added Has-a and Uses-a relations between classes.
- Added support for enums.
- You can now exclude classes from full model generation.
- You can generate a new class from the clipboard
4/30/2003: v0.8.0:
- rewritten using wxWindows.
- runs in MS Windows and Linux (and maybe others, who knows?)
- is now a parentless MDI application.
- includes a tree view of classes.
- Generated headers are saved relative to the KlassModeler file
- It will create the directory structure for the generated headers and docs.
- a little more user feedback to make it a little friendlier at times.
3/2/2003: v0.7.2
- works with gcc 3.2. Thanks to Martin Imobersteg for sending me the fix.
10/24/2002: v0.7.1
- Added support for scope operator in header reading, ie CSomeClass::MyType m_MyVariable;
Thanks to Joonas Paalasmaa for finding the bug
09/15/2002: v0.7
- added support for Qt types like Q_OBJECT, signals, and slots.
- added inline code that gets written directly into the header file.
- improved inheritence handling. You can inherit from classes that
aren't in your project.
- vastly improved reading of header files. Handles the new Qt types and
inheritence. Also just does a much better job of getting it right and
not hanging.
- Can now read or write multiple classes per header file.
- vastly improved HTML doc support. It generates a very cool HTML output,
including a picture of itself.
04/29/2002: v0.6
- when moving methods, variables, or args in the dialog boxes, the focus will stay on what you're
working with, and the list will stay in the right place.
- added an over agressive IsModified flag, so it will ask you if you want to save changes
before closing
- Made a better attempt to tell you when it has trouble generating code
- Quadrupled the canvas area (I kept running out of room)
- put the file extension (*.kml) filter in open and save dialogs.
- queries before allowing you to overwrite a file
- printing added. Let's call it experimental at the moment. Thanks to Norbert Andres for the
suggestion.
- pretty crude output to HTML for documentation purposes. Thanks to Norbert Andres for the idea.
- read in header files. Extremely experimental, may hang, use at own risk, etc etc. Thanks
to Norbert Andres for the suggestion.
04/17/2002: v0.5
- Got it to compile under Qt 3.0 (which for some reason was really annoying)
- Fixed the sizing of the Class box so it wouldn't get so huge
02/10/2002: v0.4
- If you don't specify a name for your header file it defaults to the name of the class.h in
all lowercase (Thanks to Martin Imobersteg for the idea)
- Added support for pure virtual functions
12/18/2001: v0.3
- fixed zooming so it works.
12/15/2001: v0.2
- Added zooming
- Changed how the classes look, including adding member access colours
- made it so you can see the classes when you move them.
12/14/2001: Version 0.1 released
Next
Previous
Contents