2012-01-06 43 views
5

大規模なオープンソースアプリケーションのコードを参照していて、どのように設計され、どのように動作するかを知りたいと思います。 CおよびC++コードをシーケンス図にリバースエンジニアリングするツールはありますか?シーケンス図

これは少し遠いかもしれませんが、アプリケーションが入力を処理していると言うと、(さまざまなモジュールと正しい順序で)呼び出される関数のリストを私に与えることができるツールはどうでしょうか?または、私は迅速に特定のアプリケーションを解析するのに役立ちます(特に大きなコードベースを持つもの)?

私はこれがよくカバーされているトピックでなければならないと思っているように答えを楽しみにしています。

+0

私はあきらめる前に多くのツールを試してみて、http://www.zenuml.comを作成しました。リバースエンジニアリングコードがシーケンス図に入っているのは本当に良い考えではありません。私はいくつかのツールがそれをうまくやっていることを知っていますが、結果はまだ読みにくいです。 ZenUMLでは、あなたは大声で目に見えるものを考えます。 –

答えて

3

いくつかありますが高価です。 Rational Roseは、IBMが買収する前に最もよく知られていました。

C++言語の本質は、静的解析を行うことを本当に困難にします。それで、それを行うことができるツールがあまりないのです。リフレクション/イントロスペクションをサポートする言語を使用した非C++開発の急激な変化から、このタイプのツールは実際にはC++を残しました。それは誰もいないと言っているわけではありません。見つけにくく、通常は高価な4GLのようなパッケージの一部です。 Rational Roseは、主にシステムのダイアグラムを作成するツールであり、コンポーネントを追跡し、最終的にさまざまな言語のソースコードを生成するのに役立ちます。それはまた、ソースコードをある程度のダイアグラムにリバースエンジニアリングする可能性があります。

Rational Rose製品はRational Requisite Proにかなり似ていましたが、その大部分(Javaに焦点を当てています)はIBMのWebSphere Application Developmentプラットフォームに組み込まれていました。

Rationalツールは、包括的であることでよく知られていて、1人のプロジェクトに対して、通常50人以上の開発者からスタートしている大規模な開発店を対象にしていました。

(ツールの観点からは)C++言語の複雑さと、JavaやC#のような言語の普及により、ベンダーは実際にはC++を重視していませんでした。

私はまだC++をサポートしているVisual Studioについて知識がありませんが、C++ UMLサポートはProやUltimateのような高価なプロフェッショナルエディションでしかないと思います。

+0

これらのツールについて詳しく知ることはできますか?話題はよくカバーされていなければならないと思ったが、今は別のことを考え始めている。 –

0

Sparx SystemsのEnterprise Architectは、ソースコードからの通常の静的リバースエンジニアリングに加えて、アプリケーションの実行を記録し、このトレースからシーケンス図を生成することができます。 (EA 9.2で)実行・アナライザ・サポート:

  • Microsoft WindowsのネイティブC
  • Microsoft WindowsのネイティブC++
  • Microsoft WindowsのVisual Basicの
  • のMicrosoft .NETファミリー(C#の、Jの#、VB)
  • あなたは、少なくとも教授が必要
  • Sun MicrosystemsのJavaの
  • PHP

執筆時点では、シングルシートライセンスのためにUS $ 199(9 9 9)のEA版が必要です。

サイトにはvery old demo videoがあります(3つのメジャーバージョン前)。

関連する問題