Ant task for generating ER diagram from JPA/Hibernate annotated classes - java

Does anyone know of a tool that can do that?
Linguine maps seems to only work on old hibernate xml files. And the hibernate tool task hbm2hbmxml seems to have a bug so that I can't do the two step process "annotations->hbmxml->diagram"
Best,
Anders

Hmm, I've found this great post on developerworks. There the author seems to generate entity diagrams from a live database. I wonder if I can go "annotated classes -> live db (eg. H2) -> SchemasSpy generated diagram?
And yes, API Viz looks great.
I've blogged my hacky solution with SchemaSpy.

Not quite what you're looking for but you could use API Viz which automatically produces UML like diagrams from class hierarchies and can be augmented with doclet tags.
You'd have to mark up your classes a little, but it's a great tool and worth using wherever you're trying to visualise large or complex projects.

Related

generate diagrams from hibernate models

I have the codebase and SQL creation script of a legacy Spring+Hibernate app, to be retired and migrated. I have limited knowledge of Java (and legacy frameworks), so generating a model diagram may be helpful to understand the old data (and logic).
The SQL script has no foreign keys, but noticed XMLs annotated with models with fields and their relationships for Hibernate.
What's the easiest way to generate model diagrams from these Hibernate XMLs? DjangoGraphviz could be installed to generate models diagrams in a moment. Is there a similar method/tool with Hibernate?
With Hibernate you have Java references between the entities, so any tool visualizing class dependencies might help.
I'm the author of it so I obviously recommend Degraph, but there are many out there. Just google java dependency visualization.
i don't now of any tools to do that in a straight forward way.
you could of course do it on your own. for example use xslt to transform your xml-mapping files to the graphml (xml) format and use a tool like 'yed' (https://www.yworks.com/en/products/yfiles/yed/) to layout and draw a nice diagram.
as a tool to understand legacy code doxygen has served me well because it allows you to browse the package structure, the source, the javadoc and generated UML Diagrams at the same time.
if you need to understand the structures at a database level ... i found
Schemacrawler quite helpful.

Get the class structure of an android project

I've an android project opensource written in Java (Eclipse). There are about 300 classes..I wanna to be able to understand the code quicker and to have a general representation of all the classes, interfaces and to know how they are connected each other.
Is there a way in Eclips or an external utility that could help retrieve the class structure of the project?
I have not tried it, but this looks good: http://sourceforge.net/projects/jug/
EDIT: Well this one looks even better: http://www.objectaid.com/home
EDIT 2: See this, too: http://www.nwiresoftware.com/
I haven't done that yet with Java, but you can try some of the options discussed here:
How to generate UML diagrams (especially sequence diagrams) from Java code
to get UML diagrams of your code
There are quite a few UML plugins available out there for Eclipse. It's really about how much information you want and which you feel comfortable with. The most popular one I found is Object Aid but a quick Google search for UML plugins for Eclipse returns a number of options.
If you want detailed UML diagrams then I highly recommend taking a look at Enterprise Architect. It provides tight integration with Eclipse. The desktop version is quite affordable.

Reading UML Model in Eclipse Indigo?

I am a newbie in Eclipse Indigo.
Actually, my task is to Develop a PLUGIN which will READ THE UML MODELS through the ECLIPSE INDIGO. i.e., When i run that plugin IT SHOULD READ EVERY THING IN THAT UML MODEL, such as CLASSES, METHODS etc.,
So can i get any guidelines for this ??
May i get any kind of sample coding for this ??
Thanks
Sriram R.
There are likely to be several existing eclipse plug-ins that will do what you're asking, so I would suggest looking at these before committing to create your own plugin.
If you are set on making your own plugin, then the solution will depend on the format of the UML files you need to parse. Some of the UML plug-ins use EMF (Eclipse Modelling Framework), in which case you would want to base your plugin on EMF. Others use XML, in which case you have many options including straight forward parsing or using XML object frameworks like XMLBeans or JAXB.
Sorry I can't be more specific but your question is rather vague.
Very unclear what you are looking for. You should start by searching this site for more information, there are plenty of Eclipse plugins that handles UML, see for example this question. Then when you have evaluated the alternatives, find what you need that the existing plugins dont do.

Tools which can draw a project's architecture?

I have one product which is developed in J2EE, the technology that I used as Java, JSF, and for the back end I used AS400 (DB2 database). I am using eclipse IDE. Are there any tools which can help me draw the flow of my product, UML diagrams and the class diagrams.
A UML tool that I like is plantuml It lets you write a text description of a diagram, so you have a lot of flexibility in what you include or exclude. There are plugins for everything from Eclipse to Microsoft Word and even an online servlet. There are tools to reverse engineer classes and you can also embed diagrams into javadoc if you wish.
This is good one. It can draw class, activity,sequence and Usecase diagrams.
http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML
StarUML is a very good option. It is free and supports most of UML2. This is not being maintained but it is rock solid for what you need.
Use interaction diagrams to document high level flow of your product
Use class/object diagrams to provide static view
Use activity diagrams to document workflow/algorithms
Take a look at Visual Paradigm SDE for Eclipse
Link: http://www.visual-paradigm.com/product/sde/ec/
you can capture requirements, design databases, generate code, implement software and generate reports. SDE supports UML, entity relationship diagram, BPMN and SysML.
Also there are different versions a good version is the Comunity one which is for free..!
You need to create an UML model from your database.
You can use Dali without EclipseUML but database annotations would be lost during the UML reverse engineering if not using Omondo.

Generating Class Diagram

HI All I am at the end of the release of my project.So in order to keep working our manager asked us to generate Class Diagrams for the code we had written.Its medium project with 3500 java files .So I think we need to generate class diagrams.First I need to know how reverse engineering works here. Also I looked for some tools in Google(Green, Violet) but not sure
whether they are of any help.Please suggest me how to proceed.Also a good beginning tutorial is appreciated.
I strongly recommend BOUML. Its Java reverse support is absolutely ROCK SOLID.
BOUML has many other advanteges:
it is extremely fast (fastest UML tool ever created, check out benchmarks),
has rock solid C++, Java, PHP and others import support,
it is multiplatform (Linux, Windows, other OSes),
has a great SVG export support, which is important, because viewing large graphs in vector format, which scales fast in e.g. Firefox, is very convenient (you can quickly switch between "birds eye" view and class detail view),
it is full featured, impressively intensively developed (look at development history, it's hard to believe that such fast progress is possible).
supports plugins, has modular architecture (this allows user contributions, looks like BOUML community is forming up)
The tool you want to use is Doxygen. It's similar to Javadoc, but works across multiple languages. If figures out the dependencies, and can call graphviz to render the class diagrams. Here's an example of a few Java classes run through Doxygen.
This is more a toolchain than a tool and I haven't tried it out myself. But it maybe a starting point. Using UMLGraph, ant and GraphViz. Explained step by step: in this article.
I ve used Visual Paradigm for UML for what you want to do and it was quite good.
See here for details.
Just go Tools -> Instant reverse and select your packages.
You may be able to reverse engineer class diagrams with the open source modelleing tool ArgoUML http://argouml.tigris.org/
ObjectAid is pretty nice. You can drag classes into a diagram and arrange them the way you want.
Visual Paradigm for UML Standard Edition (or Better) will reverse engineer Java files in to Class Diagrams.
I guess if your boss just wants to keep you busy until the next project starts then there's no harm in it, but you will find pretty quickly that creating a class diagram with 3500 classes will tell you exactly NOTHING about your system. In fact, you don't really want a diagram with more than about 10 classes on it. So once you have reversed all the code into your modelling tool, you will want to start organizing and arranging to find the meaning. Create a new diagram, drop a single important class onto it and bring in all the classes that are directly related to that class. Repeat for maybe the 300 most significant classes. Don't worry, it isn't as horrible as it sounds, maybe a week's work.
For the record, my modelling tool of choice is Enterprise Architect by Sparx Systems. It will reverse java sources or .jar files. There is a free 30 day trial edition.
There are some tools available that will help you generate these diagrams. These cost money.
Otherwise you could to try to parse your Java files. This could be as simple to create a simple parser that reads the Java files and writes the name of the class and all the import statements to a file and generates a class diagram from there, graphviz can help you there.
I've been using Enterprise Architect for a number of years. A JBoss developer suggested it to me. It works very well for all types of UML modeling including the reverse engineering of class models (Java, C# and others). The basic version is currently $120 per seat, but it has most of the capabilities of much more expensive tools and it is much easier to learn. I particularly like its ability to generate HTML and RTF documentation.
It is very easy to synchronize code between the tool and your source code. Even bi-directional if you want.
Your PM may also like the activity and sequence diagrams that it can create. I also frequently use the deployment diagrams. It's very helpful to have all of this in one tool.

Categories

Resources