UML: Metamodell Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme) Willkürlicher Ausschnitt aus dem UML-Metamodell Zumindest.

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Objektorientierte Programmierung
Kritische Betrachtung
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Objektorientierte Programmierung Definition von Klassen
Objektorientierter Entwurf
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Abhängigkeitsbeziehung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Objektorientierte Konzepte und Notation in UML
Sebastian Grahn Sebastian Kühn
Das Strukturmuster Kompositum von C. Günther, T. Hammerschmidt und D. Kuhn.
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
Eine (Gleichungs-)Spezifikation ist ein Paar SPEC = (, E),
Modellierung komplexer Realität mit Objekten
Software-Technik: (fortgeschrittene) Klassendiagramme
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
DVG Klassen und Objekte
UML-Klassendiagramm: Assoziationen (1)
Klassen und Schnittstellen Klasse: Definiert Zustandsraum ihrer Instanzen vollständig (Implementierung der Struktur, soweit Voraussetzung für die Methoden-
UML Begleitdokumentation des Projekts
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Entwurfs- und Implementationsdiagramme
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Einführung Modellgetriebene Softwareentwicklung, Metamodellierung Stephan Hildebrandt.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
UML-Kurzüberblick Peter Brusten.
Software-Technik: (fortgeschrittene) Klassendiagramme
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
Klassen und Klassenstruktur
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 14. Vorlesung WS 2001/2002.
Seminar Modellgetriebene Softwareentwicklung Thema 3: Metamodelle – MOF Michél Rieser Prof. Dr.-Ing. habil. Georg Paul
Sichtbarkeit einschränken
Tutorium Software-Engineering SS14 Florian Manghofer.
Objektorientierte Programmierung Was ist das eigentlich ?
Tutorium Software-Engineering SS14 Florian Manghofer.
UML Klassendiagramme von Felix Bornholdt. Klassendiagramme dienen der grafischen Veranschaulichung von Klassen und deren Beziehungen untereinander.
Domänenmodellierung Georg Marth. Definition Domänenmodell ● Eine Zusammenfassung von Funktionen, Objekten, Daten und Relationen in einer Domäne. -Kang.
Anforderungen an die neue Datenstruktur
SQL Basics Schulung –
Vorlesung #2 ER –Modellierung (Datenbankentwurf)
UML – Unified Modeling Language
OCL – Object Constraint Language
Einführung DI Harald Sander.
OOP II.
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
Assoziation und Aggregation
November 18 Informatik Kurse
Vorlesung #3 ER Modellierung
ER-Modell und Relationales Schema
Methodische Grundlagen des Software-Engineering
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
1. Die rekursive Datenstruktur Liste 1
9. Vererbung und Polymorphie
Implementieren von Klassen
Objektorientierte Programmierung
OO Analyse und Entwurf für Anwender
Juli 19 Informatik Kurse
 Präsentation transkript:

UML: Metamodell Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme) Willkürlicher Ausschnitt aus dem UML-Metamodell Zumindest ist mit einem Metamodell klar, was ein syntaktisch korrektes Modell in UML ist. Relationship Generalization Assocation Association Role 18.01.2019 Modellierung WS 02/03

UML - Auf dem Weg zur Semantikdefinition UML: Metamodell UML - Auf dem Weg zur Semantikdefinition Lernziel: Das Vorgehen zur Definition der Semantik verstehen! Bisher: jede Menge Syntax und informale Erläuterung Aber: jede Menge offener Details, sowohl in syntaktischer als auch in semantischer Hinsicht, z.B. kennt B A B A kennt C C Haben Objekte der Klasse C Verbindungen zu Objekten der Klasse A? Ist die Verbindung von C zu A syntaktisch korrekt? Sind die beiden „kennt“-Verbindungen von C geordnet? 18.01.2019 Modellierung WS 02/03

UML: Vier Ebenen von Modellen und Metamodellen UML: Metamodell UML: Vier Ebenen von Modellen und Metamodellen Ebene Beschreibung Beispiel Meta-Metamodell Sprache zur Beschreibung Metaklasse, Metaoperation von Metamodellen Metamodell Eine Ausprägung eines Meta-Metamodells, Klasse, Operation, Aktivität, Sprache zur Beschreibung von Modellen Objekt Modell Eine Ausprägung eines Metamodells. Bestellung, Zahlung, Beschreibung eines Anwendungsbereichs. prüfe_Zahlung Anwendungsobjekte Ausprägung eines Modells Bestellung4712, prüfe_Zahlung(objekt9311) 18.01.2019 Modellierung WS 02/03

Beispiele zu Modellen, Metamodellen usw. UML: Metamodell Beispiele zu Modellen, Metamodellen usw. Meta-Metamodell für konkret: OMG Meta Object Facility (MOF) objektorientierte Sprachen Meta-Metamodell Metaklasse Metaoperation Metamodell Metamodell Coad / Yourdon Metamodell OMT ... Metamodell UML Modell Bestellung Schwamminformations- system Anwendungsobjekte Schwamminformationssystem bei Schwämme Ekelbert mit dazugehörigen Objekten Schwamminformationssystem bei OBI mit Objekten 18.01.2019 Modellierung WS 02/03

UML: Metamodell UML - Abstrakte Syntax und der Versuch einer Semantikdefinition [http://www.omg.org/cgi-bin/doc?formal/01-09-73/] 90 Metaklassen > 100 Metaassoziationen strukturiert in Komponenten Verhalten Modell- Management Grundlagen 18.01.2019 Modellierung WS 02/03

UML - Metamodell Das UML - Metamodell wird beschrieben durch: abstrakte Syntax beschrieben durch eine Untermenge von UML (solange fraglich, wie diese Untermenge nicht formal beschrieben ist!) Regeln zur syntaktischen Korrektheit beschrieben mit Hilfe der OCL (Object Constraint Language) und mit Hilfe natürlicher Sprache Semantik beschrieben mit Hilfe natürlicher Sprache 18.01.2019 Modellierung WS 02/03

UML-Metamodell: Strukturierung der Komponente „Verhalten“ Verfeinerung Verhalten Interaktion Anwendungs- fälle Zustands- übergänge gemeinsames Verhalten 18.01.2019 Modellierung WS 02/03

UML-Metamodell: Strukturierung der Komponente „Grundlagen“ Verfeinerung Hilfselemente Kern Erweiterungs- mechanismen Datentypen 18.01.2019 Modellierung WS 02/03

UML-Metamodell: Grundlagen Kern Basiskonzepte (wesentliche Metaklassen wie Klasse, Eigenschaft, Klassifizierer, Generalisierung, Assoziation). Beispiele: Abstrakte Konstrukte (nicht instantiierbar) Konkrete Konstrukte (instantiierbar) Modellelement Klasse Verallgemeinerbares_Element Attribut Klassifizierer Operation Assoziation Gerüst, in das weitere Sprachkonstrukte eingeklinkt werden, insbesondere über die Klassen Modellelement und Klassifizierer, d.h. das „Grundlagen“ kann als Framework verstanden werden (innerhalb des UML-Metamodells). „Kern“ ist gegliedert in „Grundgerüst“ und „Beziehungen“. 18.01.2019 Modellierung WS 02/03

UML - Metamodell: Grundlagen (Forts.) Hilfselemente Erweiterung des Kerns um Elemente, die für die graphische Darstellung von Diagrammen gebraucht werden (für weiterführende Konzepte wie Abhängigkeiten, Sichten) Erweiterungsmechanismen Erweiterung von Modellelementen um neue Semantikaspekte, beispielsweise um Werteabhängigkeiten und andere Constraints (Beispiel: wenn Bestellung nach 10.12. eingeht, dann setze Lieferung auf „dringend“) Datentypen grundlegende Datenstrukturen, die in UML als primitiv gelten 18.01.2019 Modellierung WS 02/03

UML - Metamodell: Grundidee der Komponente „Kern“ 18.01.2019 Modellierung WS 02/03

UML - Metamodell „Kern“ (Grundgerüst) Abstrakte Syntax ElementOwnership Sichtbarkeit: Sichtbarkeitsart Element Zugehöriges Element * constrained element 1..* {ordered} Modellelement Name: Name Namensraum 0..1 * constraint Namens- raum Constraint body: boolean expr. Verallgemeinerbares Element istWurzel: Boolean istBlatt: Boolean istAbstrakt: Boolean Eigenschaft Bereich: Bereichsart Sichtbarkeit: Sichtbarkeitsart Parameter default: expr Art: ParameterRichtungArt feature {ordered} * * * parameters{ordered} Realisierung 1 owner 0..1 * Strukturelles Element Stelligkeit: Stelligkeit änderbar: Änderbarkeit Zielbereich: Bereichsart Verhaltens- eigenschaft istAnfrage: boolean n Klassi- fizierer * Spezifikation Schnitt- stelle Klasse istAktiv: boolean Daten- typ Operation Spezifikation: uninterpretiert istploymorph: boolean Parallelität: Parallelitätsart Methode body: Prozedurexpr. 1 * Attribut Initialwert: expr Spezifi- kation Imple- mentation 18.01.2019 Modellierung WS 02/03

UML - Metamodell „Kern“ (Beziehungen) Abstrakte Syntax Kunde * Modellelement Name: Name Angebot * Lieferant * Namens- raum Anforderung * * 1 Generalisierung Untertyp Verallgemeinerbares Element wie vorne Abhängigkeit Beschreibung: string Generalisierung Diskriminator: Name * 1 Spezialisierung Obertyp 2..* {ordered} 1 Assoziationsende navigierbar: boolean geordnet: boolean Aggregation: Aggregationsart Stelligkeit: Stelligkeit änderbar: Änderbarkeitsart Zielbereich: Bereichsart Assoziation Typ Assoziationsende 1 * Klassi- fizierer Verbin- dung Spezif. Teilnehmer * * Klasse 0..1 * {ordered} Assoziationsende Qualifizierer Attribut Assoziationsklasse 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Modellelement“ (abstrakte Metaklasse): Ein Modellelement ist ein mit einem Namen versehenes Element eines Modells. Attribute der Metaklasse „Modellelement“: Name: eindeutig im Namensraum Assoziationen der Metaklasse „Modellelement“: constraint: Menge von Constraints, die das Modellelement betreffen Anforderung, inverse Assoziationen zu Kunde, Lieferant Angebot Namensraum: derjenige Namensraum, in dem das Modellelement vorkommt 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ UML: Metamodell Metaklassen der Komponente „Kern“ Metaklasse „Assoziation“: Eine Assoziation definiert eine semantische Beziehung zwischen Klassifizierern. Die Ausprägungen einer Assoziation sind eine Menge von Tupeln, die Ausprägungen der Klassifizierer zueinander in Beziehung setzen. Jedes Tupel kommt maximal einmal vor. Assoziation steht über Assoziationsenden mit zwei oder mehr Klassifizierern in Beziehung. Die verbundenen Klassifizierer sind geordnet. Attribute der Metaklasse „Assoziation“: Name: Name einer Assoziation, der in Verbindung mit den 2 oder mehr Klassifizierern eindeutig sein muß im Namensraum Assoziationen der Metaklasse „Assoziation“: zu Assoziationsenden (hier wird die wesentliche Struktur einer Assoziation definiert) 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Assoziationsklasse“: eine Assoziation, die als Klasse dargestellt wird (deshalb ererbend von Assoziation und Klasse) 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Assoziationsende“: Endpunkt einer Assoziation. Über Assoziationsenden werden Assoziationen und Klassifizierer verknüpft. Attribute der Metaklasse „Assoziationsende“: Aggregation Mögliche Werte: keine Aggregation Komposition 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Attribute der Metaklasse „Assoziationsende“ (Forts.): änderbar Mögliche Werte: - keine Einschränkungen der Änderbarkeit - eingefroren (keine Änderungen nach Erzeugung des Quellobjektes) - nur hinzufügen (neue Assoziationen jederzeit möglich, Löschen einer Assoziation nur, wenn mindestens eines der teilnehmenden Objekte gelöscht wird) geordnet navigierbar Stelligkeit Zielbereich Instanz (Assoziation zielt auf Objekte) Klassifizierer (Assoziation zielt auf Klassen) 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Verhaltenseigenschaft (abstrakte Metaklasse): Eine Verhaltenseigenschaft beschreibt eine dynamische Eigenschaft eines Modellelementes (Operation oder Methode). Sie gehört zu einem Klassifizierer. Attribute der Metaklasse „Verhaltenseigenschaft“: istAnfrage: spezifiert, ob eine Ausführung der Eigenschaft (also der verbundenen Operation oder Methode) den Systemzustand ändert. istAnfrage = true bedeutet, daß der Systemzustand nicht geändert wird Assoziationen der Metaklasse „Verhaltenseigenschaft“: parameters: eine geordnete Liste von Parametern, die zur Operation / Methode gehören 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Klasse“: Eine Klasse ist eine Beschreibung einer Menge von Objekten, die die gleichen Attribute, Operationen, Verbindungen und Bedeutung haben. Eine Klasse kann eine Menge von Schnittstellen auszeichnen, mit Hilfe derer Mengen von Operationen bekannt gemacht werden. Im Metamodell besteht eine Klasse (als Subtyp von Klassifizierer) aus einer Menge von Eigenschaften (Operationen, Attributen). Jedes Objekt, das zu einer Klasse instantiiert wird, beinhaltet seine eigene Menge von Werten (korrespondierend zu den verbundenen strukturellen Eingenschaften (vgl. voller Deskriptor in der Erläuterung der Semantik)) Attribute der Metaklasse „Klasse“: istaktiv: spezifiziert, ob ein Objekt seinen eigenen Kontrollbereich hat (thread of control). Wenn istaktiv = true, dann haben Objekte der Klasse einen eigenen Kontrollbereich. Ansonsten laufen sie im Kontrollbereich des aufrufenden Objekts. 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Klassifizierer“ (abstrakte Metaklasse): Ein Klassifizierer beschreibt Verhaltenseigenschaften und strukturelle Eigenschaften. Assoziationen der Metaklasse „Klassifizierer“: feature: Menge von Eigenschaften, die zu einem Klassifizierer gehören (Attribute, Operationen) Teilnehmer: Zeigt an, daß der Klassifizierer in einer Assoziation vorkommt Realisierung: Über die Assoziation „Realisierung“ werden andere Klassifizierer verbunden, die die Operationen des Klassifizierers realisieren. Spezifikation: Über die Assoziation „Spezifikation“ werden andere Klassifizierer verbunden, die Operationen zusammenfassen, die durch den Klassifizierer implementiert werden. 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Abhängigkeit“: Eine Abhängigkeit gibt an, daß die Implementierung oder das Funktionieren eines oder mehrerer Modellelemente die Verfügbarkeit eines oder mehrerer anderer Modellelement erfordert. Attribute der Metaklasse „Abhängigkeit“: Beschreibung: textuelle Beschreibung der Abhängigkeit Assoziationen der Metaklasse „Abhängigkeit“: Kunde: Über diese Assoziation sind die Modellelemente angeschlossen, die die Verfügbarkeit des Lieferanten erfordern. Lieferant: Über die Assoziation sind die Modellelemente angeschlossen, deren Verfügbarkeit von dem Kunden gefordert werden. 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Eigenschaft“: Eine Eigenschaft ist eine Operation oder ein Attribut, die durch eine Schnittstelle, einen Datentyp oder eine Klasse verkapselt wird. Attribute der Metaklasse „Eigenschaft“: Bereich: Mögliche Werte: Instanz gibt an, daß die Eigenschaft in jeder Ausprägung des Klassifizierers gilt. Klassifizierer gibt an, daß die Eigenschaft nicht in jeder Ausprägung, sondern nur einmal pro Klassifizierer vorkommt Sichtbarkeit Mögliche Werte: public Jeder Klassifizierer, der den Klassifizierer kennt, kann auf die Eigenschaft zugreifen protected Jeder Nachkomme des Klassifizierers kann auf die Eigenschaft zugreifen. private: Nur der Klassifizierer selbst kann auf die Eigenschaft zugreifen. Assoziationen der Metaklasse „Eigenschaft“: owner: Über die Assoziation „owner“ wird der Klassifizierer verbunden, der über das Attribut verfügt. 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Verallgemeinerbares Element“ (abstrakte Metaklasse): Ein verallgemeinerbares Element ist ein Modellelement, das in einer Generalisierungsbeziehung teilnehmen kann. Verallgemeinerbare Elemente sind hierarchisch angeordnet. Attribute der Metaklasse „Verallgemeinerbares Element“: istAbstrakt: gibt an, ob ein verallgemeinerbares Element eine unvollständige Deklaration ist oder nicht. Solange istAbstrakt=true, ist keine Instantiierung möglich. istBlatt: gibt an, daß keine weiteren Nachkommen vorkommen dürfen istWurzel: analog Assoziationen der Metaklasse „Verallgemeinerbares Element“: Generalisierung: Über diese Assoziation wird ein verallgemeinerbares Element an ein Objekt der Metaklasse „Generalisierung“ angeschlossen, das in der Generalisierung den Untertypen spielt. Spezialisierung: Über diese Assoziation wird ein verallgemeinertes Element an ein Objekt der Metaklasse „Generalisierung“ angeschlossen, das in der Generalisierung den Obertypen spielt. A B 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Generalisierung“: Eine Generalisierung ist eine Beziehung zwischen einem allgemeinen und einem konkreteren Element. Das konkretere Element hat alle Eigenschaften und Beziehungen des allgemeinen Elements und kann weitere umfassen. Attribute der Metaklasse „Generalisierung“: Diskriminator: wie bereits erörtert Assoziationen der Metaklasse „Generalisierung“: Ober- und Untertyp: (vgl. Verallgemeinerbares Element) 18.01.2019 Modellierung WS 02/03

Metaklassen der Komponente „Kern“ (Forts.) UML: Metamodell Metaklassen der Komponente „Kern“ (Forts.) Metaklasse „Schnittstelle“: Eine Schnittstelle deklariert eine Menge von Operationen, die die Dienstleistung eines Klassifizierers angeben. Ein Klassifizierer kann mehrere Schnittstellen anbieten, d.h. der Klassifizierer implementiert mehrere Schnittstellen. Mehrere Klassifizierer können eine Schnittstelle realisieren. Schnittstellen haben keie eigenen Attribute, Assoziationen, Operationen. 18.01.2019 Modellierung WS 02/03

Regeln zur syntaktischen Korrektheit (Komponente „Kern“) UML: Metamodell Regeln zur syntaktischen Korrektheit (Komponente „Kern“) Assoziationen: 1) Assoziationsenden einer Assoziation müssen eindeutige Namen haben. self.allConnections ->  r1, r2 : r1.name = r2.name  r1= r2 2) Höchstens ein Assoziationsende kann eine Aggregation oder Komposition sein. self.allConnections -> select (aggregation  #none) -> size  1 3) Wenn eine Assoziation 3 oder mehr Assoziationsenden hat, dann ist kein Ende eine Aggregation oder Komposition. Zusätzliche Operationen: Die Operation allConnections liefert die Menge der Assoziationsenden einer Assoziation, 18.01.2019 Modellierung WS 02/03

Regeln zur syntaktischen Korrektheit (Komponente „Kern“) UML: Metamodell Regeln zur syntaktischen Korrektheit (Komponente „Kern“) Verallgemeinerbares Element: 1) Eine Wurzel hat keine Generalisierungen. (self.istWurzel => self.Generalisierung) -> isEmpty 2) Ein verallgemeinerbares Element kann nicht über eine Assoziation „Obertyp“ an eine Generalisierung verbunden sein, über die ein Element erreicht wird, das ein Blatt ist. self.supertype ->  s :  s.istBlatt) nicht OK ! A istBlatt = true Generalisierung B Generalisierung von A zu B entspricht Untertyp nicht OK ! Spezialisierung B A Obertyp istBlatt = true 18.01.2019 Modellierung WS 02/03

Regeln zur syntaktischen Korrektheit (Komponente „Kern“) UML: Metamodell Regeln zur syntaktischen Korrektheit (Komponente „Kern“) Schnittstelle: 1) Eine Schnittstelle kann nur Operationen enthalten. self.allFeatures ->  f : f.oclisKindof (Operation) 2) Eine Schnittstelle kann keine Klassifizierer enthalten. self.allContents -> isEmpty 3) Alle Eigenschaften, die in einer Schnittstelle definiert werden, sind public. self.allFeatures ->  f : f.Sichtbarkeit = #public) 18.01.2019 Modellierung WS 02/03

Definition der Semantik am Beispiel von „Kern“ UML: Metamodell Definition der Semantik am Beispiel von „Kern“ Die Semantikfestlegung der UML besteht aus der Erläuterung der abstrakten Syntax und der Syntaxregeln. Es wird damit keine formale Ebene erreicht (Unterschied zu modellbasierter und algebraischer Spezifikation), es lassen sich auf dieser Ebene jedoch die bisher erkannten Unklarheiten ausräumen. Beispiele für eine solche Semantikfestlegung am Beispiel von „Kern“: Unter einem vollständigen Deskriptor versteht man die Beschreibung aller Attribute zur Beschreibung eines Objektes oder einer Instanz. Der vollständige Deskriptor ergibt sich aus der Hierarchie der verallgemeinerbaren Elemente, zu der ein Objekt gehört und aus der Menge der Attribute dieser verallgemeinerbaren Elemente. Gemäß der vollständigen Deskriptoren werden Objekte erzeugt als ob es Klassen gäbe, die alle Elemente umfassen, die durch den Deskriptor zusammengefaßt werden 18.01.2019 Modellierung WS 02/03