Glossar - Objektorientierte Softwareentwicklung


Aggregation

Besteht eine Klasse (Objekt) aus mehreren Klassen (Objekten) so nennt man diese Verbindung der Klassen (Objekte) Aggregation. Aggregation ist eine spezielle Form der Assoziation.

Siehe: Assoziation Komposition


Assoziation

Objekte, die miteinander in Verbindung stehen (sich also "kennen"), können untereinander Nachrichten austauschen. Diese Verbindung wird als Assoziation bezeichnet.

Siehe: Aggregation Komposition


Basisklasse

Siehe: Oberklasse


Generalisierung

Die Generalisierung beschreibt die Beziehung zwischen einer generelleren Kasse zu einer spezielleren Klasse. Die Beziehung wird durch Vererbung hergestellt. Die speziellere Klasse erbt dabei von der generelleren Klasse.

Siehe: Vererbung


High Cohesion

Unter High Cohesion wird der innere Zusammenhalt einer Klasse beschrieben; inwiefern haben die enthaltenen Methoden / Variablen miteinander zu tun. Sind Methoden / Variablen enthalten die mit der Klasse nichts oder nur wenig zu tun haben handelt es sich dort nicht um High Cohesion.


High Cohesion - Low Coupling

Mit der Bezeichnung High Cohesion - Low Coupling werden zwei Grundprinzipien der objektorientierten Designs zusammengefasst. Sind beide Prinzipien gegeben ist dies ein Anzeichen für ein gutes objektorientiertes Design.

High Cohesion - Low Coupling bezeichnet dementsprechend ein Design, das einen hohen inneren Zusammenhalt bei geringer Abhängigkeit zur Außenwelt aufweist.


Inheritance

Siehe: Vererbung


Kapselung

Unter Kapselung wird verstanden, dass eine Klasse die Implementierung nach außen verbirgt. Von außen ist nur die notwendige, öffentliche Schnittstelle sichtbar.


Kardinalität

Die Kardinalität gibt an wie viele Objekte jeweils zueinander in Beziehung stehen können.


Komposition

Komposition ist eine strengere Form der Aggregation. Die untergeordneten Objekte sind abhängig vom Ganzen.

Siehe: Aggregation Assoziation


Liskovsches Substitutionsprinzip - Liskov Substitution Principle

Eine abgeleitete Klasse enthält alle Eigenschaften der Oberklasse. Dementsprechend kann die abgeleitete Klasse überall da eingesetzt werden, wo die Oberklasse erwartet wird.

Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.
A Behavioral Notion of Subtyping, Barbara Liskov und Jeannette Wing

Siehe auch:
http://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip
http://en.wikipedia.org/wiki/Liskov_substitution_principleFlagge Großbritanien


Low Coupling

Unter Coupling versteht man, inwieweit eine Klasse von seiner Umgebung abhängig ist. Unter Low Coupling versteht man also, dass eine Klasse möglichst unabhängig von ihrer Umgebung ist.


Oberklasse

Eine Oberklasse vererbt Methoden und/oder Attribute an eine oder mehrere Unterklassen. Andere Bezeichnungen für Oberklasse sind:

  • Basisklasse
  • Superklasse
  • Vaterklasse

Eine Sonderstellung nimmt der Begriff "Basisklasse" ein, der oft auch für die oberste Klasse einer Vererbungshirachie verwendet wird.
Die Oberklasse ist eine Generalisierung der Unterklasse. Die Unterklasse ist eine Spezialisierung der Oberklasse.


OOA

Akronym für: Objekt Oriented Analysis (objektorientierte Analyse).

Methodische Vorgehensweise zur Identifizierung von Klassen und Objekten zur Beschreibung einer Problemstellung. Neben der Identifizierung werden die Attribute und Methoden der Klassen / Objekte bestimmt. Die zu verwendende Programmiersprache spielt während der objektorientierten Analyse keine Rolle.


OOD

Akronym für: Object Oriented Design (objektorientiertes Design).

Beim objektorientierten Design wird festgelegt, wie Klassen (Objekte) miteinander in Interaktion treten, um die vorgegebene Problemstellung zu lösen. Das objektorientierte Design wird meistens unter Zuhilfenahme der UML-Notation erstellt. Die zu verwendende Programmiersprache muss beim Design des Systems berücksichtigt werden.


OOP

Akronym für: Object Oriented Programming (objektorientierte Programmierung).

Unter der objektorientierten Programmierung wird die konkrete Umsetzung eines objektorientierten Designs unter zu Hilfename einer Programmiersprache verstanden.


Polymorphie

Unter Polymorphie versteht man die Möglichkeit, dass Objekte auf den Aufruf einer Methode unterschiedlich reagieren können. Die Objekte tun in der Regel etwas Ähnliches auf unterschiedliche Weise. Erreicht wird dieses Verhalten durch Überschreiben einer Methode aus einer Vaterklasse bzw. die Objekte implementieren eine Methode aus einer Schnittstellendefinition unterschiedlich.


Separation of Concerns - Trennung der Anliegen

Separation of Concerns (dt. Trennung der Anliegen) ist ein Prinzip in der objektorientierten Softwareentwickung.

Separation of Conerns besagt, dass die Aufgaben eines objektorientierten Softwaresystems (auch der Teilsysteme) in verschiedene Module, gemäß den Aufgaben, aufgeteilt werden soll. In einem objektorientiertem Softwaresystem sollen z.B. die Präsentationslogik, die Verarbeitung des Inhaltes und die Interaktion mit dem Anwender in verschiedene Module aufgeteilt werden.


Single Responsibility Principle - Prinzip der einzigen Verantwortung

Das Single Responsibility Principle (SRP) (dt. Prinzip der einzigen Verantwortung) ist ein Prinzip in der objektorientierten Softwareentwickung.

SRP besagt, dass eine Klasse genau für eine Sache verantwortlich sein soll. Eine Klasse sollte demnach nicht für mehr und nicht für weniger verantwortlich sein. Ziel ist es, einfach zu wartende Klassen zu entwickeln.

Eingeführt wurde das Prinzip von Robert C. Martin im Artikel SRP: The Single Responsibility Principle Flagge Großbritanien mit der Umschreibung THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE (dt. Es sollte nie mehr als einen Grund für die Änderung einer Klasse geben).


Spezialisierung

Die Spezialisierung beschreibt die Beziehung zwischen einer generelleren Kasse zu einer spezielleren Klasse. Die Beziehung wird durch Vererbung hergestellt. Die speziellere Klasse erbt dabei von der generelleren Klasse.

Siehe: Vererbung


Subklasse

Siehe: Unterklasse


Superklasse

Siehe: Oberklasse


Unterklasse

Eine Unterklasse erbt Methoden und/oder Attribute von einer Oberklasse. Die Unterklasse kann diese Methoden verändern (überschreiben) und somit ihr Verhalten verändern. Durch Hinzufügen weiterer Methoden/Attribute kann das Verhalten der Objekte dieser Klasse verfeinert werden.

Andere Bezeichnung für Unterklasse:

  • Subklasse


Die Oberklasse ist eine Generalisierung der Unterklasse. Die Unterklasse ist eine Spezialisierung der Oberklasse.


Vaterklasse

Siehe: Oberklasse

Vererbung (Inheritance)

Bei der Vererbung werden Methoden und Attribute einer Klasse (Oberklasse) an eine andere Klasse (Unterklasse) vererbt. Diese Methoden und Attribute werden nur einmal definiert und können von beiden Klassen verwendet werden. Die Subklasse kann die vererbten Methoden und Attribute überschreiben und somit ihr Verhalten verändern. Weiterhin können Methoden hinzugefügt werden, womit die Klasse verfeinert wird.

Die Oberklasse ist eine Generalisierung der Unterklasse. Die Unterklasse ist eine Spezialisierung der Oberklasse.