當(dāng)前位置:首頁 > 電腦軟件 > 編程軟件 > PVS-Studio(靜態(tài)代碼分析工具)

PVS-Studio(靜態(tài)代碼分析工具)

版本:v7.30.80803.925 大?。?46.32M 語言:英文 類別:編程軟件
  • 類型:國外軟件
  • 授權(quán):共享軟件
  • 更新:2024-04-18
  • 環(huán)境:Windows11,Windows10,Windows8,Windows7
  • 本地下載
10
0% 0%

情介紹

PVS-Studio是一款易用的靜態(tài)代碼分析工具。PVS-Studio可以將軟件的代碼發(fā)送到本軟件上測試,也可以直接將布局模塊的函數(shù)添加到軟件上分析,從而找到錯誤的編輯命令,讓您及時處理錯誤的代碼,為后期應(yīng)用程序開發(fā)提供更好的檢測功能;PVS-Studi其集成在Visual Studio 2012、2010、2008、2005和Embarcadero RAD Studio XE3 Update 1、XE3、XE2、XE、2010、2009等環(huán)境中,可以診斷C/C++/C+11應(yīng)用程序源代碼中的錯誤;PVS-Studio相對于其他類型的方法而言,軟件采用的靜態(tài)代碼分析方法有明顯的優(yōu)越性,因?yàn)樗梢愿采w整個程序代碼,代碼檢查的過程在任何情況下都不會破壞代碼本身,分析過程完全由程序員控制,并決定是否需要修改代碼,有興趣的小伙伴快來下載體驗(yàn)吧!

功能介紹

1、融合Visual Studio2005/2008/2010的開發(fā)環(huán)境
2、PVS-Studio提供在線幫助
3、可以生成PDF文件
4、可以保存和下載分析結(jié)果
5、具有命令行啟動能力
6、支持所有的內(nèi)核和處理器
7、評估64位代碼移植的復(fù)雜度
8、支持 Windows(LLP64)和Linux(LP64)的數(shù)據(jù)模型
9、交互式過濾器
10、易于融入團(tuán)隊(duì)開發(fā)項(xiàng)目中
11、標(biāo)記程序文本僅檢查新代碼

PVS-Studio安裝教程

1、下載軟件壓縮包文件,雙擊打開“PVS-Studio.exe”,進(jìn)行安裝

2、閱讀軟件的許可協(xié)議,閱讀完成后點(diǎn)擊我接受許可協(xié)議,必須接受協(xié)議才能繼續(xù)安裝軟件

3、點(diǎn)擊“Browse”選擇軟件安裝位置
安裝向?qū)J(rèn)設(shè)置的軟件默認(rèn)安裝路徑為C:\Program Files (x86)\PVS-Studio

4、選擇需要安裝的組件,自行選擇勾選即可

5、確認(rèn)安裝信息,無誤,點(diǎn)擊Install進(jìn)行安裝

6、軟件安裝完成,安裝向?qū)崾就瓿绍浖惭b向?qū)Вc(diǎn)擊Finish

7、雙擊打開PVS-Studio軟件,點(diǎn)擊Tools--Options--Registration,將“key.txt”文件內(nèi)的姓名和注冊碼復(fù)制到軟件中

8、再點(diǎn)擊Help下的About,如下圖PVS-Studio可以放心使用

軟件特色

一、避免繼承
1、Go編程語言是為數(shù)不多的面向?qū)ο笳Z言之一,其特殊性體現(xiàn)在不提供任何類繼承方法或來自其他類的屬性,雖然類層次結(jié)構(gòu)是面向?qū)ο笳Z言的基石,但是也會使代碼更加死板,常見層次結(jié)構(gòu)中所有類有著微妙的聯(lián)系,改變其中任何一個類可能導(dǎo)致后代類發(fā)生變化或需要改變一個祖先類,遺傳有助于代碼耦合同時破壞后期修改代碼能力,從而減少代碼的靈活性
2、PVS-Studio除了創(chuàng)建死板的層次結(jié)構(gòu),對象繼承也束在一起,如果一個屬性或方法在類中命名卻未定義,那么平臺隱式搜索該祖先類以尋求匹配,可以自定義簡單的方法覆蓋或復(fù)雜的多重繼承和模糊設(shè)計(jì)模式,避免繼承意味著避免復(fù)雜內(nèi)置行為的解決方案
二、傾向組合
1、代替繼承,Go語言建議對象組合,功能開發(fā)程序員都熟悉函數(shù)組成,組合對象是相似的,如繼承,組合對象連接一個類到另一個,但不是調(diào)度隱式類,組合對象需指定何時或如何使用連接類方法和屬性,這是會帶來有力結(jié)果的一個小小不便
2、使用組合對象,調(diào)度方法調(diào)用不同對象就變得微不足道了,可以根據(jù)不同情況下組合多個對象和調(diào)度不同對象,達(dá)到即使是多重繼承也無法實(shí)現(xiàn)的功能,在不使用靜態(tài)屬性和全局變量的情況下還可以共享常用對象和狀態(tài),組合對象提供了細(xì)粒度控制代碼,當(dāng)不知未來代碼會發(fā)生如何改變時,該方法提供了巨大的便利
三、不要將偶然相似的代碼抽象化
1、開發(fā)人員都學(xué)習(xí)了解DRY含義,它似乎變成了一個咒語,當(dāng)我們編寫代碼時一旦發(fā)現(xiàn)相似的代碼就會刪除它,但是過于較真地刪除重復(fù)數(shù)據(jù)往往不利于靈活性,特別是刪除僅是表面的相似之處的代碼
2、打個比喻,兩個變量值均為200,一個變量指在列表上項(xiàng)目指定的最大數(shù)值,另一個被用于檢測HTTP響應(yīng)是否成功,從表面來看,兩個變量有相同的數(shù)值,人們很容易將MAX_ITEMS值設(shè)置為另一個變量,而不是設(shè)置數(shù)值200,但是如果將MAX_ITEMS設(shè)置等于HTTP_SUCCESS,那么是一個嚴(yán)重錯誤,兩個結(jié)果值相同但是變量間并無聯(lián)系,具有更好靈活性的代碼需要有重復(fù)的代碼
3、以上的例子看起來很愚蠢,但是開發(fā)者開發(fā)時對模糊相似的代碼會有下意識的反應(yīng),很多時候,相似性只是偶然和毫無意義的
筆者對于表面相似的代碼變得非常謹(jǐn)慎,吸取了以往教訓(xùn),首先做出特定代碼變化是避免誤刪代碼的第一步,抽象化代碼(無論是自己還是別人、以前還是現(xiàn)在)可做出樂觀的假設(shè),如果很多自以為相似的代碼需要改變,那么它們都會以同樣的方式改變,但這些筆者并沒有遇到,且很多時候代碼改變并不是以共享方式
四、收縮抽象
1、抽象仍然是重要的,避免寫抽象代碼的一個方法是之前編寫過代碼后面不再寫盡量減少抽象的代碼的出現(xiàn),編寫少量抽象代碼且集中起來,并且盡量不要調(diào)整代碼位置,如果真的需要調(diào)整位置卻不想改變代碼的抽象所有的應(yīng)用,那么更少的抽象對于修改版本更加容易
2、收縮抽象的一個關(guān)鍵技巧是區(qū)分概念,Cognitect的CTO Rich Hickey已重新將decomplet注入現(xiàn)代詞匯中,意為散開通常,功能不同的代碼會被放到同一個的代碼塊中,散開代碼功能會產(chǎn)生抽象起到特定的作用,如設(shè)置一個標(biāo)記,調(diào)用一個功能,然后取消標(biāo)記
3、小抽象也會有更廣泛地應(yīng)用,它們更容易相互組合,如果已習(xí)慣構(gòu)建小的抽象代碼,隨著項(xiàng)目的不斷成熟會有一個穩(wěn)固的積累,使其更容易在不需要編寫復(fù)雜代碼情況下引入復(fù)雜的需求
五、不要設(shè)想
更多的假設(shè)會讓代碼變得更加死板,避免設(shè)想使得代碼更容易變化
從目前我的項(xiàng)目中有一個實(shí)例:一個新鏈接應(yīng)該在新標(biāo)簽中打開嗎?有些人支持新標(biāo)簽,則有人反對,還有些都可以,通常情況下,這樣的爭論會通過權(quán)衡利弊,甚至做一些調(diào)查,遵循更好的選擇,但在這種情況下,有一個假設(shè)我們沒有做,鏈接沒有自身行為方法,因?yàn)槭俏覀兣渲眯袨?,我們目前通過功能指定是否打開標(biāo)簽
我們僅需修改少部分的代碼來實(shí)現(xiàn)該選擇功能,不同的開發(fā)者可以根據(jù)偏好設(shè)置不同的選項(xiàng),如果用戶想要關(guān)閉該選項(xiàng),無須任何的代碼改動也是可以做到的,如果用戶不喜歡,我們也很容易配置符合每個用戶的喜好,應(yīng)用程序?qū)屿`活因?yàn)槲覀儽苊饬嗽O(shè)想方式

支持的語言和運(yùn)行環(huán)境

?Visual Studio 2012 C,C++,C++11,C++/CX(WinRT)
?Visual Studio 2010 C,C++,C++0x
?Visual Studio 2008 C,C++
?Visual Studio 2005 C,C++
?Embarcadero RAD Studio XE3 Update 1包括C,C++,C++11,64位編譯器
?Embarcadero RAD Studio XE2 C,C++,C++0x
?Embarcadero RAD Studio XE C,C++
?Embarcadero RAD Studio 2010 C,C++
?Embarcadero RAD Studio 2009 C,C++
?MinGW C,C++,C++11

載地址

  • 電腦版
PVS-Studio(靜態(tài)代碼分析工具) v7.30.80803.925

網(wǎng)友評論

0條評論
(您的評論需要經(jīng)過審核才能顯示)