Definition
Abstraktion ist ein grundlegendes Konzept in der Informatik und Softwareentwicklung, das darauf abzielt, die Komplexität eines Systems zu reduzieren. Dabei werden nur die relevanten Details eines Objekts oder Prozesses dargestellt, während unwichtige oder komplexe Informationen ausgeblendet werden. Ziel ist es, die Verständlichkeit und Handhabung von Systemen zu erleichtern.
Das Prinzip der Abstraktion ermöglicht es, sich auf die wesentlichen Eigenschaften eines Systems zu konzentrieren, ohne sich mit allen Einzelheiten beschäftigen zu müssen. Dies erleichtert die Entwicklung, Wartung und Erweiterung von Software sowie die Kommunikation zwischen Entwicklern.
Hintergrund und Ursprung
Der Begriff Abstraktion stammt ursprünglich aus der Philosophie und wurde später in die Informatik übernommen. In der Informatik wurde Abstraktion besonders durch die Entwicklung der Programmiersprachen und der objektorientierten Programmierung in den 1960er und 1970er Jahren geprägt.
Sprachen wie Simula und später C++ und Java implementierten Abstraktion als zentrales Prinzip, um komplexe Softwaresysteme modular und übersichtlich zu gestalten. Die Abstraktion ist damit ein Schlüsselkonzept zur Strukturierung von Software.
Funktionsweise der Abstraktion
Abstraktion funktioniert durch das Herausfiltern von Details und das Bereitstellen einer vereinfachten Schnittstelle. Beispielsweise kann eine Klasse in der objektorientierten Programmierung interne Daten und Methoden verbergen und nur ausgewählte Funktionen nach außen freigeben.
Dadurch können Nutzer oder andere Komponenten eines Systems mit der abstrakten Schnittstelle interagieren, ohne die interne Implementierung zu kennen. Dies fördert die Wiederverwendbarkeit und reduziert Fehlerquellen.
Einsatzgebiete der Abstraktion
Abstraktion findet in vielen Bereichen der Informatik Anwendung, etwa bei der Entwicklung von Programmiersprachen, Datenbanken, Netzwerken und Betriebssystemen. Sie erleichtert das Management komplexer Systeme durch die Schaffung von Ebenen mit unterschiedlichem Detaillierungsgrad.
Auch in der Modellierung von Geschäftsprozessen oder bei der Gestaltung von Benutzeroberflächen wird Abstraktion genutzt, um komplexe Sachverhalte verständlich darzustellen und handhabbar zu machen.
Abgrenzung zu verwandten Konzepten
Abstraktion wird oft mit Begriffen wie Modularisierung oder Kapselung verwechselt, die jedoch unterschiedliche Aspekte der Softwareentwicklung beschreiben. Während Abstraktion die Vereinfachung durch Ausblenden von Details meint, bezieht sich Modularisierung auf die Zerlegung eines Systems in unabhängige Module.
Kapselung hingegen beschreibt das Verbergen von Daten innerhalb eines Moduls oder Objekts. Abstraktion ist somit ein übergeordnetes Konzept, das durch Kapselung umgesetzt werden kann, aber nicht darauf beschränkt ist.