Poseidon for UML Einführung Andreas Blunk Gliederung 1) 2) 3) 4) 5) 6) 7) Editionen/Lizenzen Die Programmoberfläche Modelle speichern Einführung am „lebenden Objekt“ Generierung (Doc & Code) Funktionsumfang der Editionen Abschlussbemerkungen 2 (1) Editionen/Lizenzen • verschiedene Editionen • Basis: Community Edition • nur für Lernzwecke, kein kommerzieller Einsatz • aktuelle Version: 3.1 (aber: nur teilweise UML 2.0 Diagramme) • volle UML 2.0 Unterstützung in späteren Versionen … 3 (2) Die Programmoberfläche 4 Arbeitsbereiche 4 (2) Die Programmoberfläche Navigations-Ansicht • verschiedene Möglichkeiten der Navigation durch das Modell • unterschiedliche Sichten • jede Sicht organisiert das Modell in einer spezifischen Struktur • Sichten enthalten jeweils nur relevante Elemente 5 (2) Die Programmoberfläche Diagramm-Ansicht • Anzeigen und Bearbeiten der Diagramme des Modell • Toolbar (variiert je nach Diagramm-Typ) • zusätzliche Diagramme in Registern 6 (2) Die Programmoberfläche Detail-Ansicht • Zugang zu Eigenschaften der Elemente • Navigation zwischen Elementen 7 (2) Die Programmoberfläche Vogelperspektive • Übersicht über alle Elemente des Diagramms, falls dieses zu groß wird 8 (3) Modelle speichern • Funktionsweise ziemlich klar • Aber: verschiedene Speicherformate erklärungsbedürftig • offene Standards, auch beim Speichern • Standard für Austausch von Modellen zwischen Tools ist Teil der UML-Spezifikation der OMG • basiert auf XML mit speziellen Erweiterungen/Regeln, daher als XMI (XML Metadata Interchange) bezeichnet • Aber: XMI speichert keine Layout-Informationen (Anordnung von Elementen, Farbinformationen …) Kompression XMI Layout .zuml 9 (4) Einführung am „lebenden Objekt!“ 10 (5) Codegenerierung • Ziel der gesamten Modellierung • Unterstützung vieler Typen von Ausgabecode: Java, HTML, jede Art von Programmiersprache • nur das Programm-Skelett wird generiert (klar) • aber auch automatische Codegenerierung für setter- und getter-Methoden 11 (5) Codegenerierung Unterpunkte • UMLdoc • Reverse Engineering (Java) • Roundtrip Engineering (Java) 12 (5) Codegenerierung UMLdoc • HTML-Dokumentation des Modell • ähnlich JavaDoc, aber: JavaDoc dokumentiert nur den Code /** /** **@param an @paramurl url anabsolute absoluteURL URLgiving givingthe thebase baselocation locationof ofthe theimage image **@param @paramname name the thelocation locationof ofthe theimage, image,relative relativeto tothe theurl urlargument argument **@return the @return theimage imageat atthe thespecified specifiedURL URL */*/ public publicImage ImagegetImage(URL getImage(URLurl, url,String Stringname) name){{ … … }} UMLdoc dagegen: • gleiche Informationen wie JavaDoc • dazu Klassen-, Use-Case-, Aktivitätsund Zustandsdiagramme des Modell 13 (5) Codegenerierung UMLdoc 14 (5) Codegenerierung Reverse Engineering • Problem: ein Programm soll erweitert werden, aber nur der Quellcode liegt vor (kein Modell) • Lösung: Code-Analyse und Modell-Generierung mit Reverse-Engineering-Tool • Poseidon: nur Unterstützung für JAVA-Quellcode, erst ab Standard-Edition einsetzbar 15 (5) Codegenerierung Roundtrip Engineering • Erweiterung des Reverse Engineering • verbindet existierenden Code zu einem existierenden Modell • Code kann außerhalb bearbeitet werden, Änderungen werden dann ins Modell integriert Codegenerierung Änderungen Code Änderungen (Eclipse) einfügen Modell Änderungen (Poseidon) 16 (6) Funktionsumfang der Editionen Community Standard Professional (Embedded) Enterprise • Nur für Lernzwecke • Kein kommerzieller Einsatz • Java-Codegenerierung (Forward Engineering) 17 (6) Funktionsumfang der Editionen Community Standard Professional (Embedded) Enterprise • Reverse Engineering Java • UMLdoc (HTML Export) • Plug-In Support 18 (6) Funktionsumfang der Editionen Community Standard Professional (Embedded) Enterprise • Eclipse IDE Integration • Roundtrip Engineering Java • Codegenerierung für viele andere Sprachen (Template-basiert...) 19 (6) Funktionsumfang der Editionen Community Standard Professional (Embedded) Enterprise • Team-Unterstützung und Versionskontrolle • gemeinsame Entwicklungsumgebung basierend auf Client-Server-Architektur 20 (7) Abschlussbemerkungen Dokumentation von Gentleware (englisch): http://www.gentleware.com/fileadmin/media/ archives/userguides/poseidon_users_guid e/book1.html 21 Fragen NARF? 22