Bauinformatik Grundlagen Algorithmen und Datenstrukturen in Java 2. Semester 2. Vorlesung Welt-Objekt-Model Prof. Dr.-Ing. R.J. Scherer TU Dresden - Institut für Bauinformatik Objekt-Interaktion (MPS Paradigma) interface Visualisiere Obj. paint() Produkt: Δt2 abstract phys. Objekt Baustelle main Leitstand = Instanziierung + Steuerung abstract Baugerät Prozesssteuerung: legt zurück LKW1 holt steuert (Start, Ende, Δt1) holt Prozess: Problem z.B.: Synchronisation Δt1/ Δt2 Δt1 Δt2 Zustand ti-1 Bewege Objekt Methode aus instantiertem Objekt TU Dresden - Institut für Bauinformatik Zustand ti Zeichne Objekt usw t1 t2 t3 t4 t5 t6 t‘1 t‘2 t‘3 t‘4 Paradigma: Modell-Präsentation-Steuerung(MPS) Mit der ersten objektorientierten Programmiersprache Smalltalk wurde das MPS-Paradigma (englisch MVC Model-View-Controller-Paradigma) eingeführt. Paradigma bedeutet soviel wie Prinzip. Es sagt aus, dass eine Aufteilung in 3 Klassen(-bereiche) erfolgt. Steuerung Modell Präsentation Da Modell sowohl das Objekt-Welt-Modell, als auch das Präsentationsmodell sein kann und die Präsentation nur auf die visuelle Darstellung zu eng begrenzt ist, ergibt sich als Verallgemeinerung für das MPS-Paradigma Prozesssteuerung Produkt Prozess TU Dresden - Institut für Bauinformatik 16.05.2016 3 Programm Architektur Produkt-Modell (Welt-Objekt-Modell) holt aktualisiert Prozess-Modell (Welt-Objekt-Modell) Darstellung main ProzessSteuerung (Leitstand) Nutzerschnittstelle Welt-Prozess D-Schnittstelle TU Dresden - Institut für Bauinformatik 16.05.2016 4 Objekt-Interaktion (MPS Paradigma) interface Visualisiere Obj. paint() Δt2 Produkt: Welt-Objekt-Modell abstract phys. Objekt Baustelle main Leitstand = Instanziierung + Steuerung abstract Baugerät Nutzer Prozesssteuerung: legt zurück LKW1 holt holt steuert (Start, Ende, Δt1) Prozess: Zustand ti-1 Welt-Prozess-Modell Bewege Objekt Darstellungs-Prozess-Modell Methode aus Aktualisierungs-Prozess instantiertem Objekt TU Dresden - Institut für Bauinformatik 16.05.2016 Zustand ti Zeichne Objekt usw 5 Welt-Objekt-Modell Architektur Welt-Objekt-Modell permanent Datenablage Vorlagen (Schema, Konzepte, Klassen) instantiiert Lager (Repository) Welt-Objekte eingesetzt temporär Aktuelle Zustände aktuelle Welt-Objekte holt aktualisiert Prozessablauf TU Dresden - Institut für Bauinformatik 16.05.2016 6 Welt-Objekt-Datenstruktur Eine Datenstruktur besteht aus: • Objekten • Relationen • Repäsentationssprache Objekte bestehen (einschließlich der Definition der zugehörigen Datentypen) aus : • Identifikator - Attribut • Attributen • Relations-Attributen Relationen • Vererbungsstruktur zu einfacheren Definition der Schema-Objekte (Klassen) • Beziehungen zwischen den Objekten • Kommunikationsrelationen (Benachrichtigungsbeziehung) Repräsentationssprache • EXPRESS-G zur grafischen Repräsentation des Wesentlichen • EXPRESS zur syntaktischen Repräsentation mit allen Details TU Dresden - Institut für Bauinformatik 16.05.2016 7 EXPRESS-G EXPRESS-G ist eine graphische Beschreibungssprache für objektorientierte Modelle und ist Teil 11 der ISO-Norm 10303 (STEP). Mittels EXPRESS-G können wesentliche Informationen objektorientierter Modelle spezifiziert werden. Vorteil: - übersichtlich und leicht verständlich; Anwendung: Modellierung der Objekte Nachteil: - Nicht alle benötigten Informationen können mit EXPRESS-G beschrieben werden. TU Dresden - Institut für Bauinformatik EXPRESS-G koordinaten PhysicalObject winkel Bezugspunkt Integer Baugeraet V Max Integer LKW Kran TU Dresden - Institut für Bauinformatik Bagger LKW: •Bezugspunkt •V max •Weitere Attribute EXPRESS EXPRESS dient zur genauen Spezifikation objektorientierter Modelle. Die in EXPRESS-G beschriebene Klassenhierarchie wird in EXPRESS überführt und durch zusätzlich benötigten Information, die in EXPRESS-G nicht beschreibbar sind, ergänzt, um eine verbindliche Datenstruktur zu definieren. ENTITY Baugeraet ABSTRACT SUPERTYPE SUBTYPE OF (PhysicalObject ); Geschwindigkeit : Real; Leistung : Real; END_ENTITY; TU Dresden - Institut für Bauinformatik Überführung der EXPRESS-Struktur in eine ausführbare Programmstruktur Um mit der in EXPRESS definierten objekt-orientierten Struktur arbeiten zu können muss sie in eine ausführbare Programmstruktur überführt werden. Dafür bieten sich objekt-orientierte Programmiersprachen, wie z.B. Java, an. Die Datenstruktur kann hierbei auch um Verhalten (Funktionen) erweitert werden. Durch die Einführung der Kommunikationsrelation und eines Symbols für Funktionen erweitern wir EXPRESS-G entsprechend (kein ISO 10303 Bestandteil) EXPRESS TU Dresden - Institut für Bauinformatik Programmiersprache Überführung der EXPRESS-Struktur in eine ausführbare Programmstruktur ENTITY Baugeraet ABSTRACT SUPERTYPE SUBTYPE OF ( PhysicalObject ); Geschwindigkeit : Real; Leistung : Real; END_ENTITY; EXPRESS zu Java public abstract class Baugeraet extends PhysicalObject { private double geschwindigkeit; private double leistung; public void setGeschwindigkeit t(double v) { this.geschwindigkeit = v; } }; TU Dresden - Institut für Bauinformatik Schema/Datenstrukturen Baustelle Vorgehensweise (s. auch 1.Sem 1. Vorl) 1)Sammeln aller Objekte 2)Ordnen der Objekte in Objektgruppen 3)Aufbau der Basisrelationen 4)Aufbau der Anwendungsrelationen 5)Implementation der Schema-Objekte in Klassen mit Ihren Konstruktoren TU Dresden - Institut für Bauinformatik 16.05.2016 textuell I) EXPRESS-G II) EXPRESS Java 13 Überblick EXPRESS-G BINÄR BOOLESCH INTEGER REAL Auswahl Def. Datentyp NUMMER Einfache Datentypen ZEICHENFOLGE Aufzählung Beispiel Text L [1:?] Entität ZEICHENFOLGE Zusammengesetzte Datentypen Definierte Datentypen Entität/Objekt Schema Schema Symbol Methode TU Dresden - Institut für Bauinformatik Methoden 16.05.2016 14 Überblick über EXPRESS-G Linienart Entitätendiagramm Schemadiagramm Vererbung Optionales Attribute Schemaverweis Kommunikationsandere Beziehung andere Beziehung Schemaverwendung Rollen: Können an der Beziehungslinie bezeichnet werden Standardwerte: „hat“ für normale Linie „ist ein“ für dicke Linie Der Kreis gibt die Beziehungsrichtung an Kardinalitäten: =1 Standardwerte: = 0 oder 1 Die Kardinalität von Zusammengesetzten Datentypen kann beschrieben werden mit: [min:max] L= Liste; S = Set (Menge), A = Array (Feld), B = Bag (Multimenge) ? bedeutet unlimitiert TU Dresden - Institut für Bauinformatik 16.05.2016 15 Überblick über EXPRESS-G Seite #, Verweis #, (von Seite #, ...) Schema.def Seitenverweis 1) zu dieser Seite 2) auf eine weitere Seite Seite #, Verweis # (name) Schemaverweis 1) Definitionsverweis von einem anderem Schema 2) Definitionsverwendung von einem anderem Schema Schema.def TU Dresden - Institut für Bauinformatik 16.05.2016 16 Überblick über EXPRESS-G attr1 Super A Super B nums L [1:6] NUMMER 1 Sub A Sub B1 Sub B2 (RT) attr1 (INV) has_parts S[1:?] Sub C (DER)num_parts INTEGER Entity: · Ist Teil eines nichtzyklischen Graphen · Kann explizite Attribute haben – z.B. attr1 · Kann überlagerte Attribute haben – z.B. (RT) attr1 · Kann geerbte Attribute haben – z.B. (DER) num_parts · Kann inverse Attribute haben – z.B. (INV) part_of In EXPRESS können nicht dargestellt werden: · Regeln · Constraints · Funktionen (wir haben Methode eingeführt) TU Dresden - Institut für Bauinformatik 16.05.2016 17 Strukturierung der Baustellen-Klassen (1) (2) (3) (4) (5) Bauplatz und seine Teile Bauwerk Baumaterial Gerätepark Bewegung, Abläufe, Prozesse (immaterielle Objekte) (6) Logistik: (Material- und Ressourcenflüsse) (7) Interaktionen von Geräten (8) Personal Personal könnte wie Geräte modelliert werden, d.h. wie 4, 5, 7 und muss nicht als eigenständiger Modellbereich formuliert werden. Wenn wir aber selbstständiges Handeln zulassen, z.B. durch Agentenmethode möglich, so ist ein eigenständiger Modellbereich zu empfehlen. TU Dresden - Institut für Bauinformatik Baustellenschema REAL x hat Bezugspunkt REAL (ABS)PhysicalObject (ABS)GraphicalObject y 1 (ABS)Symbol 1 Personal Bauplatz Bauobjekt TU Dresden - Institut für Bauinformatik 16.05.2016 Baumaterial (ABS)Symbol 2 Baugerät 19 Bauobjekte Bauobjekt 1 Baugrube Bauwerk Aushubszustand Aushub TU Dresden - Institut für Bauinformatik 16.05.2016 20 Baugeräte Baugeraet 1 Kran Bagger LKW hat hat hat hat Ausleger Katze TU Dresden - Institut für Bauinformatik Ladeplatform Schaufel 16.05.2016 21 Bauplatz/Einrichtungslemente Einrichtungselement 1 Baustrasse Abladeplatz Baucontainer Lagerplatz hat S[1:?] Wendeplatz Kranschienen Zelle verbunden_mit S[1:?] TU Dresden - Institut für Bauinformatik 16.05.2016 22 Material Baumaterial 1 Baustoff Fertigteil 1 1 Ziegelstein Stahltraeger Zementsack StB_Balken 1 Deckenplatte I_Traeger Rohr_Traeger TU Dresden - Institut für Bauinformatik 16.05.2016 23 Beziehung LKW- Material Ausschnitt aus Schema „Baugeräte“ Baugeraet LKW Ausschnitt aus Schema „Baumaterial“ hat Ladeplatform Baumaterial ist beladen mit S[1:?] 1 Baustoff Fertigteil 1 Ziegelstein TU Dresden - Institut für Bauinformatik 16.05.2016 Zementsack 24 Klassenstruktur der Baustelle X REAL Bezugspunkt REAL (ABS)GraphicalObject hat Y 1 (ABS)Symbol 1 (ABS)Symbol 2 X Zustand *Objektzustand REAL Bezugsystem Darstellungsformen S[1:?] (ABS)Physical_Object Koord_Trans_2D Repraesentation Y 1 REAL Winkel Ist noch zu entscheiden und entsprechend zu erweitern REAL Symbol_Repr Topol_Repr Geom_Repr Eigenschaften sind da noch zu überlegen 1 Baumaterial Personal enthaelt_Bauobjekt Baumaterial Bauobjekt Bauplatz Baugrube Baugeräte 1 1 Bauobjekte 1 1 Aushubszustand Ist noch zu entscheiden und entsprechend zu erweitern Baustoff Fertigteil Bauwerk Stahltraeger Aushub Zementsack Ziegelstein StB_Balken Einrichtungselemente 1 Deckenplatte I_Traeger Rohr_Traeger *beinhaltet S[1:?] beinhaltet S[1:?] Einrichtungselement Einrichtungselemente besteht_aus S[1:?] enthaelt_Baustellenelemente ist beladen mit S[1:?] 1 Abladeplatz Baustrasse Lagerplatz Baucontainer Optionale Containerklassen Können für Gruppierungen bzw. Gruppenfunktionen benutzt werden. Falls nicht nötig gehen die Relationen von Baustelle direkt an die enspr. Elemente *transportiert [1:?] hat S[1:?] Kranschienen Wendeplatz Zelle Gilt nicht für Bager verbunden_mit S[1:?] enthaelt_Baugeraete beinhaltet S[1:?] Baugeraet Geraetepark 1 hat Bagger Kran LKW hat Ausleger hat Katze hat Schaufel benoetigte_Arbeitskraefte Bauteam TU Dresden - Institut für Bauinformatik Ladeplatform