Modul

Die Modularisierung von Software berücksichtigt, daß ein in kleine Teile gegliedertes Problem einfacher zu bearbeiten ist. "Klein" heißt, daß ein Modul nur eine maximale Anzahl von Anweisungen umfassen darf.  Ein Modul ist ein Programmteil mit einem Eingang und einem Ausgang und kann selbständig übersetzt und ausgeführt werden. Module verkehren nur über Schnittstellen miteinander, über die Werte (Parameter)  vom rufenden an das aufgerufene Modul übergeben werden. Ein Modul soll als Black Box aufgefasst werden: es sind nur die Schnittstellen bekannt und nichts über das Innenleben. Ein Modul  weiss auch nichts vom Innenleben eines anderen Moduls (Geheimnisprinzip). Da man nur wissen muss, welches Datenformat heraus kommt (Output) und welche Daten zugeführt werden (Input), erleichtert dies die Einbindung des Moduls  innnerhalb des Programmcodes und die Kommunikation der Module untereinander.

Man spricht auch von einer Kapselung: Trennung von Implementierung (der eigentliche Programmcode) und Schnittstellen.  Module können wiederverwendet werden oder separat kompiliert und als Bibliotheksdatei verwendet werden. Module erlauben eine Auslagerung von bestimmten Programmfunktionen. Diese können  nach dem Baukastenprinzip zusammengestellt und auch einzeln lizenziert werden. Auch der Aufbau verschiedener Software-Versionen mit unterschiedlichen Fähigkeiten ist dadurch möglich. Diese können  auch separat vermarktet werden.  Das Modulkonzept wird von einigen Programmiersprachen direkt unterstützt: Component PASCAL, Modula 2, Fortran, Cobol, Ada, D, PHP, Python, Perl oder Ruby.                                         
Siehe auch:    CASE   Strukturierte-Analyse   UML   Objektorientierte-Programmierung   API   Datei-Endung-DLL   Linker   Parser   ADA   PASCAL