Glossar
Das Begriffsverzeichnis oder Glossar enthält kurze Begriffserklärungen für die wichtigsten Fachbegriffe, die in diesem Kurs verwendet werden.
abstract
abstract ist ein Schlüsselwort der Sprache Java. Es wird in Klassendefinitionen benutzt, um syntaktisch abstrakte Klassen auszuzeichnen und somit auszudrücken, dass von diesen Klassen keine Objekte erzeugt werden können. Ihre Methoden und Attribute können von Unterklassen nur geerbt und in diesen Unterklassen implementiert werden.
Abstrakte Klasse
Eine abstrakte Klasse definiert die Gemeinsamkeiten einer Gruppe von Unterklassen (engl. subclass). Sie kann eine oder mehrere abstrakte Methoden enthalten. Andere Klassen können abstrakte Klassen erweitern und müssen abstrakte Methoden implementieren. Von einer abstrakten Klasse können keine Objekte erzeugt werden.
Abstrakte Methode
Eine abstrakte Methode (engl. abstract method) wird in der Klasse, die sie einführt, nur mit Namen, Parametertypen und Ergebnistyp definiert aber nicht durch einen Methodenrumpf implementiert. Sie kann nur in Unterklassen der einführenden Klasse implementiert werden. Enthält eine Klasse eine oder mehrere abstrakte Methoden, muss die Klasse selbst als abstrakte Klasse vereinbart werden.
Abstrakte Operation
siehe abstrakte Methode.
Abstraktion
Abstraktion bezeichnet
1.
einen gedanklichen Vorgang, der darauf abzielt, wesentliche Merkmale und Eigenschaften eines Gegenstands oder Begriffs zu ermitteln und Unwesentliches zu unterdrücken (engl. abstraction);
2.
die Festlegung der Funktionalität von Klassen, ohne eine Implementierung der Methoden und Attribute der Klassen anzugeben (engl. interface). Abstraktionen werden durch Klassen implementiert.
abstrakter Datentyp (ADT)
Ein abstrakter Datentyp (ADT, engl. abstract data type) besteht aus:
einem Namen, der den ADT bezeichnet,
Typen von Datenelementen,
Operationen und
einer Beschreibung der Eigenschaften dieser Operationen.
Der innere Aufbau (die Datenstruktur) des ADT ist nicht nach außen sichtbar. Eigenschaften des ADT können nur mit Hilfe der verfügbaren Operationen abgefragt und verändert werden. Die Eigenschaften können auf verschiedene Weise abstrakt, also unabhängig von einer konkreten Darstellung der eingekapselten Datentypen und unabhängig von einer konkreten Implementierung der Operationen festgelegt werden.
Die algebraische Datenabstraktion ist eine, bei die Eigenschaften der Operationen durch eine eine endliche Menge von Gesetzen in der Form von Gleichungen, bedingten Gleichungen oder Prädikaten angegeben werden. Diese Gesetze oder Axiome beschreiben die Wechselwirkungen der verschiedenen Operationen auf die Datenelemente des ADT. Man kann aber auch Invariante sowie Vorbedingungen und Nachbedingungen für einzelne Operationen festlegen.
Ada
Die Programmiersprache Ada ist eine Mehrzwecksprache, die sich insbesondere auch für die Entwicklung von Programmen eignet, die in technische Anwendungen eingebettet sind. Ada umfasst eine Vielzahl von Programmierkonstrukten und ermöglicht auch die Programmierung nebenläufiger und verteilter Abläufe.
Die Sprache Ada, die im Jahr 1979 veröffentlicht wurde, wird von manchen auch als die letzte Elefantensprache bezeichnet. Entwicklung und Einsatz von Ada wurden vom US-amerikanischen Verteidigungsministerium voran getrieben.
Akteur
Ein Akteur (engl. actor) ist ein Benutzer oder eine Benutzerin eines zu implementierenden Systems aus der Sicht eines bestimmten Anwendungsfalls. Ein Akteur ist nicht Teil des Systems, sondern interagiert mit ihm. Ein Akteur kann eine Person oder ein anderes System sein.
Der Begriff Akteur bezeichnet eine Rolle einer Systembenutzerin oder eines externen Programms, das direkt mit dem betrachteten System als Teil einer zusammenhängenden Arbeitseinheit zusammenwirkt. Ein realer Handlungsträger kann mehrere Rollen in den Anwendungsfällen eines Systems wahrnehmen und kann daher durch verschiedene Akteure dargestellt sein.
Aktivitätsdiagramm
Ein Aktivitätsdiagramm (engl. activity diagram) ermöglicht die übersichtliche Darstellung der verschiedenen Schritte in einem Arbeitsablauf. Aktivitätsdiagramme erlauben es, alternative und nebenläufige Aktivitäten zu beschreiben.
Aktivitätsdiagramme werden vorwiegend benutzt, um Abläufe zu erfassen, die sich über verschiedene Anwendungsfälle und Akteure erstrecken. Sie fördern die Entdeckung nebenläufiger Handlungsstränge und verhindern so die unnötige Linearisierung von Abläufen.
Algol
Die Programmiersprache Algol 60, erschienen im Jahr 1960, ist nach Fortran und mit Cobol die zweitälteste höhere Programmiersprache. Algol 60 ist eine prozedurale Sprache, die mit dem Ziel entwickelt wurde, numerische wissenschaftliche Probleme leichter lösbar zu machen. Algol 60 führte die Blockstruktur sowie rekursive Prozeduren ein.
Algorithmus
Ein Algorithmus (engl. algorithm) ist eine Verfahrensvorschrift zur Lösung einer Aufgabe. Die Verfahrensvorschrift beschreibt in endlicher Form, welche einzelnen Verarbeitungsschritte bei der Bewältigung der gestellten Aufgabe ganz mechanisch und gesetzesmäßig auszuführen sind.
Analyse
Bei der Analyse (engl. analysis) werden die Anforderungen eines Auftraggebers an ein zu erstellendes Softwaresystem ermittelt. Das Ergebnis soll die Anforderungen vollständig, eindeutig, präzise und verständlich beschreiben.
Animation
Eine Animation ist eine Folge bewegter Bilder, die jedes einzeln berechnet werden und durch geringfügige Unterschiede zwischen aufeinanderfolgenden Bildern den Eindruck einer fließenden Bewegung erzeugen.
Anweisung
Eine Anweisung (engl. statement) beschreibt einen einzelnen Bearbeitungsschritt, der von einem Programm ausgeführt wird. In Java wird eine elementare Anweisung i.d.R. mit einem Semikolon (;) abgeschlossen.
Anwendungsfall
Ein Anwendungsfall (engl. use case) ist eine zusammenhängende Einheit von Aktionen, die ein System einem Akteur außerhalb des Systems zur Verfügung stellt. Die Aktionen werden von Akteuren durch Botschaftenaustausch angestoßen, um ein bestimmtes Ziel oder Ergebnis zu erreichen. Die Ergebnisse einer Systemaktion werden gleichfalls durch Botschaftenaustausch den Akteuren in der Umgebung des Systems übermittelt.
Die Summe aller Anwendungsfälle zeichnet überblicksartig ein Bild des Systems.
Anwendungsfalldiagramm
Ein Anwendungsfalldiagramm (engl. use case diagram) besteht aus einer Menge von Akteuren, Anwendungsfällen, Kommunikationsbeziehungen zwischen Akteuren und Anwendungsfällen sowie aus Verallgemeinerungsbeziehungen wie „erweitern“ (engl. extend) und „enthalten“ (engl. include), die zwischen Anwendungsfällen oder zwischen Akteuren bestehen können.
Argument
Ein Argument (engl. argument) oder ein aktueller Parameter (engl. actual parameter) bezeichnet einen konkreten Wert, der bei Aufruf und Ausführung einer Methode anstelle eines Aufrufparameters eingesetzt wird.
Assembler
Assembler-Sprachen sind maschinenorientierte Programmiersprachen, die die hardwarenahe Programmierung erleichtern: Der Binärcode der Maschinensprachen wird durch mnemonische Symbole dargestellt, sodass er für Menschen verständlich ist.
Für jeden Rechnertyp gibt es spezielle, auf den Befehlsvorrat des Prozessors zugeschnittene Assemblersprachen.
Assoziation
Eine Assoziation (engl. association) modelliert statische Beziehungen zwischen Klassen von Objekten.
Attribut
Ein Attribut (engl. attribute) ist ein benanntes und typisiertes Datenelement, das in einer Klasse vereinbart wird und Werte eines bestimmten Typs und damit auch Zustandsinformation nachhält. Wir unterscheiden Exemplarattribute oder -variablen, die den Zustand eines einzelnen Attributs erfassen, und Klassenattribute oder -variablen, die Zustandsinformation aufbewahren, die für alle Objekte einer Klasse sichtbar sind. Jedes aus einer Klasse erzeugte Objekt besitzt eigene Kopien der in der Klasse vereinbarten Exemplarattribute, die im Allgemeinen bei verschiedenen Objekten einer Klasse mit unterschiedlicher Werten belegt sind. Klassenattribute gehören zur Klasse und existieren genau einmal. Sie können von den Objekten der Klasse für die Verwaltung gemeinsamer Daten benutzt werden. Jedes Attribut besitzt einen bestimmten Typ und einen Bezeichner, der innerhalb der Klasse eindeutig ist. Für ein Attribut kann in der Klasse ein Initialwert vereinbart werden, den das jeweilige Attribut bei der Erzeugung eines Objekts dieser Klasse annimmt.
Aufrufparameter
Aufrufparameter (engl. invoking parameter) ermöglichen es, Daten vom Sender einer Botschaft zum Empfänger der Botschaft über die aufgerufene Methode des Empfängers zu transportieren (s.a. Argument).
Automatische Speicherverwaltung
Automatische Speicherverwaltung (engl. automatic garbage collection) bedeutet, dass zur Laufzeit eines Programms Objekte ermittelt werden, die nicht mehr benötigt werden. Die für sie reservierten Speicherbereiche können deshalb frei gegeben werden. Eine Lösung, bei der - wie z.B. bei C++ - der von Objekten beanspruchte Speicherplatz durch den Programmierer verwaltet wird, ist dagegen sehr fehleranfällig. Nahezu die Hälfte aller Programmfehler in C++ lassen sich auf Fehler in der Speicherverwaltung zurückführen.
AWT
Das Abstract Window Toolkit (AWT) des Java-Systems besteht aus einer Sammlung von Komponenten zur Gestaltung grafischer Benutzerschnittstellen (GUI, engl. graphical user interface). Diese Komponenten wurden mit Hilfe rechnerspezifischer Grundkomponenten implementiert. Die Komponenten fassen Funktionen zusammen, die gängigen Rechner- und Betriebssystemtypen (Sun Solaris, Linux, Windows, Mac OS) gemeinsam sind.
Das neuere Swing-Paket von Java ersetzt und erweitert die AWT-Komponenten.
Botschaft
In einem objektorientierten Programm wird eine Methode durch die Übermittlung einer Botschaft (engl. message) an das Objekt, das die Methode implementiert, aktiviert. Die Botschaft benennt die Methode, die ausgeführt werden soll, und die für die Ausführung der Methode notwendigen Argumente.
Austausch von Botschaften
Der Austausch von Botschaften (engl. message exchange) bezeichnet einen Kommunikationsvorgang, bei dem eine Verarbeitungseinheit die Kopie eines Auszugs ihrer lokalen Daten als Botschaft an eine empfangende Verarbeitungseinheit versendet. Der Kommunikationsvorgang erfolgt ggf. über ein Kommunikationsnetz, falls die Verarbeitungseinheiten verteilt sind.
Bündelung
Bündelung (engl. bundling) bezeichnet den Vorgang der Zusammenfassung einer Menge von Methoden mit den Daten, auf denen die Methoden arbeiten.
Bytecode
Bytecode ist ein maschinenunabhängiger Programmcode, der von jedem Java-Übersetzer erzeugt und von einem Java-Interpreter, i.d.R. der Java virtuellen Maschine, ausgeführt wird.
C
C ist eine Systemprogrammiersprache, die im Jahr 1972 erschien und u.a. im Kontext des Betriebssystems Unix eine weite Verbreitung erfuhr.
Cobol
Die Programmiersprache Cobol, die im Jahr 1960 erschien, ist nach Fortran und mit Algol 60 die zweitälteste höhere Programmiersprache und wurde v.a. für die Programmierung kaufmännischer DV-Anwendungen entwickelt (z.B. Gehaltsabrechnungsprogramme). Cobol 60 führte Dateien und Datenbeschreibungen ein und lehnte sich in seiner Syntax stark an natürliche Sprachen an. Cobol war viele Jahre lang die am häufigsten gebrauchte Sprache und ist auch heute noch in vielen langlebigen Anwendungen zu finden.
C++
C++ ist eine Programmiersprache, die 1984 erschien und objektorientierte Sprachkonzepte auf die Sprache C aufsetzte.
Datenabstraktion
Datenabstraktion (engl. data abstraction) bedeutet, dass nur die auf ein Objekt anwendbaren Operationen nach außen sichtbar gemacht werden, die Implementierung dieser Operationen dagegen verborgen bleibt.
Datenstrom
Ein Datenstrom ist eine Verbindung zwischen einer Datenquelle und einer Datensenke.
Datenstruktur
Eine Datenstruktur (engl. data structure) beschreibt die Art und Weise, wie Daten aus anderen Daten zusammengesetzt sind. Bekannte Datenstrukturen beinhalten Liste, Stapel, Reihe, Baum oder Graph.
Deklaration
Eine Vereinbarung oder Deklaration (engl. declaration) ist eine Anweisung, die einen Namen und bestimmte Eigenschaften, wie etwa einen Typ, mit diesem Namen verknüpft.
Eiffel
Eiffel ist eine objektorientierte Programmiersprache, die im Jahr 1988 von Bertrand Meyer veröffentlicht wurde und die darauf abzielte, den Programmierprozess zu systematisieren und entlang softwaretechnischer Prinzipien zu organisieren.
Einfachvererbung
Bei der Einfachvererbung (engl. simple inheritance) besitzt jede Klasse höchstens eine direkte Oberklasse.
Einkapselung
Einkapselung (engl. encapsulation) bezeichnet ein wichtiges Prinzip beim Programmentwurf. Es unterstützt die Modularität von Programmen und vereinfacht deren Pflege und Weiterentwicklung. Einkapselung wird ermöglicht durch zwei untergeordnete Konzepte: Bündelung und Geheimnisprinzip. Letzteres sorgt dafür, dass der Anwender eines Objekts nichts weiter als die Signatur und den Ergebnistyp der öffentlichen Methoden einer Klasse kennen muss, um ein Objekt der Klasse benutzen zu können. Die Darstellung seiner Daten und die Implementierung seiner Methoden bleiben verborgen.
enthält-Beziehung
Die enthält-Beziehung (engl. include) zwischen zwei Anwendungsfällen - im Sinne A schließt B ein, geschrieben A->B - bedeutet, dass der Anwendungsfall A den Anwendungsfall B umfasst.
erweitert-Beziehung
Eine erweitert-Beziehung (engl. extend) zwischen zwei Anwendungsfällen, sagen wir A und B, bedeutet, dass ein Exemplar des Anwendungsfalls B das Verhalten, das für Anwendungsfall A angegeben ist, einschließen kann.
Exemplar
Ein Exemplar (engl. instance) ist eine Ausprägung einer Klasse, also ein Objekt. In Java-Programmen wird ein Exemplar der Klasse mit Hilfe des Operators new, gefolgt von einem der Konstruktoren der Klasse, erzeugt.
Exemplarattribut
Exemplarattribute (engl. instance variable) dienen dazu, die Eigenschaften und den Zustand der Exemplare einer Klasse nachzuhalten. Ein Exemplarattribut hat den in der Klassendefinition vereinbarten Namen und Typ. Der Name ermöglicht den abfragenden oder verändernden Zugriff auf den Wert eines Exemplarattributs. Die Werte von Exemplarattributen können während der Lebenszeit eines Objekts verändert werden.
Feld
Ein Feld (engl. array) ist eine Aneinanderreihung von gleichartigen Elementen, auf dessen Komponenten mittels eines Indexes zugegriffen werden kann. Felder sind Objekte in Java.
Fortran
Die Sprache Fortran ist eine imperative Programmiersprache für naturwissenschaftliche und Ingenieuranwendungen und wurde Ende der 50er Jahre entwickelt. Die Intention war, dass in dieser Sprache implementierte Programme möglichst schnell abgearbeitet werden sollten, was u.a. durch einen einfachen Aufbau und geringe Strukturierungsmöglichkeiten erreicht wurde. Fortran ist auf den meisten Computern so implementiert, dass die Programme sehr effizient ausgeführt werden können.
Geheimnisprinzip
Das Geheimnisprinzip (engl. information hiding) bedeutet, dass Eigenschaften und die Implementierung einer Betrachtungseinheit von außen nicht sichtbar sind. Zustandsveränderungen oder Abfragen über den Zustand der Betrachtungseinheit können nur mittels einer wohldefinierten Schnittstelle, die die Gesamtheit der sichtbaren Operationen und ggf. Datentypen angibt, erfolgen.
Generalisierung
Generalisierung (engl. generalization) bezeichnet den Vorgang der Festlegung einer Klasse A, in der gemeinsame Eigenschaften und Fähigkeiten anderer Klassen B1, B2, ... in A zusammengefasst werden. Die Klassen B1, B2, ... werden dabei zu Unterklassen von A gemacht .
Glossar
Ein Glossar (engl. glossary) bestimmt die Begriffe der jeweiligen Fachsprache.
Grammatik
Eine Grammatik (engl. grammar) ist die Festlegung der Syntax einer Sprache und besteht aus einer Menge von Regeln, die bestimmen, welche Folgen von Zeichen zu einer Sprache gehören und welche nicht.
GUI
Eine grafische Benutzerschnittstelle (engl. graphical user interface) bezeichnet grafische Darstellungstechniken sowie Eingabemedien wie Tastatur, Maus oder Tablett, die einfach zu bedienende Mensch-Maschineschnittstellen ermöglichen.
Höhere Programmiersprache
Höhere Programmiersprachen (engl. high level programming language) unterscheiden sich von maschinennahen Sprachen dadurch, dass sie von der Hardware unabhängig sind und anwendungsnahe Sprachmittel anbieten. Höhere Sprachen können mittels Interpretern ausgeführt werden und werden meistens durch Übersetzer in niedere Sprachen übersetzt.
Identität
Die Identität (engl. identity) oder der Name (engl. name) eines Objekts unterscheidet es eindeutig von allen anderen Objekten, die in der gleichen Objektwelt existieren.
Implementierung
Der Begriff Implementierung (engl. implementation) bezeichnet die Formulierung eines vorgegebenen Algorithmus' zum Zweck der Ausführung auf einem Rechner.
Instantiierung
Instantiierung (engl. instantiation) beschreibt die Erzeugung eines Exemplars (s.a. Instanz) einer Klasse.
Instanz
Der Begriff Instanz wird häufig als Synonym für Objekt gebraucht und entstand wohl aus der falschen Übersetzung des englischen Worts instance, das soviel wie Exemplar bedeutet.
Instanzvariable
siehe Exemplarattribut.
Interaktives Programm
Ein interaktives Programm (engl. interactive program) zeichnet sich dadurch aus, dass es mit dem Benutzer interagiert, d.h. kontinuierlich auf Eingaben und Stimulationen durch den Benutzer reagiert.
Interpreter
Ein Interpreter (engl. interpreter) ist ein Programmsystem, das die Ausdrücke einer Programmiersprache in eine maschinennahe Sprache umsetzt und unmittelbar ausführt.
Invariante
Eine Invariante ist eine Aussage, die vor Eintritt in die Ausführung einer Operation, einer Methode oder eines Algorithmus wahr ist und nach jedem Schritt der Operation (der Methode oder des Algorithmus) wieder wahr ist.
Java
Java ist eine objektorientierte Programmiersprache, die aufgrund der virtuellen Java-Maschine (JVM) gegenüber anderen Programmiersprachen den Vorteil besitzt, dass jedes korrekt übersetzte Java-Programm auf jedem Computer, für den es eine JVM gibt, ausgeführt werden kann.
Java-Anwendung
Eine Java-Anwendung (engl. Java application) ist ein Java-Programm, das wie andere Programme innerhalb des Betriebsystems Ihres Rechners abläuft.
Java-Applet
Ein Java-Applet ist ein kleines Java-Programm, das im Allgemeinen von einem entfernten Server geladen wird und im Web-Browser oder Applet-Viewer der Klientin abläuft. Jedes Applet unterliegt hohen Sicherheitsbeschränkungen, die verhindern, dass z.B. Dateien auf dem Gastrechner gelesen oder gar gelöscht werden.
JDK
Das Java Development Kit (JDK) ist ein Paket notwendiger Basisprogramme, um Java-Anwendungen programmieren zu können. Es enthält den Compiler, den Interpreter (die „virtuelle Maschine“), die Klassenbibliotheken (APIs) nebst kompletter Beschreibung in HTML, viele kleine Demos usw.
JVM
Die virtuelle Maschine für Java (JVM, engl. Java virtual machine) umfasst sowohl die Spezifikation als auch die Implementierung eines virtuellen, d.h. durch ein Programmsystem realisierten Rechners, der auf allen gängigen Rechnerplattformen in gleicher Weise den Bytecode in Java-Klassendateien ausführt. Der von Übersetztern vieler anderer Programmiersprachen erzeugte Assembler- oder Maschinenkode kann i.d.R. nicht auf Rechnern anderer Art als der, auf dem das Programm übersetzt wurde, ausgeführt werden.
Klasse
Eine Klasse (engl. class) umfasst eine Gruppe oder Familie gleichartiger Objekte und bezeichnet einen Begriff aus dem Anwendungsbereich.
Klassenattribut
Ein Klassenattribut (engl. class attribute oder class variable) gehört nicht einem einzelnen Objekt, sondern einer Klasse und ist von der Existenz der Objekte unabhängig. Das Klassenattribut existiert nur einmal pro Klasse und wird bei der Ausführung der Klassenbeschreibung angelegt und mit einem passenden Standardwert belegt.
Klassenbeschreibung
Die Klassenbeschreibung definiert die gemeinsamen Attribute, Operationen und die gemeinsame Semantik für eine Anzahl gleichartiger Objekte. Alle Objekte einer Klasse entsprechen dieser Definition. In Java wird eine Klassenbeschreibung mit dem Schlüsselwort class und dem Namen der Klasse eingeleitet. Darauf folgen, eingefasst in geschweifte Klammern, die Methoden und Attribute, die zu der Klasse gehören. Die Reihenfolge von Attribut- und Methodenvereinbarungen ist hierbei beliebig
Klassenbibliothek
Eine Klassenbibliothek (engl. class library) ist eine strukturierte Ansammlung von Klassen.
Klassendefinition
siehe Klassenbeschreibung.
Klassendiagramm
Ein Klassendiagramm (engl. class diagram) dient zur grafischen Darstellung von Klassen, ihren Vererbungsbeziehungen und Assoziationen mit anderen Klassen.
Klassenhierarchie
Von einer Klasse A können Klassen abgeleitet werden, die die Klasse A verfeinern und die Funktionalität und Attribute der Klasse A erben. Ausgehend von einer Ursprungsklasse ergibt sich somit eine Klassenhierarchie (engl. class hierarchy), die sich leicht durch eine Baumstruktur darstellen lässt.
Klassenoperation
Klassenoperation (engl. class operation) oder Klassenmethoden (engl. class methods) sind Operationen bzw. Methoden, die nicht auf den Attributen eines Objekts, sondern auf den Klassenattributen einer Klasse operieren.
Klassenvariable
siehe Klassenattribut
kommuniziert-Beziehung
Die kommuniziert-Beziehung (engl. communicate) zwischen einem Akteur und einem Anwendungsfall bezeichnet die Teilnahme eines Akteurs an einem Anwendungsfall. Es gibt keine anderen Beziehungen zwischen Akteuren und Anwendungsfällen.
Komplexes Objekt
Ein komplexes Objekt (engl. complex object) ist ein Objekt, dessen Attribute selbst wieder Objekte sind.
Komponente
Eine Komponente (engl. component) ist ein abgrenzbares Programmpaket mit definierten Schnittstellen und eigener Identität.
Konstruktor
Konstruktoren (engl. constructor) sind ausgezeichnete Methoden zur Erzeugung und Erstbelegung von Objekten mit Attributwerten. Konstruktoren tragen immer den Namen der Klasse, der sie angehören.
Kontrollfluss
Der Kontrollfluss (engl. control flow) eines Programms bestimmt die Reihenfolge der Ausführung der einzelnen Anweisungen des Programms.
Maschinensprache
Die Maschinensprache (engl. machine language) ist die Programmiersprache eines Computers. Programme in dieser Sprache sind im Binärcode dargestellt, wodurch sie direkt vom Prozessor ausgeführt werden können, jedoch für Menschen kaum verständlich sind. Zur Behebung dieses Mankos werden diese hardwarenahen Programme nicht in der Maschinensprache, sondern in einer Assembler-Sprache geschrieben.
Mehrfachvererbung
Im Falle der Mehrfachvererbung (engl. multiple inheritance) kann eine Klasse mehrere direkte Oberklassen besitzen.
Methode
In manchen objektorientierten Programmiersprachen werden die Operationen als Methoden (engl. methods) bezeichnet. Methoden implementieren Operationen, die eine bestimmte Funktion ausführen oder einen Dienst erbringen.
mnemonisch
Mnemonische Zeichen sind leicht zu merken, legen Assoziationen mit bestimmten Begriffen nahe und erleichtern Rückschlüsse auf die Bedeutung des Bezeichneten.
Modell des Anwendungsbereichs
Das Modell des Anwendungsbereichs (engl. model of the application domain) orientiert sich an den Aufgaben und Verantwortlichkeiten des Anwendungsbereichs sowie den zur Erfüllung der Aufgaben relevanten Gegenständen und Verarbeitungsfunktionen.
Modula
Die Sprache Modula, genauer MODULA-2, baut auf PASCAL auf und ist ebenfalls eine imperative Programmiersprache. Das besondere an dieser Programmiersprache ist das sog. Modul-Konzept: Jedes Modula-2-Programm ist ein Modul, welches wiederum aus anderen Modulen besteht und mit Hilfe dieser Module seine Funktionalität erbringt. Ein Modul ist eine Zusammenfassung von Konstanten, Datentypen, Variablen und Prozeduren zu einer Einheit. Soll ein Modul an einer anderen Stelle des Programms oder in einem anderen Modul benutzt werden, so muss angegeben werden, welche Teile dieses Moduls von aussen sichtbar sein sollen und welche nicht. Dabei bleibt aber die konkrete Realisierung der Datentypen und Prozedurrümpfe grundsätzlich vor allen anderen Modulen verborgen.
Nachbedingung
Eine Nachbedingung bezeichnet Eigenschaften, die nach der Ausführung einer Operation oder einer Methode gelten, wenn diese terminiert und falls die zugehörige Vorbedingung vor der Ausführung der Operation oder Methode galt.
Nachricht
siehe Botschaft
nebenläufig
Zwei Aktivitäten oder Prozesse, die kausal voneinander unabhängig ausgeführt werden können, werden nebenläufig (engl. concurrent) genannt. Aufgrund der Unabhängigkeit kann sowohl zuerst der eine Prozess, dann der andere als auch umgekehrt ausgeführt werden, beide Prozesse können aber auch zeitlich überlappend ausgeführt werden.
new
Der new-Operator in Java dient dazu, Objekte oder Felder zur Laufzeit eines Programms zu erzeugen. Der Ausdruck new Robot ( ) bewirkte z.B. die Erzeugung eines Objekts der Klasse Robot, während der Ausdruck new Schachbrett[ ][ ] ein zweidimensionales Feld erzeugte.
Oberklasse
Jede Klasse, die Eigenschaften und Verhalten an eine andere Klasse vererbt, heißt Oberklasse (engl. superclass) dieser Klasse.
Objekt
Im täglichen Sprachgebrauch bezeichnen wir mit dem Wort Objekt einen Gegenstand des Interesses, der Beobachtung, der Veränderung, der Untersuchung oder der Messung. Im engeren, programmiersprachlichen Sinn besitzt ein Objekt einen Zustand (repräsentiert durch Beziehungen und Attribute), es reagiert mit einem definierten Verhalten (durch die Ausführung von Operationen) auf seine Umgebung, und es ist ein bestimmtes Exemplar seiner Klasse. Das Verhalten gilt für alle Objekte einer Klasse gleichermaßen, jedoch besitzt jedes Objekt eine eigene Identität, die es von anderen Objekten unterscheidet.
Objektdiagramm
Ein Objektdiagramm (engl. object diagram) ist eine grafische Darstellung der Beziehungen zwischen Objekten zu einem bestimmten Zeitpunkt.
Objektorientiertes Programm
Ein objektorientiertes Programm (engl. object-oriented program) besteht aus einer Menge kooperierender funktionaler Einheiten, die wir Objekte nennen. Jedes Objekt spielt in diesem Verbund eine bestimmte Rolle. Es bietet Dienste an oder führt Aktionen aus, die von anderen Mitgliedern des Verbunds genutzt werden.
Operation
Eine Operation (engl. operation) ist eine Verarbeitungsmethode, die Zugriff auf die Attribute eines Objekts oder einer Klasse hat. (Synonym zu Methode.)
Paket
Ein Paket (engl. package) in Java ist die Zusammenfassung mehrerer Klassen beliebigen Typs zu einer Gruppe, um die Systemstruktur auf einer höheren Abstraktionsebene darstellen zu können. Pakete können selbst wieder Pakete enthalten.
Paradigma
Ein Paradigma (engl. paradigm) erläutert die wesentlichen Bestandteile eines Computerprogramms, wie sie organisiert sind und welche Beziehungen zwischen ihnen bestehen.
Pascal
Die Programmiersprache Pascal wurde 1972 von Niklaus Wirth entwickelt und ist nach dem französischen Mathematiker Blaise Pascal (1623-1662) benannt. Pascal ist eine Weiterentwicklung von ALGOL 60 und zeichnet sich besonders durch ihr Datentypenkonzept aus. Sie kann leicht erlernt und aufgrund effizienter Übersetzer auf nahezu allen Rechnerplattformen in vielen Anwendungsbereichen eingesetzt werden.
Persistenz
Persistenz (engl. persistence) bezeichnet die Fähigkeit eines Objekts, über die Laufzeit eines Programms hinweg zu existieren. Ein persistentes Objekt steht nach dem Neustart des Programms wieder zur Verfügung.
Plugin
Plugins sind kleine Programme oder Programmteile, die die Funktionalität einer Software vergrößern. Browser-Plugins werden häufig für multimediale Anwendungen im WWW benötigt.
Programm
Ein Programm (engl. program) ist eine konkrete Formulierung eines Algorithmus' unter Verwendung der Ausdrücke einer Programmiersprache. Es ermöglicht die Ausführung eines Algorithmus' auf einem Computer.
Programmieren
Die Tätigkeit des Programmierens (engl. programming) besteht aus dem Entwerfen oder Finden eines Algorithmus' zu einem gegebenen Problem und seiner anschließenden Implementierung.
Prozedur
Prozeduren (engl. procedure) sind zentrale Konzepte imperativer Programmiersprachen. Hierdurch kann jede als Programm formulierte Vorschrift zu einer elementaren Anweisung in einem anderen Programm werden. Darüber hinaus dienen Prozeduren der Zerlegung und Strukturierung umfangreicher Programme, und sie erlauben die Verwendung rekursiver Techniken.
Eine Prozedur besteht aus einem Schlüsselwort gefolgt von einem Bezeichner (Name der Prozedur), aus einer Liste von formalen Parametern, aus einer Folge von Deklarationen und aus einer Folge von Anweisungen.
Jede Programmiersprache besitzt ein eigenes Schema für die Definition von Prozeduren.
Prozedurale Programmierung
Bei der prozeduralen Programmierung (engl. procedural programming) orientiert man sich beim Entwurf eines Programms an den Prozeduren, die beschreiben, wie bestimmte Aufgaben ausgeführt werden. Diese Prozeduren tauschen untereinander Datenstrukturen aus und verändern ihnen gemeinsame globale Datenstrukturen. Sobald auf Grund veränderter Anforderungen neue Datenstrukturen eingeführt werden, müssen neue Prozeduren implementiert werden, die auf diesen Datenstrukturen operieren. Dies schränkt die Erweiterbarkeit prozeduraler Programme wegen der Notwendigkeit, Änderungen über das gesamte Programm hinweg nachzuvollziehen, erheblich ein.
Schnittstelle
Eine Schnittstelle (engl. interface) in Java besteht aus den Signaturen der Methoden, die eine Klasse mit diesen anbietet.
Semantik
Die Semantik (griech. semantikos= bezeichnend, engl. semantics) ist ein Teilgebiet der Linguistik, das sich mit der Bedeutung sprachlicher Ausdrücke befasst.
Sequenzdiagramm
Ein Sequenzdiagramm (engl. sequence diagram) beschreibt die Interaktionen zwischen mehreren Objekten in einem bestimmten Kontext unter Verdeutlichung des zeitlichen Ablaufs. In einem einzelnen Sequenzdiagramm können alternative Abläufe nicht gut dagestellt werden.
Sichtbarkeit
Die Sichtbarkeit (engl. visibility) von Namen bestimmt die Möglichkeit des Zugriffs auf Datentypen, Attribute und Methoden.
Signatur
Die Signatur (engl. signature) einer Methode besteht aus ihrem Namen sowie der Anzahl und den Typen ihrer Parameter.
Simula
Simula wurde 1967 aus der Sprache ALGOL 60 entwickelt. Simula bietet spezielle Möglichkeiten zur Ausführung von Simulationen (der Name leitet sich von „Simulation Language“ ab) und besitzt bereits Datenstrukturen wie Referenzen und Klassen. Da Simula auch ein Modul- und Vererbungskonzept bietet, gilt diese Sprache als Vorläufer der objektorientierten Programmierung.
Smalltalk
Die Sprache Smalltalk und der Nachfolger Smalltalk-80 gehören ebenfalls zur Gruppe der objektorientierten Programmiersprachen. Das besondere daran ist, das Smalltalk gleichzeitig eine vollständige Programmierumgebung ist, bei der viel Wert auf ein einheitliches und benutzungsfreundliches Erscheinungsbild gelegt wurde. Die Benutzerin braucht sich nicht in die Betriebsmittel wie Editoren, Übersetzer oder Betriebssysteme einzuarbeiten, da sich unter Smalltalk-80 das gesamte Computersystem in einheitlicher Form darstellt, durch das die Benutzerin mit Menüs geführt wird. Dem Benutzer ist dabei immer nur ein spezielles Objekt, der Bildschirm, sichtbar. Eingaben erfolgen mit der Maus oder über die Tastatur.
Subklasse
Siehe Unterklasse
Superklasse
Siehe Oberklasse
Swing
Die Swing-Komponenten umfassen eine Sammlung von Komponenten zur Implementierung grafischer Benutzerschnittstellen. Die Komponenten stellen für alle gängigen Rechner- und Betriebssystemplattformen, welche die Java virtuelle Maschine (JVM) unterstützen, die gleiche Funktionalität in plattformspezifischer Gestaltung zur Verfügung. Die Komponenten sind selbst in Java implementiert und übersteigen damit in ihrer funktionellen Ausprägung die auf nativen Plattformfunktionen aufbauenden AWT-Komponenten.
Syntax
Syntax (griech. syntaxis=Zusammenstellung) bezeichnet die korrekte Verknüpfung von Wörtern zu Wortgruppen und Sätzen einer Sprache. Die Syntax einer Sprache wird durch eine endliche Menge von Regeln, die den Aufbau wohlgeformter Ausdrücke aus Grundelementen dieser Sprache festlegen, angegeben.
Szenario
Ein Szenario (engl. scenario) beschreibt eine aktuelle Arbeitssituation im Hinblick auf die Aufgaben im Anwendungsbereich. Es beschreibt ferner die Art und Weise, wie die jeweilige Aufgabe in einzelnen Verarbeitungsschritten auszuführen ist und die Bedingungen, unter denen dies zu erfolgen hat.
this
Das Schlüsselwort this bezeichnet im Rumpf einer Methode das gerade aktive Objekt.
Typ
Jedes Attribut und jeder Methodenparameter ist von einem bestimmten Typ (engl. type). Dies kann ein primitiver Datentyp (z.B. char), ein Aufzählungstyp, eine elementare Klasse oder eine Abstraktion sein. Methoden, deren Ergebnis nicht void ist, liefern ebenfalls ein Ergebnis eines bestimmten Typs.
Überschreiben
Mit Überschreiben (engl. overriding) bezeichnet man die erneute Implementierung einer ererbten Methode. Name, Anzahl und Typen der Parameter sowie der Ergebnistyp der Methode müssen dabei beibehalten werden.
Übersetzer
Ein Übersetzer (engl. compiler) ist ein Programm, das Ausdrücke einer bestimmten Programmiersprache, der Quellsprache, in gleichbedeutende Ausdrücke einer Zielsprache umsetzt.
UML
Die Unified Modeling Language (UML) ist eine Sprache zur Beschreibung verschiedener Aspekte von Softwaresystemen. Der Grundgedanke bei der UML bestand darin, eine einheitliche Notation für viele Einsatzgebiete zu haben. Die UML erlaubt die Beschreibung von Datenbankanwendungen ebenso wie die Darstellung von Echtzeitsystemen und Workflow-Anwendungen.
Die UML bietet verschiedene Diagrammarten mit unterschiedlichen grafischen Elementen an, wobei jedes Element eine festgelegte Bedeutung besitzt.
In der UML sind mehrere Vorgängertechniken vereint: Die wichtigsten sind OOSE (Object-Oriented Software Engineering), OMT (Object Modeling Technique) und OOD (Object-Oriented Design). Die Entwickler dieser Methoden - Ivar Jacobson, James Rumbaugh bzw. Grady Booch - sind auch die Urheber der UML. Die UML kann durch so genannte „Stereotypen“ erweitert werden.
Unicode
Unicode ist ein 16-bit Zeichensatz, der im ISO-Standard 10646 festgelegt ist.
Unterklasse
Jede Klasse, die von einer anderen Klasse Eigenschaften und Verhalten erbt, wird Unterklasse (engl. subclass) dieser Klasse genannt.
Variable
Eine Variable (engl. variable) benennt einen Speicherort für einen Wert eines bestimmten Typs. Der Inhalt des Speicherorts - und damit Wert der Variablen - kann sich während der Programmlaufzeit beliebig verändern. Über den Namen der Variablen kann auf den Wert zugegriffen und dieser verändert werden.
Vererbung
Mit dem Begriff Vererbung (engl. inheritance) bezeichnet man die Weitergabe der in einer Klasse angegebenen Eigenschaften und Fähigkeiten an die Unterklassen dieser Klasse. Diese ''spezialisierten Klassen'' erweitern die Liste der Attribute, Methoden und Assoziationen der Oberklasse.
Verhalten
Das Verhalten (engl. behavior) eines Objekts umfasst die beobachtbaren Effekte aller Operationen, die auf ein Objekt angewendet werden können.
Verteilte Anwendung
Eine verteilte Anwendung (engl. distributed application) ist eine vollständige, in sich geschlossene Problemlösung für einen bestimmten Anwendungsbereich, wobei das Problem durch (räumlich) verteilte Prozesse, die auch auf unterschiedlichen Plattformen (Rechnertypen, Betriebssysteme) ablaufen können, bearbeitet wird.
Vorbedingung
Eine Vorbedingung bezeichnet Eigenschaften, die gelten müssen, wenn eine Operation oder eine Methode aufgerufen werden.
Zustand
Der Zustand (engl. state) eines Computers ergibt sich aus den Werten in den Registern, in Programmzählern, im Hauptspeicher und in Zwischenspeichern zu einem Zeitpunkt.
Der Zustand eines Programms wird bestimmt durch die Werte der Variablen und Datenstrukturen zu einem Zeitpunkt.
Der Zustands eines Objekts ergibt sich aus der Wertebelegung der Attribute eines Objekts zu einem bestimmten Zeitpunkt.
Zustandsdiagramm
Ein Zustandsdiagramm (engl. state diagram) ist eine grafische Darstellung der Zustände, die ein Objekt im Laufe seines Lebens einnehmen kann sowie der möglichen Zustandsübergänge und die Bedingungen, unter denen solche Übergänge stattfinden.