Im Rahmen seiner beruflichen Tätigkeit muss sich ein Programmierer mit vielen Situationen auseinandersetzen, die eine komplexe Analyse großer Quellcodefragmente oder sogar ganzer Anwendungen erfordern. Die Erforschung erfolgreicher Lösungen und Praktiken, die Analyse bereits implementierter Algorithmen oder einfach die Übertragung eines anderen Projekts an ein Team macht es oft erforderlich, ein von jemand anderem geschriebenes Programm zu zerlegen.
Notwendig
- - Programm zum Anzeigen des Quellcodes;
- - eventuell Reverse Engineering und Case-Tools.
Anweisungen
Schritt 1
Untersuchen Sie den Fluss der Kontrollübertragung des geparsten Programms Identifizieren Sie den Einstiegspunkt. Es ist zum Beispiel die Hauptfunktion in C und C++, der Beginn eines unbenannten Strukturblocks der ersten Ebene, der mit dem Schlüsselwort END mit einem Punkt in Pascal endet. Verfolgen Sie ausgehend vom Einstiegspunkt alle Routen von Aufrufe von Funktionen, Prozeduren, Methoden von Klassen. Erstellen Sie ein übergeordnetes Kontrollflussdiagramm. Um diesen Prozess zu vereinfachen, können Sie verschiedene Reverse-Engineering-Tools verwenden: Analysieren Sie den Quellcode der Strukturelemente des geparsten Programms genauer. Zeichnen Sie Kontrollflussdiagramme oder Flussdiagramme für einzelne Funktionen und Methoden.
Schritt 2
Analysieren Sie die Datenströme des geparsten Programms. Identifizieren Sie die Strukturen zum Speichern von Informationen und übertragen Sie diese zwischen den Funktionselementen der Anwendung. Identifizieren Sie die Code-Snippets, die Daten von einem Formular in ein anderes konvertieren. Erstellen Sie eine Liste der Stellen im Programm, an denen Informationen von der externen Umgebung empfangen werden, sowie deren Ausgabe irgendwo. Reengineering-Tools und Case-Tools (z. B. zum Erstellen eines Vererbungsdiagramms und eines Abhängigkeitsdiagramms) helfen bei dieser Art der Analyse ebenfalls.
Schritt 3
Zerlegen Sie das Programm und haben Sie ein vollständiges Verständnis der Funktionsprinzipien. Auf der Grundlage von Kenntnissen über den Kontrollfluss zwischen Strukturelementen sowie innerhalb dieser, Kenntnisse über Flüsse und Arten von Datentransformationen, identifizieren Sie die wichtigsten Arbeitsalgorithmen. Trennen Sie die Algorithmen für die Datenverarbeitung und die Schnittstellensteuerung. Wählen Sie typische Verarbeitungsalgorithmen aus und klassifizieren Sie diese. Identifizieren Sie Algorithmen basierend auf dem Zusammenspiel verschiedener Komponenten (z. B. kann die Suche sowohl unabhängig als auch als Teil einer Sortierung verwendet werden). Erstellen Sie gegebenenfalls Flussdiagramme mit unterschiedlichem Detaillierungsgrad, um die Funktionsweise des Programms zu veranschaulichen.