91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

靜態(tài)分析有助于管理Java中的風(fēng)險(xiǎn)

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Jon Jarboe ? 2022-06-19 07:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天的軟件開發(fā)團(tuán)隊(duì)承受著巨大的壓力;市場(chǎng)對(duì)高質(zhì)量、安全版本的需求不斷加快,而安全威脅也變得越來越復(fù)雜??紤]到產(chǎn)品故障和安全漏洞的高成本,在整個(gè)軟件開發(fā)過程中解決這些風(fēng)險(xiǎn)比以往任何時(shí)候都更加重要。需要盡早發(fā)現(xiàn)潛在問題,以防止發(fā)布延遲或更糟糕的是,發(fā)布后失敗。

幸運(yùn)的是,有許多工具可以幫助開發(fā)人員管理這些風(fēng)險(xiǎn),幫助在開發(fā)階段早期識(shí)別潛在問題,此時(shí)問題的破壞性較小且更容易修復(fù)。開發(fā)人員可以輕松訪問它們,并且在許多開發(fā)環(huán)境中易于使用。這適用于使用任何語言進(jìn)行編程的開發(fā)人員;但是,我們?cè)诒敬斡懻撝嘘P(guān)注 Java。

靜態(tài)分析有助于降低風(fēng)險(xiǎn)

在考慮 Java 或其他方面的靜態(tài)分析工具時(shí),了解這些工具是什么很重要。術(shù)語“靜態(tài)分析”是指在不執(zhí)行程序的情況下分析程序的方法。正如我們將在下一節(jié)中看到的,靜態(tài)分析工具可用于生成從編碼標(biāo)準(zhǔn)違規(guī)到特定錯(cuò)誤或漏洞的任何報(bào)告。簡而言之,靜態(tài)分析工具分析源代碼以找到對(duì)管理風(fēng)險(xiǎn)有用的信息。

靜態(tài)分析的一個(gè)好處是它可以在開發(fā)周期的早期執(zhí)行,通常在應(yīng)用程序執(zhí)行之前。它通常集成到自動(dòng)構(gòu)建中,因此幾乎沒有運(yùn)行頻繁分析的開銷。通過將靜態(tài)分析集成到內(nèi)部開發(fā)循環(huán)中,用戶可以最大化他們從此類工具中獲得的價(jià)值。

當(dāng)與精心設(shè)計(jì)的開發(fā)過程結(jié)合使用時(shí),靜態(tài)分析工具可以提供對(duì)軟件狀態(tài)的關(guān)鍵可見性。這使開發(fā)團(tuán)隊(duì)能夠了解其代碼中的風(fēng)險(xiǎn)級(jí)別以及風(fēng)險(xiǎn)所在的位置,以便他們可以采取行動(dòng)來減輕或完全消除它(表 1)。單個(gè)工具通常專注于軟件開發(fā)團(tuán)隊(duì)面臨的特定問題,團(tuán)隊(duì)經(jīng)常使用這些工具的組合來全面了解他們的開發(fā)工作。

表 1:靜態(tài)分析工具通常會(huì)發(fā)現(xiàn)特定類型的問題,每種類型代表不同類型的風(fēng)險(xiǎn)并需要不同類型的操作。

poYBAGKsSe6AMiHKAACpYcHfp3k480.png

開發(fā)人員傳統(tǒng)上通過簡單的 IDE 集成或作為獨(dú)立工具使用靜態(tài)分析工具。雖然這些工具為開發(fā)工作增加了重要價(jià)值,但隨著開發(fā)人員花費(fèi)越來越多的時(shí)間使用和維護(hù)不同的工具以及篩選越來越多的結(jié)果,工具的激增也帶來了效率問題。為了明智地管理開發(fā)資源,團(tuán)隊(duì)必須能夠有效地管理、過濾和優(yōu)先考慮所有這些問題。

為了解決這些問題,開發(fā)測(cè)試平臺(tái)應(yīng)運(yùn)而生,以便在一個(gè)地方統(tǒng)一和管理所有這些靜態(tài)分析信息,從而簡化用戶體驗(yàn)并在更大范圍內(nèi)提高可見性和效率,同時(shí)提供相關(guān)的訪問控制和報(bào)告。開發(fā)測(cè)試平臺(tái)甚至開始通過在靜態(tài)分析過程中利用早期程序運(yùn)行期間生成的工件來模糊靜態(tài)分析和其他類型分析之間的界限。例如,這些平臺(tái)可以在靜態(tài)分析期間使用來自測(cè)試運(yùn)行的代碼覆蓋率信息來有效地自動(dòng)識(shí)別缺失的測(cè)試用例。解決這個(gè)問題的傳統(tǒng)方法需要基于簡單的覆蓋閾值的大量手動(dòng)工作。通過利用不同來源的數(shù)據(jù),

為 Java 選擇靜態(tài)分析工具

Java 最流行的免費(fèi)靜態(tài)分析工具可能是 Checkstyle、PMD 和 FindBugs。雖然它們都屬于“靜態(tài)分析”的范疇,但它們的優(yōu)勢(shì)是如此不同,以至于許多人認(rèn)為這些工具是互補(bǔ)的,而不是替代品。

格紋風(fēng)格

Checkstyle 被稱為“一種開發(fā)工具,可幫助程序員編寫符合編碼標(biāo)準(zhǔn)的 Java 代碼 [1]”,盡管它并不嚴(yán)格限制自己執(zhí)行編碼標(biāo)準(zhǔn)。它為用戶提供了一個(gè)文檔化的 API 來定義他們自己的自定義檢查。典型的編碼標(biāo)準(zhǔn)利用基本規(guī)則使代碼更具可讀性,并減少未來代碼更改引入錯(cuò)誤的可能性。標(biāo)準(zhǔn)傾向于定義有關(guān)格式(空格、括號(hào)、命名、注釋等)、繼承和可見性的約定。如果得到充分執(zhí)行,設(shè)計(jì)良好的編碼標(biāo)準(zhǔn)可以幫助開發(fā)人員降低風(fēng)險(xiǎn)。但是,執(zhí)行起來可能很困難,因?yàn)榫幋a標(biāo)準(zhǔn)會(huì)產(chǎn)生很多違規(guī)行為,并且可能存在忽略嘈雜規(guī)則的巨大壓力。使用遺留代碼,這會(huì)使執(zhí)行新的編碼標(biāo)準(zhǔn)變得不可行。雖然 Checkstyle 發(fā)現(xiàn)的大多數(shù)問題不會(huì)影響代碼的正確性、健壯性或性能,但幫助開發(fā)人員快速理解其他人編寫的代碼具有真正的價(jià)值。如何量化這些違規(guī)所代表的風(fēng)險(xiǎn)并不總是顯而易見的,直接從違規(guī)計(jì)數(shù)衡量風(fēng)險(xiǎn)是有問題的,但這些計(jì)數(shù)的變化可以作為風(fēng)險(xiǎn)變化的合理代理。

PMD

PMD 被描述為“……源代碼分析器。它會(huì)發(fā)現(xiàn)未使用的變量、空的 catch 塊、不必要的對(duì)象創(chuàng)建等等[2]。” 它也在不斷發(fā)展,目前的檢查主要集中在可能掩蓋開發(fā)人員錯(cuò)誤的語法異常上,例如過于復(fù)雜的表達(dá)式、空塊、未使用的變量、參數(shù)和類成員。它還有一個(gè)流行的模塊來識(shí)別重復(fù)的代碼。因?yàn)樗ǔ?bào)告“可疑代碼”而不是特定的編碼錯(cuò)誤或違反標(biāo)準(zhǔn)的情況,所以用戶需要仔細(xì)選擇為日常使用啟用的檢查。因?yàn)閺?qiáng)制規(guī)則是由用戶選擇的,所以這個(gè)工具對(duì)遺留項(xiàng)目和新建項(xiàng)目都很有用,而且通常很容易將這些計(jì)數(shù)與風(fēng)險(xiǎn)相關(guān)聯(lián)。很遺憾,

查找錯(cuò)誤

FindBugs 可能是這些工具中最受歡迎的。它查找代碼中的實(shí)際錯(cuò)誤,以及可疑代碼和標(biāo)準(zhǔn)違規(guī)。由于報(bào)告的問題范圍廣泛,因此使用包含項(xiàng)目最相關(guān)檢查的配置非常重要。對(duì)于遺留項(xiàng)目尤其如此,因?yàn)閺囊婚_始就更容易保持新項(xiàng)目的清潔。與 PMD 一樣,任何團(tuán)隊(duì)都可以從使用 FindBugs 中受益,并且將問題計(jì)數(shù)與風(fēng)險(xiǎn)相關(guān)聯(lián)非常簡單。

商業(yè)靜態(tài)分析工具顯示出類似的多樣性,可以識(shí)別從標(biāo)準(zhǔn)違規(guī)到實(shí)際缺陷和安全漏洞的所有內(nèi)容。為了說明商業(yè)工具與免費(fèi)工具的比較,我使用專有的靜態(tài)分析解決方案和 FindBugs 的 2.0.1 版分析了 Jenkins 作業(yè)管理系統(tǒng) (www.jenkins-ci.org) 的 1.496 版,啟用了所有檢查。 在此代碼庫中,識(shí)別出 852 個(gè)獨(dú)特問題——兩種產(chǎn)品僅識(shí)別出 28 個(gè)問題。該專有解決方案發(fā)現(xiàn)了 197 個(gè)獨(dú)特問題,其中 188 個(gè)來自影響較大的類別(安全和并發(fā)錯(cuò)誤、資源泄漏和未處理的異常,如 null 取消引用)。FindBugs 發(fā)現(xiàn)了 627 個(gè)獨(dú)特問題,其中 29 個(gè)來自這些高影響類別。簡而言之,

開發(fā)測(cè)試——將所有內(nèi)容捆綁在一起

靜態(tài)分析工具是 Java 開發(fā)人員軟件開發(fā)工作中的強(qiáng)大盟友,因?yàn)檫@些工具使開發(fā)人員能夠深入了解整個(gè)軟件開發(fā)生命周期的風(fēng)險(xiǎn)。它們通常很容易自動(dòng)化,使用戶能夠花時(shí)間解決問題而不是運(yùn)行工具。

在管理風(fēng)險(xiǎn)方面,通常信息越多越好——只要這些信息能夠闡明開發(fā)人員關(guān)心的實(shí)際風(fēng)險(xiǎn)來源。在決定采用哪些工具時(shí),請(qǐng)記住不僅要考慮分析工具識(shí)別的問題類型,還要考慮這些工具如何協(xié)同工作以提供額外價(jià)值。此外,請(qǐng)務(wù)必適當(dāng)?shù)嘏渲盟鼈?,以免問題的數(shù)量使您的用戶不堪重負(fù)。

現(xiàn)代開發(fā)測(cè)試平臺(tái)通過將數(shù)據(jù)統(tǒng)一在一個(gè)地方、簡化用戶體驗(yàn)并創(chuàng)造機(jī)會(huì)來提供更多價(jià)值,從而將測(cè)試工具提升到另一個(gè)層次。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    3002

    瀏覽量

    116477
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2953

    瀏覽量

    70361
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    動(dòng)態(tài)血糖儀如何讓疾病監(jiān)測(cè)更輕松便捷

    動(dòng)態(tài)血糖儀無需指尖采血,即可提供實(shí)時(shí)血糖數(shù)據(jù),有助于改善糖尿病管理
    的頭像 發(fā)表于 02-25 10:42 ?870次閱讀
    動(dòng)態(tài)血糖儀如何讓疾病監(jiān)測(cè)更輕松便捷

    汽車電子供應(yīng)商風(fēng)險(xiǎn)如何評(píng)估

    對(duì)汽車電子供應(yīng)商進(jìn)行可靠的風(fēng)險(xiǎn)評(píng)估,其核心在于超越對(duì)單一認(rèn)證證書(如IATF 16949)的靜態(tài)核查,轉(zhuǎn)而構(gòu)建一個(gè)能夠系統(tǒng)量化其長期穩(wěn)健運(yùn)營能力的動(dòng)態(tài)分析框架。有效的風(fēng)險(xiǎn)
    的頭像 發(fā)表于 02-10 14:45 ?537次閱讀

    工廠人員定位軟件管理系統(tǒng)從部署實(shí)施流程、ROI分析風(fēng)險(xiǎn)與避坑要點(diǎn)詳解(二)

    本文詳解工廠人員定位系統(tǒng)部署全流程,涵蓋勘測(cè)、POC驗(yàn)證、分階段實(shí)施及驗(yàn)收培訓(xùn);結(jié)合ROI分析風(fēng)險(xiǎn)規(guī)避要點(diǎn),助力企業(yè)實(shí)現(xiàn)安全、高效、合規(guī)的人員管理智能化升級(jí)。
    的頭像 發(fā)表于 01-14 17:33 ?122次閱讀

    鎖存器的時(shí)間借用概念與靜態(tài)時(shí)序分析

    對(duì)于基于鎖存器的設(shè)計(jì),靜態(tài)時(shí)序分析會(huì)應(yīng)用一個(gè)稱為時(shí)間借用的概念。本篇博文解釋了時(shí)間借用的概念,若您的設(shè)計(jì)包含鎖存器且時(shí)序報(bào)告存在時(shí)間借用,即可適用此概念。
    的頭像 發(fā)表于 12-31 15:25 ?5511次閱讀
    鎖存器<b class='flag-5'>中</b>的時(shí)間借用概念與<b class='flag-5'>靜態(tài)</b>時(shí)序<b class='flag-5'>分析</b>

    大模型真的有助于自動(dòng)駕駛落地嗎?

    其實(shí)大模型帶來的并不是單一的“萬能解”,而是一個(gè)能夠顯著提升認(rèn)知、生成和推理能力的新工具箱。它能加速數(shù)據(jù)閉環(huán)、提升對(duì)復(fù)雜場(chǎng)景的理解、改善人機(jī)交互、并在工程流程中提高效率。
    的頭像 發(fā)表于 08-16 09:43 ?1174次閱讀
    大模型真的<b class='flag-5'>有助于</b>自動(dòng)駕駛落地嗎?

    動(dòng)態(tài)BGP與靜態(tài)BGP的區(qū)別?

    的 IP,只要遠(yuǎn)端發(fā)起 BGP 握手,且來自 AS 65002,即自動(dòng)建立對(duì)等關(guān)系。四、實(shí)戰(zhàn)應(yīng)用場(chǎng)景分析場(chǎng)景一:傳統(tǒng)運(yùn)營商邊界路由器 使用靜態(tài) BGP BGP 對(duì)等關(guān)系固定,變化極少 需要手動(dòng)管理
    發(fā)表于 06-24 06:57

    RFID測(cè)溫芯片在新能源電池管理的創(chuàng)新應(yīng)用

    本文提出無源無線RFID測(cè)溫芯片為電池?zé)?b class='flag-5'>管理提供創(chuàng)新解決方案。該芯片通過集成溫度傳感器和RFID芯片,實(shí)現(xiàn)無源無線測(cè)溫,無需電池供電,實(shí)現(xiàn)電池包內(nèi)部空間維度上的高密度溫度分布監(jiān)測(cè)。其簡化部署和可靠性提升有助于降低系統(tǒng)成本。
    的頭像 發(fā)表于 06-11 11:24 ?888次閱讀
    RFID測(cè)溫芯片在新能源電池<b class='flag-5'>管理</b><b class='flag-5'>中</b>的創(chuàng)新應(yīng)用

    山東LP-SCADA故障回溯功能的好處

    ,可以識(shí)別出系統(tǒng)的薄弱環(huán)節(jié)和潛在風(fēng)險(xiǎn)點(diǎn),從而采取相應(yīng)的措施進(jìn)行改進(jìn)和優(yōu)化。 提升系統(tǒng)可靠性 通過本平臺(tái)的故障回溯功能,企業(yè)可以及時(shí)發(fā)現(xiàn)并處理系統(tǒng)的潛在問題,避免故障的發(fā)生或擴(kuò)大。這有助于提升系統(tǒng)的整體
    發(fā)表于 05-29 14:42

    基本電路分析(經(jīng)典學(xué)習(xí)指導(dǎo)系列)

    對(duì)于電工技術(shù)、電氣工程方面的人士是個(gè)很好的借鑒,有助于電路分析。 從直流電阻性電路分析開始,一直講到交流電路。 對(duì)于數(shù)學(xué)基礎(chǔ)方面,使用者不需要懂得微分或積分預(yù)算,用導(dǎo)數(shù)來說明電壓與電流的關(guān)系的場(chǎng)合
    發(fā)表于 05-13 15:29

    PanDao:光學(xué)設(shè)計(jì)的制造風(fēng)險(xiǎn)管理

    是通過對(duì)其加工參數(shù)進(jìn)行系統(tǒng)分析確定的。 1.簡介 在光學(xué)制造技術(shù),可預(yù)測(cè)且穩(wěn)定的制造工藝對(duì)成本與質(zhì)量進(jìn)行可靠管理至關(guān)重要。本文闡述了針對(duì)特定光學(xué)元件與系統(tǒng),如何來確定光學(xué)制造鏈應(yīng)采
    發(fā)表于 05-07 09:01

    基于智能穿戴的智慧校園運(yùn)動(dòng)健康解決方案NRF52832

    消耗等。這有助于學(xué)生了解自己的運(yùn)動(dòng)量,鼓勵(lì)他們進(jìn)行適當(dāng)?shù)倪\(yùn)動(dòng),保持健康的身體狀態(tài)。 2、健康管理:該解決方案還提供健康管理功能,學(xué)生可以記錄自己的身體指標(biāo),如心率、血壓、睡眠質(zhì)量等。通過分析
    發(fā)表于 04-09 15:37

    高效、超低靜態(tài)電流、超低輸出紋波降壓穩(wěn)壓器DA9232數(shù)據(jù)手冊(cè)

    電流,這些器件的電池壽命顯著延長。降壓穩(wěn)壓器的動(dòng)態(tài)電壓控制(DVC)有助于優(yōu)化整個(gè)系統(tǒng)電源模式,從而進(jìn)一步提高系統(tǒng)效率和電池壽命。 *附件:高效、超低靜態(tài)電流、超低輸出紋波降壓穩(wěn)壓器DA9232數(shù)據(jù)手冊(cè).pdf 優(yōu)勢(shì) 10mV
    的頭像 發(fā)表于 04-08 17:22 ?900次閱讀
    高效、超低<b class='flag-5'>靜態(tài)</b>電流、超低輸出紋波降壓穩(wěn)壓器DA9232數(shù)據(jù)手冊(cè)

    PoE交換機(jī)在安防監(jiān)控系統(tǒng)的關(guān)鍵作用

    設(shè)備宕機(jī)和故障的風(fēng)險(xiǎn)。 PoE交換機(jī)提供的可靠性確保了穩(wěn)定且不間斷的數(shù)據(jù)流,這對(duì)于安全監(jiān)控和訪問控制的有效性至關(guān)重要。通過消除數(shù)據(jù)傳輸的潛在障礙,PoE交換機(jī)有助于構(gòu)建穩(wěn)定可靠的網(wǎng)絡(luò)基礎(chǔ)設(shè)施
    發(fā)表于 03-24 16:41

    白光干涉儀:表面形貌分析,如何區(qū)分波紋度與粗糙度?

    表面形貌分析,波紋度和粗糙度是兩種關(guān)鍵特征。通過濾波技術(shù)設(shè)置截止波長,可將兩者分離。分離后,通過計(jì)算參數(shù)或FFT驗(yàn)證效果。這種分析有助于優(yōu)化加工工藝、提升產(chǎn)品性能和質(zhì)量。
    的頭像 發(fā)表于 03-19 18:04 ?1267次閱讀
    白光干涉儀:表面形貌<b class='flag-5'>分析</b>,如何區(qū)分波紋度與粗糙度?

    頻域示波器在電源噪聲分析的應(yīng)用

    抽樣定律,即采樣率應(yīng)大于信號(hào)最高頻率的兩倍。在電源噪聲分析,通常選擇較高的采樣率以捕捉高頻噪聲。 時(shí)基的設(shè)置應(yīng)足夠長,以覆蓋整個(gè)有效信號(hào)的時(shí)間跨度。這有助于減少頻譜泄漏,提高頻譜分析
    發(fā)表于 03-14 15:03