UML Werkzeug

4
UML-Werkzeug 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 Modellie- rungssprache für Software und andere Systeme, beschrie- ben sind. Ein Teil der Modellierungswerkzeuge für den Softwareentwurf ist nicht auf UML fokussiert, un- terstützt jedoch Aspekte der UML zu einem gewissen Grade, als Erweiterung oder Komponente der grundle- genden Funktionalität. 1 Aspekte der Funktionalität Aspekte der Funktionalität von UML-Werkzeugen sind unter anderem die Unterstützung von Diagrammen, Codeerzeugung und Reverse Engineering. 1.1 Diagrammunterstützung Diagrammunterstützung bedeutet in diesem Zusam- menhang das Erzeugen und Bearbeiten von UML- Diagrammen, das heißt Diagrammen, die konform zur graphischen Notation der UML sind. Auf die Verwendung von UML-Diagrammen, um Dia- gramme von hauptsächlich objektorientierter Software zu zeichnen, hat man sich im allgemeinen unter Software- Entwicklern geeinigt. Andererseits wird kontrovers dis- kutiert, ob und in welchen Phasen der Softwareentwick- lung solche Diagramme überhaupt benötigt werden, und wie (wenn überhaupt) diese Diagramme aktualisiert wer- den sollten. Der Vorrang des Programm-Codes führt oft dazu, dass die Diagramme vernachlässigt werden. 1.2 Modelltransformation Ein wesentlicher Bestandteil der modellgetriebenen Ar- chitektur ist die Fähigkeit, verschiedene Modelle in- einander zu transformieren. Es ist zum Beispiel mög- lich diese Fähigkeit auf die Codeerzeugung anzuwen- den, um aus einer UML-Notation automatisch Java- Code zu erzeugen. Des Weiteren können verschiede- ne Arten von UML-Modellen ineinander umgewandelt werden. Dies wird zum Beispiel durch QVT (für Que- ries/Views/Transformations) ermöglicht. Ein Beispiel für eine QVT-Implementierung ist die ATL-Sprache von IN- RIA. 1.3 Quelltexterzeugung Quelltexterzeugung bedeutet in diesem Zusammenhang, dass der Anwender UML-Diagramme mit spezifizier- ten Modelldaten erzeugt, und das UML-Werkzeug als Codegenerator fungiert und daraus einen Teil oder den gesamten Quelltext ableitet. Bei einigen Werkzeu- gen kann der Anwender ein Gerüst des Programm- Quelltextes in Form eines Code-Templates bereitstellten, in welchem dann vordefinierte Token während der auto- matischen Codeerzeugung durch Quelltext ersetzt wer- den. Der Nutzen der automatischen Quelltexterzeugung aus UML-Diagrammen als solcher ist strittig und hängt zwei- fellos von dem spezifischen Feld und Grad der Anwen- dung ab. In bestimmten Bereichen ist die Codeerzeugung eine etablierte Methode und nicht auf UML beschränkt. Die Idee, die Ebene des Programmcodes komplett zu ver- lassen und das „Programmieren“ auf der Ebene von UML zu beginnen (also auf Entwurfsniveau), ist unter Entwick- lern 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. 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 Ent- wurf“. Allerdings handelt es sich bei dem, was mit der nicht umsonst so genannten Unified Modeling Language erzeugt wird, immer bestenfalls um ein Modell von Soft- ware, nicht um die Software selbst. 1.4 Reverse Engineering Reverse Engineering bedeutet in diesem Kontext, dass das UML-Werkzeug den Quelltext als Eingabe liest und daraus entsprechende UML-Diagramme und Modellda- ten ableitet (im Gegensatz zu der etwas umfassenderen Bedeutung, die im Artikel Reverse Engineering beschrie- ben ist). Einige der Herausforderungen des Reverse En- gineering sind: Der Quellcode hat oft sehr viel genauere Informatio- nen, als man in Entwurfsdiagrammen sehen möch- 1

description

werkzeuge

Transcript of UML Werkzeug

Page 1: UML Werkzeug

UML-Werkzeug

EinUML-Werkzeug ist ein Anwendungsprogramm, daseinige oder auch alle Phasen im Entwicklungsprozessoder die Erzeugung von Artefakten unterstützt, die inder Unified Modeling Language (UML), einer Modellie-rungssprache für Software und andere Systeme, beschrie-ben sind.Ein Teil der Modellierungswerkzeuge für denSoftwareentwurf ist nicht auf UML fokussiert, un-terstützt jedoch Aspekte der UML zu einem gewissenGrade, als Erweiterung oder Komponente der grundle-genden Funktionalität.

1 Aspekte der Funktionalität

Aspekte der Funktionalität von UML-Werkzeugen sindunter anderem die Unterstützung von Diagrammen,Codeerzeugung und Reverse Engineering.

1.1 Diagrammunterstützung

Diagrammunterstützung bedeutet in diesem Zusam-menhang das Erzeugen und Bearbeiten von UML-Diagrammen, das heißt Diagrammen, die konform zurgraphischen Notation der UML sind.Auf die Verwendung von UML-Diagrammen, um Dia-gramme von hauptsächlich objektorientierter Softwarezu zeichnen, hat man sich im allgemeinen unter Software-Entwicklern geeinigt. Andererseits wird kontrovers dis-kutiert, ob und in welchen Phasen der Softwareentwick-lung solche Diagramme überhaupt benötigt werden, undwie (wenn überhaupt) diese Diagramme aktualisiert wer-den sollten. Der Vorrang des Programm-Codes führt oftdazu, dass die Diagramme vernachlässigt werden.

1.2 Modelltransformation

Ein wesentlicher Bestandteil der modellgetriebenen Ar-chitektur ist die Fähigkeit, verschiedene Modelle in-einander zu transformieren. Es ist zum Beispiel mög-lich diese Fähigkeit auf die Codeerzeugung anzuwen-den, um aus einer UML-Notation automatisch Java-Code zu erzeugen. Des Weiteren können verschiede-ne Arten von UML-Modellen ineinander umgewandeltwerden. Dies wird zum Beispiel durch QVT (für Que-ries/Views/Transformations) ermöglicht. Ein Beispiel für

eine QVT-Implementierung ist die ATL-Sprache von IN-RIA.

1.3 Quelltexterzeugung

Quelltexterzeugung bedeutet in diesem Zusammenhang,dass der Anwender UML-Diagramme mit spezifizier-ten Modelldaten erzeugt, und das UML-Werkzeug alsCodegenerator fungiert und daraus einen Teil oderden gesamten Quelltext ableitet. Bei einigen Werkzeu-gen kann der Anwender ein Gerüst des Programm-Quelltextes in Form eines Code-Templates bereitstellten,in welchem dann vordefinierte Token während der auto-matischen Codeerzeugung durch Quelltext ersetzt wer-den.Der Nutzen der automatischen Quelltexterzeugung ausUML-Diagrammen als solcher ist strittig und hängt zwei-fellos von dem spezifischen Feld und Grad der Anwen-dung ab. In bestimmten Bereichen ist die Codeerzeugungeine etablierte Methode und nicht auf UML beschränkt.Die Idee, die Ebene des Programmcodes komplett zu ver-lassen und das „Programmieren“ auf der Ebene vonUMLzu beginnen (also auf Entwurfsniveau), ist unter Entwick-lern umstritten. Es ist die Vision der modellgetriebenenArchitektur. Die Idee ist nicht so verbreitet wie andereWerkzeuge der Softwareentwicklung, etwa Compiler undSysteme für das Konfigurationsmanagement.Eine oft zitierte Kritik lautet, dass UML-Diagrammeneben jene Detailgenauigkeit fehlt, die notwendig ist, umdie im Quellcode enthaltene Information abzudecken.Manche Entwickler sagen sogar: „Der Code ist der Ent-wurf“. Allerdings handelt es sich bei dem, was mit dernicht umsonst so genannten Unified Modeling Languageerzeugt wird, immer bestenfalls um ein Modell von Soft-ware, nicht um die Software selbst.

1.4 Reverse Engineering

Reverse Engineering bedeutet in diesem Kontext, dassdas UML-Werkzeug den Quelltext als Eingabe liest unddaraus entsprechende UML-Diagramme und Modellda-ten ableitet (im Gegensatz zu der etwas umfassenderenBedeutung, die im Artikel Reverse Engineering beschrie-ben ist). Einige der Herausforderungen des Reverse En-gineering sind:

• Der Quellcode hat oft sehr viel genauere Informatio-nen, als man in Entwurfsdiagrammen sehen möch-

1

Page 2: UML Werkzeug

2 2 PROGRAMME

te. Dieses Problem wird innerhalb der Software-Architektur-Rekonstruktion behandelt.

• Diagramminformation findet sich gewöhnlich nichtim Quellcode, so dass das UML-Werkzeug wenigs-tens für einen Anfangsschritt ein zufälliges Lay-out der grafischen Symbole der UML-Notation er-zeugen, oder einen Layoutalgorithmus verwendenmuss, der die Symbole derart platziert, dass der An-wender das Diagramm verstehen kann. Zum Bei-spiel sollten die Symbole so angeordnet werden,dass sie sich nicht überlappen. Gewöhnlich muss derAnwender die automatisch generierten Diagrammemanuell überarbeiten, so dass sie Bedeutung gewin-nen. Zudem ergibt es meist keinen Sinn, Diagram-me aus dem gesamten Quellcode abzuleiten, da die-se mehr Detailinformation enthalten würden, als inUML-Diagrammen von Interesse ist.

• Einige Programmiersprachen besitzen Konstrukte,die in ihrer ganzen Komplexität automatisch be-sonders schwer in UML-Diagramme umzuwandelnsind, wie etwa Klassen- oder Funktions-Templatesin C++.

1.5 „Roundtrip“-Engineering

Manche UML-Werkzeuge bezeichnen die Fähigkeit,den Programmcode, die Modelldaten und die UML-Diagramme konsistent zu halten, als „roundtrip“ (dieVerwendung von synchronisierten Fassungen wird auchRound-Trip-Engineering genannt).Das bedeutet, dass der Anwender die Möglichkeit hat,entweder die Modelldaten (durch Veränderung der ent-sprechenden Diagramme) oder den Quellcode zu verän-dern, und das Werkzeug das Gegenstück automatisch ak-tualisiert.

1.6 XMI-Unterstützung

Die meisten UML-Werkzeuge ermöglichen das Spei-chern und Exportieren der UML-Modelle im XMI-Format. Theoretisch sollte die von einem UML-Werkzeug erzeugte XMI-Datei von einem anderen UML-Werkzeug gelesen werden können, jedoch erweisen sichin der Praxis die komplexeren UML-Entwürfe als inkom-patibel bezüglich verschiedener Werkzeuge.

1.7 Unterstützung von UML 2.0

Die UML-2.0-Spezifikation umfasst 13 verschiedeneDiagramme. Verglichen mit den 1.x-Versionen gibt esviele neue Symbole und auch neue Semantik. VieleUML-Werkzeuge unterstützen angeblich UML 2.0 –in Wirklichkeit wird der neue Standard von den meis-ten nur teilweise unterstützt. Manche Erweiterungen,

die in kaum einem Werkzeug unterstützt werden, sindzum Beispiel strukturierte Classifier, named frames inSequenzdiagrammen und das Zeitverlaufsdiagramm.

2 Programme

2.1 Freie Software

• ArgoUML

• Eclipse mit Uml2Tools

• NClass

• Netbeans

• Dia

• Fujaba

• Gaphor

• Modelio Free Edition

• OpenAmeos

• PingUML

• Software Ideas Modeler

• StarUML

• TOPCASED

• Umbrello

• UMLet

• Violet

• WhiteStarUML

2.2 Proprietäre Software

• Altova UModel

• ARIS

• Artisan Studio

• Astah (ehemals JUDE)

• Borland Together

• BOUML

• ConceptDraw

• EasyCODE

• Embedded UML Studio

• Innovator

• iBS DesignTime for ABAP

Page 3: UML Werkzeug

3

• MagicDraw UML

• Metamill

• Microsoft Visio

• Microsoft Visual Studio 2010 Ultimate

• Modelio Enterprise Edition

• objectiF

• Poseidon for UML

• PowerDesigner von Sybase

• radCASE

• Rational Rhapsody

• Rational Rose

• Select Solution Factory von Select Business Soluti-ons

• sinelaboreRT

• SiSy

• Sparx Systems Enterprise Architect

• UML Lab

• UML 2 Statemachine C/C++ Code GeneratorFramework

• Visual Paradigm (freie Community-Edition fürnicht-kommerzielle Nutzung)

• yEd

3 Weblinks• Eine Übersicht über UML-Werkzeuge auf Oose.de

• Fachstudie der Universität Stuttgart zu brauchbarenUML-Werkzeugen(Okt. 2007; PDF-Datei; 1,07MB)

• Eine Übersicht über 100 UML-Werkzeuge vonMario Jeckle† (Stand 2004)

• UML-Werkzeuge auf Freebase

Page 4: UML Werkzeug

4 4 TEXT- UND BILDQUELLEN, AUTOREN UND LIZENZEN

4 Text- und Bildquellen, Autoren und Lizenzen

4.1 Text• UML-WerkzeugQuelle: https://de.wikipedia.org/wiki/UML-Werkzeug?oldid=143670931 Autoren:Aka, KarstenSchulz, Jla net.de, Zwo-bot, Jpp, Jdiemer, Wiki-observer, DasBee, Juergen nbg, M.L, Sparti, Blah, RedBot, Tobias K., O.Koslowski, Gubaer, Jbraunia, Millbart,Ma-Lik, Leptokurtosis999, STBR, Kassander der Minoer, Mef.ellingen, Sterling, $pike, Streifengrasmaus, Kissaki, Hayos, HS70, Matthi-as Reissner, Akribix, Jaellee, Semper, Sebastian.Dietrich, ComillaBot, Baumfreund-FFM, Christian Storm, Avron, Sommerkom, Krawi,Der.Traeumer, Sliver blue moon, Gerhard Trimpin, Trustable, ErikWarmelink, Prettyprinter, Pittimann, Christian1985, Inkowik, Percy86,Easycode, Wuryel, Go4wiki, Biezl, Peter O. Mueller, Dlhentsc 1978, Der Hakawati, Xqbot, Stegosaurus Rex, MorbZ-Bot, Serols, Kelti,Kistano, Yatta Solutions, Cries, KLBot2, AFoltinek, Wush~dewiki, Boshomi, Armand3496, VNeumann, Softmetz, Hiku2 und Anonyme:62

4.2 Bilder

4.3 Inhaltslizenz• Creative Commons Attribution-Share Alike 3.0