Das AAA-Profiltool

Das AAA-Profiltool ist ein Rose-Skript zur Festlegung und Übernahme von Profilen im AAA-Anwendungsschema.

Hintergrund: Die Länder dokumentieren derzeit i.d.R. die zur Führung in ihrem Bereich vorgesehenen Inhalte der einzelnen Modellarten in eigenständigen, separaten Tabellen. Im Sinne der Führung aller relevanten Informationen im Rose-Modell stellen die Profile einen Weg dar, sodass

Was ist ein Profil?

Unter einem Profil wird eine wohldefinierte und benannte Untermenge der zu führenden Informationen des AAA-Anwendungsschemas innerhalb einer Modellart verstanden. Die umfasst im Sinne des UML-Modells Klassen (Objektarten, Datentypen, Unions, Aufträge, Ergebnisse, Codelisten), Attribute (Attributarten, Wertearten) und Rollen (Relationsarten). Alle in dem Profil vorkommenden Elemente müssen auch der zugehörigen Modellart zugeordnet sein.

Für die Festlegung der Profile im AAA-Anwendungsschema wird das AAA-Profiltool verwendet, das die entsprechenden Profilangaben in einem speziellen Tagged Value in den UML-Elementen des Anwendungsschemas setzt.

Dateien

Die Datei AAA-Profiltool.ebs ist ein Rose Script, getestet unter Rational Rose 2000e. Das Skript pflegt die Profildefinitionen im AAA-Anwendiungsschema.

AAA-Profiltool.html und dialog.jpg sind diese Dateien.

Neben diesen Dateien sind weitere Programme erforderlich, um die Objektartenkataloge zu erstellen:

Anwendung

Rational Rose muss mit dem AAA-Modell geöffnet sein.

Im Menü unter Tools den Eintrag Open Script... auswählen und AAA-Profiltool.ebs öffnen. Das Skript z.B. mit "F5" starten. Es erscheint der folgende Dialog:

In der oberen Auswahlliste werden die UML-Packages alphabetisch sortiert angeboten, die mit dem Stereotype <<Application Schema>> markiert sind. Hier ist das zu zentrale Anwendungsschema auszuwählen (es sollte als Standardwert automatisch eingestellt sein sofern keine Umbenennungen der Pakete im UML-Modell erfolgen). Bei der Profilbearbeitung werden auch alle darin enthaltenen Packages behandelt.

Das AAA-Profiltool unterstützt vier Operationen:

Mit der "Cancel"-Taste wird die Ausführung des Skripts abgebrochen.

Die Profile sollten ausschließlich über das AAA-Profiltool gepflegt werden.

Das Tool ist so ausgelegt, dass bei sauberer Definition der Modellarten nach der Ausführung einer Operation stets ein konsistenter Zustand vorliegt. D.h., zu Beginn der Ausführung werden etwaige Angaben zu dem Profil aus allen Elementen des UML-Modells entfernt, durch die Skriptausführung erfolgt eine vollständige Neudefinition des Profils. Ermöglicht wird so die Führung von Profilen außerhalb des von der AdV in der GeoInfoDok veröffentlichten UML-Modells. In den lokalen Kopien des UML-Modells können mit dem Profltool die Profildefinitionen in das Modell eingebracht werden. Bei ggf. auftretenden Fehlermeldungen (z.B. aufgrund von Änderungen des UML-Modells wie Umbennenungen oder fachliche Modelländerungen) muss die profildefinierende Stelle reagieren und Anpassungen an der Profildefinition vornehmen.

Das Profiltool berücksichtigt auch automatisch die folgenden Rahmenbedingungen:

Die externe Form der Profildefinition enthält neben einem Headerblock für jedes Element der Modellart (Objektart/Datentyp, Alltributart, Relationsart oder Werteart) eine Zeile. Ist das Element kein Bestandteil des Profils, dann wird es mit einem "#" als erstem Zeichen in der Zeile auskommentiert. Durch Entfernen des Kommentarzeichens oder Auskommentieren von Zeilen kann nun die Profildefinition geändert und wieder über das Profiltool in das UML-Modell übernommen werden.

Der Header enthält in der ersten Zeile den festen Wert "AFIS-ALKIS-ATKIS-Profildefinition", in der zweiten Zeile die Angabe der Versionsnummer des AAA-Anwendungsschemas aus der die Profilbeschreibung erzeugt wurde und in der dritten Zeile den Namen des Profils.

Ein Beispiel für eine Profilbeschreibung:

AFIS-ALKIS-ATKIS-Profildefinition
Version: 3.0
Name: DLKM_Min
#
AA_ZUSO --- Objektart/Datentyp
AA_Objekt --- Objektart/Datentyp
AA_Objekt/identifikator --- Attributart
AA_Objekt/lebenszeitintervall --- Attributart
AA_Objekt/modellart --- Attributart
# AA_Objekt/anlass --- Attributart
# AA_Objekt/zeigtAufExternes --- Attributart
# AA_Objekt/istTeilVon --- Relationsart
AA_ZUSO/bestehtAus --- Relationsart
AA_REO --- Objektart/Datentyp
# AA_REO/traegtBeiZu --- Relationsart
# AA_REO/istAbgeleitetAus --- Relationsart
# AA_REO/hatDirektUnten --- Relationsart
AA_NREO --- Objektart/Datentyp
# AA_Fachdatenverbindung --- Objektart/Datentyp
# AA_Fachdatenverbindung/art --- Attributart
# AA_Fachdatenverbindung/fachdatenobjekt --- Attributart
AA_Lebenszeitintervall --- Objektart/Datentyp
AA_Lebenszeitintervall/beginnt --- Attributart
# AA_Lebenszeitintervall/endet --- Attributart
AA_UUID --- Objektart/Datentyp
AA_UUID/UUID --- Attributart
AA_UUID/UUIDundZeit --- Attributart
# AA_Fachdatenobjekt --- Objektart/Datentyp
# AA_Fachdatenobjekt/name --- Attributart
# AA_Fachdatenobjekt/uri --- Attributart
AA_Modellart --- Objektart/Datentyp
AA_Modellart/advStandardModell --- Attributart
AA_Modellart/sonstigesModell --- Attributart
# AA_AdVStandardModell/DLKM --- Werteart
# AA_AdVStandardModell/DKKM500 --- Werteart
# AA_AdVStandardModell/DKKM1000 --- Werteart
...

Bei einer Objektart oder einem Datentyp ist in der Zeile der Name angegeben. Bei einer Attributart wird der Name der Objektart bzw. des Datentyps und der Name der Attributart angegeben. Bei einer Werteart der Name der Codeliste und der Code. Bei einer Relationsart schließlich wird der Name der Objektart und der Name der Relationsart angegeben.

Clemens Portele (interactive instruments GmbH)