Hubbry Logo
ArgoUMLArgoUMLMain
Open search
ArgoUML
Community hub
ArgoUML
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
ArgoUML
ArgoUML
from Wikipedia
ArgoUML
Initial releaseApril 1999
Stable release
0.35.1[1][2] Edit this on Wikidata
Repository
Written inJava
PlatformJava SE
TypeSoftware development, UML Tool
LicenseEclipse Public License 1.0
Websiteargouml.org

ArgoUML is an UML diagramming application written in Java and released under the open source Eclipse Public License. By virtue of being a Java application, it is available on any platform supported by Java SE.

History

[edit]

ArgoUML was originally developed at UC Irvine by Jason E. Robbins, leading to his Ph.D. It was an open source project hosted by Tigris.org and moved in 2019 to GitHub.[3] The ArgoUML project included more than 19,000 registered users and over 150 developers.[4]

In 2003, ArgoUML won the Software Development Magazine's annual Readers' Choice Award in the “Design and Analysis Tools” category.[5]

ArgoUML development has suffered from lack of manpower. For example, Undo has been a perpetually requested feature since 2003 but has not been implemented yet.[6]

Features

[edit]

According to the official feature list,[7] ArgoUML is capable of the following:

  • All 9 UML 1.4 diagrams are supported.
  • Closely follows the UML standard.
  • Platform independent – Java 1.5+ and C++.
  • Click and Go! with Java Web Start (no setup required, starts from your web browser).
  • Standard UML 1.4 Metamodel.
  • XMI support.
  • Export diagrams as GIF, PNG, PS, EPS, PGML and SVG.
  • Available in ten languages: EN, EN-GB, DE, ES, IT, RU, FR, NB, PT, ZH.
  • Advanced diagram editing and zoom.
  • Built-in design critics provide unobtrusive review of design and suggestions for improvements.
  • Extensible modules interface.
  • OCL support.
  • Forward engineering (code generation supports C++ and C#, Java, PHP 4, PHP 5, Ruby and, with less mature modules, Ada, Delphi and SQL).
  • Reverse engineering / JAR/class file import.

Weaknesses

[edit]
  • ArgoUML does not yet completely implement the UML standard.[8]
  • Partial undo feature (working for graphics edits [9][10])
  • Java Web Start launching may no longer work reliably. See Java Web Start.

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
ArgoUML is a free and open-source (UML) modeling tool designed to support the creation of UML diagrams for and . It provides comprehensive support for all standard UML 1.4 diagram types, including class, state, , activity, collaboration, deployment, and sequence diagrams, and is built entirely in to ensure cross-platform compatibility on any (JVM)-enabled system. Released under the (EPL) version 1.0, ArgoUML emphasizes cognitive support through features like design critics and to-do lists to aid users in identifying and resolving modeling issues. The project originated in January 1998 as an open-source initiative and saw its initial public release in April 1999, evolving through community contributions hosted initially on Tigris.org before migrating to in 2019. Over its development, ArgoUML has undergone multiple iterations, with the stable release 0.35.1 made available in 2014, incorporating enhancements for stability and usability based on user feedback and resolved issues exceeding 600 in earlier updates. As a mature tool, development ceased after the 0.35.1 release, though it remains available for download and use, supporting multilingual interfaces in ten languages and with community resources including mailing lists and IRC channels. ArgoUML's interface is structured around four primary perspectives: a project browser for hierarchy navigation, a editor for visual modeling, a to-do list for design critiques, and a details pane for element properties, promoting an intuitive for developers, architects, and analysts. Beyond core diagramming, it includes export options to formats like XMI, PDF, and PS, along with modular extensions for code generation in languages such as , C++, and through community-developed plugins. Despite its focus on UML 1.4 standards, the tool's lightweight design and emphasis on have made it a popular choice for educational and professional environments seeking a no-cost alternative to commercial UML software.

Overview

Description and Purpose

ArgoUML is a Java-based, open-source UML diagramming application developed for creating, editing, and documenting object-oriented software designs. It provides a visual environment that enables users to model complex systems through standardized notations, facilitating the representation of software architectures and behaviors. The primary purpose of ArgoUML is to support visual modeling for software architects and developers, adhering to (UML) standards. UML serves as a standardized language for specifying, visualizing, and documenting the artifacts of software-intensive systems, originally developed in the 1990s and maintained by the (OMG). By leveraging UML, ArgoUML aids in the early stages of software development, promoting clarity and consistency in design communication among teams. As of the early 2000s, the ArgoUML project attracted over 19,000 registered users, primarily academic researchers and professional software designers seeking an accessible tool for UML-based modeling. Its implementation in ensures platform independence, allowing it to run on various operating systems without modification.

Licensing and Platform Support

ArgoUML is released under the (EPL) version 1.0, an that allows users to freely use, modify, and distribute the software, including in both open and proprietary derivatives, provided that modifications are clearly indicated and is made available for any redistributed copies. This licensing model promotes widespread adoption and community-driven development while ensuring compatibility with other open-source projects under similar permissive terms. As a pure Java application, ArgoUML exhibits strong cross-platform compatibility, running on any operating system that supports the (JVM), such as Windows, macOS, and distributions. It requires Java 2 (JRE or JDK 1.4 or higher); users must ensure a compatible JVM is installed separately. The minimal system needs include approximately 10 MB of free disk space and standard input devices like a and keyboard. Distribution occurs primarily through downloadable executable JAR files available from the project's GitHub releases page, enabling straightforward access without complex setup. Historically, ArgoUML supported deployment via for one-click launches and automatic updates, but this method has become deprecated and unreliable following Oracle's discontinuation of Java browser plugins and shifts in JVM security policies. Installation is simplified by the absence of native installers or bundled dependencies; after downloading the file, users launch ArgoUML by double-clicking it (assuming the operating system associates JAR files with the JVM) or executing the command java -jar argouml-<version>.jar from a terminal or command prompt, where <version> is replaced with the specific release number. This approach leverages 's portability to minimize platform-specific hurdles, though users may need to configure JVM options for larger projects or custom environments.

History

Origins and Early Development

ArgoUML originated in 1998 at the University of California, Irvine (UCI), where it was initiated by Jason E. Robbins as a key component of his Ph.D. research on software design tools focused on human-centered computing and cognitive support for software engineers. Robbins, a graduate student in the Institute for Software Research at UCI, drew from earlier prototypes like ArgoOMT (developed in 1995) to create Argo/UML, emphasizing interactive environments that aid complex decision-making in object-oriented design. This academic foundation positioned ArgoUML as an experimental tool aimed at bridging software engineering and human-computer interaction principles. The project's early goals centered on developing a UML modeling tool that would be a "joy to use" while providing cognitive support to designers through features like active critics—automated suggestions and checks to facilitate better design decisions during the modeling process. Preliminary versions of Argo/UML were first distributed in April 1998 via the UCI website, marking the tool's transition to a UML-specific . The project became an open-source project in February 1999, shortly after Robbins completed his Ph.D., introducing core diagramming capabilities and setting the stage for broader adoption, with the first versioned release (0.10) occurring in May 2002. Development in these formative years involved a small team of students and researchers at UCI, including collaborators like Peyman Oreizy on early prototypes and undergraduates contributing to foundational components such as the Graphical Editing Framework (GEF). From the outset, the project embraced open-source principles to foster collaboration and external feedback, with Robbins releasing the code publicly to amplify its impact in the community—a novel approach at the time. ArgoUML was hosted on .org, a platform designed for collaborative , which succeeded early efforts on university servers and enabled distributed contributions. This structure laid the groundwork for gradual growth in its user base among developers seeking accessible UML tools.

Key Milestones and Releases

ArgoUML garnered early acclaim in 2003 by winning the Software Development Magazine’s Readers’ Choice Award for Best New UML Tool in the Design and Analysis Tools category. This recognition highlighted its innovative approach to UML modeling as an open-source alternative during a period when commercial tools dominated the market. By the mid-2000s, the project had grown substantially, attracting over 150 contributors from an spanning , , and the , which facilitated the development of multi-language support in the . This developer expansion underscored ArgoUML's appeal as a collaborative effort, with participation from diverse global volunteers enhancing its accessibility and adoption worldwide. A key technical milestone occurred in 2006 with the migration of the source repository from CVS to on September 28, improving efficiency for the growing team. That same year marked the release of version 0.19.6 on September 28, establishing a stable milestone that supported UML 1.3 and laid groundwork for subsequent enhancements. The project continued with major updates, including version 0.34 in 2011, which introduced refinements to rendering and export capabilities while maintaining compatibility with platforms. The final official release, version 0.35.1, arrived on August 31, 2014, incorporating bug fixes and minor feature improvements to solidify its UML 1.4 compliance. In 2019, the repository migrated to on , preserving the codebase for potential future community-driven maintenance. Since the 2014 release, no new official versions have been issued, and following the migration to , the project has remained inactive with no significant development activity as of November 2025.

Core Features

Supported UML Diagrams

ArgoUML provides full support for the nine diagram types defined in the UML 1.4 standard, enabling users to create and edit models for structural, behavioral, and architectural aspects of software systems. These include class diagrams for depicting static relationships among classes and interfaces; object diagrams for illustrating instances of classes at a specific moment; diagrams for capturing system functionality from user perspectives; sequence diagrams for showing interactions over time; collaboration diagrams for emphasizing structural organization of interactions; statechart diagrams for modeling state transitions; activity diagrams for representing workflows and processes, including swimlanes; component diagrams for illustrating physical software components; and deployment diagrams for mapping components to hardware nodes. The tool's editing interface facilitates intuitive diagram construction through a drag-and-drop mechanism, allowing elements such as classes, , and transitions to be placed and connected on the canvas directly from tool palettes. Automatic layout suggestions assist in organizing elements, with options to enable algorithmic arrangement during diagram generation or manual adjustments via the Graphical Editing Framework integration. Validation against UML rules is enforced through design critics, which analyze models for , detect inconsistencies like invalid associations or cycles, and propose corrections based on UML semantics. Diagrams can be exported in multiple vector and raster formats to facilitate sharing and integration with other tools, including GIF and PNG for bitmap images, PostScript (PS) and Encapsulated PostScript (EPS) for printable vector graphics, PGML for web-compatible markup, and SVG for scalable web and print use. Despite its adherence to UML 1.4, ArgoUML exhibits partial implementation of certain UML semantics, particularly in constraint handling and validation completeness; for instance, it may reject valid models involving non-navigable associations with data types or interfaces and fails to detect some invalid cases like certain circular inheritance patterns or composite bounds. Advanced constraint features, such as full Object Constraint Language (OCL) semantics beyond basic syntax checking, remain limited, relying on the Dresden OCL toolkit for partial type and syntax verification on classes and features.

Code Generation and Reverse Engineering

ArgoUML supports code generation from UML models to produce skeletal in several programming languages, primarily targeting the structural elements defined in class diagrams. The tool generates basic class skeletons, including attributes, operations, and interfaces, but does not produce complete implementations or behavioral logic such as method bodies beyond simple placeholders. Supported languages include , C++, C#, PHP4, and PHP5, with the output organized in a directory hierarchy that mirrors the package or structure of the model. The code generation process relies on the Generation menu, where users select individual classes or the entire model for output. For class diagrams, it creates files with declarations for classes, attributes, and operations, using customizable templates associated with UML profiles—such as the profile for datatypes like and int, or the C++ profile for handling pointers and references via . Sequence diagrams can contribute to the generation by informing interaction details, though support remains limited to static structural output rather than dynamic behavior. This functionality is designed for forward engineering, bridging UML designs to initial code bases without preserving or integrating user-modified code. In reverse engineering, ArgoUML imports existing Java source code to automatically construct UML class diagrams, parsing files to identify classes, interfaces, attributes, and relationships. The process uses the File > Import Sources option, which scans directories recursively and builds model elements like packages and classifiers directly from the code, avoiding intermediate abstract syntax trees for efficiency. This enables visualization of the package structure, with imported elements appearing in the model explorer and draggable to diagrams for further refinement. Currently, reverse engineering focuses on static models and does not fully support dynamic aspects like sequence diagrams, though an alpha feature allows generating basic sequence diagrams from method call traces in imported Java operations. The overall capabilities are constrained to basic structures, generating templates for core elements without full application or round-trip synchronization, where changes in code do not automatically update the model. Parsing for relies on an ANTLR-based to create UML model objects, supporting visualization of dependencies and hierarchies but requiring manual adjustments for complex or non-standard code. These features facilitate use cases such as , where designers create initial code from class diagrams to accelerate development, or documenting legacy codebases by into diagrams for analysis and maintenance.

Extensions and Customization

Modules and Plugins

ArgoUML employs a modular centered on a core model repository implemented using the Java Metadata Interface (JMI), which conforms to UML 1.4 standards and supports extensibility through open mechanisms like (XMI) for model interchange and (OCL) for constraints. This design allows the core application to incorporate swappable modules that extend functionality for specific UML profiles or tools, such as cognitive support for automated design critiques, without altering the base codebase. Modules operate as independent components, leveraging subsystem interfaces to attach to internal elements like the model, diagrams, or explorer views, enabling dynamic loading and enabling/disabling at runtime. Key available modules focus on UML profile support to accommodate domain-specific languages, allowing users to define custom stereotypes, tagged values, and notations tailored to particular modeling domains. For example, the profile and C++ profile modules provide language-specific extensions, including notation for elements like pointers and references in C++, configurable through the Project Properties dialog under the Profiles tab. These profiles integrate with the core UML 1.4 Standard Elements Profile, enabling seamless adaptation for specialized applications while maintaining compatibility with standard diagrams. Additionally, modules for code generation and extend beyond the default support; plugins for C#, C++, PHP4, and PHP5 allow generation of code from static structures, state machines, and sequence diagrams, as well as of into class diagrams (as implemented in version 0.35.1, released in 2014). The cognitive support module exemplifies tool-specific extensions, drawing from to deliver design critiques via a to-do list mechanism, with 90 critics assessing issues such as naming conventions and class organization. These critiques are categorized by design concerns and can trigger wizards for resolution, enhancing model quality during development. For integrations, modules can interface with external build tools like through generated project structures, such as build.xml files produced during code generation workflows. Plugins and modules are installed by placing JAR files in the ext subdirectory of the ArgoUML home directory, where each JAR must include a manifest specifying the main class implementing the ModuleInterface for automatic detection on startup. Users manage them via the Modules tab in the Edit > Settings dialog, which lists installed components for enabling or disabling, or through configuration in project properties for profile-specific adjustments. Community-developed extensions, often built as subprojects using Ant for compilation, include validators for diagrams and custom notations via extended UML profiles, loaded similarly to official modules to add features like enhanced sequence diagram support or domain-tailored stereotypes (with no new extensions added since version 0.35.1 in 2014). For instance, the C++ module (argouml-cpp) and Java module (argouml-java) serve as templates for such developments, demonstrating integration points for new diagram types or validators.

Internationalization and User Interface

ArgoUML provides comprehensive internationalization support, enabling its user interface to be displayed in multiple languages through volunteer-driven translations. The application has been localized into ten languages: American English, British English, French, German, Italian, Norwegian Bokmål, Portuguese, Russian, Spanish, and Chinese. This localization extends to menus, dialogs, tooltips, and error messages, facilitated by property resource bundles that load language-specific files at startup. Language selection is configured via command-line arguments or user preferences, with fallback to available translations if the preferred one is incomplete. Each supported language maintains its own subsystem, maintained by community volunteers to ensure cultural and linguistic accuracy in UML modeling contexts. The of ArgoUML adopts a model-driven centered on simplicity and cognitive support, drawing from principles of human-computer interaction to aid software designers. It features a multi-pane layout including an editing pane for creation, an explorer pane for navigating model elements, a details pane for editing properties, and a to-do pane for . Toolbars provide quick access to common actions such as file operations, zoom controls, and diagram-specific tools like selection, annotation, and drawing primitives, while context-sensitive property panels display editable attributes for selected elements, such as class names, multiplicities, and . The explorer offers nine customizable perspectives—ranging from package-centric to state-centric views—using approximately 70 rules to filter and organize model hierarchies, promoting efficient navigation without overwhelming the user (as in version 0.35.1, released in ). Cognitive aids, including design critics, generate prioritized to-do items with suggestions for improving model quality, such as or checks, presented in an organized list to reduce during . Customization options enhance usability while maintaining a focus on core modeling tasks. Users can adjust appearance settings, including look-and-feel themes like Metal with scalable fonts, and configure keyboard shortcuts for actions such as new project creation (Ctrl+N) or saving (Ctrl+S). Notation styles are selectable per project, supporting UML 1.3, UML 1.4, or Java-specific conventions for visibility symbols and element representations. is addressed through basic keyboard navigation, with for nudging elements, Tab for cycling focus, and grid/snap options for precise placement, though advanced features like integration are not implemented. These elements collectively emphasize an ergonomic interface that prioritizes clarity and designer productivity over complex visual embellishments.

Limitations and Development Status

Technical Shortcomings

ArgoUML exhibits incomplete compliance with the UML 1.4 specification, particularly in areas such as advanced and (OCL) constraints. Testing using the JUDE UML Language for Executable UML (JULE) framework revealed multiple non-compliance issues in ArgoUML's implementation of UML semantics, including gaps in handling complex definitions and incomplete support for OCL constraint validation beyond basic syntax and type checking on classes and features. The tool's OCL editor, integrated via the Dresden OCL toolkit, does not fully support constraints for elements other than classes and features, limiting its utility for advanced model validation. Additionally, ArgoUML lacks several standard UML , restricting the expressiveness of model extensions. The undo and redo functionality in ArgoUML remains partially implemented, with support limited to graphical edits since its initial development around , but lacking full transaction support for underlying model changes. This partial coverage means users cannot reliably revert structural modifications to the model, such as adding or deleting elements, leading to frustration in processes. The feature, tracked under long-standing issue 1834, does not encompass all actions and fails to maintain a complete history across sessions, as saving a project clears the stack. Performance degradation is a notable issue in ArgoUML when handling large models, such as those exceeding 100 classes, where the tool becomes slow and unresponsive due to its Java-based architecture. Official documentation recommends increasing the maximum heap size (e.g., via -Xmx flags) to mitigate problems with sizable projects, indicating inherent scalability limitations. Furthermore, analyses of Java programs have identified memory leaks in ArgoUML, where unreleased objects accumulate over time, exacerbating performance issues and potentially leading to crashes in prolonged sessions. Deployment via has proven unreliable for ArgoUML, with frequent launch failures reported due to compatibility issues with Runtime Environments and outdated deployment scripts. Users often encounter errors like "Unable to launch the application" or NoSuchMethodError when attempting web-based starts, particularly on modern systems. The tool also lacks modern features such as collaborative editing or cloud integration, remaining a standalone desktop application without support for real-time multi-user modeling or web-hosted storage.

Current State and Community Involvement

As of 2025, ArgoUML remains in an inactive development state, with its last official release, version 0.35.1, occurring on August 31, 2014. The project's primary repository shows no commits after the 2019 migration from , confirming a halt in core development activity. This stagnation stems from chronic understaffing among its volunteer base, a challenge that has persisted throughout the project's ; for instance, the full /redo functionality—a frequently requested feature since at least 2003—has remained unimplemented due to insufficient developer contributions to tackle its complexity. Despite the lack of official updates, ArgoUML continues to be available for download through mirrors on platforms like and , ensuring accessibility for existing users. The open-source community, which historically involved over 150 developers contributing across its lifespan, has largely dissipated, with minimal ongoing engagement limited to archived forums on the former .org platform and sporadic discussions elsewhere. Occasional user-maintained forks, such as the ArgoUML-SPL variant focused on software product lines, demonstrate limited independent efforts to adapt or extend the tool, with updates as recent as August 2024. Looking ahead, there are no indications of an official revival, and experts recommend migrating to actively maintained alternatives like Eclipse Papyrus or for modern UML modeling needs. Nonetheless, ArgoUML retains niche legacy support, particularly in educational settings where it is still deployed for teaching UML fundamentals, as evidenced by its inclusion in university software catalogs in 2025.

References

  1. https://www.wikidata.org/wiki/Q647784
Add your contribution
Related Hubs
User Avatar
No comments yet.