<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=UML-Werkzeug</id>
	<title>UML-Werkzeug - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=UML-Werkzeug"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=UML-Werkzeug&amp;action=history"/>
	<updated>2026-06-09T13:59:45Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=UML-Werkzeug&amp;diff=610613&amp;oldid=prev</id>
		<title>imported&gt;Millbart: Revert auf Version von :Benutzer:Millbart (18:05 Uhr, 22. Februar 2024). Grund: siehe Diskussion und die Weblinks sind tot.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=UML-Werkzeug&amp;diff=610613&amp;oldid=prev"/>
		<updated>2024-04-21T14:21:24Z</updated>

		<summary type="html">&lt;p&gt;Revert auf Version von &lt;a href=&quot;/index.php?title=Benutzer:Millbart&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:Millbart (Seite nicht vorhanden)&quot;&gt;Benutzer:Millbart&lt;/a&gt; (18:05 Uhr, 22. Februar 2024). Grund: siehe Diskussion und die Weblinks sind tot.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;UML-Werkzeug&amp;#039;&amp;#039;&amp;#039; ist ein Anwendungsprogramm, das einige oder auch alle Phasen im Entwicklungsprozess oder die Erzeugung von [[Artefakt (UML)|Artefakten]] unterstützt, die in der [[Unified Modeling Language]] (UML), einer Modellierungssprache für [[Software]] und andere Systeme, beschrieben sind.&lt;br /&gt;
&lt;br /&gt;
Ein Teil der [[Modellierung]]swerkzeuge für den [[Software]]entwurf ist nicht auf UML fokussiert, unterstützt jedoch Aspekte der UML zu einem gewissen Grade, als Erweiterung oder Komponente der grundlegenden Funktionalität.&lt;br /&gt;
&lt;br /&gt;
== Aspekte der Funktionalität ==&lt;br /&gt;
Aspekte der Funktionalität von UML-Werkzeugen sind unter anderem die Unterstützung von Diagrammen, Codeerzeugung und Reverse Engineering.&lt;br /&gt;
&lt;br /&gt;
=== Diagrammunterstützung ===&lt;br /&gt;
Diagrammunterstützung bedeutet in diesem Zusammenhang das Erzeugen und Bearbeiten von UML-Diagrammen, das heißt Diagrammen, die konform zur graphischen Notation der UML sind.&lt;br /&gt;
&lt;br /&gt;
Auf die Verwendung von UML-Diagrammen, um Diagramme von hauptsächlich objektorientierter Software zu zeichnen, hat man sich im Allgemeinen unter Software-Entwicklern geeinigt. Andererseits wird kontrovers diskutiert, ob und in welchen Phasen der Softwareentwicklung solche Diagramme überhaupt benötigt werden, und wie (wenn überhaupt) diese Diagramme aktualisiert werden sollten. Der Vorrang des Programm-Codes führt oft dazu, dass die Diagramme vernachlässigt werden.&lt;br /&gt;
&lt;br /&gt;
=== Modelltransformation ===&lt;br /&gt;
Ein wesentlicher Bestandteil der [[modellgetriebene Architektur|modellgetriebenen Architektur]] ist die Fähigkeit, verschiedene Modelle ineinander zu transformieren. Es ist zum Beispiel möglich diese Fähigkeit auf die Codeerzeugung anzuwenden, um aus einer UML-Notation automatisch [[Java (Programmiersprache)|Java]]-Code zu erzeugen. Des Weiteren können verschiedene Arten von UML-Modellen ineinander umgewandelt werden. Dies wird zum Beispiel durch [[MOF QVT|QVT]] (für Queries/Views/Transformations) ermöglicht. Ein Beispiel für eine QVT-Implementierung ist die ATL-Sprache von INRIA.&lt;br /&gt;
&lt;br /&gt;
=== Quelltexterzeugung ===&lt;br /&gt;
Quelltexterzeugung bedeutet in diesem Zusammenhang, dass der Anwender UML-Diagramme mit spezifizierten Modelldaten erzeugt, und das UML-Werkzeug als [[Codegenerator]] fungiert und daraus einen Teil oder den gesamten [[Quelltext]] ableitet. Bei einigen Werkzeugen kann der Anwender ein Gerüst des Programm-Quelltextes in Form eines Code-[[Template (Programmierung)|Templates]] bereitstellten, in welchem dann vordefinierte [[Token (Übersetzerbau)|Token]] während der automatischen Codeerzeugung durch Quelltext ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Der Nutzen der automatischen Quelltexterzeugung aus UML-Diagrammen als solcher ist strittig und hängt zweifellos von dem spezifischen Feld und Grad der Anwendung ab. In bestimmten Bereichen ist die Codeerzeugung eine etablierte Methode und nicht auf UML beschränkt.&lt;br /&gt;
&lt;br /&gt;
Die Idee, die Ebene des Programmcodes komplett zu verlassen und das „Programmieren“ auf der Ebene von UML zu beginnen (also auf Entwurfsniveau), ist unter Entwicklern umstritten. Es ist die Vision der modellgetriebenen Architektur. Die Idee ist nicht so verbreitet wie andere Werkzeuge der Softwareentwicklung, etwa [[Compiler]] und Systeme für das [[Konfigurationsmanagement]].&lt;br /&gt;
&lt;br /&gt;
Eine oft zitierte Kritik lautet, dass UML-Diagrammen eben jene Detailgenauigkeit fehlt, die notwendig ist, um die im Quellcode enthaltene Information abzudecken. Manche Entwickler sagen sogar: „Der Code ist der Entwurf“. Allerdings handelt es sich bei dem, was mit der nicht umsonst so genannten Unified Modeling Language erzeugt wird, immer bestenfalls um ein [[Modell]] von Software, nicht um die Software selbst.&lt;br /&gt;
&lt;br /&gt;
=== Reverse Engineering ===&lt;br /&gt;
Reverse Engineering bedeutet in diesem Kontext, dass das UML-Werkzeug den Quelltext als Eingabe liest und daraus entsprechende UML-Diagramme und Modelldaten ableitet (im Gegensatz zu der etwas umfassenderen Bedeutung, die im Artikel [[Reverse Engineering]] beschrieben ist).&lt;br /&gt;
Einige der Herausforderungen des Reverse Engineering sind:&lt;br /&gt;
&lt;br /&gt;
* Der Quellcode hat oft sehr viel genauere Informationen, als man in Entwurfsdiagrammen sehen möchte. Dieses Problem wird innerhalb der Software-Architektur-Rekonstruktion behandelt.&lt;br /&gt;
* Diagramminformation findet sich gewöhnlich nicht im Quellcode, so dass das UML-Werkzeug wenigstens für einen Anfangsschritt ein zufälliges Layout der grafischen Symbole der UML-Notation erzeugen, oder einen Layoutalgorithmus verwenden muss, der die Symbole derart platziert, dass der Anwender das Diagramm verstehen kann. Zum Beispiel sollten die Symbole so angeordnet werden, dass sie sich nicht überlappen. Gewöhnlich muss der Anwender die automatisch generierten Diagramme manuell überarbeiten, so dass sie Bedeutung gewinnen. Zudem ergibt es meist keinen Sinn, Diagramme aus dem gesamten Quellcode abzuleiten, da diese mehr Detailinformation enthalten würden, als in UML-Diagrammen von Interesse ist.&lt;br /&gt;
* Einige Programmiersprachen besitzen Konstrukte, die in ihrer ganzen Komplexität automatisch besonders schwierig in UML-Diagramme umzuwandeln sind, wie etwa Klassen- oder Funktions-Templates in [[C++]].&lt;br /&gt;
&lt;br /&gt;
=== „Roundtrip“-Engineering ===&lt;br /&gt;
Manche UML-Werkzeuge bezeichnen die Fähigkeit, den Programmcode, die Modelldaten und die UML-Diagramme konsistent zu halten, als „roundtrip“ (die Verwendung von synchronisierten Fassungen wird auch [[Round-Trip-Engineering]] genannt).&lt;br /&gt;
&lt;br /&gt;
Das bedeutet, dass der Anwender die Möglichkeit hat, entweder die Modelldaten (durch Veränderung der entsprechenden Diagramme) oder den Quellcode zu verändern, und das Werkzeug das Gegenstück automatisch aktualisiert.&lt;br /&gt;
&lt;br /&gt;
=== XMI-Unterstützung ===&lt;br /&gt;
Die meisten UML-Werkzeuge ermöglichen das Speichern und Exportieren der UML-Modelle im XMI-Format. Theoretisch sollte die von einem UML-Werkzeug erzeugte [[XML Metadata Interchange|XMI]]-Datei von einem anderen UML-Werkzeug gelesen werden können, jedoch erweisen sich in der Praxis die komplexeren UML-Entwürfe als inkompatibel bezüglich verschiedener Werkzeuge.&lt;br /&gt;
&lt;br /&gt;
=== Unterstützung von UML 2.0 ===&lt;br /&gt;
Die UML-2.0-Spezifikation umfasst 13 verschiedene Diagramme. Verglichen mit den 1.x-Versionen gibt es viele neue [[Symbol]]e und auch neue [[Semantik]]. Viele UML-Werkzeuge unterstützen angeblich UML 2.0 – in Wirklichkeit wird der neue Standard von den meisten nur teilweise umgesetzt. Erweiterungen, die von kaum einem Werkzeug unterstützt werden, sind zum Beispiel strukturierte [[Classifier (UML)|Classifier]], named frames in [[Sequenzdiagramm]]en und das [[Zeitverlaufsdiagramm]].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[:Kategorie:UML-Werkzeug]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.fit-for-bit.de/umltools.pdf Eine Übersicht über 100 UML-Werkzeuge] von [[Mario Jeckle]]† (Stand 2004)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:UML-Werkzeug| ]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Millbart</name></author>
	</entry>
</feed>