Dienstag, 4. Juni 2013

Das Linguistic Modular Units Prinzip



Name, Kurzform
Linguistic Modular Units Prinzip
Synonyme
-
Beschreibung
Module müssen den syntaktischen Einheiten der verwendeten Sprache entsprechen. (…) Im Fall von Programmiersprachen müssen Module separat kompilierbar sein.“
[Meyer1998, S. 53]
Erläuterung
Dieses Prinzip von Bertrand Meyer setzt zwei elementare Bestandteile der Software-Entwicklung in Beziehung:
  • Sprachen
  • Module
Unter Sprachen versteht Meyer dabei beliebige Modellierungssprachen inklusive Programmiersprachen. Was ein Modul ist, soll dagegen u. a. gerade durch das Linguistic Modular Units Prinzip festgelegt werden. Meyer formuliert insgesamt
  • fünf Kritierien
  • fünf Regeln und
  • fünf Prinzipien
... um, alle zusammengenommen, die wichtigsten Anforderungen an eine modulare Entwurfsmethode abzudecken.“ [Meyer1998, S. 40]
Das Linguistic Modular Units Prinzip hat daher weniger eine unmittelbare praktische Relevanz. Im Zusammenspiel mit den anderen Kriterien, Regeln und Prinzipien liefert Meyer jedoch einen der präzisesten Modulbegriffe, der uns heute zur Verfügung steht.

Die Kernaussage des Linguistic Modular Units Prinzip besteht darin, dass wir nicht hoffen dürfen, modulare Software konstruieren zu können, wenn die verwendete Modellierungssprache das Modulkonzept nicht syntaktisch unterstützt. Im Fall von Programmiersprachen gilt präziser, dass wir nicht hoffen dürfen, modulare Software schreiben zu können, wenn Module nicht separat kompilierbar sind.

Ein Verstoß gegen das Linguistic Modular Units Prinzip verstößt gemäß Meyers Darstellung gegen eine Reihe der zuvor aufgestellten Kritierien und Regeln:
  • Kontinuität: „Um Kontinuität sicherzustellen, muss eine direkte Korrespondenz zwischen Spezifikation, Design und implementierenden Modulen bestehen.“
  • Direktes Mapping: Ohne eine Möglichkeit zur syntaktischen Identifikation der konzeptionellen Einheiten hält Meyer es nicht für möglich, den Zusammenhang zwischen der Struktur des Modells und der Struktur der Lösung zu bewahren.
  • Zerlegbarkeit: Meyer hält separierbare syntaktische Einheiten für erforderlich, um die Entwicklung eines Systems sauber in separate Aufgaben zu teilen.
  • Zusammensetzbarkeit: „Wie könnten wir irgendetwas anderes zusammensetzen als Module mit unzweifelhaften syntaktischen Grenzen?“
  • Schutz: „Man darf nur hoffen, die Reichweite von Fehlern eingrenzen zu können, wenn zwischen Modulen syntaktische Grenzen bestehen.“
(Alles in [Meyer1998, S. 54].)
Beispiel(e)
  • Versteht man eine Klasse als Modul, so erfüllt Java das Linguistic Modular Units Prinzip: Jede Java-Klasse ist separat zu einer .class-Datei kompilierbar. Klassen sind zudem syntaktisch eindeutig repräsentiert.
  • Als Gegenbeispiele nennt bereits Meyer die Sprachen C und Pascal.
Historie
Bertrand Meyer stellt in seiner Arbeit die Grundlagen der Objektorientierung dar. Dabei nimmt Modularität (engl. Modularity) eine besonders hohen Stellenwert ein. Für Meyer ist es nicht ausreichend, Module als Sammlungen von Subroutinen zu betrachten. Vielmehr akzeptiert er eine Methode zur Software-Konstruktion nur dann als modular, wenn sie zahlreichen Anforderungen genügt, die er als eine Menge von Kriterien, Regeln und Prinzipien beschreibt. Das Linguistic Modular Units Prinzip ist eine dieser Anforderungen.

Das Linguistic Modular Units Prinzip taucht heute in zahlreichen Darstellungen objektorientierter Entwurfsprinzipien auf. Man sollte sich jedoch verdeutlichen, dass es sich um ein viel fundamentaleres Konzept handelt, das für sich genommen noch nicht streng auf Objektorientierung beschränkt ist.
Art des Prinzips
  • Grundlegende Einteilung: Produktprinzip.
  • Technologiebezug: Übergreifend.
  • Entwurfsgüte: Bausteineigenschaft.
  • Handlungsbezug: Änderung, Wiederverwendung, Verstehen, Verteilung, Überprüfung.
  • Kognitionsbezug: Abstraktion, Komplexitätsreduktion.
(Siehe Kategorisierung der Prinzipien.)
Grad der formalen Spezifikation
Hoch, da explizit eine syntaktische Repräsentation des Modulkonzepts gefordert wird.
Vorteile
  • Präzises Kriterium für die Möglichkeit zur Anwendung modularer Entwurfsprinzipien.
  • Eingebettet in ein detailliertes System weiterer Kriterien, Regeln und Prinzipien.
Nachteile
Trotz der umfangreichen Ausarbeitung erscheint Meyers Fundierung des Modulkonzepts keineswegs alternativlos. Es fehlt ebenso eine mathematisch-formale wie auch eine empirische Rechtfertigung gerade dieser Ausarbeitung.
Übergeordnete Prinzipien
Gemäß Meyer:
  • Kontinuität
  • Direktes Mapping
  • Zerlegbarkeit
  • Zusammensetzbarkeit
  • Schutz
Abgleitete Prinzipien
Alle Prinzipien, die auf Modulen basieren.
Qualitätsmerkmale
(+) Änderbarkeit, (+) Wiederverwendbarkeit,
(+) Komplexität


Quellen

[Meyer1998] - Objekt-oriented Software Construction 2nd Edition, Bertrand Meyer (1998)