Fakultät Bauingenieurwesen Institut für Bauinformatik, Prof. Dr.-Ing. Raimar J. Scherer Informationsmanagement u. Numerische Methoden Relationale und Objekt-orientierte Datenstrukturen 6. Semester 5. Übung: Objekt-orientierte Datenstrukturen I
Übersicht 1) Objekt-orientierte Datenstrukturen 2) Datenmodellierung Was muss modelliert werden? 3) Konzepte der O-O-Modellierung 4) Modellierungssprache EXPRESS-G 5) Aufgabe: Modell eines DLT Folie 2
Objektorientierte Datenstrukturen 1) Beschreibung der realen Welt anhand der sie repräsentierenden Objekte und deren Verhalten (Analogie zur menschl. Denkweise) 2) Definition der Objekte durch Klassen, Attribute, Beziehungen zwischen den Klassen und Methoden (Verhalten der Objekte) 3) Beziehungen zwischen Klassen sind Informationsträger 4) Anwendung des Konzeptes der Vererbung (Mehrfachvererbung - nicht in JAVA, Polymorphie) zur Beschreibung hierarchischer Strukturen (Generalisierung, Spezialisierung), Ableitung neuer aus vorhandenen Klassen 5) Prinzip der Objekt- bzw. Datenkapselung 6) Textuelle Modellierung EXPRESS, grafische Darstellung der Objekt- und Datenstruktur mittels EXPRESS-G (basierend auf der STEP-Datenstruktur, ISO 10303-11) oder UML 7) IFC Datenschema (zukünftig) wichtigste objektorientierte Datenstruktur im Bauwesen Folie 3
Was muss modelliert werden? welches Wissen, welche Information, welche Daten? Objekte Objektattribute Beziehung zwischen den Objekten Beziehungseigenschaften (z.b. Aggregation, Kardinalität) Verhalten der Objekte (Änderung des Objektzustandes) Prozess Die Steuerung (Steuerungsinformation) Schnittstelle (M2M) Graphisch interaktive Schnittstelle (M2H) Folie 4
Objektorientierte Datenmodellierung Grundkonzepte zur Definition von Datenstrukturen: - Objekte - Beziehungen - Attribute Erweiterte Konzepte: - Klassifikation - Vererbung (Wiederverwendung und Re-definition von Attributen) - Auswahltypen (select types) - Aufzählungstypen (Enumerationen) - Aggregationen (Array, Liste, Menge) Folie 5
Objektorientierte Datenmodellierung Bedingungen: - inverse Beziehungen - optionale oder obligatorische Attribute - Kardinalitäten für Aggregationen - Regeln (z.b. Definitionsbereich/Wertebereich - Abgeleitete Attribute (funktionale Abhängigkeiten) Funktionalität für Datenvalidierung (Konsistenzprüfung) Die zur Verfügung gestellte Funktionalität unterscheidet sich bei objektorientierten Modellierungssprachen (z.b. UML, EXPRESS) sowie bei Programmiersprachen (C++, Java, etc.) Folie 6
EXPRESS-G Modellierungselemente EXPRESS-G ist die grafische Notation der Sprache EXPRESS (ISO 10303-11) Klassenname Darstellung der Klassen (Menge von Objekten mit ähnlichen Eigenschaften) (ABS)Klassenname Abstrakte Klasse (nicht instanziierbar) Folie 7
EXPRESS-G Modellierungselemente Einfache Datentypen: Binary Eine Folge von 1 und 0 (bspw. 101110) Boolean WAHR(1) oder FALSCH(0) Integer Ganzzahlige Werte (ohne Komma) Logical WAHR, FALSCH oder UNBEKANNT Number Real oder Integer Real Fließkommazahl String Alphanumerische Zeichenkette Folie 8
EXPRESS-G Modellierungselemente Attribute und Beziehungen bezeichnung String obligatorisch Stütze länge Real fertigteil Boolean optional Folie 9
EXPRESS-G Modellierungselemente Beziehungen zwischen Klassen Stütze besitztmaterial Material Notation in EXPRESS: ENTITY Stuetze besitztmaterial ; END_ENTITY; : Material; Folie 10
EXPRESS-G Modellierungselemente Beziehungen zwischen Klassen Stütze besitztmaterial Material Notation in EXPRESS: ENTITY Stuetze besitztmaterial ; END_ENTITY; Attribut : Material; Wertebereich Material_1 Attributausprägung Stuetze_1 besitztmaterial : Material_1 Folie 11
EXPRESS-G Modellierungselemente Kardinalität und Aggregation Beschreibung L[1:?] String Raum besitztumgrenzung A[1:4] Wand besitztzugang S[1:?] Tür A[1:?] B[1:?] L[1:?] S[1:?] ARRAY geordnete Menge von Werten (Objekten, Attributwerten) mit fester (Feld-) Größe BAG ungeordnete Menge von Werten, Duplizität erlaubt LIST geordnete Menge von Werten SET ungeordnete Menge von Werten, Duplizität nicht erlaubt Folie 12
EXPRESS-G Modellierungselemente Superklasse und Subklasse (Vererbung) (ABS)Material 1 bezeichnung e-modul String Real (ABS)Beton 1 Stahl Holz Ortbeton Spritzbeton UW-Beton Walzbeton Folie 13
EXPRESS-G Modellierungselemente Inverse Beziehungen besitztumgrenzung A[3:4] (INV) umgrenzt S[1:2] Wand Raum ist_teil_von [1:?] (INV) hatraum S[1:?] Stockwerk Raum umgrenzt S[1:2] Wand Raum hatraum S[1:?] Stockwerk Folie 14
EXPRESS-G Modellierungselemente Aufzählungstypen (Enumeration Data Type) Raum TypNutzung NutzungTypeEnum Notation in EXPRESS: TYPE NutzungTypeEnum = ENUMERATION OF (BÜRO, WOHNEN, PARKEN, VERSAMMLUNG, NUTZERDEFINIERT, NICHTDEFINIERT); END_TYPE; Folie 15
EXPRESS-G Modellierungselemente Definierte Datentypen (Defined Type) beschreibung Text String Stütze fläche_querschnitt Flächenmaß Real Notation in EXPRESS: TYPE Text = STRING END_TYPE; TYPE Flaechenmass = END_TYPE; Folie 16
EXPRESS-G Modellierungselemente Auswahltypen (Select Data Type) Volumenmaß Real MessgrößeSelect Flächenmaß Notation in EXPRESS: TYPE MessgroesseSelect = SELECT (Volumenmass, Flaechenmass, Massenmass, ); END_TYPE; Spannung Kraft Flächenmaß Folie 17
EXPRESS-G Modellierungselemente Seiteeferenzen Zu Referenz: Von-Referenz: Source Target zuseite#, Index#, Target Seite#, Index# (vonseite#) Folie 18
EXPRESS-G Modellierungselemente Abgeleitete Wertebreiche: (DER)min Integer Listenobjekt max Integer usermin Integer Kreis (DER) Fläche x y Radius Real Real Real Real Notation in EXPRESS: ENTITY Kreis X : Real Y : Real Radius : Real DERIVE Fläche : Real:=PI*Radius**2 END_ENTITY Folie 19
EXPRESS-G Modellierungselemente Modell- (Schema-) Schnittstellen (Wird verwendet um die Elemente eines fremden Schemas für ein anderes Schema nutzbar zu machen.) Schema: Bauwerk Kalkulation Stütze Kalkulation.Epreis Bemerkung: Schemaschnittstellen sind erforderlich aufgrund der Modularisierung des Datenmodells: -eine Menge von Schemata bildet ein Modell -wiederverwendbare Schemata (ein Schema in mehreren Modellen) -effizientere Verwaltung des Datenmodells Folie 20
EXPRESS-G Modellierungselemente Klassenname String Enum Select Label Klasse (einfache) Datentypen Aufzählungen Selektionen Definierte Datentypen Relation Relation Relation S[1:?] Relation S[1:?] Relation (INV) Relation obligatorische Relation (exakt 1) optionale Relation (0 oder 1) Aggregations- Relation (1 oder n) Aggregationsrelation (0,1 oder n) Inverse Relation (1 oder n) S, Ref, Klasse S, Ref (vons) Schema.Klasse zu-referenz von-referenz Modellschnittstelle Definitionsverweis 1 Relation Regel-Relation exklusiv UNDODER Super/Subklasse Schema.Klasse Modellschnittstelle Definitionsverwendung Selektion Folie 21
Ausschnitt IFC-Schemaspezifikation IFC2x4 RC1: 801 (+148) Klassen, 67 (+21) Select Types, 203 (+39) Enumeration Types, 122 (+5) Defined Types (und unzählige Attribute und Relationen) (http://www.iai-tech.org/ifc/ifc2x4/rc1/html/index.htm) Folie 22
Aufgabe 5: Modellierung eines DLT Beschreibung aller Informationen die für - Stat. Berechnung, - Bemessung und - Konstruktive Ausbildung eines DLT erforderlich sind. Annahmen: - 2D-Modell (x-ko längs, y-ko senkrecht zur Trägerachse) - Unbegrenzte Anzahl an Feldern - Querschnitte feldweise konstant - zul. Lagerung: elastisch und starr Modellschema: EXPRESS-G Werkzeuge: z.b. Microsoft Visio, EDRAW Max (Trial-Version) Folie 23
Aufgabe 5: erf. Objekttypen Welche Elemente eines DLTs sollten als Klassen modelliert werden? Folie 24
Aufgabe 5: erf. Objekttypen Knoten Auflager Feld Last Querschnitt Folie 25
Aufgabe 5: Topologie Wie kann die Topologie eines DLT modelliert werden? Folie 26
Aufgabe 5: Topologie (Bsp.) Feld Start_Knoten End_Knoten Knoten Folie 27
Aufgabe 5: Topologie + Geometrie Wie können die topologischen Elemente um Geometrieinformationen erweitert werden? Feld Start_Knoten End_Knoten Knoten Folie 28
Aufgabe 5: Topologie + Geometrie (Bsp.) Feld Start_Knoten End_Knoten Knoten x länge y Folie 29
Aufgabe 5: Statik Welche Elemente sind erforderlich, damit eine statische Berechnung Durchgeführt werden kann? Feld Start_Knoten End_Knoten Knoten x länge y Folie 30
Aufgabe 5: Statik Feld Start_Knoten End_Knoten (ABS)Knoten x länge 1 y RandKnoten FeldKnoten Folie 31
Aufgabe 5: Statik Feld Start_Knoten End_Knoten (ABS)Knoten x länge 1 y RandKnoten FeldKnoten Start_Knoten End_Knoten Feld länge Folie 32
Aufgabe 5: Statik Feld Start_Knoten End_Knoten (ABS)Knoten x länge 1 y RandKnoten FeldKnoten Liegt_in Start_Knoten End_Knoten Feld länge Folie 33
Aufgabe 5: Statik (ABS)Knoten 1 x y RandKnoten 1 FeldKnoten (INV) enthält L[1:?] Liegt_in AuflagerStarr AuflagerEla Start_Knoten End_Knoten Feld länge Folie 34
Aufgabe 5: Statik (Bsp.) 35, 1 (37) (ABS)Knoten x y 1 drehbar BOOLEAN verschieblich BOOLEAN RandKnoten 1 FeldKnoten (INV) enthält L[1:?] Liegt_in AuflagerStarr AuflagerEla Start_Knoten End_Knoten Feld k länge Folie 35
Aufgabe 5: Querschnitt (Bsp.) Feld hat_querschnitt I x (ABS)Querschnitt besitzt_material (ABS)Material 1 Standardprofil FreiProfil Profiltyp ProfiltypenSelect DIN_HEB_Enum DIN_IPE_Enum DIN_HEA_Enum EXPRESS-Notation: TYPE DIN_HEB_Enum = ENUMERATION OF (HEB100, HEB150, HEB200); END_TYPE; Folie 36
Aufgabe 5: Lasten (Bsp.) lastgröße Lastwert STRING bezeichnung bel_knoten Einzellast 35, 1, Knoten 1 (ABS)Last Darstellbare Linienlast bel_knoten A[2:?] Linienlast lasttyp RK n FK n FK n+2 RK n+1 SBW-g Lastgröße L[2:?] Lastwert LasttypenEnum Lasttypen z.bsp: Eigenlast; Verkehrslast SBW-q Teil-sbw_select sicherheitsbeiwert Lastfall lasten L[1:?] SBW-q_red STRING bezeichnung lastfälle L[1:?] Lastfallkombination Folie 37