UML tool

UML tool

A UML tool or UML modeling tool is a software application that supports some or all of the notation and semantics associated with the Unified Modeling Language (UML), which is the industry standard general purpose modeling language for software engineering.

"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 diagrams; 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 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" 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 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 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 (MDA). This idea is not in such widespread use compared to other software development tools like compilers or software configuration management systems.

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" [http://www.developerdotstar.com/mag/articles/reeves_design_main.html by Jack W. Reeves] .

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").

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 [http://www.sei.cmu.edu/architecture/ata_extraction.html 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" 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 languages, 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 (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 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 for Queries/Views/Transformations. One example of an open-source QVT-solution is the ATL language built by INRIA.

References

ee also

*List of UML tools
*Model Driven Engineering
*QVT
*ATL
*Metamodeling

External links

*dmoz|Computers/Programming/Methodologies/Modeling_Languages/Unified_Modeling_Language/Tools/|UML Tools.
* [http://www.UML-Forum.com/tools.htm UML Tools listed on UML Forum web]


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • UML tool — Ein UML Werkzeug ist ein Anwendungsprogramm, das einige oder auch alle Phasen im Entwicklungsprozess oder die Erzeugung von Artefakten unterstützt, die in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere… …   Deutsch Wikipedia

  • JUDE (UML Tool) — Jude(the accurate name is JUDE from Professional and Community edition.) is a UML Modeling tool created by the Japanese company [http://www.change vision.com/index en.html ChangeVision] (a related company of [http://www.esm.co.jp/ Eiwa System… …   Wikipedia

  • UML Pad — is a CASE tool for UML diagram design. UML Pad is free software licenced under the GPL.ee also*List of UML toolsExternal links* [http://web.tiscali.it/ggbhome/umlpad/umlpad.htm UML Pad website] …   Wikipedia

  • UML-based Web Engineering (UWE) — UWE (UML based Web Engineering) is a software engineering approach for the development of Web applications. UWE provides a UML profile (UML extension), a metamodel, model driven development process and tool support for the systematic design of… …   Wikipedia

  • UML-based Web Engineering — UWE (UML based Web Engineering) is a software engineering approach for the development of Web applications. UWE provides a UML profile (UML extension), a metamodel, model driven development process and tool support for the systematic design of… …   Wikipedia

  • List of UML tools — This article lists Unified Modeling Language tools, classified by their proprietary or non proprietary status. Non proprietary UML tools *Acceleo: Eclipse and EMF template based system for source code generation from UML models. *AmaterasUML:… …   Wikipedia

  • Executable UML — Executable UML, often abbreviated to xtUML [Example usage: http://www.techonline.com/community/tech topic/37519] or xUML [Example usage: http://www.kc.com/xuml.php] , is the evolution of the Shlaer Mellor method to UML. Executable UML graphically …   Wikipedia

  • Umbrello UML Modeller — Infobox Software name = Umbrello logo= caption = Umbrello 1.5.3 with a sample diagram developer = The Umbrello Team latest release version = 2.0.0 latest release date = January 12, 2008 operating system = Linux genre = UML tool | license = GPL… …   Wikipedia

  • Poseidon for UML — Infobox Software name = Poseidon for UML caption = developer = Gentleware AG latest release version = 6.0 latest release date = 2007 operating system = Cross platform genre = UML tool license = [http://www.gentleware.com/index.php?id=120/… …   Wikipedia

  • MetaCASE tool — meta CASE tool is a type of application software that provides possibility to use more than one modelling metodics or notations within process of software development. Another definition: Meta CASE tools are software tools that support the design …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”