Name, Kurzform | Prinzip der minimalen intellektuellen Distanz |
Synonyme | Lowering
the Representational Gap, Regel des direkten Mappings |
Beschreibung |
Die
Abbildung eines realweltlichen Problems auf seine
softwaretechnische Lösung soll eine minimale intellektuelle
Distanz aufweisen.
Bertrand Meyer formuliert seine Direct Mapping-Regel wie folgt: "Die modulare Struktur, die im Zuge der Konstruktion eines Software-Systems entworfen wurde, sollte mit der modularen Struktur, die bei der Modellierung der Problem-Domäne entworfen wurde, in Übereinstimmung bleiben." [Meyer1998]Eine prägnante Formulierung, die auf Meyers Regel basiert, könnte wie folgt lauten: Die Struktur der Software sollte der Struktur des Weltausschnitts, den die Software abbildet, so ähnlich wie möglich sein. |
Erläuterung |
Das
ganze Ausmaß der hier gemeinten intellektuellen Distanz wird sehr
anschaulich in folgendem Zitat von Edsger W. Dijkstra:
Praktisch
alle Autoren, die das Konzept oder Prinzip zitieren, gehen davon
aus, dass der Leser eine intuitive Vorstellung davon hat, was hier
mit „intellektueller Distanz“ gemeint ist. Bereits der erste
auffindbare Literaturnachweis des Prinzips zeigt jedoch, dass dies
keineswegs immer so klar ist:
„Ein fundamentales Prinzip der Softwaretechnik ist es, Software so zu entwerfen, dass die intellektuelle Distanz zwischen Problem und Lösung so klein wie möglich wird; dabei ist allerdings die Vielfalt der Ansätze, Software zu entwickeln, lediglich durch die Kreativität und den Einfallsreichtum des Programmierers beschränkt. Es ist oft nicht klar, welcher Ansatz die intellektuelle Distanz minimiert, und oftmals reduzieren unterschiedliche Ansätze auch unterschiedliche Dimensionen der intellektuellen Distanz.“ [Fairley1985] |
Beispiel(e |
Zahlreiche
Werkzeuge und Technologien dienen der Überbrückung der
intellektuellen Distanz:
|
Historie |
|
Art des Prinzips |
|
Grad der formalen Spezifikation | Keine formale Spezifikation. |
Vorteile |
|
Nachteile |
|
Übergeordnete Prinzipien | - |
Abgleitete Prinzipien | - |
Qualitätsmerkmale |
(+)
Verständlichkeit, (+) Wartbarkeit, (+) Änderbarkeit,
(+)
Wiederverwendbarkeit |
Quellen
[Davis1994] - Fifteen
Principles of Software Engineering, Alan M. Davis (1994)
[Davis1995] - 201
Principles of Software Development, Alan M. Davis (1995)
[Dijkstra1972]
- The Humble Programmer,
Dijkstra, W. E. (1972)
[Dijkstra1988]
- On the Cruelty of Really Teaching Computer
Science, Dijkstra,
W. E. (1988)
[Evans2003]
- Domain-Driven
Design. Tacking Complexity in the Heart of Software,
Evans, E. (2003)
[Fairley1985]
- Software Engineering Concepts,
Fairley, R. E. (1985)
[Larman2002]
- Applying UML and Patterns, Second Edition,
frei verfügbar unter http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandPatterns.pdf, Larman, C. (2002)
[Meyer1998] - Objekt-oriented Software Construction 2nd Edition, Bertrand Meyer (1998)
[Meyer1998] - Objekt-oriented Software Construction 2nd Edition, Bertrand Meyer (1998)