Freitag, 31. Mai 2013

Das Abstraktionsprinzip

Name, Kurzform
Abstraktionsprinzip
Synonyme
Prinzip der Abstraktion
Beschreibung
Bilde Abstraktionen.
Erläuterung
Das Abstraktionsprinzip ist eines jener Prinzipien, die so grundlegend für die Software-Entwicklung sind, dass sie kaum mehr als Handlungsanweisung verstanden werden können. Die Entwicklung von Software ohne Bildung von Abstraktionen ist praktisch nicht vorstellbar. Als übergeordnetes Prinzip, auf dem zahlreiche andere Prinzipien basieren, ist es jedoch von großer Bedeutung.
Beispiel(e)
Das Abstraktionsprinzip ist grundlegend für zahlreiche Tätigkeiten der Software-Entwicklung:
  • Abstraktion ist ein Basismechanismus menschlicher Kognition, der u. a. zur Erreichung folgender Ziele eingesetzt wird (siehe [Balzert1998]):
    • Erkennen, Ordnen, Klassifizieren
    • Trennen des Wesentlichen vom Unwesentlichen.
  • Abstraktion und ihr Gegenstück Konkretisierung sind die Grundlage jeder schrittweisen Verfeinerung (Top-Down-Ansatz, Teile und herrsche) und damit auch ein wesentliches Zerlegungskriterium.
  • Jegliche Modellbildung kann als Abstraktion betrachtet werden.
  • Elementare Konzepte von Programmiersprachen basieren auf Abstraktion, darunter Funktionen (funktionale Abstraktion), Datentypen (Datenabstraktion) oder Klassen (beides).
Historie
[Wang2007] gibt an, dass bereits Tony Hoare Abstraktion zu den wesentlichen Prinzipien der Softwaretechnik zählte. Erste Konzepte hierzu führte er bereits Ende der 60er Jahre ein.
Auch [Wasserman1996] zählt Abstraktion zu den fundamentalen Prinzipien, welche die Softwaretechnik als Ingenieursdisziplin ausmachen sollen.
Im deutschen Sprachraum wurde die Formulierung des Abstraktionsprinzips insbesondere durch [Balzert1998] eingeführt.
Wang selbst (ebenfalls [Wang2007]) nimmt das Abstraktionsprinzip als erstes von insgesamt 31 Prinzipien in sein „Integrated Set of Software Engineering Principles“ auf.
Art des Prinzips
  • Grundlegende Einteilung: Produkt, Prozess.
  • Technologiebezug: Allgemeingültig.
  • Entwurfsgüte: Zerlegungskriterium, Strukturprinzip.
  • Handlungsbezug: Änderung, Wiederverwendung, Verstehen.
  • Kognitionsbezug: Abstraktion.
(Siehe Kategorisierung der Prinzipien.)
Grad der formalen Spezifikation
Gering.
Vorteile
  • Allgemeine Anwendbarkeit.
  • Wichtige Grundlage für zahlreiche speziellere Prinzipien.
Nachteile
  • Die Bildung „richtiger“ Abstraktionen ist nicht trivial.
  • Abstraktion kann auch zur Erschwerung des Verstehens führen (siehe Nichttrivialität der Softwaretechnik).
  • Die Bildung von Abstraktionen kann erhöhten Umsetzungsaufwand verursachen.
Übergeordnete Prinzipien
-
Abgleitete Prinzipien
  • Geheimnisprinzip
Qualitätsmerkmale
(+) Änderbarkeit, (+) Verständlichkeit, (+) Wiederverwendbarkeit, (+) Komplexität

Quellen

[Balzert1998] - Lehrbuch der Software-Technik, Helmut Balzert, 1998
[Wang 2007] - Software Engineering Foundations - A Software Science Perspective, Wang, Yingxu (2007)
[Wasserman1996] - Toward a Discipline of Software Engineering, IEEE Software, Nov.,
pp.23-31., Wasserman, A. (1996)