Je nachdem, wie komplex der Code ist, habe ich ein paar Dinge getan.
Sie wollen wahrscheinlich jede Methode/Funktion/Objekt/was auch immer (Sie sprachen keine Sprache) und versuchen zu verstehen, was es tut. Wenn Sie etwas haben, das Sie mehr als eine Minute braucht, um zu verstehen, herauszufinden, was Sie nicht verstanden haben und einen Kommentar schreiben, damit Sie das nächste Mal nicht in dieser Minute brauchen.
Zu verstehen, wie alle Teile zueinander in Beziehung stehen, kann schwierig sein, wenn das Design nicht sehr gut ist.Das Drucken der Debug-Ausgabe am Eingang/Ausgang jeder Routine und das Verwenden von Stack-Dumps kann hilfreich sein, um zu sehen, wie Sie einen Platz erhalten haben. Ein Debugger kann großartig sein, um das herauszufinden.
Ein letztes Werkzeug, das ich wirklich nützlich fand, ist ein Profiler. Ich hatte ein kostenloses Profiler-Plug-in für Eclipse (ich vergesse den Namen, aber ich glaube nicht, dass es viele gibt), das ein beeindruckendes Sequenzdiagramm für jeden Code erstellen würde, den es durchlaufen hat. Dies könnte das beste Werkzeug sein, das ich jemals gesehen habe, um zu verstehen, was der Code macht. Es war ein bisschen schwierig, sich zu dieser Zeit einzurichten, aber bleib dran, es ist machbar und es ist es wert.
Ich habe den Profiler eingeschaltet, eine Taste gedrückt/eine Aufgabe ausgeführt und dann den "Run" für diese Taste gespeichert.
Ich filterte Klassen heraus, die trivial waren und es in eine halbwegs vernünftige Größe brachten (einige waren 2 Seiten, ein Sequenzdiagramm nahm 4 x 6 Blatt Papier zum Drucken (Querformat)). Ich nahm sie alle zusammen auf und legte sie auf meine Würfelwand und studierte/dokumentierte die Hölle aus diesem Ding.
Sequenzdiagramme rocken, wenn Sie richtig gemacht werden, übrigens. Wenn Sie versuchen, etwas Code zu verstehen, und Sie keine Sequenzdiagramme verwenden, schauen Sie sich diese an. Ich denke, sie sind wahrscheinlich das nützlichste Designdokumentationswerkzeug, das ich gesehen habe.