Donnerstag, 28. November 2013

Das Modularisierungsprinzip

Name, Kurzform Modularisierungsprinzip
Synonyme
Prinzip der Modularisierung,
Prinzip der Zerlegung,
Prinzip der Dekomposition
Beschreibung Konstruiere Software aus syntaktisch identifizierbaren, für die Realisierung der heutigen und künftigen Systemfunktionen geeigneten Bausteinen.
Erläuterung
Diese Definition versucht zum einen, eine zu enge Bedeutung zu vermeiden (z. B. sich auf „Module“ im Sinne von Parnas zu beschränken), und zum anderen, die Bedeutung ergänzender oder verwandter Prinzipien (wie z. B. des Geheimnisprinzips) nicht vorwegzunehmen.

Abgrenzung a): Das Prinzip „Teile und herrsche“ (divide et impera) klingt ebenfalls nach einem möglichen Synonym, wird jedoch oftmals eher im Sinne einer Vorgehensweise als im Sinne einer Systemeigenschaft verstanden.

Abgrenzung b): Das Prinzip „Separation of Concerns“ könnte ebenfalls gleichbedeutend mit dem Modularisierungsprinzip sein. Für den „Separation“-Teil trifft dies sicherlich zu, mit „Concerns“ schwingt jedoch eine semantische Einschränkung mit.
Beispiel(e)
  • Module in MODULA-2.
  • Abstrakte Datentypen.
  • Klassen und Interfaces in der Objektorientierung.
  • Komponenten der UML.
  • Bundles in OSGi.
  • Services in serviceorientierten Architekturen.
Historie Zur Geschichte der Modularisierung wurde im Artikel Modularisierung in der Softwaretechnik bereits einiges notiert.
Art des Prinzips
  • Grundlegende Einteilung: Produkt.
  • Technologiebezug: Übergreifend.
  • Entwurfsgüte: Strukturprinzip.
  • Handlungsbezug: Änderung, Überprüfung, Betrieb, Verteilung, Wiederverwendung, Verstehen.
  • Kognitionsbezug: Abstraktion, Hierarchisierung, Komplexitätsreduktion.
(Siehe Kategorisierung der Prinzipien.)
Grad der formalen Spezifikation
  • Hinsichtlich der in der Definition geforderten syntaktischen Identifizierbarkeit hoch.
  • Hinsichtlich der in der Definition geforderten Eignung für „heutige und künftige Systemfunktionen“ nicht vorhanden.
Vorteile
  • Sehr weiter Anwendungsbereich.
  • Ist fundamental für zahlreiche weitere Prinzipien.
  • Beeinflusst zahlreiche Qualitätsmerkmale.
  • Syntaktisch in den meisten modernen Programmiersprachen bis zur Modul-/Klassenebene gut unterstützt.
Nachteile
  • Es ist sehr umfangreiche und detaillierte Information über das heutige und künftige Systemverhalten erforderlich, um eine geeignete Modularisierung zu entwerfen.
  • Es sind umfangreiche Kenntnisse über Zerlegungskriterien erforderlich, um eine geeignete Modularisierung zu entwerfen.
  • Syntaktisch oberhalb der Modul-/Klassenebene in den wenigsten Programmiersprachen gut unterstützt.
  • Seine Allgemeinheit lässt viel Spielraum auch für schlechte Lösungen.
Übergeordnete Prinzipien -
Abgleitete Prinzipien Siehe Modularisierung – verwandte Prinzipien.
Qualitätsmerkmale
(+) Änderbarkeit, (+) Verständlichkeit,
(+) Wiederverwendbarkeit, (+) Komplexität,
(+) Austauschbarkeit, (+) Prüfbarkeit