Modul (Software)
aus Freepedia, der freien Wissensdatenbank
Ein Modul ist ein abgeschlossener Teil eines Softwareprogramms, 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 (Interface) und Implementierung:
- Die Schnittstellt 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 Software-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 Design-Phase in der Software-Entwicklung.
Zu unterscheiden sind Module von den Klassen der objektorientierten Softwareentwicklung:
- Klassen können in Form von Objekten instantiiert 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 und Modula-2. Daneben sind Skriptsprachen wie Perl, Python oder PHP zu nennen.



