Der Funktionsträger ist die Komponente, die die Aktion ausführt (Sender) und das Objekt der Funktion ist die Komponente, auf welche die Aktion einwirkt (Empfänger).
Eine Funktion findet statt, wenn die folgenden drei Voraussetzungen erfüllt werden:
- Funktionsträger und Objekt der Funktion müssen erlaubte Komponenten sein (domänenspezifische Restriktionen aus der Komponentenanalyse müssen beachtet werden, siehe Post „Domänenspezifische Funktionsanalyse“).
- Funktionsträger und Objekt der Funktion müssen miteinander interagieren (domänenspezifische Restriktionen aus der Interaktionsanalyse müssen beachtet werden, siehe Post „Domänenspezifische Funktionsanalyse“).
- Mindestens ein Wert einer Eigenschaft des Objekts der Funktion wird verändert oder stabil gehalten aufgrund der Funktion des Funktionsträgers (siehe Posts „Parameter in der Funktionsanalyse“ und „Zauberstab-Methode“)
Ein Funktionsträger kann dabei mehrere Funktionen auf ein Objekt der Funktion haben. Dabei verändern oder erhalten diese unterschiedlichen Funktionen verschiedene Eigenschaftswerte des Objekts.
Zum Beispiel bei einer Isolierkanne: Deren Funktion ist „Flüssigkeit halten“. Wenn wir in dieses „Halten“ genauer betrachten, dann stellen wir fest, dass es mehrere „Halten“ sind: Eine „Halten“-Funktion zielt darauf ab, die Position der Flüssigkeit zu bestimmen. Eine andere „Halten“-Funktion erhält die Form der Flüssigkeit und eine dritte „Halten“-Funktion bezieht sich auf die Temperatur der Flüssigkeit, die stabil gehalten werden soll.
Habt ihr euch schon mal solche Gedanken zu den Funktionen zwischen Funktionsträger und Objekt der Funktion gemacht? Zu welchen Schlüssen seid ihr gekommen?