Umbrello と ArgoUML を試しました。また、どちらも既存の C++ コードベースからコードを生成できません。これらの領域では機能が制限されていますが、std、boost、SDL、およびローカルのインクルードを含むファイルのインポートはどちらも見事に失敗しています。FOSS の世界には、かなり複雑な C++ コードをモデル化するものはありますか? UML 部分はオプションであり、コードの首尾一貫した正確な視覚化を生成することが重要です。
注: gprof2dot や doxygen などのツールはソースを処理できますが、それらの出力は非常に複雑であるため、元のコードと同じように把握することは困難です。
注 2: SO のツールについて質問することはもうできないので、次のように質問を言い換えさせてください。
大規模で、古く、複雑で、扱いにくい C++ コード ベースが与えられた場合、主要なリファクタリングを迅速かつ効率的に実行するにはどうすればよいでしょうか。メジャーとは、次のようなことを意味します。
- 既存のソース/ヘッダーのペアから構造体/列挙型/クラス全体を独自のファイルに抽出する
- 名前空間の追加/削除
- 関数シグネチャの変更
- 等
grep と sed を使用して親しみやすいものもあります。ただし、インクルードの依存関係を検出して管理するのは大変です。私は現在、「変更して修正する」方法にこだわっています。何かをリファクタリングして、コンパイラーが指摘するエラーを繰り返し構築して修正してみてください。広く使用されているオブジェクトの場合、これは遅いです。適切なアプローチは何ですか?