What Is Argouml ?

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

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

How to use ArgoUML ?


ArgoUML is a powerful yet easy-to-use interactive, graphical software design environment that supports the design, development and documentation of object-oriented software applications. If you are familiar with a family of software applications called Computer Aided Software Engineering (CASE) tools then you should find ArgoUML instantly familiar. The users of ArgoUML are software designers & architects, software developers, business analysts, systems analysts and other professionals involved in the analysis, design and development of software applications. Main features:

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:

Project, Model and Diagram


The file operations save and open one project at a time. One project is composed of a model plus diagram information, i.e. everything you can edit within the ArgoUML window.

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.

Overview of the window


The top of the window contains a menu bar with commands available. In the File menu you can store the project or open another project instead. The upper left part of the ArgoUML window shows a tree model of diagrams and objects. This view can be adapted to your needs by filtering the objects that are shown, and the structure in which they are shown. The upper right part of ArgoUML shows the current diagram (one at a time). You can drag and drop the objects in the diagrams, and you can use the quick-links that appear when hovering over a selected object to create new objects connected to the already present objects.

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

26 June 2013 (planned)

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.

Rich Client Platform


Eclipse provides the Rich Client Platform (RCP) for developing general purpose applications. The following components constitute the rich client platform: Equinox OSGi a standard bundling framework Core platform boot Eclipse, run plug-ins Standard Widget Toolkit (SWT) a portable widget toolkit JFace viewer classes to bring model view controller programming to SWT, file buffers, text handling, text editors Eclipse Workbench views, editors, perspectives, wizards

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.

Web Tools Platform


The Eclipse Web Tools Platform (WTP) project is an extension of the Eclipse platform with tools for developing Web and Java EE applications. It includes source and graphical editors for a variety of languages, wizards and built-in applications to simplify development, and tools and APIs to support deploying, running, and testing apps.

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.).

Model Development Tools


Model Development Tools projects are implementations of modeling standard used in the industry like UML or OCL and their toolkit. Among those projects can be found implementation of the following standard: UML SysML OCL BPMN IMM SBVR XSD NEDA

Concrete Syntax Development


The Concrete Syntax Development project contains the Graphical Modeling Framework, an Eclipse based framework dedicated to the graphical representation of EMF based models.

Abstract Syntax Development


The Abstract Syntax Development project hosts the Eclipse Modeling Framework, core of most of the modeling project of the Eclipse Foundation and the framework available for EMF like CDO, EMF query or EMF validation.

Technology and Research


Technology and Research projects are prototypes of Modeling project, this project is used to host all the modeling projects of the Eclipse Foundation during their incubation phase.

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.

Eclipse PDT (PHP Development Tools)


The PHP Development Tools project provides a PHP Development Tools framework for the Eclipse platform. The project encompasses all development components, including code-completion, develop PHP and facilitate extensibility. It leverages the existing Eclipse Web Tools Platform (WTP) and Dynamic Languages Toolkit (DLTK).

OBJECT ORIENTED ANALYSIS AND DESIGN


ASSIGNMENT 1

TOPIC

Study on ArgoUML and Eclipse

Submitted by, Prashanthi.R III-CSE 03-01-2013

You might also like