Login | Register
My pages Projects Community openCollabNet

Vision for ArgoUML

This is the Vision for the ArgoUML project and also for the ArgoUML product. The purpose is to let everyone know where we are going with ArgoUML and the purpose of it all.

ArgoUML interested parties

This is the who are we, what do we do, what is appealing to us and what are the alternatives for each interersted party.

  1. Users of ArgoUML

    Users are the persons using ArgoUML or that would use ArgoUML to get their job done. Their job is to solve a problem for which drawing a UML model helps. They need some modelling tool to help them get a grip on, plan, and later on do the work.

    They are software developers or software architects. And some are business or process analysts, or workflow designers. They are interested in and know UML. They range from beginners to extremely qualified specialists in all these areas. Also teachers and studends teaching and learning UML are Users of ArgoUML.

    Users of ArgoUML want ArgoUML to be functional and to help them solve their problem.

    Their alternatives to using ArgoUML is to use some other tool to do the UML modelling. Either a UML tool like Rose, Together, ... or a drawing tool like dia, MS Word, whiteboard, pen and paper.

    The ArgoUML project provides the users with a mailinglist and the adjoining FAQ where they can discuss tips and tricks around UML in general and specifically ArgoUML.

  2. Developers of ArgoUML

    Developers are the persons that the ArgoUML project rely on to do all the work with developing, testing, documenting, advocating, and promoting ArgoUML.

    They are software developers, or architects working in java, testers, or documentors. They could also be students or student groups studying UML or working with new ideas around UML by implementing them in ArgoUML.

    They all donate their work to the ArgoUML project with the purposes:

    1. Their contribution might benefit others as they benefit from others' contributions.
    2. Their work will help them take the next step in their academic or professional career.
    3. They will receive kudos in the Open Source world.

    Their alternatives to contributing to ArgoUML is to contribute to some other Open Source project or to work with some professional programming either in the software engineering area or in some completely different area.

  3. Tigris

    Tigris is the organization that operates the site where ArgoUML, the development project recides. The Tigris organisation provides the project with:

    • Domain name
    • Web server with search engine
    • Download area
    • Source and documentation repository (using Subversion)
    • Mailing list server with archiving
    • Bug register (A Bugzilla called Issuezilla)

    Tigris wants ArgoUML to be a successful project so that Tigris can receive the kudos in the Open Source world.

    Alternatives to ArgoUML for Tigris are a lot of other projects.

  4. Library developers

    ArgoUML relies to a great extent on libraries. Probably some of the library developers use ArgoUML as an important application for their library and ArgoUML. This is so for the libraries: gef, nsuml, ocl.

    These library developers use ArgoUML as one input to set requirements and drive their project forward.

  5. Companies with derivatives

    The ArgoUML license (the BSD license) allows anyone to more or less do what he wants with ArgoUML. This means that if a company would like to start selling ArgoUML or a derivative work of ArgoUML it is free to do so under certain simple conditions like that the copyright notice shall be provided.

    Since ArgoUML is freely available from the ArgoUML project hopefully noone will buy the unmodified product and for this reason the companies that would sell ArgoUML would have to make a valuable addition in order to sell it.

    In doing so they promote ArgoUML and some of their enhancements will hopefully find its way back to ArgoUML in one way or the other.

    These companies want ArgoUML to be as good as possible so that the basis for their work is as good as possible.

    The alternatives for these companies is to write their product from scratch or to choose some other product to base their work on.

    Poseidon from Gentleware is such a product. Gentleware has taken ArgoUML, made lots of valuable additions and improvements and are now selling that product (called Poseidon).

Functions and features

Here is a list of functions and features that is or could be provided by ArgoUML. It is also listed for what group this is interesting.

Cognitive Support for Design

Software design is a cognitively challenging task. Designers must manually enter designs, but the primary difficulty is decision-making rather than data-entry. If designers improved their decision-making capabilities, it would result in better designs.

Current CASE tools provide automation and graphical user interfaces that reduce the manual work of entering a design and transforming a design into code. They aid designers in decision-making mainly by providing visualization of design diagrams and simple syntactic checks. Also many CASE tools provide substantial benefits in the area of version control and concurrent design mechanisms. One area of design support that has been not been well supported is analysis of design decisions.

Current CASE tools are usable in that they provide a GUI that allows designers to access all the features provided by the tool. And they support the design process in that they allow the designer to enter diagrams in the style of popular design methodologies. But they typically do not provide process support to guide the designer through the design task. Instead, designers typically start with a blank page and must remember to cover every aspect of the design.

ArgoUML is a domain-oriented design environment that provides cognitive support of object-oriented design. ArgoUML provides some of the same automation features of a commercial CASE tool, but it focuses on features that support the cognitive needs of designers. These cognitive needs are described by three cognitive theories:

  • reflection-in-action,
  • opportunistic design, and
  • comprehension and problem solving.

This is important to the Users of ArgoUML.

Following the UML Specification

ArgoUML is based directly on the UML specification. In fact, parts of ArgoUML was generated automatically from the UML specification. ArgoUML is (to the best of our knowledge) the only tool that implements the UML meta-model exactly as specified.

Furthermore, it is our goal to provide comprehensive support for OCL (the Object Constraint Language) and XMI (the XML Model Interchange format).

This is important to the Users of ArgoUML.

Modularity and extensibility

It is possible to extend ArgoUML by adding modules to provide new functions and new features. This can be done without modifying the core of ArgoUML. This means that a feature provided for one version of ArgoUML will work in subsequent versions of ArgoUML without need for change. It might also work in some derivative work.

This is important to Companies with derivatives.

Community Software Development

As with all software produced by our research group, ArgoUML is available for free and can be used in commercial settings. For terms of use, see the license agreement presented when you download ArgoUML.

This is important to the Companies with derivatives.

ArgoUML was originally developed by a small group of people as a research project. ArgoUML has many features that make it special, but it does not implement all the features that commercial CASE tools provide. We are providing the source code for ArgoUML for you to review, customize to your needs, and improve. Over time, we hope that ArgoUML will evolve into a powerful and useful tool for everyone to use.

This is important to the Developers of ArgoUML, the Library developers and the Companies with derivatives.

Community software development has worked successfully to produce the FSF's GNU utilities and the Linux operating system. It has also worked in producing GEF, the Graph Editing Framework, which is a major component of ArgoUML.

For more information on contributing to the development of ArgoUML, see the Project page.

This is important to Tigris.