Jump to content

UML tool

From Wikipedia, the free encyclopedia

AUML toolis asoftware applicationthat supports some or all of the notation and semantics associated with theUnified Modeling Language(UML), which is the industry standardgeneral-purpose modelinglanguage forsoftware engineering.

UML toolis used broadly here to include application programs which are not exclusively focused on UML, but which support some functions of the Unified Modeling Language, either as anadd-on,as acomponentor as apartof their overall functionality.

Kinds of Functionality

[edit]

UML tools support the following kinds of functionality:

Diagramming

[edit]

Diagrammingin this context meanscreatingandeditingUMLdiagrams;that is diagrams that follow the graphical notation of the Unified Modeling Language.

The use of UML diagrams as a means to draw diagrams of – mostly –object-orientedsoftware is generally agreed upon by software developers. When developers draw diagrams of object-oriented software, they usually follow the UML notation. On the other hand, it is often debated whether those diagrams are needed at all, during what stages of the software development process they should be used, and how (if at all) they should be kept up to date. The primacy of software code often leads to the diagrams being deprecated.

Round-trip engineering

[edit]

Round-trip engineeringrefers to the ability of a UML tool to perform code generation from models, and model generation from code (a.k.a., reverse engineering), while keeping both the model and the code semantically consistent with each other. Code generation and reverse engineering are explained in more detail below.

Code generation

[edit]

Code generationin this context means that the user creates UML diagrams, which have some connected model data, and the UML tool derives from the diagrams part or all of thesource codefor the software system. In some tools the user can provide a skeleton of the program source code, in the form of a source codetemplate,where predefined tokens are then replaced with program source code parts during the code generation process.

An often cited criticism is that the UML diagrams lack the detail that is needed to contain the same information as is covered with the program source: Jack W. Reeves states that the final embodiment of the design lies in the source code. (His often quoted statement that "the Codeisthe design "[1]has been misinterpreted to mean that there is no need for intermediate- and high-level software-design artifacts, such as UML diagrams or software-requirements documents).

Reverse engineering

[edit]

Reverse engineeringin this context means, that the UML tool reads program source code as input andderivesmodel data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader 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 would want to see in design diagrams. This problem is addressed bysoftware architecture reconstruction.
  • Diagram data is normally not contained with the program source, such that the UML tool, at least in the initial step, has to create somerandom layoutof the graphical symbols of the UML notation or use some automaticlayout algorithmto place the symbols in a way that the user can understand the diagram. For example, the symbols should be placed at such locations on the drawing pane that they don't overlap. Usually, the user of such a functionality of a UML tool has to manually edit those automatically generated diagrams to attain some meaningfulness. It also often doesn't make sense to draw diagrams of the whole program source, as that represents just too much detail to be of interest at the level of the UML diagrams.
  • There are language features of someprogramming languages,likeclass-orfunction templatesof theC++programming language, which are notoriously hard to convert automatically to UML diagrams in their full complexity.

Model and diagram interchange

[edit]

XML Metadata Interchange(XMI) is the format for UML model interchange. XMI does not supportUML Diagram Interchange,which allows the importation of UML diagrams from one model to another.

Model transformation

[edit]

A key concept associated with themodel-driven architectureinitiative is the capacity to transform a model into another model. For example, one might want to transform a platform-independent domain model into a Java platform-specific model for implementation. It is also possible to refactor UML models to produce more concise and well-formed UML models. It is possible to generate UML models from other modeling notations, such asBPMN,which is itself aUML profile.The standard that supports this is calledQVTfor Queries/Views/Transformations. One example of an open-sourceQVT-solution is theATLlanguage built byINRIA.

See also

[edit]

References

[edit]
[edit]