軟件開發中的用過的一些工具

    在軟件開發過程中,除了用到vc等編譯器之外,我們還經常使用一些輔助工具來提高工作效率,下面介紹我用過的一些工具,權當拋磚引玉了。

 

Beyond Compare ,這是個文件和文件夾對比工具,可以很方便的對比出兩個文件夾或文件之間的差別,在差別處會用不同的顏色標示出來。在軟件開發中有兩個典型的應用場景,一個是比較同一文件不同版本之間的差異,以此來定位由版本差異引入的問題;另一個是,在有些軟件項目中會在主版本上建立分支版本來支持不同的需求,在合併時,雖然版本管理工具會提供合併功能,但往往會出現衝突,這種情況下就需要手工合併,Beyond Compare就能派上用場了。Beyond Compare也在發展,功能越來越強大,現在的版本除了文本比較,貌似還能比較mp3、圖片等,有興趣的同學可以研究研究。

 

UltraEdit,一個好用的文本編輯器,比windowsnotepad強多了,除了作爲notepad的替代品,還能是編寫代碼,支持主流的編程語言,c/c++javaperl等等。在跨windows/unix平臺開發時,如果初期對unixvi掌握的不是很熟練的情況下,可以用ultraeditwindows上編寫好代碼ftpunix進行編譯調試。同時因爲vi沒有語法着色功能,代碼分析和查錯就會麻煩些。UltraEdit能很好的對代碼進行語法着色,同時能以ftp方式工作,這爲跨平臺開發提供了便利。以前用ultraedit寫過一個perl的統計代碼中魔數的小工具,還集成到vc中了,還高興了小半天。

 

SourceCounter,這個是無需安裝的綠色程序,用來統計源代碼的,支持c++javaphpc#等語言,能對文件夾進行遞歸統計。統計結果包括,文件個數、大小、代碼行數、註釋行數等,常用來計算註釋比例,看看是否達到30%。新版本中還能根據設定的質量目標和成本參數來得出測試用例數、缺陷數和人月等成本。

 

Source Insight,這是個好東西,以前主要用它來分析源代碼結構,vc等編輯器也有轉到定位等導航功能,但比之Source Insight就是小巫見大巫了,Source Insight的查找、定位、彩色顯示非常強大,它會生成自己的高性能的符號庫,包括類、結構、變量、函數等等,這是快速導航的基礎。當你維護一個代碼結構複雜的項目時,它能輔助你快速的理清代碼間的關係,提高解決問題的效率。

 

IncrediBuild,分佈式編譯工具,編譯大型軟件是個漫長的過程,怎樣來提高編譯速度呢?用分佈式編譯工具就可以做到。原理很簡單,就是將整個編譯工作通過計算後分配到網絡中的多個計算機上執行。這樣一來,編譯速度會有數量級上的提高。具體到IncrediBuild的工作原理就是:在網絡中有個機器做服務器,其他機器安裝客戶端,服務器接收到一個客戶端的編譯請求後,就根據所有其他客戶端的資源情況調度安排編譯任務。

 

PC-Lint,是個靜態代碼檢測工具,用來做代碼審查再好不過了,雖然編譯器會檢查語法,可嚴格程度不高,編譯器中的waringPC-Lint中或許就是個errorPC-Lint可以檢查出那些雖然完全合乎語法要求,但很可能存在潛在的、不易發現的錯誤,PC-lint主要用於檢查

c/c++代碼,支持VCVC.net等編譯器。

 

VMware,虛擬軟件,它可以虛擬出新的計算機,可以在虛擬的計算機上安裝WindowsLinux等操作系統。使用VMware將使得用戶象擁有多臺電腦一樣,典型的用途是跨平臺開發或多平臺開發,比如你的服務器是基於linux,而客戶端是基於windows,那麼我們可以搭建一個環境,在一臺windows的機器上裝個linux虛擬機,這樣節省了硬件資源,而且在兩個系統間切換變的很容易,有利於提高開發和調式效率。

 

Visio,微軟的一個圖表製作工具,用來畫流程圖、時序圖等等,很久沒用了,不知道現在

版本變成什麼樣子了。

 

版本控制工具,我在工作中使用過三種,分別是vsscvsclearcase

vss主要採用獨佔模式工作,只用於windows平臺,在局域網環境使用,能和vs系列的工具無縫結合,可在vs工具中直接做簽出簽入等操作,不過在項目的代碼量比較大的情況下結合使用會導致打開工程的速度會大大降低。

Cvs,支持windowslinux等平臺,能在局域網和廣域網使用,一般不採用獨佔模式,用戶可修改在自己權限內的代碼,且不會單獨佔用,也就是說其他有權限的用戶也可修改代碼,這樣可能會導致多人修改代碼後提交時,會造成衝突,這時需要合併。如果一個項目中有基於多個操作系統的代碼,且代碼又有共享關聯關係,那麼可以使用cvs作爲的版本管理工具,

而且是免費的哦。

Clearcase,是IBM的產品,支持windodwssolaris等平臺,IBM會提供完善的支持。Clearcase是個強大且複雜的東西,我使用過的也就是其中的基本功能,印象最深的應該是多個分支並行開發管理,提供比較、合併功能很強大,比如一個bug在各個分支都存在,那麼我們先在一個分支中修改,然後把修改後的代碼和其他分支進行比較合併,這樣高效又安全。

 

rational purify,優秀的內存問題檢查工具,使用c/c++開發的人大都遇到過內存泄露問題,特別是代碼量大的時候,要靠人工檢視代碼來查找內存泄漏那是相當痛苦的,這時purify簡直就是福音。這是個運行時工具,大概的步驟是,先配置好purify環境,然後編譯好你的程序,然後把你的程序放在purify中跑,保證你程序運行儘可能的覆蓋到所有代碼,然後結束程序運行,這樣purify最後會給出一份內存報告,報告會指出有內存問題代碼的位置。我在windowssolaris上使用過purify,感覺真不錯。和purify同一系列的工具還有QuantifyPureCoverageQuantify主要用在優化程序的時候,它可以分析出函數的執行時間、調用次數等,開發人員可根據分析報告,對調用次數多且執行時間長的函數進行優化。PureCoverage這個是個代碼覆蓋檢查工具,我沒怎麼用過,有興趣的盆友可以瞭解下。

 

Boundschecker,這也是個內存問題檢查工具,前段時間在用vc2003做一個的項目,在調試狀態下運行退出時,Output窗口會提示memory leak信息,這些信息當然也可以幫助查出內存泄漏的代碼,但比較麻煩,我順手裝了個BoundscheckerBoundschecker能很好的集成到VC中,選FinalCheck工作方式,充分運行程序後終止運行,Boundschecker會給出報告,根據報告,我解決的內存泄漏問題,Output窗口不再有memory leak信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章