UML-Tools

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
simbad
Establishment
Beiträge: 132
Registriert: 14.12.2011, 14:30

UML-Tools

Beitrag von simbad »

Ich stelle sowohl bei vielen OpenSource Projekten fest, das dort mehr oder minder wenig Tools eingesetzt werden, die einem dabei helfen den Überblick zu wahren.
Ich z.B. verwende seit einigen Jahren UML-Tools um in der Software den Überblick zu behalten und auch daraus den Code zu generieren.

Besonders bei State Machines kann man sehr gut den Code generieren lassen und bei der Generierung der Include Listen möchte ich das eigentlich nicht mehr vermissen.

Als Besonderheiten kann ich auch Makefiles, VC-Projekt Files und Solutionfiles generieren.

Wenn man dann noch alles im Tool Kommentiert kann man auch den Code-Kommentieren lassen und sich die Doku Erzeugen lassen. Also eigentlich kann man mit solch einem Tool ne Menge anfangen. Aber der Verbreitungsgrad ist eben erschreckend gering.

Mich würde mal interessieren, in wie weit hier UML-Tools eingesetzt werden und was eigentlich dazu führt, das es, nach meinem empfinden, so wenig verbreitet ist.
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: UML-Tools

Beitrag von BeRsErKeR »

Also bei meinem letzten Arbeitgeber haben einige UML benutzt, während meine Abteilung das nicht tat. UML ist für mich etwas sinnloses, welches Dinge anbietet, die ich genauso gut auch ohne machen kann und mitunter sogar schneller und einfacher. Dazu gibt es dann noch unglücklich gewählte Elemente, Bezeichnungen und Richtlinien, ganz zu schweigen von dem dürftigen Support. Ich persönlich denke, dass man mehr Zeit damit verschwendet in UML was hinzuzaubern, als man ohne UML für das gesamte Projekt bräuchte. Ich benutze es jedenfalls nur unter Zwang. :D
Ohne Input kein Output.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: UML-Tools

Beitrag von dot »

Ich find UML ab und zu praktisch um schnell Ideen zu skizzieren und anderen zu kommunizieren. Aber für mehr als die gelegentliche Skizze find ich es einfach unbrauchbar und auch dafür verwend ich meistens lieber direkt Pseudocode. Ein tatsächliches Design arbeite ich praktisch immer in einer konkreten Sprache aus.
Das liegt unter anderem wohl daran, dass ich kein wirklich gutes UML Tool kenne. Einzelne Tools bieten vielleicht einzelne coole Features, aber jedes hat so seine Macken, einige ansonsten gute Tools kommen dann mit genau einer Sache die ein echter Dealbreaker ist und keines bietet mir zumindest 90% der Features die ich gerne hätte in einem Tool. Zumindest wars so als ich das letzte Mal nachgeschaut hab. Visio hat sich für mich jedesmal noch als das geringste aller Übel herausgestellt.
Der Hauptgrund ist aber, dass UML einfach zu abstrakt und teilweise einfach nicht mächtig genug ist um eine tatsächliche Lösung auszudrücken. Daher läuft der Ansatz UML Diagramme zu malen und daraus dann konkreten Code zu generieren imo genau in die falsche Richtung. Ich hab mir dadurch zumindest noch nie Arbeit gespart, nichtmal in Java, eher im Gegenteil. Extrembeispiel: C++ kann nichtmal ansatzweise mit UML erfassen.
Was ich für den schnellen Überblick manchmal ganz nett find, ist aus vorhandenem Code UML Diagramme zu generieren, aber auch das ist alles andere als wichtig für mich.

Fazit: UML ist gut gemeint aber unpraktisch.

Oder wie's jemand hat mal so treffend gesagt hat: "UML is drawing pictures of what it would look like if work had actually been done" ;)
Zuletzt geändert von dot am 30.12.2011, 14:01, insgesamt 1-mal geändert.
simbad
Establishment
Beiträge: 132
Registriert: 14.12.2011, 14:30

Re: UML-Tools

Beitrag von simbad »

Das mit einem UML-Tool Code-Generieren kann ist ja eigentlich nur ein Nebeneffekt. In erster Linie ist es Dokumentationswerkzeug.
In dem Bereich in dem ich mein Geld verdiene wird kein Source-Code ausgeliefert, der keine Dokumentation hat. In vielen Fällen hat die Dokumentation auch fertig zu sein, bevor der Code dazu entsteht. Das Codieren steht da quasi an letzter Stelle.

Das es Projekte gibt, oder kleinere Tools, bei denen man mit einem allumfassenden UML-Model mit Kanonen auf Spatzen schießt ist klar. Aber bei Projekten die einige hundert Klassen umfassen, habe ich zumindestens für mich festgestellt, geht einem irgendwann der überblick verloren.

Auch wenn es mich ein wenig erschreckt, aber ich wollte es ja unbedingt Wissen. :roll:
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: UML-Tools

Beitrag von dot »

simbad hat geschrieben:Das mit einem UML-Tool Code-Generieren kann ist ja eigentlich nur ein Nebeneffekt. In erster Linie ist es Dokumentationswerkzeug.
In dem Bereich in dem ich mein Geld verdiene wird kein Source-Code ausgeliefert, der keine Dokumentation hat. In vielen Fällen hat die Dokumentation auch fertig zu sein, bevor der Code dazu entsteht. Das Codieren steht da quasi an letzter Stelle.
Auch wenn es natürlich nicht schlecht ist, so hat UML in einer Dokumentation sich für mich noch nie als unentbehrlich herausgestellt. Der Goldstandard in dem Bereich ist imo immer noch die MSDN. Kann mich nicht erinnern dort jemals ein UML Diagramm gesehen zu haben...
simbad hat geschrieben:Das es Projekte gibt, oder kleinere Tools, bei denen man mit einem allumfassenden UML-Model mit Kanonen auf Spatzen schießt ist klar. Aber bei Projekten die einige hundert Klassen umfassen, habe ich zumindestens für mich festgestellt, geht einem irgendwann der überblick verloren.
Also bis jetzt hatte ich noch nie derartige Probleme bzw. zumindest keine Erfahrungen die mich zu der Annahme bewegen würden, dass UML mir irgendwas ersparen könnte. Wenn einem der Überblick verloren geht, dann liegt das wohl viel mehr daran, dass das Design einfach mies ist (zuviele Abhängigkeiten).
Mag natürlich sein, dass ich da einfach zu wenig Erfahrung hab...
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: UML-Tools

Beitrag von BeRsErKeR »

simbad hat geschrieben:Das mit einem UML-Tool Code-Generieren kann ist ja eigentlich nur ein Nebeneffekt. In erster Linie ist es Dokumentationswerkzeug.
In dem Bereich in dem ich mein Geld verdiene wird kein Source-Code ausgeliefert, der keine Dokumentation hat. In vielen Fällen hat die Dokumentation auch fertig zu sein, bevor der Code dazu entsteht. Das Codieren steht da quasi an letzter Stelle.
Dafür benutze ich doxygen und kann mit dem Ergebnis dann auf HTML-Basis oder mit Latex weiterarbeiten. Und da kann ich auch schnell mal ein Diagramm mit reinzeichnen, wobei doxygen da ja auch schon einiges anbietet (Klassenhierarchien etc).

Was willst du denn mit UML dokumentieren? In der Regel braucht man ab und an mal ein Diagramm (falls überhaupt) und das kann man sich auch mit anderen Tools in ein paar Minuten basteln. Wie gesagt geht das mit Latex oder halt direkt im Office-Programm deiner Wahl (libreoffice, MS Word, MS Draw, usw).

Ich hab bislang noch niemanden gesehen, der mit UML was nützliches gemacht hat und dabei irgendwas besser dokumentiert oder Zeit gespart hat. Daher ist es für mich wie schon erwähnt sinnlos. Mein Kollege hatte das für Sequenzdiagramme für seine DA benutzt aber dann halt auch nur was manuell gemalt. Er hat viel geflucht in der Zeit. :D
Ohne Input kein Output.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: UML-Tools

Beitrag von kimmi »

Da ich im Job nicht selten mit einigen Mio. an Codezeilen zur Einarbeitung konfrontiert werde, finde ich UML als Einstiegshilfe beziehungsweise als High-Level-Dokumentation sehr praktisch. Auch so etwas wie Sequenz-Diagramme zur Dokumentation komplexer Protokolle beziehungsweise Klassenverträge finde ich sehr praktisch. Und solange man es nicht übertreibt, sprich nicht jede Hilfsklasse bis in letzte Detail ausarbeitet, halte ich das auch für ein sehr hilfreiches Werkzeug. Code-Generatoren mag ich nicht so besonders. Gerade bei generiertem State-Machine-Code kommt man in Teufels Küche, wenn man sich bei der Fehlersuche durch solchen Code durchsteppen muß. Und meiner Erfahrung nach muß man das nun mal irgendwann einmal tun :-).

ich finde Star-UML sowie Rational Rose oder Papyrum ganz praktisch. Rhapsody ist gut, sind die Modelle nicht zu groß. Das Programm skaliert nämlich nicht sehr gut und hat vieler meier Kollegen einen neuen Rechner eingebracht, damit man das Modell ihres Projektes überhaupt aufmachen kann :).

Gruß Kimmi
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: UML-Tools

Beitrag von kimmi »

BeRsErKeR hat geschrieben:...
Ich hab bislang noch niemanden gesehen, der mit UML was nützliches gemacht hat und dabei irgendwas besser dokumentiert oder Zeit gespart hat. Daher ist es für mich wie schon erwähnt sinnlos. Mein Kollege hatte das für Sequenzdiagramme für seine DA benutzt aber dann halt auch nur was manuell gemalt. Er hat viel geflucht in der Zeit. :D
Ich schon :)...
High-Level-Architekturen, übersichtliche Schulungsbeispiele, Modelle für wirklich große Embedded-Device-Software, Erstellung komplexer State-Machines etc. etc. etc. . Natürlich alles im Real-Life gesehen.

Gruß Kimmi
simbad
Establishment
Beiträge: 132
Registriert: 14.12.2011, 14:30

Re: UML-Tools

Beitrag von simbad »

Juhu. Ein Fürsprecher.

Ich baue mir meine Code-Generatoren immer selbst, also verwende Tools bei denen das Problemlos möglich ist. Da ist dann der Code der State Machine auch so, das ich mich darin zurecht finde, selbst wenn ich da mal durch muss.

Ich habe für kleinere Sachen OpenAmeos, bei dem aber leider der Support nicht mehr gewährleistet scheint und ArtisanStudio, das sicherlich für den Normalanwender etwas ausserhalb des Taschengelds liegen dürfte, aber dafür gut nutzbar ist.

OpenAmeos skaliert ganz gut, da die für das Navigieren im Model eine SQL-Datenbank einsetzen, für den Multiuser-Betrieb aber leider Sybase.
Das ArtisanStudio benutze ich im Moment nur in einer lokalen Installation, kann also nicht sagen, wie es sich im Netzwerk verhält.

Beide bieten eben die Möglichkeit den Code-Generator selbst zu bauen. Das mache ich dann auch typischerweise um Coding-Konventionen einhalten zu können. Manche Auftraggeber sind da recht penibel.
Antworten