UML tool

A UML Tool is an application that some or all phases of the development process or the generation of artifacts support, which are described in the Unified Modeling Language ( UML), a modeling language for software and other systems.

Some of the modeling tools for software design is not focused on UML, but supports aspects of UML to a certain extent, as an extension or component of the basic functionality.

  • 2.1 Free Software
  • 2.2 Proprietary software

Aspects of functionality

Aspects of the functionality of UML tools include support for diagrams, code generation and reverse engineering.

Map support

Map support in this context means creating and editing of UML diagrams, ie diagrams that conform to the graphical notation of UML.

On the use of UML diagrams to draw diagrams of mainly object-oriented software, it has been agreed in general with software developers. On the other hand, is controversial whether and in what phases of software development such diagrams are needed at all, and how ( if at all) these charts should be updated. The priority of the program code often means that the diagrams are neglected.

Model Transformation

An essential part of model-driven architecture is the ability to transform different models together. It is for example possible to use this ability to the code generation, to automatically generate the Java code of a UML notation. In addition, various kinds of UML models can be transformed into each other. This is achieved for example by QVT ( for queries / Views / Transformations). An example of a QVT implementation is the ATL language from INRIA.

Code generation

Code generating means in this context that the user UML diagrams produced with specified model data and UML tool derives a part or all of the source code. With some tools, the user can ready presented a framework of program source code in the form of a code templates, in which then predefined token during automatic code generation is replaced by the source code.

The benefits of code generation as such is debatable and depends undoubtedly on the specific field and degree of application. In certain areas, the code generation is an established method and not limited to UML.

The idea to leave the level of the program code completely and to start "Program" on the level of UML (ie at design level ), is controversial among developers. It is the vision of model-driven architecture. The idea is not as common as other tools of software development, such as compilers and systems for configuration management.

An often -cited criticism is that UML diagrams precisely that level of detail is missing, which is necessary to cover the information contained in the source code. Some developers even say: " The code is the design ". However, there is at what is generated with the non- free so-called Unified Modeling Language, always best if a model of software, not the software itself

Reverse Engineering

Reverse engineering means in this context that the UML tool reads the source code as input and produce corresponding UML diagrams, and model data is derived (in contrast to the somewhat broader meaning that is described in the article reverse engineering ). Some of the challenges of reverse engineering are:

  • The source code is often much more accurate information than you want to see in design diagrams. This problem is addressed within the software architecture reconstruction.
  • Diagram information is usually found not in the source code, so that the UML tool generate at least for an initial step, a random layout of the graphical symbols of the UML notation, or must use a layout algorithm that places the symbols in such a way that the user can understand the diagram. For example, the symbols should be arranged so that they do not overlap. Usually, the user must review the automatically generated charts manually so that they gain importance. In addition, it usually does not make sense to derive graphs from the entire source code, as this more detailed information would include, as in UML diagrams of interest.
  • Some programming languages ​​have constructs that are particularly difficult to automatically convert in all its complexity in UML diagrams, such as class or function templates in C .

"Round -trip" engineering

Some UML tools refer to the ability to keep the program code, the model data and the UML diagrams consistent, as (hereinafter the use of synchronized versions will also round-trip engineering ) "round trip".

This means that the user has the option of either changing the model data ( by change in the corresponding charts ), or the source code, and the tool automatically updates the counterpart.

XMI support

Most UML tools allow you to save and export the UML models in XMI format. Theoretically, the heat generated from a UML tool XMI file can be read by another UML tool, but prove in practice the more complex UML designs as incompatible with respect to various tools.

Support for UML 2.0

The UML 2.0 specification includes 13 different charts. Compared with the 1.x versions, there are many new symbols and new semantics. Many UML tools supposedly support UML 2.0 - in fact, the new standard is supported by most only partially. Some extensions that are supported in almost any tool, for example, are structured classifier, named frames in sequence diagrams and timing diagram.

Programs

Free Software

  • ArgoUML
  • Eclipse Uml2Tools
  • NClass
  • Netbeans
  • Slide
  • Fujaba
  • Gaphor
  • Modelio Free Edition
  • OpenAmeos
  • PingUML
  • Software Ideas Modeler
  • StarUML
  • TOPCASED
  • Umbrello
  • UMLet
  • Violet

Proprietary software

  • Altova UModel
  • ARIS
  • Artisan Studio
  • Astah (formerly JEW )
  • Borland Together
  • BOUML
  • ConceptDraw
  • Easy code
  • Embedded UML Studio
  • Innovator
  • IBS Design Time for ABAP
  • MagicDraw UML
  • Metamill
  • Microsoft Visio
  • Microsoft Visual Studio 2010 Ultimate
  • Modelio Enterprise Edition
  • ObjectiF
  • Poseidon for UML
  • PowerDesigner from Sybase
  • RadCASE
  • Rational Rhapsody
  • Rational Rose
  • Select Solution Factory of Select Business Solutions
  • SinelaboreRT
  • SiSy
  • Sparx Systems Enterprise Architect
  • UML Lab
  • UML 2 State Machine C / C code generator framework
  • Visual Paradigm ( free community edition for non- commercial use )
  • yEd
791352
de