Ich muss Erweiterungen zu einem vorhandenen C ++ - Projekt mit über 100 KB Codezeilen vornehmen.
Meine Frage ist Wie und wo soll ich mit solchen Projekten anfangen?
Das Problem steigt weiter, wenn der Code nicht gut dokumentiert ist.
Gibt es automatisierte Tools zur Untersuchung des Code-Flusses bei großen Projekten?
Danke,
Es gibt ein Buch für Sie: Effektiv mit Legacy-Code arbeiten
Es geht nicht um Werkzeuge, sondern um verschiedene Ansätze, Prozesse und Techniken, mit denen Sie den Code besser verstehen und ändern können. Es ist sogar aus einer meist C ++ Perspektive geschrieben.
Es gibt ein weiteres gutes Buch, das derzeit im Internet frei verfügbar ist, über objektorientiertes Reengineering: Ссылка
Das Buch "Code Reading" von Diomidis Spinellis enthält viele Ratschläge, wie man sich einen Überblick und ein vertieftes Wissen verschaffen kann über größere, unbekannte Projekte.
Kapitel 6 konzentriert sich einsam auf dieses Thema (Tacking Large Projects). Auch die Kapitel über Tooling (Kap. 9) und Architektur (Kap. 8) können schöne Hinweise für Sie enthalten.
Im Buch geht es jedoch darum, den "Code" zu verstehen (durch Lesen). Es geht nicht direkt den Wartungsschritt an.
Zuerst würde ich versuchen, die Anforderungen des Produkts zu finden .
Es ist fast undenkbar, dass ein Produkt dieser Größe ohne Anforderungen entwickelt wird.
Indem Sie die Anforderungen durchlesen, können Sie:
Sonst guckst du nur auf Code und versuchst die Absicht der Entwickler zu verstehen ...
Laufen Doxygen mit dem EXTRACT_ALL Tag festgelegt, um alle Beziehungen in der Codebasis zu dokumentieren. Es wird Ihnen nicht mit dem Code-Flow helfen, aber hoffentlich wird es etwas Licht in Bezug auf die Struktur und das Design der gesamten Anwendung geben.
Wenn Sie in der Lage sind, den Code auf einem PC auszuführen, können Sie versuchen, einen Callgraph normalerweise aus einer Profiling-Ausgabe zu erstellen.
Auch Querverweis-Tools wie cscope, ctags, lxr usw. können viel helfen. A
Wenn Sie etwas Zeit mit dem Lesen, dem Erstellen von Klassendiagrammen oder dem Hinzufügen von Kommentaren zu den Teilen des Codes verbringen, die Sie lange zu verstehen brauchten, sollten Sie sich mit der Codebasis vertraut machen und sie modifizieren / erweitern.
Als Erstes müssen Sie verstehen, wie der Code funktioniert. Lesen Sie, welche Dokumentation es gibt, und beobachten Sie, wie das Programm unter einem Debugger läuft. Wenn Sie sich die Hauptfunktion / Schleife ansehen und sich dann langsam tiefer in das Programm hineinarbeiten, können Sie eine ziemlich gute Vorstellung davon bekommen, wie die Dinge funktionieren. Stelle sicher, dass du deine Ergebnisse aufschreibst, damit andere, die dir folgen, eine bessere Ausgangsposition haben.
Tags und Links c++ projects legacy-code