Name, Kurzform | Geheimnisprinzip |
Synonyme | Prinzip der Geheimhaltung, Information Hiding (-Prinzip), Prinzip der Kapselung (engl. encapsulation) |
Beschreibung | Außerhalb eines Software-Elements sollen die Interna dieses Elements nicht sichtbar sein. |
Erläuterung |
Die
oben notierte Kurzversion des Geheimnisprinzips bedarf einiger
Erläuterung:
Als
Software-Element kommt jede syntaktische oder physikalische
Einheit einer Software in Betracht, die Funktionen
oder Daten oder beides beherbergt und die über eine öffentliche
Zugriffsschnittstelle verfügt. Beispiele solcher
Software-Elemente sind Module, Klassen, Komponenten, Bundles,
Services, Anwendungen u.v.m.
Es
sollen insbesondere folgende Eigenschaften solcher
Software-Elemente verborgen werden:
Das
Geheimnisprinzip steht in enger Verwandtschaft mit einigen anderen
sehr grundlegenden Prinzipien:
|
Beispiel(e) |
Programmiersprachen:
Modularisierungs-Technologie:
Entwurf:
Gegenbeispiel:
|
Historie |
David
Parnas hat zur „Entdeckung“ des Geheimnisprinzips in
[Parnas2002] eine amüsante Geschichte erzählt, die zugleich
verdeutlicht, dass dieses heute weithin anerkannte Prinzip
zunächst durchaus auf den Widerstand von Fachkollegen stieß. Ein
Artikel, den Parnas einer Fachzeitschrift zusandte, wurde vom
Reviewer mit den Worten
zunächst
abgelehnt. Als erste Veröffentlichung gilt heute Parnas Artikel
„On the Criteria To Be Used in Decomposing Systems into Modules“
[Parnas1972]. Parnas stellt in diesem Artikel zwei Möglichkeiten
zur Zerlegung eines angenommenen Beispiel-Systems einander
gegenüber:
|
Art des Prinzips |
|
Grad der formalen Spezifikation |
Im
Falle syntaktischer Unterstützung in folgender Hinsicht hoch:
Weniger
gut formalisierbar sind folgende Aspekte:
|
Vorteile |
|
Nachteile |
|
Übergeordnete Prinzipien |
|
Abgleitete Prinzipien | - |
Qualitätsmerkmale |
(+)
Komplexität, (+) Änderbarkeit, (+) Testbarkeit,
(+)
Wiederverwendbarkeit, (+) Verständlichkeit,
(+) Zuverlässigkeit |
Quellen
[Parnas1972] – On the Criteria To Be Used in Decomposing Systems into Modules, David L. Parnas, in: Communications of the ACM, 1972
[Parnas2002]
– Software Pioneers, Hrsg. M. Broy und E. Denert, Kapitel The
Secret History of Information Hiding
(ab Seite 399), David L. Parnas, 2002