2012-01-06 16 views
5

我在瀏覽大型開源應用程序的代碼,並想了解它是如何設計的以及它是如何工作的。有沒有一種工具可以將C和C++代碼逆向工程化爲序列圖?序列圖

可能時說,應用處理輸入,這可能是有點牽強,但約一個工具,它可以給我叫的功能列表(在不同的模塊,並在正確的順序)是什麼?或者幫我快速分析一個給定的應用程序(尤其是一個擁有龐大代碼庫的應用程序)?

期待的答案,因爲我想這一定是一個很好涉及的話題。

+0

在放棄並創建http://www.zenuml.com之前,我嘗試了很多工具。我發現反向工程代碼到序列圖中並不是一個好主意。我知道一些工具做得很好,但仍然是,結果不太可讀。藉助ZenUML,您可以大聲而明顯地思考。 – 2017-07-21 13:50:47

回答

3

有一些,但它們很昂貴。在被IBM收購之前,Rational Rose是最知名的。

的C的性質++語言使得它真的很難做靜態分析。這就是爲什麼有這麼少的工具可以做到這一點。由於使用支持反射/自省的語言的非C++開發激增,這種類型的工具實際上已經將C++留在了後面。這並不是說沒有,只是他們很難找到並且通常是昂貴的4GL類包裝的一部分。 Rational Rose主要是一個讓您繪製系統的工具,它可以幫助跟蹤組件並最終生成各種語言的源代碼。它也可以在一定程度上將源代碼逆向工程化爲圖表。

Rational Rose產品幾乎被Rational Requisite Pro取代,大部分功能(專注於Java)被集成到IBM的WebSphere Application Development平臺中,現在稱爲RAD I believe。

Rational工具是衆所周知的,如此全面的,他們真正的目標與一個同樣大的工作人員的工作,通常開始於50歲以上的開發人員,對於單個項目大開發的商店。

由於C++語言(從工具的角度來看)的複雜性,以及像Java和C#語言的普及,廠商確實弱化了C++。

我不是知識淵博有關Visual Studio,它仍然支持C++,但是我願意猜測,C++ UML支持僅在昂貴的專業版本像專業版或旗艦版。

+0

我可以更多地瞭解這些工具嗎?我認爲這個話題必須得到很好的覆蓋,但現在我開始思考了。 – 2012-01-09 04:40:49

0

Sparx Systems的Enterprise Architect除了可以從源代碼中進行常規的靜態反向工程外,還可以記錄應用程序的執行情況並根據此跟蹤生成序列圖。執行分析儀支持(在EA 9.2):

  • 的Microsoft Windows本地C
  • 微軟Windows本地C++
  • 的Microsoft Windows的Visual Basic
  • 微軟.NET系列(C#,J#,VB)
  • Sun公司的Java
  • PHP

你至少需要教授EA寫作時的版本,在撰寫本文時,爲單座許可證費用爲199美元(1 9 9美元)。

網站上有一個very old demo video(來自三個主要版本)。