Module
Ein Modul in der Informationstechnologie ist ein eigenständiger Baustein eines Softwaresystems, der folgende Eigenschaften aufweist:
Grundlegende Definition
Ein Modul ist eine funktional geschlossene Einheit innerhalb eines Softwaresystems, die eine klar abgegrenzte Aufgabe erfüllt und einen bestimmten Dienst bereitstellt. Es handelt sich um eine selbständige programmtechnische Einheit, die aus Operationen und eng zusammenhängenden Daten besteht.
Eigenschaften eines Moduls
- Abgrenzung: Ein Modul hat eine klar definierte Schnittstelle zur Außenwelt und kapselt seine internen Details.
- Unabhängigkeit: Module können weitgehend unabhängig voneinander entwickelt, getestet und gewartet werden.
- Wiederverwendbarkeit: Module sind so konzipiert, dass sie in verschiedenen Kontexten wiederverwendet werden können.
- Austauschbarkeit: Bei Beibehaltung der Schnittstelle kann ein Modul ausgetauscht werden, ohne andere Teile des Systems zu beeinflussen
Struktur eines Moduls
Ein typisches Softwaremodul besteht aus zwei Hauptkomponenten:
- Modulspezifikation (Schnittstelle): Definiert die nach außen sichtbaren Funktionen und Daten des Moduls.
- Modulimplementierung (Rumpf): Enthält die tatsächliche Implementierung der Funktionalität, die nach außen verborgen bleibt
Arten von Modulen
Je nach Modularisierungsprinzip unterscheidet man verschiedene Typen von Modulen:
- Datenorientierte Module: Stellen Datenobjekte und/oder Datentypen bereit.
- Funktionsorientierte Module: Enthalten hauptsächlich Operationen und Funktionen.
Vorteile der Modularisierung
Die Verwendung von Modulen in der Softwareentwicklung bietet mehrere Vorteile:
- Verbesserte Wartbarkeit und Verständlichkeit des Gesamtsystems
- Ermöglichung von Arbeitsteilung in der Entwicklung
- Erhöhte Wiederverwendbarkeit von Codebestandteilen
- Vereinfachtes Testen einzelner Komponenten
- Bessere Skalierbarkeit und Flexibilität des Systems
Durch die Aufteilung komplexer Systeme in überschaubare, eigenständige Module wird die Entwicklung, Wartung und Erweiterung von Software erheblich erleichtert.
Wenn Python alle Module des Pakets mit der import * -Syntax importieren soll, müssen wir ihm die Namen aller dieser Module mitteilen.
Auf Code aus anderen Modulen zugreifen
Wir beginnen diesen Abschnitt damit, den Unterschied zwischen absoluten und relativen
Importen zu verstehen, fahren dann mit dem Schreiben dieser fort und betrachten schließlich zyklische Abhängigkeiten.
Wenn wir eines der Module des Pakets von außerhalb des Pakets importieren, gibt es
nur eine sinnvolle Möglichkeit, wie das funktionieren könnte: Wir sagen Python, welches Paket und Modul wir
möchten, und es findet und importiert es entweder oder löst eine Ausnahme aus, wenn es nicht kann. Ganz einfach!
import packagename.modulname
Andererseits ist externer Code, der unser Paket aufruft, am besten, wenn er
unseren Code mit nur einer oder zwei Importanweisungen nutzen kann, die eine kleine Anzahl
von Funktionen oder Klassen einbringen. Dies ist die Schnittstelle des Pakets und als Faustregel sollte sie so
minimal wie möglich sein, während die volle Funktionalität erhalten bleibt, wie im folgenden Codebeispiel gezeigt:
Variablen im Modul
Das Modul kann Funktionen enthalten, aber auch Variablen aller Art (Arrays, Wörterbücher, Objekte usw.):
person1 = {
"name": "Mandy",
"age": 47,
"country": "Germany"
}
Dies kann in der Datei meinmodul.py gespeichert werden und dann importiert werden.
import meinmodul
a = meinmodul.person1["age"]
print(a)