HOME

TheInfoList



OR:

A UML tool is a
software application Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
that supports some or all of the notation and semantics associated with the
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
(UML), which is the industry standard
general-purpose modeling General-purpose modeling (GPM) is the systematic use of a general-purpose modeling language to represent the various facets of an object or a system. Examples of GPM languages are: * The Unified Modeling Language (UML), an industry standard for m ...
language for
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
. ''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 A diagram is a symbolic representation of information using visualization techniques. Diagrams have been used since prehistoric times on walls of caves, but became more prevalent during the Enlightenment. Sometimes, the technique uses a three- ...
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 (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
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 Round-trip engineering (RTE) is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, and even documentation. The need for round-trip engineering a ...
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'' in 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 the
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
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 may refer to: Tools * Die (manufacturing), used to cut or shape material * Mold, in a molding process * Stencil, a pattern or overlay used in graphic arts (drawing, painting, etc.) and sewing to replicate letters, shapes or designs Co ...
, 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 Code ''is'' the design" http://www.developerdotstar.com/mag/articles/reeves_design_main.html by Jack W. Reeves 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

''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 (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompli ...
"). 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 software 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 some ''random layout'' of the graphical symbols of the UML notation or use some automatic ''
layout algorithm Force-directed graph drawing algorithms are a class of algorithms for drawing graphs in an aesthetically-pleasing way. Their purpose is to position the nodes of a graph in two-dimensional or three-dimensional space so that all the edges are of m ...
'' 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 A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s, like ''class-'' or ''function templates'' of the C++ programming language, which are notoriously hard to convert automatically to UML diagrams in their full complexity.


Model and diagram interchange

XML Metadata Interchange The XML Metadata Interchange (XMI) is an Object Management Group (OMG) standard for exchanging metadata information via Extensible Markup Language (XML). It can be used for any metadata whose metamodel can be expressed in Meta-Object Facili ...
(XMI) is the format for UML model interchange. XMI does not support UML Diagram Interchange, which allows the importation of UML diagrams from one model to another.


Model transformation

A key concept associated with the model-driven architecture 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. It is possible to generate UML models from other modeling notations, such as
BPMN Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model. Originally developed by the Business Process Management Initiative (BPMI), BPMN has been maintained by the Ob ...
, which is itself a
UML profile A profile in the Unified Modeling Language (UML) provides a generic extension mechanism for customizing UML models for particular domains and platforms. Extension mechanisms allow refining standard semantics in strictly additive manner, preventing t ...
. The standard that supports this is called
QVT QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
for Queries/Views/Transformations. One example of an open-source
QVT QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
-solution is the
ATL ATL may refer to: Places * Atlanta, a city in the U.S. state of Georgia ** Hartsfield–Jackson Atlanta International Airport (IATA airport code) ** Peachtree station (Amtrak station code) * Attleborough railway station, located in Norfolk, Engl ...
language built by INRIA.


See also

*
List of Unified Modeling Language tools This article compares UML tools. UML tools are software applications which support some functions of the Unified Modeling Language. General Features See also * List of requirements engineering tools Requirements engineering tools a ...
* List of requirements engineering tools * Metamodeling * Model-driven engineering *
QVT QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
* Specification and Description Language (SDL)


References


External links

* .
UML Tools Directory
{{DEFAULTSORT:Uml Tool Unified Modeling Language