- Software-Modul
-
Ein Modul ist eine abgeschlossene Komponente einer Software, bestehend aus einer Folge von Verarbeitungsschritten und Datenstrukturen. Inhalt eines Moduls ist häufig eine wiederkehrende Berechnung oder Bearbeitung von Daten, die mehrfach durchgeführt werden muss.
Module bieten eine Kapselung (encapsulation) durch die Trennung von Schnittstelle und Implementierung:
- Die Schnittstelle eines Moduls definiert die Datenelemente, die als Eingabe und Ergebnis der Verarbeitung durch das Modul benötigt werden.
- Die Implementierung enthält den tatsächlichen Programmcode.
Ein Modul wird z. B. als Funktion oder Unterprogramm aufgerufen, führt eine Reihe von Verarbeitungsschritten durch und liefert als Ergebnis Daten zurück an das aufrufende Programm. Ein Modul kann selbst weitere Module aufrufen - so ist eine Hierarchie von Programmaufrufen möglich.
Module sind aus mehreren Gründen von Bedeutung:
- Programmlogik wird wiederverwendbar, ohne dass Code redundant erstellt und gepflegt werden muss.
- Module können in vielen Programmiersprachen separat kompiliert und in Form von Programmbibliotheken bereitgestellt werden.
- Große, komplexe Programme können durch den Einsatz von Modulen gegliedert und strukturiert werden. Funktionalitäten können nach dem Baukastenprinzip eingebunden und für kommerzielle Anwendungen separat lizenziert werden.
- Mehrere Entwicklergruppen können unabhängig voneinander einzelne Module bearbeiten und testen.
Entwurf und Definition von Modulen und Schnittstellen ist Teil der Designphase in der Softwareentwicklung.
Zu unterscheiden sind Module von den Klassen der objektorientierten Softwareentwicklung:
- Von Klassen können Exemplare in Form von Objekten erzeugt (instanziert) werden,
- Klassen können Eigenschaften an andere Klassen vererben,
- Polymorphismus erlaubt es Klassen, Eigenschaften zur Laufzeit zu verändern – Beziehungen zwischen Modulen sind statisch.
Das Modulkonzept wurde zuerst von David Parnas publiziert.
Zahlreiche Programmiersprachen unterstützen das Modulkonzept durch integrierte Sprachmittel, beispielsweise Ada, COBOL, D, F, Fortran, Haskell, ML, Modula-2, Oberon und Component Pascal. Daneben sind Skriptsprachen wie Perl, Python, PHP und Ruby zu nennen.
Siehe auch
Wikimedia Foundation.