UML tool

from Wikipedia, the free encyclopedia

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

Some of the modeling tools for software design are not focused on UML, but do support aspects of UML to some extent, as an extension or component of the basic functionality.

Aspects of functionality

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

Chart support

In this context, diagram support means the creation and editing of UML diagrams, i.e. diagrams that conform to the UML graphic notation.

The use of UML diagrams to draw diagrams of primarily object-oriented software has generally been agreed among software developers. On the other hand, it is controversial whether and in which phases of software development such diagrams are needed at all, and how (if at all) these diagrams should be updated. The primacy 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 into one another. It is possible, for example, to apply this ability to code generation in order to automatically generate Java code from UML notation . Furthermore, different types of UML models can be converted into one another. This is made possible, for example, by QVT (for queries / views / transformations). An example of a QVT implementation is INRIA's ATL language.

Source code generation

Source code generation in this context means that the user creates UML diagrams with specified model data, and the UML tool acts as a code generator and derives part or all of the source code from it. With some tools, the user can provide a framework for the program source text in the form of a code template in which predefined tokens are then replaced by source text during the automatic code generation.

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

The idea of ​​leaving the level of the program code completely and starting “programming” at the UML level (i.e. at the design level) is controversial among developers. It is the vision of model-driven architecture. The idea is not as common as other software development tools, such as compilers and configuration management systems .

One criticism that is often quoted is that UML diagrams lack the level of detail that is necessary to cover the information contained in the source code. Some developers even say, "The code is the draft". However, what is generated with the so-called Unified Modeling Language, which is not for nothing, is always at best a model of software, not the software itself.

Reverse engineering

Reverse engineering in this context means that the UML tool reads the source text as input and derives corresponding UML diagrams and model data from it (in contrast to the somewhat more comprehensive meaning described in the article Reverse Engineering ). Some of the challenges of reverse engineering are:

  • The source code often has much more detailed information than one might want to see in a design diagram. This problem is dealt with within the software architecture reconstruction.
  • Diagram information is usually not found in the source code, so that the UML tool has to generate a random layout of the graphic symbols of the UML notation for at least an initial step, or 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 has to manually revise the automatically generated diagrams so that they become meaningful. In addition, it usually makes no sense to derive diagrams from the entire source code, as these would contain more detailed information than is of interest in UML diagrams.
  • Some programming languages ​​have constructs that are particularly difficult to convert automatically into UML diagrams in all their complexity, such as class or function templates in C ++ .

"Roundtrip" engineering

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

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

XMI support

Most UML tools allow the UML models to be saved and exported in XMI format. In theory, the XMI file generated by one UML tool should be able to be read by another UML tool, but in practice the more complex UML designs prove to be incompatible with regard to different tools.

Support of UML 2.0

The UML 2.0 specification comprises 13 different diagrams. Compared to the 1.x versions, there are many new symbols and new semantics . Many UML tools supposedly support UML 2.0 - in reality, most of the new standard is only partially implemented. Extensions that are hardly supported by any tool are, for example, structured classifiers , named frames in sequence diagrams and the time history diagram .

Programs

Free software

Proprietary software

Web links