Python und UML
Linksammlung
Zuerst einmal eine Sammlung von Links, die das Thema aus unterschiedlichen Perspektiven beleuchten:
UML
http://www.omg.org/ Die Seite der Object Management Group (OMG): Die OMG ist ein Konsortium, das sich um Standards der Entwicklung von Software kümmert. Hier sind auch zwei Techniken beheimatet, mit denen wir uns beschäftigen wollen.
http://www.uml.org/ Die Seite des UML-Standards: Hier findet sich die genaue Beschreibung in der neuesten Ausführung sowie englischsprachige Tutorials zum Thema
http://de.wikipedia.org/wiki/Unified%20Modeling%20Language Interessanter und ausführlicher Artikel, der einen guten Überblick zum Thema bietet. Leider finde ich einige Beispiele unglücklich gewählt, aber das sollte niemanden abschrecken.
http://ivs.cs.uni-magdeburg.de/~dumke/UML/ Gute deutsche Einführung in das Thema UML.
XMI
http://www.omg.org/technology/documents/formal/xmi.htm Die offizielle XMI Seite des OMG. Wenige Infos, diese Seite ist nur aufgeführt der Vollständigkeit wegen.
http://www.jeckle.de/xmi.htm Gute deutsche Seite zum Thema. Neben Informationen zum Umfeld findet man hier auch Links zu den Spezifikationen, zu Vorträgen und anderen Veröffentlichungen.
Tools
Es gibt viele Tools, mit denen man UML-Diagramme malen kann, leider ist die Unterstützung für die Vielfalt, die der letzte Standard bietet, noch recht rar.
Im großen und ganzen gibt es zwei verschiedene Arten von Programmen: Es gibt "reine" Malwerkzeuge wie DIA oder Visio, die UML unter anderem anbieten, und es gibt Tools die sich völlig auf UML spezialisiert haben. Die Python- Unterstützung ist jedoch nur selten zu finden. Zwar können Umbrello, Object Domain und Enterprise Architect wohl Python-Code erzeugen, ausprobiert habe ich es jedoch nur mit Umbrello. Für ArgoUML ist eine Python-Unterstützung geplant, die Entwicklung ist aber wohl eingeschlafen. Das Programm ist aber IMHO auf jeden Fall einen Blick wert, da es auf Unstimmigkeiten und Fehler in den Diagrammen hinweist und (deutschsprachige) Lösungsvorschläge anbietet. Zudem ist es kostenfrei. Ein echtes Roundtrip engineering, wie es viele Produkte für Java anbieten, ist AFAIK noch mit keinem für Python erhältlichen Produkt möglich. In den meisten Fällen lässt sich aber XMI erzeugen.
Links zu den erwähnten Tools:
Visio: http://office.microsoft.com/visio/ (Achtung Cookies müssen angeschaltet sein)
Umbrello: http://uml.sourceforge.net/index.php Leider erzeugt Umbrello offenbar kein XMI-Standard-konformes XMI (Link: http://uml.sourceforge.net/developers/file-format-critisism)
Object Domain: http://www.objectdomain.com/
Enterprise Architect: http://www.sparxsystems.com/
ArgoUML http://argouml.tigris.org/
Weitere Werkzeuge
Papyrus http://www.papyrusuml.org Papyrus ist ein UML-Werkzeug für Eclipse, der erste Eindruck bei mir ist: Eclipse üblich, sehr vernünftig, macht einen guten Eindruck und es gibt Plugins für SysML, Marte und CCM. Für Eclipse Nutzer unbedingt mal ausprobieren, gerade weil es kostenlos ist (es steht unter der Eclipse Public License - v 1.0, ist die auch frei?)
Ideen
http://denkspuren.blogspot.com/2006/11/der-uml-reasoner.html
Möglichkeit eines "graphischen" Refactorings, d.h. einfache Änderungen im Quelltext (z.B. Umbennen von Methoden) können in einer graphischen Umgebung stattfinden
Links und Projekte die sonst nirgends reinpassen
http://www.atug.com/andypatterns/egg.htm "This page explores novel ways of visualising software design and of watching software execute."