All Topics  
UML tool

 

   Email Print
   Bookmark   Link






 

UML tool



 
 
A UML tool or UML modeling tool is a software application
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 that supports some or all of the notation and semantics associated with the Unified Modeling Language
Unified Modeling Language

Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create abstract models of specific systems....
 (UML), which is the industry standard general purpose modeling language for software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
.

UML tool is 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 an add-on, as a component or as a part of their overall functionality.

tools support the following kinds of functionality:

iagramming in this context means creating and editing UML diagram
Diagram

A diagram is a 2D geometric model symbolic representation of information according to some visualization technique. Sometimes, the technique uses a Three-dimensional space visualization which is then graphical projection onto the 2D surface....
s; 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-oriented
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
 software is generally agreed upon by software developers.






Discussion
Ask a question about 'UML tool'
Start a new discussion about 'UML tool'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A UML tool or UML modeling tool is a software application
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 that supports some or all of the notation and semantics associated with the Unified Modeling Language
Unified Modeling Language

Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create abstract models of specific systems....
 (UML), which is the industry standard general purpose modeling language for software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
.

UML tool is 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 an add-on, as a component or as a part of their overall functionality.

Kinds of Functionality

UML tools support the following kinds of functionality:

Diagramming

Diagramming in this context means creating and editing UML diagram
Diagram

A diagram is a 2D geometric model symbolic representation of information according to some visualization technique. Sometimes, the technique uses a Three-dimensional space visualization which is then graphical projection onto the 2D surface....
s; 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-oriented
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
 software 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

Round-trip engineering refers 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
Code generation
Code generation

In computer science, code generation is the process by which a compiler's code generator converts some internal representation of source code into a form that can be readily executed by a machine ....
 in this context means, that the user creates UML diagrams, which have some connoted model data, and the UML tool derives from the diagrams parts or all of the source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 for the software system. In some tools, the user can provide a skeleton of the program source code, in the form of a source code template
Template

selfref|For information about how to use templates in Wikipedia, see...
 where predefined tokens are then replaced with program source code parts during the code generation process.

There is some debate among software developers about how useful code generation as such is. It certainly depends on the specific problem domain and how far code generation should be applied. There are well known areas where code generation is an established practice, not limited to the field of UML.

The idea of completely leaving the "code level" and start "programming" on the UML diagram level (i.e., design level) is quite debated among developers. That is the vision for Model-driven architecture
Model-driven architecture

Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as computer models....
 (MDA). This idea is not in such widespread use compared to other software development
Software development

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
 tools like compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
s or software configuration management systems
Configuration management

Configuration management is a field of management that focuses on establishing and maintaining consistency of a product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life....
.

An often cited criticism is that the UML diagrams just lack the detail which is needed to contain the same information as is covered with the program source. Some developers even claim that "the Code is the design" .

Reverse engineering
Reverse engineering in this context means, that the UML tool reads program source code as input and derives model data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader meaning described in the article "Reverse engineering
Reverse engineering

Reverse engineering is the process of discovering the technological principles of a device, object or system through analysis of its structure, function and operation....
").

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 by .
  • Diagram data is normally not contained with the program source, such that the UML tool, at least in the initial step, has to create some random layout of the graphical symbols of the UML notation or use some automatic layout algorithm to 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 some programming language
    Programming language

    A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
    s, like class- or function templates of the C++
    C++

    C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
     programming language, which are notoriously hard to convert automatically to UML diagrams in their full complexity.


Model and Diagram Interchange

XML Metadata Interchange
XML Metadata Interchange

The XML Metadata Interchange is an Object Management Group standard for exchanging Metadata information via Extensible Markup Language.It can be used for any metadata whose metamodel can be expressed in Meta-Object Facility....
 (XMI) is the format for UML model interchange. Unfortunately, XMI does not yet support diagram interchange, which is a significant shortcoming for a visual modeling language. Consequently, even when you can import a UML model from one tool to another with XMI, you will likely need to redraw your diagrams.

Model Transformation

A key concept associated with the Model-driven architecture
Model-driven architecture

Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as computer models....
 initiative 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. Finally, it is possible to generate UML models from other modeling notations, such as BPMN. The standard that supports this is called QVT
QVT

QVT , in the model-driven architecture, is a standard for model transformation defined by the Object Management Group....
 for Queries/Views/Transformations. One example of an open-source QVT
QVT

QVT , in the model-driven architecture, is a standard for model transformation defined by the Object Management Group....
-solution is the ATL
ATLAS Transformation Language

ATL is a Model Transformation Language developed at INRIA to answer the QVT Request For Proposal. QVT is an Object Management Group standard for performing model transformations....
 language built by INRIA.

See also

  • List of UML tools
    List of UML tools

    This article lists Unified Modeling Language UML tools, classified by their Proprietary software or non-proprietary status....
  • Model Driven Engineering
  • QVT
    QVT

    QVT , in the model-driven architecture, is a standard for model transformation defined by the Object Management Group....
  • ATL
    ATLAS Transformation Language

    ATL is a Model Transformation Language developed at INRIA to answer the QVT Request For Proposal. QVT is an Object Management Group standard for performing model transformations....
  • Metamodeling


External links