我在瀏覽大型開源應用程序的代碼,並想了解它是如何設計的以及它是如何工作的。有沒有一種工具可以將C和C++代碼逆向工程化爲序列圖?序列圖
可能時說,應用處理輸入,這可能是有點牽強,但約一個工具,它可以給我叫的功能列表(在不同的模塊,並在正確的順序)是什麼?或者幫我快速分析一個給定的應用程序(尤其是一個擁有龐大代碼庫的應用程序)?
期待的答案,因爲我想這一定是一個很好涉及的話題。
我在瀏覽大型開源應用程序的代碼,並想了解它是如何設計的以及它是如何工作的。有沒有一種工具可以將C和C++代碼逆向工程化爲序列圖?序列圖
可能時說,應用處理輸入,這可能是有點牽強,但約一個工具,它可以給我叫的功能列表(在不同的模塊,並在正確的順序)是什麼?或者幫我快速分析一個給定的應用程序(尤其是一個擁有龐大代碼庫的應用程序)?
期待的答案,因爲我想這一定是一個很好涉及的話題。
有一些,但它們很昂貴。在被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支持僅在昂貴的專業版本像專業版或旗艦版。
我可以更多地瞭解這些工具嗎?我認爲這個話題必須得到很好的覆蓋,但現在我開始思考了。 – 2012-01-09 04:40:49
C++ to UML (Reverse engineer/Round-trip engineering)問過。奇怪的是,阿爾託娃並沒有。似乎做最其他的一切。
Sparx Systems的Enterprise Architect除了可以從源代碼中進行常規的靜態反向工程外,還可以記錄應用程序的執行情況並根據此跟蹤生成序列圖。執行分析儀支持(在EA 9.2):
你至少需要教授EA寫作時的版本,在撰寫本文時,爲單座許可證費用爲199美元(1 9 9美元)。
網站上有一個very old demo video(來自三個主要版本)。
在放棄並創建http://www.zenuml.com之前,我嘗試了很多工具。我發現反向工程代碼到序列圖中並不是一個好主意。我知道一些工具做得很好,但仍然是,結果不太可讀。藉助ZenUML,您可以大聲而明顯地思考。 – 2017-07-21 13:50:47