Login | Register
My pages Projects Community openCollabNet

Chapter 1.  Introduction

1.1.  Origins and Overview of ArgoUML

1.1.1.  Object Oriented Analysis and Design

Over the past decade, Object Oriented Analysis and Design (OOA&D) has become the dominant software development paradigm. With it has come a major shift in the thought processes of all involved in the software development life cycle.

Programming language support for objects began with Simula 67, but it was the emergence in the 1980's of hybrid languages, such as C++, Ada and Object Pascal that allowed OOA&D to take off. These languages provided support for both OO and procedural programming. Object Oriented programming became mainstream.

An OO system is designed and implemented as a simulation of the real world using software artifacts. This premise is as powerful as it is simple. By using an OO design approach, a system can be designed and tested (or more correctly simulated) without having to actually build the system first.

It was the development during the 1990's of tools to support Object Oriented analysis and design that moved this approach into the mainstream. When coupled with the ability to design systems at a very high level, a tool based OOA&D approach has enabled the implementation of more complex systems than previously possible.

The final driver that has propelled OOA&D has been its suitability for modeling graphical user interfaces. The popularity of object based and object oriented graphical languages such as Visual Basic and Java reflect the effectiveness of this approach.

1.1.2.  The Development of ArgoUML

During the 1980's a number of OOA&D process methodologies and notations were developed by different research teams. It became clear there were many common themes and, during the 1990's, a unified approach for OOA&D notation was developed under the auspices of the Object Management Group. This standard became known as the Unified Modeling Language (UML), and is now the standard language for communicating OO concepts.

ArgoUML was conceived as a tool and environment for use in the analysis and design of object-oriented software systems. In this sense it is similar to many of the commercial CASE tools that are sold as tools for modeling software systems. ArgoUML has a number of very important distinctions from many of these tools.

  1. It is free.

  2. ArgoUML draws on research in cognitive psychology to provide novel features that increase productivity by supporting the cognitive needs of object-oriented software designers and architects.

  3. ArgoUML supports open standards extensively - UML, XMI, SVG, OCL and others.

  4. ArgoUML is a 100% pure Java application. This allows ArgoUML to run on all platforms for which a reliable port of the Java platform is available.

  5. ArgoUML is an open source project. The availability of the source ensures that a new generation of software designers and researchers will have a proven framework from which they can drive the development and evolution of CASE tool technologies.

UML is the most prevalent OO modeling language and Java is one of the most productive OO development platforms. Jason Robbins and the rest of his research team at the University of California, Irvine leveraged these benefits in creating ArgoUML. The result is a solid development tool and environment for OO systems design. Further, it provides a test bed for the evolution of object oriented CASE tools development and research.

A first release of ArgoUML was available in 1998 and more than 100,000 downloads by mid-2001 show the impact that this project has made, being popular in educational and commercial fields.

1.1.3.  Finding Out More About the ArgoUML Project

1.1.3.1.  How ArgoUML is Developed

Jason Elliot Robbins founded the Argo Project and provided early project leadership. While Jason remains active in the project, he has handed off project leadership. The project continues to move forward strongly. There are more than 300 members on the developer mailing list (see http://argouml.tigris.org/servlets/ProjectMailingListList), with a couple of dozen of those forming the core development group.

The developer mailing list is the place where all the discussion on the latest tasks takes place, and developers discuss the directions the project should take. Although controversial at times, these discussions are always kept nice and friendly (no flame-wars and such), so newbies should not hesitate to participate in them. You'll always get a warm welcome there.

If you want to learn how the project is run and how to contribute to it, go the the ArgoUML Web Site Developer Zone and read through the documentation there. The Developers' Cookbook was written specifically for this purpose.

1.1.3.2.  More on Infrastructure

Besides the developer mailing list, there's also a mailing for users (see The ArgoUML Mailing List ), where we can discuss problems from a user perspective. Developers also read this list, so highly qualified help will generally be provided.

Before posting to this list, you should take a look at the user FAQ maintained by Ewan R. Grantham.

More information on ArgoUML and other UML related topics is also available on the ArgoUML website, maintained by Linus Tolke.