Bei der Umsetzung von UML in Java werden UML 2.0-Spezifikationen in Java-Klassen umgesetzt. Sie können diese Umsetzung verwenden, um ein Java-Projekt aus UML 2.0-Spezifikationen zu starten. Auch nach dem Start des Projekts können Sie die Umsetzung verwenden, um den Java-Code mit geänderten
UML-Modellen zu aktualisieren.
Im Folgenden wird die einfachste Vorgehensweise bei der Verwendung der Java-Umsetzung gezeigt.
So wandeln Sie ein UML-Modell in Java um:
1. Wechseln Sie in die Perspektive 'Modellierung'.
2. Klicken Sie in der Sicht 'Modellexplorer' mit der rechten Maustaste auf eine UML-Klasse (zum Beispiel auf
"Klasse1").
3. Klicken Sie auf Umsetzen > Umsetzung ausführen > UML2 in Java.
4. Der Dialog Umsetzung ausführen wird geöffnet. Klicken Sie auf die Schaltfläche
für das Erstellen eines Zielcontainers.
5. Der Dialog für das neue Java-Projekt wird geöffnet. Geben Sie in das Feld Projektname "einfach" ein
und klicken Sie auf Fertig stellen.
6. Klicken Sie im Dialog Umsetzung ausführen auf Fertig stellen.
Das neue Java-Projekt enthält ein Standardpaket. Dieses enthält die neue Java-Klasse: Klasse1.
Bei der Umsetzung können auch verschiedene andere, komplexere Funktionen ausgeführt werden,
zum Beispiel können die Namen außer Kraft gesetzt werden, ohne das Quellenmodell zu ändern, das
UML-Modell kann durch eine Visualisierung ersetzt werden, Änderungen im UML-Modell
und im Java-Projekt können zusammengeführt werden und das UML-Modell kann auf mögliche Umsetzungsprobleme
geprüft werden.
UML | Java |
Paket | Java-Paket mit demselben Namen*. |
Paket mit dem Stereotyp <<perspective>> | Ignoriert |
Paket mit dem Schlüsselwort <<Analysis>> oder <<analysis>> | Ignoriert |
Klasse | Java-Klasse mit demselben Namen* und derselben Sichtbarkeit |
(Klasse) Eigenschaft "isLeaf" | Falls "wahr" ist die Java-Klasse "final". |
(Klasse) Eigenschaft "isAbstract" | Falls "wahr" ist die Java-Klasse "abstract". |
(Klasse) Generalisierung | Die Java-Klasse "erweitert" die angegebene Superklasse. |
Implementierung | Die Java-Klasse "implementiert" die angegebene Schnittstelle. |
(Klasse zu Schnittstelle) Realisierung |
Die Java-Klasse "implementiert" die angegebene Schnittstelle. |
Schnittstelle | Java-Schnittstelle mit demselben Namen* und derselben Sichtbarkeit |
(Schnittstelle) Generalisierung | Die Java-Schnittstelle "erweitert" die angegebene Schnittstelle. |
Aufzählung |
Java-Schnittstelle mit demselben Namen* und derselben
Sichtbarkeit |
Aufzählungsliteral |
Java-Feld mit demselben Namen* und derselben Sichtbarkeit |
Operation | Java-Methode mit demselben Namen* und derselben Sichtbarkeit |
(Operation) Eigenschaft "isStatic" | Falls "wahr" ist die Java-Klasse "static". |
(Operation) Eigenschaft "isAbstract" | Falls "wahr" ist die Java-Methode "abstract". |
(Operation) Eigenschaft "isLeaf" | Falls "wahr" ist die Java-Methode "final". |
(Operation) mit demselben Namen wie ihre Klasse | Java-Konstruktor |
(Operation) mit dem Stereotyp <<create>> | Java-Konstruktor |
Parameter | Java-Parameter mit demselben Namen* |
(Parameter) Eigenschaft "Type" | Der Java-Parameter hat den angegebenen Typ. Dabei kann es sich um eine andere Klasse oder um einen primitiven Typ handeln. |
(Parameter) Eigenschaft "Direction" | Wenn Sie diese Eigenschaft auf "return" setzen, hat die Java-Methode "return <parametertyp>". Bei anderen Werten wird "<paramertyp> <parametername>" zur Methodensignatur hinzugefügt. |
(Parameter) Eigenschaft "Multiplicity" | In der folgenden Tabelle finden Sie Informationen über Multiplizität. |
Eigenschaft | Java-Feld mit demselben Namen* und derselben Sichtbarkeit |
(Eigenschaft) Eigenschaft "isStatic" | Falls "wahr" ist das Java-Feld "static". |
(Eigenschaft) Eigenschaft "isLeaf" | Falls "wahr" ist das Java-Feld "final". |
(Eigenschaft) Eigenschaft "Type" | Das Java-Feld hat den angegebenen Typ. Dabei kann es sich um eine andere Klasse oder um einen primitiven Typ handeln. |
(Eigenschaft) Eigenschaft "Multiplicity" | In der folgenden Tabelle finden Sie Informationen über Multiplizität. |
* Einige Zeichen (zum Beispiel das Leerzeichen) sind als Java-Bezeichner nicht gültig. Bei der Java-Umsetzung werden ungültige Zeichen automatisch durch ein Unterstreichungszeichen ("_") ersetzt, um einen gültigen Bezeichner zu erstellen. Bei dieser Ersetzung kann es zu Namenskonflikten kommen, durch die bei der Umsetzung Klassen und Schnittstellen nicht dupliziert werden können. Sie können die Prüffunktion verwenden, um diese Probleme zu erkennen. Um diese Ersetzungsprobleme zu vermeiden, benennen Sie die Elemente um. Sie können auch die Zuordnungsfunktion verwenden, um einen alternativen Namen anzugeben, bei dem das Quellenmodell nicht geändert wird.
Java-Typen für Eigenschaften und Parameter
UML-Multiplizität | Generierter Java-Typ |
0..1 | Attribut, Zeiger oder Referenz (zum Beispiel "String") |
1 | Attribut (zum Beispiel "String") |
N (N > 1) | Feldgruppe (zum Beispiel "String[]") |
1..*, *, or x..y | Sammlung, siehe folgende Tabelle |
Java-Sammlungen für Multiplizitäten 1..*, * oder x..y
Eigenschaft "isOrdered" | Eigenschaft "isUnique" | UML-Sammlung |
Generierter Java-Typ |
Wahr | Wahr | Geordnetes Set (Ordered Set) |
java.util.SortedSet |
Wahr | Falsch | Folge (Sequence) |
java.util.List |
Falsch | Wahr | Set |
java.util.Set |
Falsch | Falsch | Bag |
java.util.Collection |
Erweitert
Die Registerkarte Erweitert enthält verschiedene Optionen
für die Codegenerierung. Klicken Sie auf Modellierung > Umsetzen > Umsetzungen
konfigurieren und wählen Sie eine UML-in-Java-Konfiguration und anschließend die Registerkarte
Erweitert aus. Diese Registerkarte
enthält das Markierungsfeld Getter und Setter
generieren und die Gruppe Sammlungen.
Wenn das Markierungsfeld Getter und Setter
generieren markiert ist, wird für jede UML-Eigenschaft ein privates Feld mit der
Getter- und der Setter-Methode generiert. Ist 'isLeaf' (final) oder 'isReadOnly' der
Eigenschaft auf 'true' gesetzt, wird kein Setter generiert. Ist
'isDerived' der Eigenschaft auf 'true' gesetzt, bleibt die Setter-Implementierung leer.
Sie können die über eine UML-in-Java-Umsetzungen generierten Sammlungen in der Gruppe
Sammlungen angeben. Wenn Sie z. B.
'java.util.Vector' im Dropdown-Menü Folge auswählen,
werden bei der Umsetzung Vektoren an Stelle von Listen generiert. Sie können auch
angepasste Sammlungsklassen angeben, indem Sie den entsprechenden Klassennamen im Dropdown-Menü
eingeben. Wenn Sie
im Dropdown-Menü Bag 'custom.Bag' eingeben, werden bei der
Umsetzung
Bags an Stelle von Sammlungen generiert.
Wenn Sie auf Zuordnungsmodell erstellen klicken, erstellt die Java-Umsetzung
ein Zuordnungsmodell. Dabei handelt es sich um ein separates Modell, das für jedes umsetzbare Element
ein Artefakt hat. Das Artefakt hat denselben Namen wie das ursprüngliche umsetzbare Element, auf das es
verweist. Um einen alternativen Namen für das ursprüngliche Element anzugeben, geben Sie bei den Dateinameneigenschaften
des Artefakts einen neuen Namen ein. Wenn Sie die Dateinameneigenschaft des Artefakts nicht ändern , wird bei
der Umsetzung das Element mit dem Standardnamen des Artefakts generiert.
Wenn Sie alternative Namen für Pakete angeben, betreffen diese alle Klassifikationsmerkmale in diesem Paket
(sofern das Klassifikationsmerkmal nicht einen vollständig qualifizierten Namen angibt). In der folgenden Tabelle
finden Sie Beispiele für alternative Namen.
UML-Quelle | Dateiname des Zuordnungsartefakts | Generiertes Java |
"Paket1" | "" | "Paket1" |
"Paket2" | "com.ibm.test" | "com.ibm.test" |
"Klasse1" in Paket1 | "" | Paket1.Klasse1 |
"Schnittstelle1" in Paket2 | "ITestable" | com.ibm.test.ITestable |
"Klasse2" in Paket2 | "com.ibm.test.Testable" | com.ibm.test.Testable |
Um auf das Zuordnungsmodell zuzugreifen, führen Sie folgende
Schritte aus:
1. Wechseln Sie in die Perspektive 'Modellierung'.
2. Klicken Sie in der Sicht 'Modellexplorer' auf ein UML-Modell.
3. Klicken Sie in der Menüleiste auf Modellierung > Umsetzen > Umsetzungen
konfigurieren.
4. Erstellen Sie eine neue Umsetzung UML2 in Java (nennen Sie die Umsetzung zum Beispiel
"Zuordnung verwenden").
5. Klicken Sie auf der Seite 'Zuordnung' auf die Option für die Verwendung eines Zuordnungsmodells.
6. Klicken Sie auf das Zuordnungsmodell, das Sie vorher erstellt haben, und klicken Sie auf Ausführen.
Bei der Durchführung der Umsetzung werden die alternativen Namen verwendet, die Sie im Zuordnungsmodell
angegeben haben.