Where are the open source modeling tools?
I use Eclipse and NetBeans almost every day. I use Ant, JUnit, jMock, Hibernate, Spring and half the Jakarta Commons library almost every day as well. I also use open source databases, web frameworks, and languages. What I don’t use though are open source modeling tools. This is because there aren’t any.
Where are the open source UML(Unified Modeling Language) and ER modeling tools? And why are no developers or organizations creating them? For me, the lack of existence of these tools can only lead to one conclusion: the open source community simply does not do any modeling before, during or after developing an application. The reverse of this statement is that only enterprisey companies do modeling. I am not sure if I buy into this conclusion.
Personally, I like to, before I start coding, to model the domain for my application. This gives me a better understanding of the relationships that exist between things in the real world and gives me to good starting point for building my domain object model. Modeling tools really help for this. I guess the open source community just uses the “back of the napkin” approach, literally. But napkins are hard to share with a distributed group of developers. Therefore, people must be using some tools. Where are they and what are they?
I think this is evidence one a problem with the open source community; only the tools that people use on a day to day basis get built. This ends up leaving holes in tool support. I can use an exceptional Java IDE(Integrated Development Environment) every day for free, but I have to go and pay hundreds to thousands of dollars to do database modeling because open source developers don’t do database modeling.
I realize that right about now the entire open source community is shouting in unison, “fix it!” And I would if I could, but the reality is that I am not sure that I can single handedly create an ER modeling tool. True, I would learn along the way, but Eclipse, NetBeans, JBoss, PostgreSQL, MySQL, and other tools were not created by single people, they were created by organizations. So where are the organizations creating modeling tools?
I also realize that there is “ArgoUML”:http://argouml.tigris.org/ and “DBDesigner4″:http://fabforce.net/dbdesigner4/ which are both modeling tools, UML and ER respectively. However, the last time I used ArgoUML is was almost unusable and DBDesigner4 does not work on a Mac.
Have you tried StarUML? http://www.staruml.com
I have not and based on the web site, I will have to try it out. Only small problem with it is that it is only for Windows so far. It may be time to install Parallels on my Mac.
Thanks for the link.
I totally agree with the article. However, you may like to take a look at the following:
For databases: DBVisualizer, ExecuteQuery
For UML: StarUML, MagicDraw UML CE, Poseidon for UML CE
Netbeans has a module that lets you do UML drawing. Probably there are UML plugins for Eclipse.
Though as a dream diagramming tool, I’d like an integrated diagramming tool that lets me model databases, UML, Hibernate models and XML graphs, all running within a decent browser (Firefox 1.5/2.x, IE 6) without needing me to use any plugin.
You might check out the modeling tools listed on EPIC. http://www.eclipseplugincentral.com/Web_Links-index-req-viewcatlink-cid-11.html
A promising, but incomplete tool, can be found at http://www.topcased.org. It’s developed by companies like EADS and Thales and is based on Eclipse (UML, EMF, MDDi….). Already has a nice set of features.
What about Umbrello UML Modeller? (http://uml.sourceforge.net/) I don’t know if it has Mac version for it is available for Linux.
When I need to draw a diagram, I fire up dia (http://www.gnome.org/projects/dia/).
I do not agree with You. There is JUDE which is very powerfull tool to UML. There is also Poseidon. There are also some combined with IDE’s. Sun offers Java Studio Enterprise with UML modeling for free. Oracle gives JDeveloper also with UML tools , and there are also some plugins to eclipse. So as You can see there is pretty much to choose from in UML tools
You are right on something, there are not much good open source modelers.
But you are wrong in your conclusion. Why do you think open source creators can’t use closed source modelers? or some of the already mentioned ones (even if they are not *that* good?
correlation != causation
What about ArgoUML? Runs on Java. http://argouml.tigris.org
This is easy to answer.
1. UML sucks as diagram notation, let alone as design tool.
2. Diagrams are much easier to white-board than to edit on screen.
3. Disgrams are a tiny part of design.
What open source developer is going to put in serious effort to develop a tool that addresses a very small part of the problem using a faulty notation when the end result cannot be better than a white board?
I’ve always held the opinion that if you can’t model your programs in your programming language, then it’s probable that you’re using too inexpressive a language for your task. If you’re going to go to all the trouble of producing formal UML diagrams, etc., they should at least be part of the executable code or enforced by the compiler. Otherwise, that level of formality just isn’t giving you anything new in terms of documentation — somewhat less formal documentation which was more human-readable would likely be far more effective.
So far, the only program worth looking at has been StarUML. I am really hoping that someone ports it to the Mac soon because I think it is shaping up to be an excellent tool. As for the others that were mentioned, very few of them are actually open source; Poseidon for UML, MagicDraw UML, JUDE, DBVisualizer provide do “free” Community Editions, but that does not make them open source.
In addition, most of the “free” Community Edition’s out there are seriously restricted in some form or another and, therefore, result in tools that are not really usable. Gentleware, along with being unable to release a stable build of their tool, just changed their licensing model for Poseidon CE. Now you have to rent a license:
bq. Export options such as printing and saving are available with a license rental or rent subscription. The cost-free version can be used to view, create, and edit models, but the export options are not available.
And this seems typical of most community editions.
I attempted to try Execute Query and it failed with a series of
NullPointerExceptions, oops. Granted, I was trying it on my Mac and the website did not list that as a tested OS. I also did not give the program a JBDC driver and connect it to a database, but I should not have to in order to create a simple ER diagram.I may give ArgoUML another try, but every time I do I am always disappointed. Same with Umbrello UML Modeller, it just crashes every time I give it a try.
In response to those who said UML sucks, I agree. However, when you are working on a distributed team, it is really hard to share a white board. I also find it nice to be able to sketch out ideas that I am working on in a UML tool before I start coding. This is especially true for Domain Object Models. In addition, I have to ask, is there a place in design for informal UML diagrams?
As I investigate the tools that are available out there, I will post reviews on the site. Thanks for the comments and suggestions.
Maybe the tools you are looking at or are being suggested to take a look at don’t suffice. Maybe you need a commercial tool? Your mac is not open source, and open source doesn’t always fit the solution. Yes you have some nice open source tools on your mac now.
You’re not being pragmatic in the tools you choose… You have a mac now you’re focused on finding something to run on the mac. It sounds like you’re limiting yourself by considering only developing on a mac. Is that the case?
Why not use a decent open source tool on another machine and then commit your changes back to the central repository for your project?
The point is very valid. I deal with the same problem. Everything I use for enterprise size applications is free or/and open source, but modeling tool. In general I don’t need entire UML. Just class diagrams with nice automated layout and reverse engineering.
I build code first but sooner or later the application will have a lot of classes. My last application has about 200 classes just for domain objects. Here I’d need nice chart on my wall.
I tried a lot of free products, but none is meet this simple criteria. But I used commercial products which are fine for my shy requirements.
So if any body knows the tool which is free and after reverse engineering of my classes will produce fine class diagram (not all classes in chaos), please let us know.
The thing about UML is that it doesn’t scale. Maybe you can get 200 classes on one heirarchy diagram, but what about all of the references between them? At a certain point the number of connections between classes make it impossible to create a clean diagram.
Now a tool that can generate real-time diagrams from memory is a different story. If I could throw a break point in my IDE and have it map out all the in-memory objects I would be impressed.
I think that this article is probably dated. ArgoUML is a substantial option. I know back in 2004-5 the product was still a bit weak, but I use it frequently now and it’s pretty solid. When I have really loaded it down with many layers of linked diagrams and hundreds of classes and then added sequence diagrams, it will puke on me; but, I figure I can easily work around this by creating separate projects for different domain areas/ packages.
For those of you wanting a reverse-engineering tool – I think you missed a key point in the original post: his point was that agilists don’t plan and model before running to code. You are proving that point.
Hi Jen,
I may try ArgoUML someday, but right now, I personally don’t see much use for UML tools. I still think good open source tools are missing, but I think there is something fundamentally wrong with UML tools.
Applications need to be grown and evolved, not designed up front using pretty pictures. It is important to understand the domain; however, this can be accomplished used words and not pictures. In addition, if you start small and you try to start at the centre of an application, then the domain model should evolve along with your understanding of the domain.
This means that I agree with the one statement that Agilists do not plan and model before running to code. At ThoughtWorks, we try to do Just Enough Design so we can intelligently move to code, but the ultimate goal is code.
Which brings more value to the client UML diagrams that may or may not work or working code that the client can play with? I vote for the working application.
In many ways, I retract my original post in favour of code and just enough design (usually done on a scrap piece of paper or a whiteboard) over UML tools.
For E-R modeling and a database CASE tool, try Druid: http://sourceforge.net/projects/druid
For basic ER modeling I recommend you gliffy.com. It’s a free (for 5 diagrams) RIA web app which is very easy and fast in use and the ER diagrams look nice. UML is not so good supported, but flow charts, network graphs, conceptual charts not strictly following UML are as easy to create as the ER diagrams. It’s like MS Visio, or Dia on the web. It has support for collaboration.
Here are a couple more applications that you can use for UML:
Netbeans 6.1: http://www.netbeans.org/features/uml/index.html
Papyrus 1.10: http://www.papyrusuml.org/scripts/home/publigen/content/templates/show.asp?P=55&L=EN&ITEMID=2
UML Pad 3.0: http://web.tiscali.it/ggbhome/umlpad/umlpad.htm