i

Fachkonzept - Modularisierung

Baukastenprinzip

Modularisierung ist ein Prinzip, nach dem viele Systeme entwickelt werden. Die Idee besteht darin, das Gesamtsystem nach dem Baukastenprinzip aus wiederverwendbaren Einzelbausteinen (den sogenannten Modulen) zusammenzusetzen. Modularisierung erleichtert es, komplexe Systeme zu entwickeln.

Bausteine
Quelle: Wikimedia Commons

Modularisierung wird nicht nur im täglichen Leben, sondern auch in vielen Bereichen der Informatik intensiv benutzt, so auch bei der Entwicklung von Programmen.

Funktionen als Bausteine

Funktionen können als einfache Umsetzungen des Modularisierungsprinzips angesehen werden. Wenn man Funktionen als eigenständige Verarbeitungseinheiten konzipiert, dann lassen sie sich als Bausteine bei der Entwicklung von Programmen verwenden.

Im folgenden Quelltext sind Funktionsdefinitionen zusammengefasst, man deren Hilfe man Zählprobleme bei Datumsangaben bearbeiten kann.

def schaltjahr(jahr):
    if (jahr % 400 == 0) or ((jahr % 4 == 0) and not (jahr % 100 == 0)):
        return True
    else:
        return False

def anzahlTageImMonat(monat, jahr):
    if monat in [1, 3, 5, 7, 8, 10, 12]:
        anzahl = 31
    elif monat in [4, 6, 9, 11]:
        anzahl = 30
    elif schaltjahr(jahr):
        anzahl = 29
    else:
        anzahl = 28
    return anzahl

def naechstesDatum(datum):
    (tag, monat, jahr) = datum
    if tag < anzahlTageImMonat(monat, jahr):
        tag = tag + 1
    elif monat < 12:
        tag = 1
        monat = monat + 1
    else:
        tag = 1
        monat = 1
        jahr = jahr + 1
    return (tag, monat, jahr)

Wenn man diese Bausteine in einer Datei tagezaehlen.py abspeichert, dann kann man die Bausteine wie folgt in Programmen verwenden.

# Import von Bausteinen
from tagezaehlen import *

# Verwendung der Bausteine
# Initialisierung
datumGeburt = (11, 11, 2002)
datumHeute = (1, 1, 2021)
# Verarbeitung
anzahlTage = 0
datum = datumGeburt
while datum != datumHeute:
    datum = naechstesDatum(datum)
    anzahlTage = anzahlTage + 1
while anzahlTage > 0:
    datum = naechstesDatum(datum)
    anzahlTage = anzahlTage - 1
# Ausgabe
print("geboren am:", datumGeburt)
print("heute:", datumHeute)
print("doppelt so alt am:", datum)

Vorteile von Modularisierung

Strukturierung von Programmen: Bausteine helfen, Programme klar zu strukturieren. Programme, die aus gut dokumentierten Bausteinen aufgebaut sind, können schneller verstanden und infolgedessen auch leichter überarbeitet werden.

Vermeidung von Codeduplizierung: Bausteine helfen, unnötige Codeduplizierungen in Programmen zu vermeiden. Der gleiche Programmcode muss nicht mehrfach geschrieben werden. Stattdessen kann man mit einem Funktionsaufruf einen vorher als Baustein ausgelagerten Programmcode aktivieren.

Wiederverwendung von Programmteilen: Programmteile, die als unabhängige Bausteine konzipiert sind, können in verschiedenen Programmen verwendet werden. Wenn gut getestete Bausteine bereits vorliegen, dann können Programme schneller und zuverlässiger entwickelt werden.

Quellen

Suche

v
6.3.2.12.2
dev.inf-schule.de/imperative-programmierung/python/konzepte/module/konzept_modularisierung
dev.inf-schule.de/6.3.2.12.2
dev.inf-schule.de/@/page/IjZRjtGh4Usi7jKF

Rückmeldung geben