Modularisierungsregeln ◦ Überblick ◦ ?

### Allgemeiner Modulbegriff

Nach einer allgemeinen Definition ist ein Modul ein möglichst selbständiger Entwurfs- oder Programmbaustein mit ...

1. maximaler intramodularer Bindung,
2. minimaler intermodularer Koppelung und
3. Blackbox-Schnittstelle.

Wer die intramodulare Bindung eines Moduls maximiert, strebt nach ...

- hoher Kontextunabhängigkeit (Selbstständigkeit),
- Wiederverwendbarkeit,
- Unifunktionalität (Jedes Modul erfüllt nur einen einzigen Zweck)
- einem geringen Modulumfang.

Man vermeidet deshalb ...

- zufällige Bindungen, zum Beispiel eine Modularisierung nur aus Speichergründen,
- rein zeitliche Bindungen, etwa eine Modularisierung, die nur hintereinanderstehende Unterprogramme vereinigt,
- rein kommunikative Bindungen, zum Beispiel eine Modularisierung, die Unterprogramme vereinigt, welche gleiche Daten benutzen.

Wer die intermodulare Koppelung eines Moduls minimiert, vermeidet globale Variablen und parameterlose Unterprogramme. Er verbessert so nicht nur die Verständlichkeit des Moduls, sondern auch dessen Wiederverwendbarkeit. Globale Variablen führen nämlich dazu, dass Änderungen der Modulinterna (zur Entwicklungs- oder Laufzeit) auch andere Module betreffen. Eine geschickte Modularisierung wird deshalb ...

- das Modul so entwerfen, dass eine aufrufende Prozedur nur die Aufrufschnittstelle (Name, Rückgabewert und Parameter) und keine globalen Objekte berücksichtigen muss (Modul als Black Box),
- die Schnittstellenbreite (die Zahl der Parameter) möglichst gering halten und
- Module vermeiden, deren Wirkung von vorangehenden Aufrufen abhängt.

### Programmiersprachliche Operationalisierungen

Je nach Implementationswerkzeug und Art des Projekts wird die Moduldefinition unterschiedlich ausfallen: Ein weiterer programmiersprachlicher Begriff bezeichnet zum Beispiel eine Einheit von Bezeichner und Anweisungen als Modul. Module in diesem Sinn wären alle Unterprogramme und sogar alle Sprungmarken mit den dazugehörigen Anweisungen. Eine engere programmiersprachliche Definition versteht unter einem Modul hingegen jede Einheit aus einem extern aufrufbaren Bezeichner und getrennt übersetzbaren Anweisungen. Ein Modul in diesem Sinn wäre zum Beispiel jedes getrennt kompilierte Unterprogramm, das unter seinem Bezeichner (und allfälligen Parametern) von einem anderen Programm aufgerufen werden kann.

Module in Access