Question

I'm looking for a good modeling tool to use for designing java applications that use the playframework. Considerations:

  1. Should be able to generate valid java code for skeleton of play app
  2. Should be able to round trip java code and update model appropriately
  3. Shouldn't be too cumbersome -- I don't want to be generating reams of complicated diagrams that serve no purpose. My goal is to be able to quickly model the design for an app I have in my head, hit "Generate" and have stubbed out java code the members of my team and I can start filling in.
  4. Cost is not a serious concern.
  5. Eclipse integration is a major plus
  6. Learning curve/availability of good resources to learn is an important consideration

Does such a modeling tool exist? Playing with Visual Paradigm now. Am I going down a blind alley by even wanting to do this? I know modeling etc. has kind of fallen out of favor with the focus on Agility and all, but it seems like this would be much quicker than a) trying to explain to everyone I work with how I envision the app working and b) manually writing tons of boilerplate code.

Was it helpful?

Solution

I don't know about Play framework, but here's my take on UML tools:

Should be able to generate valid java code for skeleton of play app.

I don't know of any tool that will know specifically about a given framework. Play, Spring, Wicket - the best you can hope for is to be able to import the framework and have its classes on your palette. The rest is up to you. No tool will read your mind.

Should be able to round trip java code and update model appropriately

Tools like JUDE and Sparx Enterprise Architect can round trip.

Shouldn't be too cumbersome -- I don't want to be generating reams of complicated diagrams that serve no purpose. My goal is to be able to quickly model the design for an app I have in my head, hit "Generate" and have stubbed out java code the members of my team and I can start filling in.

In my opinion this is unrealistic. Putting in enough detail into the UML tool to be able to spit out complete stubs will not be quick or easy. You still have to type it all in.

Personally, I'd do that high level sketch, build the method signatures in an IDE that will actually let you unit test, and then reverse engineer when you're done to get the diagrams.

Cost is not a serious concern.

JUDE used to do round trip in its community edition, but that's not the case now. You'll have to pay for all of these. The cost for Sparx Enterprise Architect is modest.

Eclipse integration is a major plus.

Can't help you there. It would seem to dramatically limit your choices. I'd recommend IntelliJ. It's a better IDE, and it'll create UML diagrams from your code.

Learning curve/availability of good resources to learn is an important consideration

"UML Distilled" is the only book you'll need.

As far as difficulty goes, I've done a comparision of JUDE, Visual Paradigm, Magic Draw, and Sparx Enterprise Architect. None of them is terribly difficult. Or very useful.

I think you're indulging in magical thinking. These UML tools won't save your effort.

OTHER TIPS

The best of the full-featured UML tools is in my opinion Enterprise Architect. It does full round trips to source (I only ever use import), its mouse interface has been designed in such a way that you're not constantly mousing all the way to a tool palette on the side, and at its price point it's spectacularly good value compared to the commercial tools from the larger vendors.

I do, however, share duffymo's opinion that these tools are too cumbersome to be in any way quick and that UML class diagrams just aren't readable at the level of detail required to generate working source code or even just stubs.

Recently, I've taken a liking to UMLet, which is for the most part controlled by a command line interface. It's way faster than the usual approach of layers upon layers of property sheets. It supports full UML syntax, but no source code generation or anything of that kind.

How about ArgoUML as a nice and free UML modelling tool? Oh and by the way, using UML for modelling might help explaining your vision to others, but it will definitely not help you write less code.

You're asking for a tool that will generate code from an UML model. There have been many attempts to use computer aided tools for generation of code. This isn't a very good idea if you want total control during development. These tools will behave badly if you want them to do something they're not designed for. See this Wikipedia article.

If you're not ready to write code to do your bidding, well, you should get used to it.

I wouldn't recommend to use an UML-Tool do draw everything, but I think VPUml is a good choice. It's has a very good GUI, which let enables you to layout your diagrams very quickly. As far as I know you can adjust the code generation, but if not it's not a problem, because you can use Models with getter- and setter and than I don't see anything which must be play-specific. Another approach can be to define the properties public visible in the UML than you don't need to adjust the generation.

The very best in Java and certainly the best in the Eclipse world is Omondo EclipseUML. This is very expensive but you know once you have started to model why you have paid so much :-)

The UML tool you are looking for doesn't exist at this point. Play has little commercial commitment and it will take a good 24-36 months to see anything from a major vendor (assuming play gets momentum).

I personally don't understand why one would need a UML tool with play, or actually with any MVC framework. It's so simple to model, you don't need UML - a visio diagram will probably be enough to make your point to any audience.

Anyway, if you need a UML modeler for Java, you can check the other post in this threads: there are some good references. As far as modeling the MODEL - you will need a JPA editor - for now the only one I know is http://wiki.eclipse.org/WTP/JPA_Diagram_Editor/Proposal The project is in incubation mode, use carefully.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top