About ArgoUML Project

ArgoUML Project
These are the fundamentals about how the ArgoUML Project is run and also some fundamentals on Open Source. If you wonder how this could really work you should read some Open Source literature like "The Cathedral and the Bazaar" or some GNU or Linux statement.

What is ArgoUML?
ArgoUML is the leading free, open source UML modeling tool and includes support for all standard UML 1.4 diagrams. Furthermore, it has begun to support UML 2.x for some diagram types. For both UML 1.4 and UML 2.x it uses well known model implementations: Netbeans MDR and eclipse UML2/EMF. It runs on any Java platform and is available in ten languages. ArgoUML also has the ability to reverse engineer compiling Java code (and other supported programming languages) and generate UML diagrams for it. ArgoUML is made available under the Eclipse Public License v1.0. Before, ArgoUML was available under the BSD Open Source License for many years.

ArgoUML currently has a version number below 1.0. This means that the things you can't do will distract you, you will have problems that you won't have in commercial UML tools, and there is no one to blame for this. On the other hand, this also means that you have the opportunity to fix your problems yourself. There is no plan for what should happen for a 1.0 release, but some important issues need to be handled first (e.g. Undo/Redo, UML2 support).

Where does the name ArgoUML come from?
This goes to the ancient history of ArgoUML when it was Jason Robbins' project. Jason Robbins writes: I first learned programming back in the days of BASIC on the Apple II. When TurboPascal arrived, it got me very excited about IDE's. I later had a chance to work with two Smalltalk environments and UNIX and emacs. I've always been interested in how some tools can be so much better than others. I have also enjoyed doing rapid prototyping and experimental programming. I came to grad school with the intention of building a better software development environment with an emphasis on the human aspects. What makes some languages and IDE's more productive for people than others? I initially set out to build a tool that would help software designers experiment with alternative designs quickly.

At that time, all of the names of research projects in my research group at UC Irvine were taken from Greek Mythology. I borrowed a book on mythology and tried to find a tale of experimentation. The story of Jason and the Argonauts seemed like a good match because my name was Jason and exploration was close to experimentation as I could find. In that myth, "Argo" is the name of the ship that they sailed.

The name "Argo" refers to the library of cognitive support features I implemented (e.g., design critics, checklists, navigational perspectives, etc.). I have also used it as the product line name for some of the applications of that library. The Argo/UML tool is actually the fourth in a series of tools I worked on that have cognitive support features provided by the Argo library. Argo/UML is by far the largest application of the Argo library.

I later learned more about the "Argo" myth and found an interesting coincidence. The ship "Argo" was made from wood cut from a magical talking tree. The beams of wood on the ship continued to talk and warned the Argonauts of upcoming danger. You could say that these were design critics!

Jason!

Open Source
ArgoUML is an Open Source project. This means several things:


 * We provide the software free of charge.
 * We provide source code with the software.
 * Users are encouraged not only to report problems but also to contribute solutions, improvements and new features. They have the source code available to make this easier.

No funding
The ArgoUML Project operates without funding. This means several things:


 * We pay no salaries or rewards.
 * Users are encouraged to become Developers of ArgoUML. This is the recruiting strategy.
 * We rely on persons to contribute their work (big or small) to advance ArgoUML.
 * Universities or companies have and can engage or employ persons to work on ArgoUML or adjoining ArgoUML but although very welcome it is neither controlled nor paid for by the ArgoUML project.
 * We rely on organizations like Tigris to provide the central infrastructure needed without monetary compensation.
 * We rely on other projects like Subversion, JDK, docbook, ant, ... to provide tools without monetary compensation.
 * We rely on other projects like JRE, swing, log4j, NSUML, GEF, ... to provide their libraries to be distributed by us without monetary compensation.
 * We rely on every Developer of ArgoUML to provide the machines and Internet connections needed for their work without monetary compensation.
 * We rely on organizations like Gentleware and individuals on the Internet to help in promoting ArgoUML without monetary compensation.

There are also problems to work without funding but the solutions we are using to these problems are well-established in the Open Source world and should come as no surprise. I have listed some of the problems and solutions here:


 * We cannot provide support. Companies cannot buy access to a support organization from the ArgoUML project.
 * Solution 1: We allow for the users to help each others and also to get help from the Developers of ArgoUML by providing a mailing list with FAQ. It is every user's and developer's choice if he wants to help and there is no guarantee. Usually this works very well.
 * Solution 2: There exists on the market companies that provide this for Open Source tools. Hopefully they can eventually include ArgoUML. (Anyone already in place?)
 * We cannot provide any guarantee or warranty for the product.
 * Solution: The product is provided as is. If your use of ArgoUML sets your house on fire, you cannot blame us. This is stated clearly in the licensing.
 * We cannot undertake to solve a certain problem or implement a specific feature to a specific date.
 * Solution: If you need a certain problem fixed or feature implemented you are allowed to let one of your employees or contractors do the work. This can be done without prior consent from us and we hope that you will provide that solution or feature to us for the inclusion in upcoming versions of ArgoUML.

Users and developers
As with most of the not funded Open Source projects the primary incentive for our developers is their own personal need. This means that a problem is solved and a feature is added when one of the developers of ArgoUML finds it important enough to spend enough time on. In this there is no big difference between a Developer of ArgoUML and a User of ArgoUML. If a User finds a problem important enough to spend enough time on he can do so and send the solution to the project for inclusion into ArgoUML.

On the other hand, a Developer of ArgoUML that doesn't regularly use UML and ArgoUML will loose sight of what features are important and what are not. Eventually there will be nothing in ArgoUML that he finds important enough and he will then stop contributing to the project.

Because of this cycle the project needs to continuously find and engage new developers among the most interested users. To be able to do so we are continuously working on improving also the documentation and tools to allow for as many as possible to contribute. A small contribution might be followed by a bigger one and then an even bigger one like responsibility for some part of the code that is an important role in the project.

The [mailto:dev-subscribe@argouml.tigris.org developers' mailing list] is open to everyone to discuss what you want to do to improve ArgoUML. For ideas you can also see the ArgoUML JobJar or the list of open issues in Issuezilla.

Other things about the project
If you have any questions, comments, or suggestions, join the developers' mailing list and start the discussion there.

If you are reporting a bug in ArgoUML, please use Issuezilla. Please check if the same bug has been seen before and if so, just add your additional observations to it.

You don't need to be a UML or Java expert to contribute. There are a lot of things to do for a wide range of skills.

The history of the ArgoUML Project is described on the history page.