Fachkonzept - Modularisierung

Bausteinprinzip

Modularisierung ist ein Prinzip, nach dem viele Systeme entwickelt werden. Die Idee besteht darin, das Gesamtsystem nach dem Bausteinprinzip 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 können als einfache Umsetzungen des Modularisierungsprinzips angesehen werden. Wenn man Funktionen als eigenständige Verarbeitungseinheiten konzipiert, dann lassen sie sichbei der Entwicklung von Programmen nach dem Baukastenprinzip verwenden. Man muss bei der Verwendung als Baustein nur die Schnittstelle der Funktion genau kennen.

Schnittstelle einer Funktion

Die Schnittstelle einer Funktion legt sämtliche Informationen fest, die man wissen muss, um diese Verarbeitungseinheit benutzen zu können.

Man kann diese Informationen aus dem Quelltext der Funktion erschließen. Oft will man aber nicht alle Details des Quelltextes genau analysieren, um an die erforderlichen Informationen heranzukommen, sondern die Funktion direkt nutzen. Es reicht dann, Antworten auf die folgenden Fragen zu haben:

Antworten auf diese Fragen liefern die Signatur der Funktion und eine Verhaltensbeschreibung.

Signatur einer Funktion

Die Signatur einer Funktion legt den Namen der Funktion fest sowie die Anzahl, Reihenfolge und Typen ihrer Parameter. Bei Funktionen mit Rückgaben wird zusätzlich der Typ des Rückgabewerts festgelegt.

Als Beispiel betrachten wir die Funktion verschluesselterText mit folgender Funktionsdefinition:

def verschluesselterText(klartext, schluessel):
    geheimtext = ''
    for zeichen in klartext:
        neuesZeichen = verschluesseltesZeichen(zeichen, schluessel)
        geheimtext = geheimtext + neuesZeichen
    return geheimtext

Die Signatur wird im wesentlichen durch den Funktionskopf beschrieben. Zu einer vollständigen Signatur fehlen noch Angaben über die Datentypen, die bei der Aktualisierung der Parameter zu beachten sind und der Datentyp, der beim zurückgegebenen Funktionswert zu erwarten ist.

Verhalten einer Funktion

Neben diesen formalen Aspekten muss man natürlich auch wissen, was die Funktion leistet und wofür die Parameter stehen (s. o.).

Oft ist es günstig, das Verhalten einer Funktion / Prozedur anhand eines oder mehrerer Beispiele zu verdeutlichen. Wir beschreiben solche Beispiele oft als erwartete Python-Dialoge.

>>> verschluesselterText('HUND', 'GKXCSLZUAHWDBMTYENJVPOIRFQ')
'UPMC'

Schnittstellenbeschreibung

Wir verwenden verschiedene Formen der Schnittstellenbeschreibung. Oft begnügen wir uns mit einem Black-Box-Diagramm.

Black-Box zur Funktion

Im Quelltext stellen wir die erforderlichen Informationen in der folgenden Weise dar:

def verschluesselterText(klartext, schluessel):

    # klartext: Zeichenkette aus Großbuchstaben
    # schluessel: Zuordnungstabelle in Form einer Zeichenkette
    # return: neue, mit der Zuordnungstabelle konstruierte Zeichenkette
    # Beispiel:

    """
    >>> verschluesselterText('HUND', 'GKXCSLZUAHWDBMTYENJVPOIRFQ')
    'UPMC'
    """

    geheimtext = ''
    for zeichen in klartext:
        neuesZeichen = verschluesseltesZeichen(zeichen, schluessel)
        geheimtext = geheimtext + neuesZeichen
    return geheimtext

Quellen

Foto: Lego-Steine und -platten - Urheber: Priwo - Lizenz: public domain

X

Fehler melden

X

Suche