LE 5 OO Concepts in the AEC Sector
42 Questions
9 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Welche der folgenden Aussagen beschreibt die Beziehung zwischen einer Subklasse und einer Superklasse im Kontext der Vererbung in UML am präzisesten?

  • Die Subklasse ist eine spezialisierte Form der Superklasse und erbt deren allgemeine Attribute und Verhalten. (correct)
  • Die Subklasse ist eine generalisierte Form der Superklasse und erweitert deren allgemeine Eigenschaften.
  • Die Superklasse und die Subklasse sind unabhängige Entitäten ohne direkte Beziehung zueinander.
  • Die Superklasse ist eine spezialisierte Form der Subklasse und erbt deren spezifische Attribute.

Wie wird eine Generalisierungsbeziehung (Vererbung) in UML grafisch dargestellt?

  • Als ausgefülltes Dreieck an der Seite der Subklasse, verbunden mit der Superklasse durch eine durchgezogene Linie.
  • Als Raute an der Seite der Superklasse, verbunden mit der Subklasse durch eine gestrichelte Linie.
  • Als Kreis an der Seite der Subklasse, verbunden mit der Superklasse durch eine doppelte Linie.
  • Als hohles Dreieck an der Seite der Superklasse, verbunden mit einer oder mehreren Subklassen durch eine durchgezogene Linie. (correct)

Welche der folgenden Bezeichnungen wird NICHT synonym für eine Superklasse im Kontext der Vererbung verwendet?

  • Elternklasse
  • Abgeleitete Klasse (correct)
  • Superclass
  • Basisklasse

Welche Aussage beschreibt am besten den Zweck der Vererbung in der objektorientierten Modellierung?

<p>Die Vererbung ermöglicht es, neue Klassen auf der Grundlage bestehender Klassen zu erstellen, wodurch Code-Wiederverwendung und die Vermeidung von Redundanz gefördert werden. (B)</p> Signup and view all the answers

Angenommen, Sie modellieren ein System für ein Universitätsverwaltung. Sie haben eine Superklasse Person mit Attributen wie Name, Adresse und Geburtsdatum. Welche der folgenden Klassen wäre am wahrscheinlichsten eine Subklasse von Person?

<p><code>Student</code> (mit Attributen wie Matrikelnummer, Studiengang) (A)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am besten den Zweck von protected Zugriffsmodifikatoren im Kontext der Vererbung?

<p>Sie erlauben den Zugriff nur für Methoden der abgeleiteten Klassen und Klassen innerhalb desselben Packages, nicht aber für andere Klassen. (B)</p> Signup and view all the answers

Wie modelliert IFC Bauelemente unter Verwendung des OO-Konzepts der Vererbung?

<p>Durch die Nutzung abstrakter Klassen, von denen spezifischere Bauelementklassen abgeleitet werden, um gemeinsame Eigenschaften zu erben. (C)</p> Signup and view all the answers

Angenommen, eine Basisklasse deklariert eine private Variable. Welche der folgenden Aussagen trifft zu?

<p>Die Variable ist nur innerhalb der Basisklasse sichtbar und kann von keiner abgeleiteten Klasse zugegriffen werden. (B)</p> Signup and view all the answers

Was bedeutet 'Package Visibility' im Kontext der Vererbung?

<p>Zugriff ist für alle Klassen im selben Package möglich, unabhängig von der Vererbungsbeziehung. (D)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am besten den Unterschied zwischen protected und public Zugriffskontrolle im Kontext der objektorientierten Programmierung und Vererbung?

<p><code>protected</code> erlaubt den Zugriff für abgeleitete Klassen und Klassen im selben Package, während <code>public</code> den Zugriff von überall erlaubt. (D)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt NICHT korrekt die Verantwortlichkeiten der Resource Layer im IFC-Modell?

<p>Bereitstellung von Ressourcen zur Beschreibung der geometrischen Informationen von Bauteilen. (B)</p> Signup and view all the answers

Welche Funktion wird NICHT von der Kernel-Schema innerhalb der Core Layer des IFC-Modells übernommen?

<p>Bereitstellung detaillierter Algorithmen zur Kollisionserkennung zwischen Bauteilen. (D)</p> Signup and view all the answers

Wie interagieren die Interoperability Layer (IL)-Objekte mit den Objekten der Core Layer im IFC-Modell?

<p>IL-Objekte spezialisieren die Core Layer Objekte für die Verwendung durch Anwendungen. (C)</p> Signup and view all the answers

Welche Aussage beschreibt am besten die Beziehung zwischen der Core Layer und der Domain-specific application layer im IFC-Modell?

<p>Die Domain-specific application layer erweitert die abstrakten Konzepte der Core Layer, um anwendungsspezifische Funktionalitäten zu unterstützen. (D)</p> Signup and view all the answers

Welche der folgenden Erweiterungen der Core Layer befasst sich hauptsächlich mit der Darstellung von Bauprozessen?

<p>Process Extension (C)</p> Signup and view all the answers

Wie beeinflusst die Möglichkeit zur Änderung des Eigentums an einem Objekt im Laufe der Zeit die Struktur der Resource Layer im IFC-Modell?

<p>Es wird durch die Historie-Funktionalität der Resource Layer unterstützt, die Änderungen an Eigentümer/Anwendung-Kombinationen erfasst. (B)</p> Signup and view all the answers

Was ist der Hauptgrund für die Existenz der Interoperabilitäts-Layer (IL) im IFC-Modell im Kontext des Datenaustauschs zwischen verschiedenen Anwendungen?

<p>Um sicherzustellen, dass Objekte, die von mehr als einer Anwendung gemeinsam genutzt werden, einheitlich definiert sind und korrekt interpretiert werden können. (D)</p> Signup and view all the answers

Warum ist es wichtig, dass die Product Extension in der Core Layer Objekte auf einer abstrakten Ebene definiert?

<p>Um die Wiederverwendbarkeit der Objektdefinitionen in verschiedenen Anwendungsfällen zu erhöhen. (D)</p> Signup and view all the answers

Warum ist es in der Regel besser, eine Laufzeit-Exception in einer Elternklasse auszulösen, anstatt einen Fehlerwert (z.B. -1) zurückzugeben, wenn eine Methode nicht überschrieben wird?

<p>Das Auslösen einer Exception ermöglicht eine präzisere Fehlerbehandlung und -meldung, was die Fehlersuche erleichtert, insbesondere bei großen Codebasen. (A)</p> Signup and view all the answers

Welche Aussage beschreibt am besten, wie eine abgeleitete Klasse (Kindklasse) die Eigenschaften einer Basisklasse (Elternklasse) erbt?

<p>Eine abgeleitete Klasse erbt alle Eigenschaften der Basisklasse und kann zusätzliche Datenfelder sowie neue Methoden hinzufügen oder vorhandene überschreiben. (A)</p> Signup and view all the answers

Was bedeutet das 'Ãœberschreiben' (Overriding) einer Methode in einer abgeleiteten Klasse?

<p>Es bedeutet, dass eine neue Methode mit demselben Namen und Parametern in der abgeleiteten Klasse definiert wird, wodurch die Implementierung der Basisklasse ersetzt wird. (B)</p> Signup and view all the answers

Warum dürfen öffentliche Methoden einer Basisklasse nicht im privaten Bereich einer abgeleiteten Klasse überschrieben werden?

<p>Weil dies die 'IST-EIN'-Beziehung (IS-A relationship) verletzen würde, die zwischen Basis- und abgeleiteter Klasse bestehen sollte. (B)</p> Signup and view all the answers

Was passiert, wenn eine abgeleitete Klasse eine Methode der Basisklasse nicht neu deklariert?

<p>Die abgeleitete Klasse erbt die Methode der Basisklasse unverändert. (D)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am besten den Zweck einer abstrakten Klasse im Kontext der Vererbung?

<p>Eine abstrakte Klasse erzwingt, dass abgeleitete Klassen bestimmte Methoden implementieren, und dient als Bauplan für verwandte Klassen. (A)</p> Signup and view all the answers

Wie kann man in Java signalisieren, dass eine Methode in einer abgeleiteten Klasse überschrieben werden soll und was sind die Konsequenzen, wenn dies nicht geschieht?

<p>Durch die Verwendung der Annotation <code>@Override</code>. Der Compiler gibt eine Warnung aus, wenn die Methode nicht korrekt überschrieben wird. (C)</p> Signup and view all the answers

In welchem Abschnitt einer abgeleiteten Klasse werden zusätzliche Datenfelder hinzugefügt, die spezifisch für diese Klasse sind und nicht von der Basisklasse geerbt werden sollen?

<p>Im privaten Abschnitt, um die Datenkapselung zu gewährleisten und direkten Zugriff von außen zu verhindern. (A)</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am besten die Beziehung zwischen 'Assignment' und 'Nests' im Kontext der Modellierung von Gebäudeplanungselementen in IFC?

<p>'Assignment' bezieht sich auf die Zuweisung von Elementen zu bestimmten Typen oder Definitionen, während 'Nests' die räumliche oder strukturelle Gruppierung von Elementen innerhalb eines größeren Ganzen darstellt. (D)</p> Signup and view all the answers

Wie beeinflusst die Verwendung von Polymorphismus die Flexibilität und Erweiterbarkeit von Softwareanwendungen im Bauwesen?

<p>Polymorphismus ermöglicht es, Operationen auf Objekte verschiedener Typen auf einheitliche Weise anzuwenden, was die Software flexibler und erweiterbarer macht. (D)</p> Signup and view all the answers

Was bedeutet 'Dynamic Dispatch' im Kontext von Polymorphismus und Objektorientierung?

<p>Die Auswahl der Methode, die zur Laufzeit basierend auf dem tatsächlichen Typ des Objekts aufgerufen wird. (D)</p> Signup and view all the answers

Welche der folgenden Architekturentscheidungen würde die Anwendung von Polymorphismus in einem Bauprojekt am besten unterstützen?

<p>Die Implementierung einer modularen Struktur, die es ermöglicht, neue Objekttypen hinzuzufügen, ohne bestehenden Code zu ändern. (D)</p> Signup and view all the answers

Wie unterscheidet sich 'Method Overloading' von anderen Formen des Polymorphismus in objektorientierten Programmiersprachen?

<p>'Method Overloading' ermöglicht es, Methoden mit dem gleichen Namen, aber unterschiedlichen Parametern innerhalb derselben Klasse zu definieren, während andere Formen des Polymorphismus sich auf unterschiedliche Objekttypen beziehen. (B)</p> Signup and view all the answers

In welchem Szenario wäre die Anwendung von Polymorphismus besonders vorteilhaft bei der Entwicklung einer Software für das Facility Management?

<p>Bei der Implementierung einer Funktion, die Heizungs-, Lüftungs- und Klimaanlagen (HLK) unterschiedlicher Hersteller steuert, wobei jede Anlage spezifische Steuerungsmethoden erfordert. (C)</p> Signup and view all the answers

Welche Herausforderungen entstehen bei der Implementierung von Polymorphismus in großen, komplexen Softwareprojekten im Bauwesen?

<p>Schwierigkeiten beim Debuggen und Testen aufgrund der dynamischen Natur des Polymorphismus. (A)</p> Signup and view all the answers

Wie können Softwareentwickler sicherstellen, dass die Vorteile von Polymorphismus in einem Bauprojekt maximiert werden, während gleichzeitig die potenziellen Nachteile minimiert werden?

<p>Durch die sorgfältige Planung der Architekturebenen unter Berücksichtigung der Komplexität des Projekts und strenge Einhaltung der Entwurfsprinzipien. (A)</p> Signup and view all the answers

In Bezug auf Java, welche Aussage über Referenztypen und Polymorphie trifft nicht zu?

<p>Die Verwendung von Polymorphie führt immer zu einer Laufzeitstrafe aufgrund der dynamischen Methodenauswahl. (C)</p> Signup and view all the answers

Welches Kriterium ist bei der Entscheidung, ob eine extends-Klausel korrekt eingesetzt wird, am wichtigsten?

<p>Die Beziehung zwischen Kind- und Elternklasse muss dem 'IST-EIN'-Prinzip entsprechen. (D)</p> Signup and view all the answers

Was muss bei der Verwendung der super()-Methode in einem Konstruktor beachtet werden?

<p><code>super()</code> muss der erste Aufruf im Konstruktor sein. (A)</p> Signup and view all the answers

Welche der folgenden Alternativen zur Verwendung einer extends-Klausel ist die ungünstigste, wenn eine Methode der Elternklasse in der Kindklasse nicht unterstützt werden soll?

<p>Die Methode in der Kindklasse leer lassen, sodass sie keine Funktionalität bereitstellt. (A)</p> Signup and view all the answers

Was ist der Hauptzweck des Schlüsselworts final bei der Definition von Methoden in einer Elternklasse?

<p>Es verhindert, dass die Methode in einer Kindklasse überschrieben wird. (B)</p> Signup and view all the answers

Warum ist die Deklaration von invarianten Methoden als final eine gute Programmierpraxis?

<p>Sie erhöht die Lesbarkeit des Codes und verhindert unbeabsichtigtes Überschreiben. (B)</p> Signup and view all the answers

Betrachten Sie eine Elternklasse Fahrzeug mit einer Methode beschleunigen(). Eine Kindklasse Rennwagen erbt von Fahrzeug. Unter welcher Bedingung wäre es nicht angebracht, die Methode beschleunigen() in Fahrzeug als final zu deklarieren?

<p>Wenn die Beschleunigungslogik für Rennwagen signifikant von der anderer Fahrzeuge abweichen muss. (C)</p> Signup and view all the answers

Ein Entwickler entscheidet sich, eine Methode in einer Elternklasse, die eigentlich in einer Kindklasse benötigt wird, durch Werfen einer UnsupportedOperationException zu 'implementieren'. Welches Problem kann dadurch nicht entstehen?

<p>Der Compiler kann bereits zur Kompilierzeit Fehler erkennen und verhindern. (D)</p> Signup and view all the answers

Flashcards

IFC Resource Layer

Bietet gemeinsame Ressourcen für andere Schichten.

Inhalt der Resource Layer

Enthält Datenmodelle für Verantwortlichkeit, Historie und Identifikation von Objekten.

IFC Core Layer

Beinhaltet abstrakte, generische Konzepte, die in höheren Schichten verwendet werden.

Kernel Schema

Definiert allgemeine Konstrukte wie Objekte und Beziehungen.

Signup and view all the flashcards

Product Extension

Stellt die Mehrheit der Objektklassen bereit, die eine physikalische Beschreibung eines Gebäudes ausmachen.

Signup and view all the flashcards

Process Extension

Definiert Klassen zur Darstellung von Prozessen, wie Design und Konstruktion.

Signup and view all the flashcards

Interoperability Layer (IL)

Objekte, die von mehreren Anwendungen gemeinsam genutzt werden und spezialisieren die Core Layer Objekte.

Signup and view all the flashcards

Funktion der IL-Objekte

Spezialisieren und erweitern Core Layer Objekte für die Nutzung durch verschiedene Anwendungen.

Signup and view all the flashcards

Was bedeutet Vererbung?

Eine Subklasse ist eine spezialisierte Form einer Superklasse, die Superklasse eine generelle Form der Subklasse.

Signup and view all the flashcards

Was ist eine 'Superklasse'?

Die Superklasse in einer Vererbungsbeziehung; auch bekannt als 'Elternklasse' oder 'Basisklasse'.

Signup and view all the flashcards

Was ist eine 'Subklasse'?

Die Subklasse in einer Spezialisierungsbeziehung; auch bekannt als 'Kindklasse' oder 'abgeleitete Klasse'.

Signup and view all the flashcards

Wie wird Vererbung in UML dargestellt?

In UML wird Vererbung als ein hohles Dreieck dargestellt, das die Superklasse mit ihren Subklassen verbindet.

Signup and view all the flashcards

Was ist das Ziel der Vererbung?

Vererbung ermöglicht die Wiederverwendung und Spezialisierung von Code, indem eine neue Klasse (Subklasse) Eigenschaften und Methoden einer bestehenden Klasse (Superklasse) erbt.

Signup and view all the flashcards

Was ist Vererbung?

Vererbung ermöglicht einer Klasse, Eigenschaften und Methoden von einer anderen Klasse zu übernehmen.

Signup and view all the flashcards

Private Sichtbarkeit

Mitglieder sind nur für Methoden der eigenen Klasse zugänglich; abgeleitete Klassen haben keinen Zugriff.

Signup and view all the flashcards

Geschützte Sichtbarkeit

Der Zugriff ist auf abgeleitete Klassen beschränkt. Mitglieder sind in abgeleiteten Klassen und Klassen im gleichen Paket sichtbar.

Signup and view all the flashcards

Öffentliche Sichtbarkeit

Ermöglicht den Zugriff durch andere Klassen und abgeleitete Klassen.

Signup and view all the flashcards

Paketsichtbarkeit

Wenn Basis- und abgeleitete Klassen im selben Paket sind, kann diese Sichtbarkeit verwendet werden.

Signup and view all the flashcards

Abgeleitete Klasse (Child-Klasse)

Eine Klasse, die von einer anderen Klasse abgeleitet ist und alle Eigenschaften der Basisklasse erbt.

Signup and view all the flashcards

"extends" Klausel

Deklariert, dass eine Klasse von einer anderen Klasse abgeleitet wird.

Signup and view all the flashcards

Zusätzliche Datenfelder

Datenfelder, die zur privaten Sektion der abgeleiteten Klasse hinzugefügt werden.

Signup and view all the flashcards

Zusätzliche Methoden

Methoden, die in der abgeleiteten Klasse hinzugefügt werden können.

Signup and view all the flashcards

Nicht-spezifizierte Basisklassen-Methoden

Werden unverändert von der Basisklasse geerbt, wenn sie in der abgeleiteten Klasse nicht spezifiziert sind.

Signup and view all the flashcards

Öffentliche Basisklassen-Methoden

Dürfen im privaten Bereich der abgeleiteten Klasse nicht überschrieben werden, da dies die IS-A-Beziehung verletzen würde.

Signup and view all the flashcards

Fehlerhafte Flächenberechnung (Beispiel)

Der Versuch, zu signalisieren, dass der Aufruf von Shape's area ein Fehler ist, indem -1 zurückgegeben wird.

Signup and view all the flashcards

Bessere Fehlerbehandlung

Das Werfen einer Runtime Exception ist vorzuziehen, da es eine klarere Fehlerbehandlung ermöglicht.

Signup and view all the flashcards

Polymorphismus

Ein Mechanismus, der es ermöglicht, eine einzige Schnittstelle für Entitäten unterschiedlichen Typs bereitzustellen oder ein einzelnes Symbol zur Darstellung mehrerer verschiedener Typen zu verwenden.

Signup and view all the flashcards

Methoden-Ãœberladung

Eine Möglichkeit, wie OO-Programmiersprachen Polymorphismus implementieren, indem zwei oder mehr Methoden innerhalb derselben Klasse mit demselben Namen definiert werden, solange sich ihre Parameterdeklarationen unterscheiden.

Signup and view all the flashcards

Polymorphismus (Java)

Ein wichtiges objektorientiertes Prinzip, bei dem eine polymorphe Referenzvariable Objekte verschiedener Typen referenzieren kann.

Signup and view all the flashcards

Automatische Auswahl

Die automatische Auswahl der Operation, die für das tatsächlich referenzierte Objekt geeignet ist, wenn Operationen auf die Referenz angewendet werden.

Signup and view all the flashcards

Dynamische Bindung

Andere Begriffe für Polymorphismus: die Bestimmung der aufzurufenden Methode zur Laufzeit und nicht zur Kompilierzeit.

Signup and view all the flashcards

Späte Bindung

Auch ein anderer Begriff für Polymorphismus.

Signup and view all the flashcards

Dynamischer Versand

Noch ein anderer Begriff für Polymorphismus.

Signup and view all the flashcards

OO-Modellierungstechniken

Techniken der OO-Modellierung.

Signup and view all the flashcards

Polymorphismus in Java

In Java sind alle Referenztypen polymorph.

Signup and view all the flashcards

extends-Klausel

Die extends-Klausel ist angebracht, wenn gilt: 'Kindklasse IST-EIN(E) Oberklasse'.

Signup and view all the flashcards

Anforderungen an Kindklassen

Eine Kindklasse muss ein Typ der Elternklasse sein; jede Operation der Elternklasse muss auch von der Kindklasse unterstützt werden.

Signup and view all the flashcards

super() Methode

Basiskonstruktoren können explizit mit der Methode super() aufgerufen werden.

Signup and view all the flashcards

Position von super()

Die super()-Methode muss als erste Zeile eines Konstruktors stehen.

Signup and view all the flashcards

Override mit Exception

Die nicht unterstützte Methode wird mit einer Implementierung überschrieben, die eine Exception wirft.

Signup and view all the flashcards

Refactoring (Alternative zu extends)

Die gesamte Hierarchie wird umgestaltet, was sehr aufwändig sein kann.

Signup and view all the flashcards

final-Methoden

Die final-Methode macht eine bestimmte Basismethode in der Hierarchie invariant, d.h. eine abgeleitete Klasse kann die Basismethode nicht überschreiben.

Signup and view all the flashcards

Study Notes

Einführung in IT im AEC-Sektor (Grundlagen der Bauinformatik)

  • Modul BIG-LE-05 behandelt OO-Konzepte im AEC-Sektor.
  • Der Kurs ist BIW 1-07: Grundlagen der Bauinformatik.
  • Der Kontext ist BIG-LE-05.

Datenstrukturen

  • Primitive Typen (LE-01), Strings/Arrays (LE-02), Einführung in OO-Konzepte (LE-03), Sortieralgorithmen (LE-04), OO-Programmierung (LE-05), UNICODE, I/O-Operationen (LE-06), OO-Konzepte für GUIs (LE-07), Graphen (LE-21), Greedy- (LE-22) und rekursive Algorithmen (LE-23), Bäume (LE-24) und Backtracking (LE-25) sind Bestandteile.

Überblick über IT im AEC-Sektor (BIG-LE-05)

  • Die The Industry Foundation Classes (IFC) werden behandelt.
  • OO-Techniken wie Klassen und Vererbung werden betrachtet.
  • Vererbung wird anhand eines Beispiels erläutert.
  • Vererbung in IFC wird betrachtet.
  • OO-Techniken wie Polymorphismus werden betrachtet.
  • OO-Techniken wie Instanzen von Klassen werden betrachtet.

Literaturhinweise

  • Mark A. Weiss (2014): Datenstrukturen und Problemlösung mit Java.
  • Sebastian Dörn (2016): Programmieren für Ingenieure und Naturwissenschaftler-Band 1: Grundlagen.
  • Building Smart stellt Informationen zum Standard IFC bereit.

IFC: Die Industry Foundation Classes - Zusammenfassung

  • Dieser Abschnitt führt in das bekannteste offene BIM Meta Data Model im AEC-Bereich ein, das als Industry Foundation Classes bezeichnet wird.
  • Es führt in openBIM ein.
  • Es bietet eine „Vogelperspektice“ auf die IFC-Modellierungsschichten.

Terminologie für Building Information Modelling (BIM)

  • BIM umfasst Design, Analyse, Planung/Preisgestaltung, Zeichnen/Visualisierung, Herstellung und Betrieb.

Komponenten von IFC (MBA-LE-0104) - Zusammenfassung

  • Wichtige Teile/Komponenten des IFC-Meta-Modells werden erläutert.
  • Dies umfasst Resource Layer, Core Layer, Interoperability Layer und Domain-specific Application Layer.

Ãœbersicht der IFC 2.x2 Standard Komponenten

  • Die IFC ist in vier Schichten organisiert: Resource Layer, Core Layer, Interoperability Layer und Domain-specific Application Layer.
  • Die Resource Layer stellt allgemeine Ressourcen bereit.
  • Die Core Layer bietet abstrakte, generische Konzepte.
  • Die Interoperability Layer definiert Objekte, die von mehr als einer Anwendung gemeinsam genutzt werden.
  • Die Domain-specific Application Layer unterstützt Anwendungen, die von Fachexperten genutzt werden.

IFC-Resource Layer

  • Die Resource Layer enthält Datenmodelle für Ownership, History und Identification.
  • Ownership entspricht den Akteuren, die für die Pflege eines Objekts verantwortlich sind und sich im Laufe der Zeit ändern kann.
  • History erfasst Änderungen an der Owner/Application-Kombination.
  • Identification bietet ProjectUniqueld und globallyUniqueld.

IFC-Core Layer

  • Die Core Layer bietet abstrakte generische Konzepte, die in höheren Definitionen verwendet werden.
  • Sie enthält Kernel Schema, Product Extension, Process Extension und Controls Extension.
  • Das Kernel Schema definiert allgemeine Konstrukte und behandelt die grundlegende Funktionalität.
  • Die Product Extension liefert die Mehrheit der Objektklassen, die die physische Beschreibung eines Gebäudes ausmachen.
  • Die Process Extension definiert Klassen zur Darstellung von Prozessen zur Planung und Errichtung eines Gebäudes.
  • Die Controls Extension - NICHTS

Interoperability Layer (IL)

  • Die Interoperability Layer definiert Objekte, die von mehr als einer Anwendung gemeinsam genutzt werden; IL-Objekte spezialisieren die Core Layer Objekte.
  • Beispiele sind Bauelemente, Gebäudeausrüstungselemente, Verteilungselemente, Möbel, Elektrogeräte oder Bauvorschriften.

Domain-Specific Application Layer

  • Sie unterstützt Anwendungen, die von Fachexperten genutzt werden.
  • Spezifikationen in dieser Schicht sollten klein und einfach bleiben.

OO-Modellierungskonzepte: Vererbung

  • Vererbung ist das grundlegende objektorientierte Prinzip zur Wiederverwendung von Code zwischen verwandten Klassen.
  • Sie modelliert eine IST-EIN-Beziehung und bildet Hierarchien.
  • Java nutzt Vererbung intensiv in seinen Klassenbibliotheken.
  • Neue Klassen können der Hierarchie hinzugefügt werden, ohne bestehende Implementierungen zu beeinträchtigen.
  • Beim Hinzufügen neuer Child-Klassen sind keine Änderungen an Parent- oder bestehenden Child-Klassen erforderlich.

Vererbungshierarchien

  • In einer IST-EIN-Beziehung ist die abgeleitete Klasse eine Variante der Basisklasse und stellt eine Beziehung auf Klassenebene dar.
  • Eine Subklasse ähnelt einer Klasse, mit wenigen zusätzlichen Datenmembern und Methoden.
  • Hierarchische Beziehungen zwischen Klassen und Subklassen sollen explizit sein, um das Kopieren und Einfügen von Methoden zu vermeiden.
  • Maintenance und Versionierung sollen durch die Weitergabe von Änderungen von Klassen zu Subklassen effizient unterstützt werden.
  • Es gibt maximal drei Arten von Veränderungen, die in Unterklassen erlaubt sind: neue Felder, neue Methoden und Ãœberschreiben existierender Methoden.
  • Das Entfernen von Feldern oder Methoden ist in Unterklassen nicht erlaubt.

Abstrakte Klassen

  • Eine abstrakte Klasse dient als gemeinsame Superklasse für andere Klassen.
  • Java erfordert die explizite Deklaration abstrakter Klassen, es ist nicht vorgesehen, Instanzen einer abstrakten Klasse zu erstellen.
  • Eine Klasse mit mindestens einer abstrakten Methode ist abstrakt.
  • Abstrakte Methoden sind nicht dazu vorgesehen, direkt aufgerufen zu werden; stattdessen werden Platzhaltermethoden eingeführt, die von Child-Klassen überschrieben werden.
  • Kindklassen können spezifischere Methodendefinitionen enthalten, um Platzhaltermethoden zu überschreiben.
  • Abstrakte Klassen können sowohl statische als auch Instanzfelder deklarieren, wobei Instanzfelder typischerweise private sind und durch Konstruktoren initialisiert werden.

Abstrakte Methoden

  • Eine abstrakte Methode deklariert eine Funktionalität, die alle daraus abgeleiteten Klassen letztendlich implementieren müssen.
  • Sie stellt jedoch keine Standardimplementierung bereit; jede Klasse muss ihre eigene Implementierung bereitstellen.

Abgeleitete Klasse

  • Die „Extends“-Klausel deklariert, dass eine Klasse von einer anderen Klasse abgeleitet ist.
  • Eine abgeleitete Klasse erbt alle Eigenschaften der Basisklasse und kann Datenmember hinzufügen, Methoden überschreiben und neue Methoden hinzufügen.
  • Jede abgeleitete Klasse ist eine völlig neue Klasse.
  • Zusätzliche Datenfelder werden dem privaten Abschnitt der abgeleiteten Klasse hinzugefügt.
  • Methoden der Basisklasse, die nicht in der abgeleiteten Klasse angegeben sind, werden unverändert vererbt.
  • Private Methoden der Basisklasse können nicht im privaten Abschnitt der abgeleiteten Klasse überschrieben werden, da dies die IST-EIN-Beziehung verletzen würde. Auch wenn es keine direkte Beziehung gibt.
  • Methoden der Basisklasse, die (erneut) im öffentlichen Abschnitt der abgeleiteten Klasse deklariert werden, werden überschrieben.

Beispiel für eine abstrakte Klasse

  • Der Programmierer hat versucht, zu signalisieren, dass der Aufruf von Shape's area ein Fehler ist, indem er -1 zurückgibt.
  • Darüber hinaus wird dieser Wert zurückgegeben, wenn area bei der Erweiterung von Shape nicht überschrieben wird.
  • Dieser Fehler beim Ãœberschreiben kann aufgrund eines Tippfehlers auftreten.
  • Eine bessere Lösung, um einen Ãœberschreibungsfehler hervorzuheben, ist es: eine Laufzeitausnahme in der Elternklasse auszulösen.
  • Dies ist vorzuziehen, -1 zurückzugeben.

Vererbung in UML modellieren

  • Vererbung zeigt an, dass eine Subklasse eine spezialisierte Form einer Superklasse ist bzw. die Superklasse eine verallgemeinerte Form der Subklasse darstellt.
  • Die Superklasse wird auch als "Elternklasse", "Basisklasse" oder "Superklasse" bezeichnet.
  • Die Subklasse wird auch als "Kindklasse", "abgeleitete Klasse" oder "erbende Klasse" bezeichnet.
  • In UML wird die Generalisierung durch ein hohles Dreieck am Ende der Linie dargestellt, die die Superklasse mit einer oder mehreren Subklassen verbindet.

Vererbung im IFC

  • Die Vererbung wird verwendet, um Bauelemente im IFC zu modellieren.
  • ifcRoot ist die Wurzel der Vererbungshierarchie im IFC.
  • ifcBuildingElement ist ein Supertyp von ifcBeam, ifcColumn, ifcDoor, ifcFooting usw.
  • Building Elements werden durch Attribute wie Globalld, Owner History, Name und Description modelliert.

Polymorphismus

  • Polymorphismus in Programmiersprachen und Typtheorie ermöglicht eine einzige Schnittstelle für Entitäten unterschiedlicher Typen oder die Verwendung eines einzelnen Symbols zur Darstellung mehrerer verschiedener Typen.
  • Methodenüberladung ist eine Möglichkeit, wie OO-Programmiersprachen Polymorphismus implementieren.
  • Dies ermöglicht Definitionen von zwei Methoden mit gleichem Namen innerhalb derselben Klasse, solange ihre Parameterdeklarationen unterschiedlich sind.

Polymorphismus in Java

  • Polymorphismus ist ein wichtiges objektorientiertes Prinzip.
  • Eine polymorphe Referenzvariable kann Objekte verschiedener Typen referenzieren.
  • Operationen, die auf die Referenz angewendet werden, werden automatisch entsprechend dem referenzierten Objekt ausgewählt.
  • Dynamic Dispatch, Late Binding und Dynamic Binding sind weitere Begriffe, die für Polymorphismus verwendet werden.
  • In Java sind alle Referenztypen polymorph.

Extends-Anweisung

  • Diese Anweisung ist geeignet, wenn die Kindklasse ein Subtyp der Superklasse ist.
  • Jede Operation, die eine Parent-Klasse ausführen kann, muss auch die Child-Klasse unterstützen.
  • Es muss in der Zukunft möglich sein, der Parent-Klasse Operation hinzuzufügen.
  • Option #1: die nicht unterstützte Methode wird überschrieben mit einer Implementierung, die eine Ausnahme auslöst
  • Option #2: die gesamte Hierarchie wird neu gestaltet

Finale Methoden

  • Eine abgeleitete Klasse kann Basisklassenmethoden entweder überschreiben oder akzeptieren.
  • Das Schlüsselwort „FINAL“ macht eine bestimmte Basisklassenmethode über die Hierarchie hinweg invariant, d. h. eine abgeleitete Klasse kann die Basisklasse nicht überschreiben.

Finale Klassen

  • Dies ähnelt der finalen Methode, d. h. eine finale Klasse kann nicht erweitert werden.
  • Somit sind alle Methoden einer finalen Klasse (automatisch) finale Methoden.
  • Klassen mit ausschliesslich finalen Methoden sind nich zwingend auch finale Klassen
  • Finale Klassen werden auch als Leaf Klassen bezeichnet.

Zusammenfassung der vier Arten von Klassenmethoden

  • Abstrakte Methoden: Das Ãœberschreiben wird zur Laufzeit aufgelöst; die Basisklasse bietet keine Implementierung und ist abstrakt.
  • Finale Methoden: Diese werden verwendet, wenn die Methode über die Vererbungshierarchie hinweg invariant ist.
  • Statische Methoden: Das Ãœberschreiben wird zur Kompilierzeit aufgelöst (kein steuerndes Objekt).
  • Andere Methoden: Das Ãœberschreiben wird zur Laufzeit aufgelöst; die Basisklasse bietet eine Standardimplementierung, die entweder überschrieben oder von abgeleiteten Klassen unverändert übernommen werden kann.

Grundlegende Modellierungsprinzipien für BIM

  • Eine Klasse: eine Abstraktion in objektorientierten Programmiersprachen;; sie fasst Struktur und Verhalten zusammen, definiert Attribute und Operationen für alle ihre Instanzen, und Attribute und Operationen können an die Objekte der Unterklasse vererbt werden.
  • Eine abstrakte Klasse: Es dient lediglich dazu, gemeinsame Attribute und Operationen zu modellieren. Es wird niemals instantiiert; sie stellt verallgemeinerte Konzepte im Anwendungsbereich dar.

IT-Objekt

  • Ein IT-Objekt ist eine Instanz einer Klasse.
  • Es hat eine Identität, speichert Attributwerte and gehört zu genau einer Klasse.
  • Attribut ist ein benannter Slot in der Instanz, wo ein Wert gespeichert ist
  • Datentyp stellt verwendungszwecks für gültige Operationen sicher -> hat eindeutigen Namen -> dient von anderen Datentyp zu unterscheiden -> hat Zweck und Member
  • Ein IT-Objekt hat einen Zustand, ein Verhalten und eine Identität.
  • Zustand umfasst (statisch) Eigenschaften eines Objekts
  • Verhalten ist wie sich das Objekt in Bezug auf Zuständsänderung und Nachrichtenübermittlung verhält.
  • Identität welches dasObjekt von allen anderen unterscheidet. Zusammenfassend lässt sich sagen, dass Struktur und Verhalten ähnlicher Objekte in ihrer GEMEINSAMEN KLASSE definiert sind.
  • INSTANZ und OBJEKT sind austauschbare Begriffe.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Use Quizgecko on...
Browser
Browser