Poseidon for UML

Werbung
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
Herunterladen