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

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

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

情介紹

PVS-Studio是一款易用的靜態(tài)代碼分析工具。PVS-Studio可以將軟件的代碼發(fā)送到本軟件上測(cè)試,也可以直接將布局模塊的函數(shù)添加到軟件上分析,從而找到錯(cuò)誤的編輯命令,讓您及時(shí)處理錯(cuò)誤的代碼,為后期應(yīng)用程序開(kāi)發(fā)提供更好的檢測(cè)功能;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)用程序源代碼中的錯(cuò)誤;PVS-Studio相對(duì)于其他類型的方法而言,軟件采用的靜態(tài)代碼分析方法有明顯的優(yōu)越性,因?yàn)樗梢愿采w整個(gè)程序代碼,代碼檢查的過(guò)程在任何情況下都不會(huì)破壞代碼本身,分析過(guò)程完全由程序員控制,并決定是否需要修改代碼,有興趣的小伙伴快來(lái)下載體驗(yàn)吧!

功能介紹

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

PVS-Studio安裝教程

1、下載軟件壓縮包文件,雙擊打開(kāi)“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)安裝信息,無(wú)誤,點(diǎn)擊Install進(jìn)行安裝

6、軟件安裝完成,安裝向?qū)?huì)提示完成軟件安裝向?qū)Вc(diǎn)擊Finish

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

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

軟件特色

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

支持的語(yǔ)言和運(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)友評(píng)論

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