WikiDer > Funktionale Zersetzung
Funktionale Zersetzung ist eine Möglichkeit, a . zu entwerfen System analysieren. Eine funktionale Zerlegung ist a hierarchisch Sammlung von (Teil)Funktionen. Die funktionale Dekomposition zielt darauf ab, ähnliche Operationen in einer Allzweckfunktion unterzubringen und ähnliche Operationen darin in anderen Funktionen usw.
Dieses Prinzip wird innerhalb der Softwareentwicklung.
Beispiel
Betrachten Sie den folgenden Codeausschnitt, der das Vorzeichen eines Zahlenpaars berechnet:
inti1,i2;// das Vorzeichen der Zahl x1 bzw. die Zahl x2wenn(x1>0){i1=1;}sonstwenn(x1<0){i1=-1;}sonst{i1=0;}wenn(x2>0){i2=1;}sonstwenn(x2<0){i2=-1;}sonst{i2=0;}Das Fragment wenn .. sonst wenn .. sonst kommt zweimal vor und macht in beiden Fällen dasselbe, allerdings mit zwei verschiedenen Zahlen als Eingabe. Die funktionale Zerlegung führt zum Entwurf einer Funktion, die diese Operation mit einer beliebigen Zahl ausführt, hier X:
intSchild(schwebenX){wenn(X>0){Rückkehr1;}sonstwenn(X<0){Rückkehr-1;}sonst{Rückkehr0;}}Das ursprüngliche Code-Snippet kann jetzt vereinfacht werden zu:
inti1,i2;i1=Schild(x1);i2=Schild(x2);Funktionen mit Speicher
In der Praxis kommt es häufig vor, dass bestimmte Werte für die Funktionsparameter häufig vorkommen. Um Zeit zu sparen, kann ein Speicher mit den „häufig gestellten Fragen“ und den dazugehörigen „Antworten“ genutzt werden.
Wenn die Antwort jedoch von anderen Umständen als der gestellten Frage abhängt, ist dies nicht ohne Risiko. Beispielsweise könnte eine Funktion, die die Größe einer Datei ermitteln soll, einen Speicher mit Dateinamen und zuvor berechneten Größen enthalten, ändert sich aber zwischenzeitlich eine Datei, stimmt der Wert im Speicher nicht mehr. Dieses Problem kann gelöst werden, indem sichergestellt wird, dass sich der Wert im Speicher ändert, wenn die Datei geändert wird. Alle beteiligten Funktionen teilen sich dann ein gemeinsames Gedächtnis. Dieser Ansatz bezieht sich auf Objekt orientierte Programmierung.