1. Einleitung
In diesem Modul soll eine Übersicht über wesentliche Schritte bei Nutzung von Papyrus zur Modellierung von XÖV-konformen Standards sowie der damit erzeugten Artefakte mittels des XGenerators gegeben werden. Unterstellt ist eine erfolgreiche Einrichtung der Produktionsumgebung und Installation des XGenerators (siehe Modul Die Produktionsumgebung).
1.1. Der hier verwendete Standard Schulung
In dieser Schulung wird immer wieder ein spezieller "Schulungsstandard" verwendet, der als beispielhaftes Modell für die Entwicklung eines XÖV-konformen Standards dient. Es handelt sich dabei nicht um einen echten Standard, der für Schulungsanmeldungen vorgesehen ist.
Durch die Arbeit mit dem Standard Schulung werden Sie:
-
Ein besseres Verständnis für die Struktur und die Elemente von XÖV-konformen Standards entwickeln.
-
Den gesamten Prozess von der Modellierung über die Generierung von Artefakten bis zum Erzeugen der Dokumentation nachvollziehen können.
2. Nutzung von Papyrus für die Umsetzung von XÖV-Standards
Papyrus soll als kostenlose Open Source Alternative zu kommerziellen UML-Tools angeboten werden um die Einstiegshürden bei der Umsetzung der XÖV-Methodik zu senken. Da es sich um eine eigenständige Eclipse-Erweiterung handelt, kann Papyrus von den Nutzenden bspw. um Runner, die den XGenerator starten, erweitert werden.
-
Modellierung: Mit Papyrus können Sie XÖV-Standards in Form von Klassen, Assoziationen und anderen UML-Konstrukten modellieren. Dies gibt Ihnen eine klare und visuelle Darstellung der Datenstrukturen und Beziehungen.
-
Generierung: Auch wenn mit entsprechenden Erweiterungen Papyrus dazu verwendet werden kann, XML-Schemata, Dokumentation oder sogar Code direkt aus Ihrem UML-Modell zu generieren, benutzen wir im XÖV-Kontext den XGenerator dafür.
Im Laufe dieser Schulung werden Sie die Gelegenheit haben, Papyrus intensiv zu nutzen, um den Schulungsstandard zu modellieren.
3. Import des Standards Schulung
Bevor wir mit der aktiven Arbeit in Papyrus beginnen, ist es wichtig, den zur Verfügung gestellten Standard Schulung korrekt zu importieren. Dies stellt sicher, dass alle nachfolgenden Schritte nahtlos und ohne Dateninkonsistenzen durchgeführt werden können.
Entpacken Sie die zur Verfügung gestellte ZIP an einem beliebigen Ort, starten Sie Papyrus und gehen Sie zu File > Import
.
Details
Wählen Sie die Option General > Existing Projects into Workspace
und klicken sie auf Next >
.
Details
Klicken Sie im folgenden Fenster auf Browse…
.
Details
und wählen Sie anschließend im Dialog oben das entpackte Verzeichnis.
Details
Setzen Sie außerdem noch einen Haken bei Copy projects into workspace
und klicken Sie anschließend auf Finish
.
Details
Damit ist das Projekt erfolgreich importiert. Sie können nun den Ordner schulungsstandard
aufklappen und mit einem Doppelklick auf XOEV-Schulung das Model öffnen.
4. Einführung in den Standard Schulung
Der Standard Schulung bildet das Rückgrat dieser Schulung und würde komplett ausgearbeitet um ein konsistentes und standardisiertes Modell für die Organisation und Durchführung von Schulungen darstellen.
4.1. Bedeutung und Zweck des Standards Schulung
Der Standard Schulung ist nicht nur ein Satz von Klassen und Attributen. In der Praxis wäre er das Ergebnis sorgfältiger Planung und Konsolidierung, um den Prozess der Schulungsorganisation zu vereinfachen.
-
Ziel des Standards:
-
Bereitstellung eines einheitlichen Rahmens für die Organisation und Durchführung von Schulungen.
-
Erleichterung der Kommunikation und des Datenaustauschs zwischen Schulungsanbietern und Teilnehmern.
-
-
Warum ein Standard Schulung?
-
Konsistenz: Jeder Schulungsanbieter und jeder Trainee weiß, was zu erwarten ist und welche Informationen bereitgestellt oder erfragt werden.
-
Effizienz: Die Standardisierung ermöglicht die Automatisierung vieler Schulungsverwaltungsprozesse.
-
Erweiterbarkeit: Ein klar definierter Standard bietet die Möglichkeit, zusätzliche Funktionen oder Attribute hinzuzufügen, ohne den gesamten Prozess zu stören.
-
4.2. Anwendungsfalldiagramm in Papyrus
Das folgende Anwendungsfalldiagramm ist im Reiter "Schulungsorganisation" zu finden. Es skizziert mögliche Anwendungsfälle, wobei wir uns später nur auf den Anwendungsfall "Anmeldung zur Schulung" als Beispiel konzentrieren werden.
4.3. Anwendungsfall: Anmeldung zur Schulung
-
Ziel: Ein Trainee möchte sich für eine Schulung anmelden.
-
Akteure:
-
Trainee: Die Person, die an einer Schulung teilnehmen möchte.
-
Organisator: Die Person oder Einheit, die die Schulung organisiert und durchführt.
-
-
Szenario:
-
1. Der Trainee wählt aus dem Katalog von angebotenen Schulungen eine aus, die seinem Interesse oder Bedarf entspricht.
-
2. Der Trainee füllt das Anmeldeformular aus, welches die Klassenattribute aus dem Schulungsstandard (Name, E-Mail usw.) nutzt.
-
3. Der Organisator erhält die Anmeldung und prüft die Verfügbarkeit von Plätzen für die gewählte Schulung.
-
4. Bei Verfügbarkeit wird der Trainee für die Schulung registriert und erhält eine Bestätigungs-E-Mail.
-
5. Falls keine Plätze verfügbar sind, informiert der Organisator den Trainee und bietet möglicherweise alternative Termine oder Schulungen an.
-
-
Besonderheiten:
-
Der Prozess kann über ein digitales System abgewickelt werden, welches den Schulungsstandard nutzt, um die Datenkonsistenz und den Datenaustausch zu gewährleisten.
-
Durch den Einsatz des Schulungsstandards können auch verschiedene Schulungsanbieter den gleichen Anmeldeprozess nutzen und so eine einheitliche Benutzererfahrung bieten.
-
4.4. Aktivitätsdiagramm: Schulungsanmeldung in Papyrus
Unter dem Reiter "Prozesse" finden liegt ein Aktivitätsdiagramm des Standards Schulung, das einen strukturierten Überblick über den Prozess der Schulungsanmeldung gibt. Es soll dabei helfen, die Schritte und Interaktionen während des Anmeldevorgangs besser zu verstehen und die damit verbundenen Datenflüsse zu visualisieren.
Beschreibung der Diagrammelemente:
-
Schulung auswählen: Dies ist der Ausgangspunkt des Anmeldeprozesses. Ein Trainee wählt die gewünschte Schulung aus.
-
Anmeldung erstellen und versenden: Nach Auswahl der Schulung erstellt der Trainee eine Anmeldung.
-
Anmeldung Nachricht 0001: Dieser Punkt repräsentiert den Datenaustauschprozess, in dem die erstellte Anmeldung zur Überprüfung gesendet wird.
-
Anmeldung prüfen: Die Anmeldung wird überprüft, um sicherzustellen, dass alle notwendigen Informationen vorhanden sind und Plätze verfügbar sind.
-
Bestätigung Nachricht 0002/Ablehnung Nachricht 0003: Je nach Ergebnis der Überprüfung wird eine Nachricht zur Bestätigung oder Ablehnung der Anmeldung gesendet.
-
Bestätigung verarbeiten/Ablehnung verarbeiten: Der letzte Schritt im Prozess, bei dem die Bestätigung oder Ablehnung verarbeitet und an den Trainee zurückgesendet wird.
4.5. Struktur des Schulungsstandards
Im Kontext von XÖV werden spezifische Begriffe verwendet, um die Struktur und die Komponenten eines Standards zu beschreiben. Zwei dieser Begriffe sind "Baukasten" und "Nachrichten".
-
Baukasten im XÖV-Kontext: Der Baukasten, oft auch als "Kern" eines Standards bezeichnet, stellt die zentralen Datenmodelle und Strukturen dar. Er beinhaltet die grundlegenden Klassen und Datentypen, die in mehreren Nachrichten oder Prozessen wieder verwendet werden können. Der Baukasten dient als gemeinsame Grundlage und stellt sicher, dass verschiedene Nachrichten konsistent sind und die gleichen Strukturen und Datentypen verwenden. In unserem Schulungsstandard sind die Klassen
Schulung
undTrainee
Teil des Baukastens, da sie grundlegende Datenstrukturen darstellen, die in verschiedenen Nachrichtenprozessen verwendet werden können. -
Nachrichten im XÖV-Kontext: Eine Nachricht definiert, welche Daten in einem spezifischen Austauschprozess zwischen zwei oder mehr Systemen oder Akteuren übermittelt werden. Sie verwendet oft Strukturen und Datentypen aus dem Baukasten, kann jedoch auch zusätzliche spezifische Datenstrukturen oder Attribute enthalten, die nur für diesen bestimmten Austauschprozess relevant sind. Im Kontext unseres Schulungsstandards stellt die Klasse
organisation.anmeldung.0001
eine solche Nachricht dar. Sie beschreibt den spezifischen Prozess der Anmeldung zu einer Schulung und verwendet dabei Datenstrukturen aus dem Baukasten (wieSchulung
undTrainee
) sowie zusätzliche Informationen, die spezifisch für diesen Prozess sind.
4.5.1. Klassen aus dem Baukasten
Das Klassendiagramm, welches die folgenden Klassen darstellt, finden Sie im Reiter Class Diagram.
Die Klassen Schulung
und Trainee
repräsentieren wiederverwendbare Einheiten im Schulungsstandard.
Schulung
Diese Klasse stellt eine Schulung oder einen Kurs dar. Sie enthält Details wie Bezeichnung, Art, Modul und Termin der Schulung als Attribute. Da es sich um eine grundlegende Klasse handelt, kann sie in verschiedenen Kontexten wiederverwendet werden, beispielsweise um unterschiedliche Schulungstypen oder -module zu definieren.
Attribute der Klasse
-
Bezeichnung
: Der Name oder Titel der Schulung. -
Art
: Der Typ der Schulung, z. B. Online, Präsenz, Workshop etc. -
Modul
: Das spezifische Thema oder Modul, das in der Schulung behandelt wird. -
Termin
: Das geplante Datum und die Uhrzeit der Schulung.
Trainee
Diese Klasse repräsentiert Personen, die an Schulungen teilnehmen möchten. Mit den Attributen Name und E-Mail können individuelle Daten der Trainees gespeichert werden. Ähnlich wie bei der Schulungsklasse dient die Trainee-Klasse als universelle Definition für alle Trainees, unabhängig von der spezifischen Schulung, an der sie teilnehmen.
Attribute der Klasse
-
Name
: Der vollständige Name des Trainees. -
E-Mail
: Die E-Mail-Adresse des Trainees, die für Kommunikationszwecke verwendet wird.
4.5.2. Klasse als Nachricht
Die Klasse organisation.anmeldung.0001
unterscheidet sich von den oben genannten Klassen dadurch, dass sie als Nachricht konzipiert ist.
Sie verknüpft die Schulung
und den Trainee
miteinander und stellt somit die Anmeldung eines Trainees für eine bestimmte Schulung dar. Während Schulung
und Trainee
stabile Entitäten sind, die unabhängig voneinander existieren können, repräsentiert die Nachrichtenklasse organisation.anmeldung.0001
eine spezifische Interaktion oder einen Vorgang zwischen diesen Entitäten. Die Verwendung einer Nachrichtenklasse ermöglicht es, bestimmte Aktionen oder Interaktionen zwischen den Basisklassen zu definieren und zu protokollieren, wie zum Beispiel den Anmeldevorgang.
Integration und Zusammenhang:
-
Das Attribut
schulung
verweist auf eine Instanz der Klasse "Schulung". -
Das Attribut
trainee
verweist auf eine Instanz der Klasse "Trainee". -
Durch diese Beziehungen können komplexe Abfragen und Berichte erstellt werden, z. B. um alle Trainees für eine bestimmte Schulung aufzulisten.
Insgesamt bietet der Schulungsstandard durch die Kombination von Baukasten-Klassen und Nachrichtenklassen eine flexible und erweiterbare Struktur zur Darstellung und Verwaltung von Schulungsanmeldungen.
4.6. Eigenschaften
Wenn Sie auf ein Element einer Klasse wie beispielweise ein Attribut klicken, sind die Eigenschaften dieses Elements unten im Reiter Properties
zu erreichen.
Sie können hier beispielweise den Namen oder den Typ der Klasse ändern.
4.7. Stereotypen im XÖV-Kontext
Im Modellierungsumfeld von UML dienen Stereotypen dazu, Elementen der Modellierung spezielle Bedeutungen oder Charakteristika zuzuweisen. Im XÖV-Kontext werden Stereotypen eingesetzt, um bestimmte semantische Informationen oder fachliche Anforderungen zu den Modellierungselementen hinzuzufügen, die über die standardmäßigen UML-Elemente hinausgehen.
Spezifische Stereotypen in unserem Schulungsstandard:
Wenn Sie den Schulungsstandard in Papyrus betrachten, werden Sie feststellen, dass bestimmte Klassen, Attribute oder Ordner mit speziellen Stereotypen versehen sind. Diese dienen dazu, diese Elemente mit zusätzlichen Informationen oder Anforderungen zu ergänzen, die für den Schulungsprozess oder den Datenaustausch im XÖV-Kontext relevant sind.
Es ist essentiell zu verstehen, welche Stereotypen in einem Modell verwendet werden und welche Bedeutung sie haben, da sie oft kritische Informationen über die Modellierung und den beabsichtigten Datenaustauschprozess liefern.
-
xsdNamedType
: Die KlassenSchulung
undTrainee
haben diesen Stereotypen. Er gibt an, dass es sich um einen benannten Typ im Kontext eines XML-Schemas handelt. Ein solcher Typ ist in der Regel ein zentrales Element im Datenaustausch und dient als Basistyp für andere Elemente. -
xsdMessage
: Die Klasseorganisation.anmeldung.0001
trägt diesen Stereotypen. Dieser weist das Element als Nachricht im Datenaustausch aus, was bedeutet, dass es spezifische Informationen enthält, die zwischen Systemen ausgetauscht werden. -
xsdSchema
: Dieser Stereotyp wird für Ordner verwendet und zeigt an, dass die darin enthaltenen Elemente zu einem bestimmten XML-Schema gehören. In unserem Schulungsstandard tragen die OrdnerBaukasten
undSchulungsanmeldung
(der sich im OrdnerNachrichten
befindet) diesen Stereotypen. Er stellt sicher, dass die darin enthaltenen Elemente in einem bestimmten Schema-Format organisiert und validiert werden können.
Um den Stereotyp z.B. einer Klasse zu setzen, muss diese zuerst markiert werden. Sie finden dann die Tabelle mit den zugewiesen Stereotypen bei Properties`im Reiter `Profile
.
Wenn Sie dort auf das grüne Pluszeichen klicken, können Sie dort aus allen verfügbaren Stereotypen die gewünschten auswählen.
Um ein Stereotyp zu entfernen, müssen Sie diesen auswählen und auf das rote X klicken.
4.8. Beispiel der XML-Struktur des Schulungsstandards
Um das Verständnis des Schulungsstandards zu vertiefen, betrachten wir ein praktisches Beispiel eines XML-Dokuments, das den Schulungsstandard verwendet.
<SchulungsStandard>
<Schulung>
<Bezeichnung>Grundlagen von XÖV</Bezeichnung>
<Art>Online</Art>
<Modul>Einführung</Modul>
<Termin>2023-10-05</Termin>
</Schulung>
<Trainee>
<Name>Max Mustermann</Name>
<E-Mail>max@beispiel.de</E-Mail>
</Trainee>
<organisation.anmeldung.0001>
<schulung>Grundlagen von XÖV</schulung>
<trainee>Max Mustermann</trainee>
</organisation.anmeldung.0001>
</SchulungsStandard>
SchulungsStandard
-Element:
-
Dies ist das Wurzelelement des XML-Dokuments. Es enthält alle anderen Elemente und dient als Container für den gesamten Schulungsstandard.
Schulung
-Element:
-
Dieses Element repräsentiert eine spezifische Schulung oder einen Schulungskurs.
-
Die Elemente
Bezeichnung
,Art
,Modul
undTermin
sind die Attribute, die die spezifischen Details der Schulung definieren. In diesem Beispiel geht es um eine Online-Einführungsschulung zu "Grundlagen von XÖV", die am 5. Oktober 2023 stattfinden wird.
Trainee
-Element:
-
Das
Trainee
-Element repräsentiert einen Teilnehmer der Schulung. -
Die Elemente
Name
undE-Mail
speichern die persönlichen Informationen des Trainees. In unserem Beispiel ist Max Mustermann der Trainee mit der E-Mail-Adresse max@beispiel.de.
organisation.anmeldung.0001
-Element:
-
Dieses Element stellt die Anmeldung des Trainees zur Schulung dar.
-
Die Elemente
schulung
undtrainee
verknüpfen den Trainee mit der entsprechenden Schulung. Es zeigt, dass Max Mustermann für die Schulung "Grundlagen von XÖV" angemeldet ist.
Die dargestellte XML-Struktur ist ein einfaches Beispiel, das den Umgang mit dem Schulungsstandard in der Praxis veranschaulicht. Bei komplexeren Anwendungen können weitere Elemente und Attribute hinzugefügt werden, um zusätzliche Informationen und Zusammenhänge darzustellen.
5. Generieung der Artefakte mit dem XGenerator
Nachdem die Modellierung in Papyrus abgeschlossen ist, können mit dem XGenerator die entsprechenden Artefakte des Standards generiert werden. Das Hauptziel ist die Erstellung von XML-Schemata, die dann zur Validierung von XML-Daten verwendet werden können, und DocBook-Fragmenten, welche zur Erstellung der Dokumentation genutzt werden.
Starten Sie den XGenerator und wählen sie im Menü Datei
und dort Projekt öffnen
. Gehen Sie zum Projektordner im Workspace von Papyrus und wählen sie die Projekt-Datei xoev-schulung.xgen-project
. Klicken Sie danach auf Öffnen
.
Details
Lassen Sie alle Einstellungen wie voreingestellt und klicken Sie auf Verarbeitung starten
.
Nach Abschluss der Verarbeitung sehen Sie eine Übersicht, welche Artefakte generiert worden sind, die sie im build
-Ordner des Projektverzeichnis finden.
Details
5.1. Generierte Artefakte
5.1.1. XML-Schemadefinitionen (XSD)
-
Dateinamen: U.a.
Schulung.xsd
,Trainee.xsd
-
Inhalt: Diese Dateien definieren die Struktur der XML-Daten, die basierend auf dem Schulungsstandard erstellt werden.
-
Verwendung: Die XML-Schemas (XSDs) werden verwendet, um sicherzustellen, dass die erstellten XML-Daten korrekt strukturiert sind und den definierten Anforderungen des Standards entsprechen.
5.1.2. Dokumentation (docBook)
-
Dateinamen: U.a.
Schulung.xml
,Trainee.xml
-
Inhalt: Automatisch generierte DocBook-Bausteine welche alle Klassen, Attribute und Beziehungen beschreiben.
-
Verwendung: Dient als Grundlage der Generierung der PDF-Dokumentation zusammen mit den statischen DocBook-Dateien.
5.1.3. Code-Snippets (Schematron)
-
Dateinamen:
Schulung-schematron.sch
-
Inhalt: Code-Snippets z.B. in Schematron
-
Verwendung: Diese Dateien können direkt in Validierung in Kombination mit den Schema-Dateien integriert werden.
Sollten Fehlermeldung bzgl. der erzeugten Artefakte ausgeben werden, müssen diese im UML-Modell in Papyrus und nicht in den generierten Artefakten selbst korrigiert werden, da diese sonst bei einer erneuten Verwendung des XGenerators wieder (mit den alten Fehlern) überschrieben werden.
6. Ergänzung des Schulungsstandards
Bisher haben wir einen bereits vorliegenden Standard betrachtet und daraus die Artefakte erzeugt. In diesem Kapitel soll nun eine Erweiterung des Standards erfolgen. Dazu wird die Nachricht organisation.anmeldebestaetigung.0002
erstellt und die neue Klasse Einwahldetails
eingeführt.
6.1. Erstellung der Klasse Einwahldetails
Um die Nachricht organisation.anmeldebestaetigung.0002
vollständig zu definieren, benötigen wir eine Klasse namens Einwahldetails
, die Einzelheiten zur Anmeldung enthält.
Öffnen Sie dazu als erstes das Klassendiagramm und klicken Sie im Reiter Nodes
auf Class
.
Klicken Sie auf die gewünschte Stelle der Ansicht des Klassendiagramms. Geben Sie der neuen Klasse den Namen Einwahldetails
.
Drücken Sie die rechte Maustaste auf die Klasse und wählen Sie Filters→Show/Hide Compartments
.
Wählen Sie im folgenden Dialog alle Optionen außer Attributes
ab und klicken Sie auf OK
.
Als nächstes setzen wir den Stereotyp. Wählen Sie dazu die Klasse an und klicken Sie unter Properties→Profile
auf das grüne Plus.
Details
Im folgenden Dialog geben Sie im Filterfeld xsdNamedType
ein und drücken Sie Enter.
Details
Der Stereotyp ist nun ausgewählt und wir können durch ein Klick auf OK
unsere Zuordnung bestätigen und das Fenster schließen
Als nächstes sollen sollen die folgenden Attribute der Klasse definiert werde:
-
system
: Dieses Attribut gibt das System an, in das sich der Trainee einloggen muss. -
kennung
: Die Kennung oder der Benutzername für das System. -
passwort
: Das zugehörige Passwort für die Kennung.
Klicken Sie dafür zunächst auf Property
im Node
-Reiter
und anschließend auf die Klasse. Geben Sie dem neuen Attribute den Namen system
.
Nun soll ein Typ den Attributen zugewiesen werden. Klicken Sie dafür auf …
neben Type
.
Im folgenden Dialog geben Sie datatypec
in das Suchfeld und wählen Sie den Datentyp aus. Klicken Sie anschließend auf OK
.
Details
Anschließend muss noch die Sichbarkeit auf private
gesetzt werden indem dieser Wert im DropDown-Box neben Visibility
gewählt werden.
Details
Das gleiche Vorgehen für die beiden anderen Attribute wiederholt werden und abschließend kann die neue Klasse im Model Explorer
in den Ordner Schulungsanmeldungen
verschoben werden.
6.2. Erstellung der Nachricht organisation.anmeldebestaetigung.0002
Nachdem die Klasse Einwahldetails
definiert ist, können wir fortfahren und die Nachricht organisation.anmeldebestaetigung.0002
erstellen.
Dazu erstellen Sie wie im vorangegangenen Abschnitt eine neue Klasse organisation.anmeldebestaetigung.0002
und weisen dieser den Stereotyp xsdMessage
zu. Als Attribute werden schulung
, einwahldetails
, und trainee
gesetzt. Anschließend speichern wir wie gewohnt.
6.3. Testen der neuen Klassen
Unser erweitertes Model mit den neu erstellen Klassen wird nun wieder wie zuvor beschrieben mit dem XGenerator verarbeitet. Falls dies erfolgreich geschehen ist, sind jetzt entsprechend zusätzliche Artefakte erzeugt worden.
7. Generierung der Dokumentation
Mit Hilfe der erzeugten DocBook-Fragmente ist es nun möglich, eine Dokumentation bzw. Spezifikation des Standards zu erstellen. Dafür sind im Ordner src
statische DocBook-Quelldateien, welche die dynamisch erzeugten DocBook-Fragmente einbinden. Bedenken Sie, dass Sie neue erstellte Nachrichten und Datentypen manuell in die statischen DocBook-Quelldateien einbinden müssen.
Um die Generierung des PDFs zu starten, müssen Sie die Batch-Datei generate_documentation.bat
starten.
Details
Nach Abschluss der Generierung finden sie die PDF im Ordner pdf
das unseren Standard spezifiziert.