Zum Hauptinhalt springen

UML-Profil

Ein UML-Profil ist der standardisierte Erweiterungsmechanismus der UML: Über Stereotypen, Tagged Values und Constraints erhalten generische Modellelemente eine domänenspezifische Bedeutung, ohne die Sprache selbst zu verändern oder das Modellierungswerkzeug zu ersetzen. Profile machen aus der Allzwecksprache UML eine präzise, auf eine Methodik zugeschnittene Modellierungssprache.

Warum Profile? Plain UML kennt die Domäne nicht

UML ist eine generische Sprache zur Beschreibung von Softwaresystemen; ihre Konzepte reichen daher selten aus, um domänenspezifische Aspekte auszudrücken. Ein typisches Beispiel aus der Embedded-Entwicklung: Mikrocontroller-Software wird mit UML modelliert, doch einem einfachen UML-Element lässt sich nicht mitteilen, dass es einen OS-Task repräsentiert, der von einem Ereignis mit einer bestimmten Zyklusperiode ausgelöst wird. Soll ein Code-Generator aus dem Modell Code erzeugen, muss er aber genau das wissen: Welche Klasse ist ein OS-Task und welche nicht?

Die drei Bausteine eines Profils

BausteinFunktionBeispiel
StereotypWeist einem UML-Element (Klasse, Signal, Assoziation …) eine domänenspezifische Bedeutung zu, notiert in Guillemets«Task» auf einer Klasse, «CyclicEvent» auf einem Signal
Tagged ValueZusätzliche Eigenschaft eines Stereotyps, als Attribut oder Referenz modelliertperiod eines zyklischen Events, triggers als Referenz auf den ausgelösten Task
ConstraintRegel, die profilierte Modelle einhalten müssen und die die Methodik strukturell erzwingtJedes «CyclicEvent» muss genau einen Task referenzieren

Ein konkretes Beispiel: OS-Tasks und zyklische Events

Ein Profil OS definiert den Stereotyp Task (anwendbar auf UML-Klassen) und den Stereotyp CyclicEvent (anwendbar auf UML-Signale). Tagged Values wie period und triggers sind als Attribute bzw. Referenzen der Stereotypen modelliert. Im profilierten Modell trägt jedes Element seinen Stereotyp, die Bedeutung ist explizit: Ein Code-Generator kann prüfen, ob ein Element den Stereotyp OS::CyclicEvent trägt, dessen Tagged Value period auslesen und die Referenz auf den ausgelösten Task auflösen. Daraus erzeugt er gezielt Code für genau diese Semantik. Das ist der Kern der modellgetriebenen Softwareentwicklung mit profilierter UML.

Abgrenzung: Profil oder eigenes Metamodell?

Ein Profil ist die leichtgewichtige Erweiterung: Es spezialisiert vorhandene UML-Konzepte, das Modellierungswerkzeug, die Toolchain und das Know-how der Modellierer bleiben erhalten. Die Alternative ist eine eigene domänenspezifische Sprache mit eigenem Metamodell; sie lohnt sich, wenn die Domäne strukturell nicht zu den UML-Abstraktionen passt. Beide Wege kommen in der Praxis vor: In Projekten mit einem Automotive-Tier-1-Zulieferer und einem Medtech-Unternehmen wurde nach der Domänenanalyse bewusst auf eine eigene DSL verzichtet und stattdessen UML mit projekteigenem Profil eingesetzt. Auch prominente Standards belegen die Tragfähigkeit des Mechanismus: SysML v1 ist als UML-Profil definiert (SysML v2 nutzt dagegen ein eigenes Metamodell), und AUTOSAR-Methodiken werden verbreitet auf UML-Basis mit domänenspezifischen Stereotypen umgesetzt.

UML-Profile in der Praxis

Modellierungswerkzeuge wie Enterprise Architect, CATIA Magic (ehemals MagicDraw) oder IBM Rhapsody verwalten Profile als wiederverwendbare Pakete, in Enterprise Architect etwa als Teil sogenannter MDG-Technologien; die Modellierer wenden die Stereotypen direkt im gewohnten Werkzeug an. Der eigentliche Wert entsteht jedoch erst, wenn die Profilinformation maschinell ausgewertet wird: durch Validierung gegen die Constraints der Methodik oder durch Generatoren, die aus Stereotypen und Tagged Values Code und Konfigurationsartefakte ableiten. Dafür müssen nachgelagerte Werkzeuge die Profile beim Laden der Modelle auflösen; die EA-Bridge etwa lädt profilierte Enterprise-Architect-Modelle einschließlich Stereotypen und Tagged Values für die Weiterverarbeitung. Ein Profil, dessen Stereotypen niemand auswertet, ist dagegen nur Dekoration: Die Methodik steht dann auf dem Papier, nicht im Werkzeug.

Häufige Fragen

Was ist der Unterschied zwischen Stereotyp und Tagged Value?
Ein Stereotyp weist einem generischen UML-Element eine domänenspezifische Bedeutung zu, etwa «Task» auf einer Klasse. Tagged Values sind die zusätzlichen Eigenschaften, die ein Stereotyp mitbringt, etwa eine Zyklusperiode oder eine Referenz auf ein anderes Modellelement. Ohne Stereotyp keine Tagged Values: Sie sind als Attribute des Stereotyps definiert.
Wann reicht ein UML-Profil, wann braucht man eine eigene DSL?
Ein Profil reicht, wenn sich die Domänenkonzepte als Spezialisierung vorhandener UML-Konzepte ausdrücken lassen; dann bleiben Werkzeug, Toolchain und Know-how der Modellierer erhalten. Eine eigene DSL mit eigenem Metamodell lohnt sich, wenn die Domäne strukturell nicht zu den UML-Abstraktionen passt.
Ist SysML ein UML-Profil?
SysML v1 ist als UML-2-Profil definiert: Es übernimmt eine Teilmenge der UML, ersetzt softwarespezifische Konzepte durch disziplinneutrale Blöcke und ergänzt Anforderungs- und Parametrikdiagramme. SysML v2 ist dagegen kein UML-Profil mehr, sondern baut auf einem eigenen Metamodell (KerML) auf.

Verwandte Begriffe

Fachlich geprüft von Dr. Patrick Könemann, Principal Engineer & Consultant am 20. Juli 2026