What Is Argouml ?
What Is Argouml ?
What Is Argouml ?
What is ArgoUML ?
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. ArgoUML does not yet completely implement the UML standard.
History
ArgoUML was originally developed at UC Irvine by Jason E. Robbins, leading to his Ph.D. It is now an open source project hosted by Tigris.org. The ArgoUML project now includes more than 19,000 registered users and over 150 developers.
[2]
In 2003, ArgoUML won the Software Development Magazine's annual Readers' Choice Award in the Design and Analysis Tools category.
[3]
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.
Features
All 9 UML 1.4 diagrams supported though not yet implemented. Only class diagram and use-case diagrams are more or less fully implemented. Closely follows the UML standard. Platform independent Java 1.5+. 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, Python, Ruby and, with less mature modules, Ada, Delphi and SQL). Reverse engineering / JAR/class file import.
Weaknesses
Partial undo feature (working for graphics edits) No support for UML 2
Open standards: XMI, SVG and PGML 100% Platform independent thanks to the exclusive use of Java Open Source, which allows extending or customizing. Cognitive features like: reflection-in-action, opportunistic design, comprehension and problem solving
ArgoUML Principles
When ArgoUML starts, it shows an empty class diagram on which you can add various objects. ArgoUML works according the following principles:
The model may contain many objects (ModelElements) which form the complete UML description of the system you are describing. All ModelElements might be present on a diagram, but this is not required. Hence, the model that is stored in ArgoUML is independent of the contents of the diagrams. This may be explained by the possibility to generate programming code from the model - you do not need any diagrams for this. An ArgoUML project also contains all diagram information, i.e. the shapes (presentation) used to represent the various UML ModelElements, their location, color, etc. Some ModelElements appear on multiple diagrams, some on one or none. Hence, saving and opening projects retains all this information. There is a way to only save the modelinformation though, which is by the menu "Tools" -> "Export as XMI...". This may be usefull e.g. when generating programming code with an external tool that understands XMI.
Objects
Select objects by left-clicking on them. The functionality of ArgoUML can be activated in the menu, in toolbars, or in pop-up menus when right-clicking above an object. Many of these functions work on the selected objects. All diagrams have toolbars at the top which are used to create objects on the diagram. Most objects can be added to a diagram and removed from a diagram without deleting it from themodel! Select an object on a diagram, and then the menu item "Edit" -> "Remove from Diagram" clears the object from the diagram, but the object remains intact in the model, which may be seen in the explorer, i.e. the tree structure at the left hand side. Once removed, and item can be added back to the diagram (or any other diagram for that matter) by selecting it in the explorer and selecting the item "Add to Diagram" in the right-click pop-up menu. Alternatively, you can drag objects from the explorer and drop them onto a diagram.
The lower right part contains various details of the currently selected object: You select the object in one of the upper levels and choose what details you want to examine using the tabs. The lower left part contains a list of all ToDo items for this model.
Screenshot of ArgoUML
ECLIPSE
Eclipse is a multi-language software development environment comprising a workspace and an extensible plug-in system. It is written mostly in Java. It can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++,COBOL, Fortran, Haskell, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala,Clojure, Groovy, and Scheme. It can also be used to develop packages for the softwareMathematica. Development environments include the Eclipse Java development tools (JDT) for Java, Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others. The initial codebase originated from IBM VisualAge. The Eclipse SDK (which includes the Java development tools) is meant for Java developers. Users can extend its abilities by installing plug-ins written for the Eclipse Platform, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse SDK is free and open source software (although it is incompatible with the GNU General Public License). It was one of the first IDEs to run under GNU Classpath and it runs without problems under IcedTea.
History
Eclipse began as an IBM Canada project. Object Technology International (OTI), which had previously [2] marketed the Smalltalk-based VisualAgefamily of IDE products, developed the new product as a Javabased replacement. In November 2001, a consortium was formed with a board of stewards to further the development of Eclipse as open-source software. The original members were Borland, IBM, Merant, QNX Software Systems,Rational Software, Red Hat, SuSE, TogetherSoft and WebGain. The number of stewards increased to over 80 by the end of 2003. In January 2004, the Eclipse Foundation was created. Eclipse 3.0 (released on 21 June 2004) selected the OSGi Service Platform specifications as the runtime architecture. The Association for Computing Machinery recognized Eclipse with the 2011 ACM Software Systems Award on 26 April 2012.
Licensing
The Eclipse Public License (EPL) is the fundamental license under which Eclipse projects are released. Some projects require dual licensing, for which the Eclipse Distribution License (EDL) is available, although use of this license must be applied for and is considered on a case-by-case basis. The Eclipse was originally released under the Common Public License, but was later relicensed under the Eclipse Public License. The Free Software Foundation has said that both licenses are free software licenses, but are incompatible with the GNU General Public License (GPL). Mike Milinkovich, of the Eclipse Foundation commented that moving to the GPL would be considered when version 3 of the GPL was released.
Name
According to Lee Nackman, Chief Technology Officer of IBM's Rational division (originating in 2003) at that time, the name "Eclipse" (dating from at least 2001) was not a wordplay on Sun Microsystems, as the product's primary competition at the time of naming was Microsoft Visual Studio.
Releases
Since 2006, the Foundation has coordinated an annual Simultaneous Release. Each release includes the Eclipse Platform as well as a number of other Eclipse projects. So far, each Simultaneous Release has occurred on the fourth Wednesday of June. There is also a 3.8 release of Eclipse, but it is not promoted anywhere on their web site, directing interested users to 4.2. Version 3.8 exists purely to clean up the bugs in 3.7 "Indigo", and will not be maintained after 4.3 "Kepler" is released.
Codename
Date
Platform version
Projects
N/A
21 June 2004
3.0 [1]
N/A
28 June 2005
3.1
Callisto
30 June 2006
3.2
Callisto projects
Europa
29 June 2007
3.3
Europa projects
Ganymede
25 June 2008
3.4
Ganymede projects
Codename
Date
Platform version
Projects
Galileo
24 June 2009
3.5
Galileo projects
Helios
23 June 2010
3.6
Helios projects
Indigo
22 June 2011
3.7
Indigo projects
Juno
27 June 2012
4.2 [2]
Juno projects
Kepler
4.3
Kepler projects
Old version Older version, still supported Latest version Future release
Some users may have an interest in Indigo or Eclipse 3.8 while performance problems remain in Juno. 3.8 provides bugfixes for Indigo & adds Java 7 support, but is not a 'packaged distribution' release. Features and plugins equivalent to a packaged distribution may be added from within the IDE (Help | Install New Software menu).
Architecture
The Eclipse Platform uses plug-ins to provide all functionality within and on top of the runtime system, in contrast to some other applications, in which functionality is hard coded. The Eclipse Platform's runtime system is based on Equinox, an implementation of the OSGi core framework specification.
This plug-in mechanism is a lightweight software componentry framework. In addition to allowing the Eclipse Platform to be extended using otherprogramming languages such as C and Python, the plug-in framework allows the Eclipse Platform to work with typesetting languages likeLaTeX, networking applications such as telnet and database management systems. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management. Java and CVS support is provided in the Eclipse SDK, with support for otherversion control systems provided by third-party plugins. With the exception of a small run-time kernel, everything in Eclipse is a plug-in. This means that every plug-in developed integrates with Eclipse in exactly the same way as other plug-ins; in this respect, all [citation needed] features are "created equal". Eclipse provides plug-ins for a wide variety of features, some of which are through third parties using both free and commercial models. Examples of plug-ins include a UML plug-in for Sequence and other UML diagrams, a plug-in for DB Explorer, and many others. The Eclipse SDK includes the Eclipse Java development tools (JDT), offering an IDE with a builtin incremental Java compiler and a full model of the Java source files. This allows for advanced refactoring techniques and code analysis. The IDE also makes use of a workspace, in this case a set of metadata over a flat filespace allowing external file modifications as long as the corresponding workspace "resource" is refreshed afterwards. Eclipse implements widgets through a widget toolkit for Java called SWT, unlike most Java applications, which use the Java standard Abstract Window Toolkit (AWT) or Swing. Eclipse's user interface also uses an intermediate graphical user interface layer called JFace, which simplifies the construction of applications based on SWT. Language packs developing by the "Babel project" provide translations into over a dozen natural languages.
Examples of rich client applications based on Eclipse are: Lotus Notes 8 Novell/NetIQ Designer for Identity Manager Apache Directory Studio Coverity Build Analysis tool.
Server platform
Eclipse supports development for Tomcat, GlassFish and many other servers and is often capable of installing the required server (for development) directly from the IDE. It supports remote debugging, allowing the user to watch variables and step through the code of an application that is running on the attached server.
Modeling Platform
The Modeling project contains all the official projects of the Eclipse Foundation focusing on model-based development technologies. They are all compatible with the Eclipse Modeling Framework created by IBM. Those projects are separated in several categories: Model Transformation, Model Development Tools, Concrete Syntax Development, Abstract Syntax Development, Technology and Research, and Amalgam.
Model Transformation
Model Transformation projects uses EMF based models as an input and produce either a model or text as an output. Model to model transformation projects includes ATL, an open source transformation language and toolkit used to transform a given model or to generate a new model from a given EMF model. Model to text transformation projects contains Acceleo, an implementation of MOFM2T, a standard model to text language from the OMG. Acceleo is an open source code generator that can generate any textual language (Java, PHP, Python, etc.) from EMFbased models defined with any metamodel (UML, SysML, etc.).
Amalgam
Amalgam provides the packaging and integration between all the available modeling tools for the Eclipse package dedicated to modeling tools.
Extensions
Eclipse supports a rich selection of extensions, adding support for Python via pydev, Android development via Google's ADT, JavaFX support via e(fx)clipse, and many others at the Eclipse Marketplace.
Alternative Distributions
A number of alternative distributions exist in the Eclipse project.
TOPIC