Ich denke, was Sie hier suchen, ist ein Sequenzdiagramm . Mit diesen können Sie mithilfe von Pfeilen die Reihenfolge visualisieren, in der sich verschiedene Module gegenseitig aufrufen.
Eine zu konstruieren ist einfach:
- Zeichnen Sie Ihre Startklasse mit einer gepunkteten Linie darunter.
- Zeichnen Sie die nächste Klasse / Methode in der Aufrufverfolgung mit einer gepunkteten Linie darunter
- Verbinden Sie die Linien mit einem Pfeil, der vertikal unter dem zuletzt gezeichneten Pfeil positioniert ist
- Wiederholen Sie die Schritte 2-3 für alle Anrufe in Ihrer Ablaufverfolgung
Beispiel
Nehmen wir an, wir haben den folgenden Code, für den wir ein Sequenzdiagramm erstellen möchten:
def long_division(quotient, divisor):
solution = ""
remainder = quotient
working = ""
while len(remainder) > 0:
working += remainder[0]
remainder = remainder[1:]
multiplier = find_largest_fit(working, divisor)
solution += multiplier
working = calculate_remainder(working, multiplier, divisor)
print solution
def calculate_remainder(working, multiplier, divisor):
cur_len = len(working)
int_rem = int(working) - (int(multiplier) * int (divisor))
return "%*d" % (cur_len, int_rem)
def find_largest_fit(quotient, divisor):
if int(divisor) == 0:
return "0"
i = 0
while i <= 10:
if (int(divisor) * i) > int(quotient):
return str(i - 1)
else:
i += 1
if __name__ == "__main__":
long_division("645", "5")
Das erste, was wir zeichnen, ist der Einstiegspunkt ( main
), der eine Verbindung zur Methode herstellt long_division
. Beachten Sie, dass dadurch in long_division ein Feld erstellt wird, das den Umfang des Methodenaufrufs angibt. In diesem einfachen Beispiel entspricht die Box der gesamten Höhe unseres Sequenzdiagramms, da dies die einzige Ausführung ist.
Jetzt rufen wir find_largest_fit
an, um das größte Vielfache zu finden, das in unsere Arbeitsnummer passt, und senden es uns zurück. Wir ziehen eine Linie von long_division
bis find_largest_fit
mit einem anderen Feld, um den Umfang des Funktionsaufrufs zu kennzeichnen. Beachten Sie, wie das Feld endet, wenn der Multiplikator zurückgegeben wird. Dies ist das Ende dieses Funktionsumfangs!
Wiederholen Sie dies einige Male für eine größere Zahl, und Ihr Diagramm sollte ungefähr so aussehen:
Anmerkungen
Sie können wählen, ob Sie die Aufrufe mit den übergebenen Variablennamen oder deren Werten kennzeichnen möchten, wenn Sie nur einen bestimmten Fall dokumentieren möchten. Sie können die Rekursion auch mit einer Funktion anzeigen, die sich selbst aufruft.
Darüber hinaus können Sie hier Benutzer anzeigen und sie dazu auffordern und ihre Eingaben in das System einfach genug anzeigen. Es ist ein ziemlich flexibles System, das Sie meiner Meinung nach ziemlich nützlich finden werden!