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

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

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

代碼質(zhì)量如何影響企業(yè)的投資回報(bào)率

IAR愛亞系統(tǒng) ? 來(lái)源:IAR愛亞系統(tǒng) ? 2023-05-26 10:22 ? 次閱讀

在上文嵌入式軟件開發(fā)的十二大基本要素(四):調(diào)試》中,我們分析了如何減少調(diào)試時(shí)間,提升工作效率。

本文為白皮書系列第五部分,將分析代碼質(zhì)量是如何影響企業(yè)的投資回報(bào)率(ROI)和總擁有成本(TCO)。

平均來(lái)說(shuō),根據(jù) Steve McConnell 的《Code Complete》,一個(gè)開發(fā)人員每寫 1000 行代碼會(huì)產(chǎn)生 70 個(gè) Bug。其中大約 20%,即每 1000 行代碼中的 15 個(gè) Bug 會(huì)被客戶發(fā)現(xiàn)。更糟的是,修復(fù)一個(gè)Bug 要比寫一行代碼多花 30 倍的時(shí)間。

通過(guò)在開發(fā)周期的早期引入代碼質(zhì)量控制,可以將錯(cuò)誤的影響和消除錯(cuò)誤的工作量降到最低。在每個(gè)開發(fā)人員的電腦上提供靜態(tài)分析,并有明確的編碼標(biāo)準(zhǔn),可以幫助他們?cè)陂_發(fā)過(guò)程中發(fā)現(xiàn)源代碼中的問(wèn)題,在此階段犯錯(cuò)的成本比發(fā)布產(chǎn)品后才發(fā)現(xiàn)要小得多。

此外,很多人都在談?wù)撛O(shè)計(jì)他們的代碼以便重用,但軟件估算模型表示重用的代碼所占的工作量至少是編寫新代碼的 50%。

4f80c492-fb2f-11ed-90ce-dac502259ad0.png

如上圖所示的 Boehm 的 COCOMO 方法,估計(jì)了編寫代碼的相對(duì)成本是如何被對(duì)虛線中的重用軟件所做修改而影響的。X 軸是對(duì)打算重用的代碼所做修改的百分比,而Y 軸代表了寫新代碼的百分比。請(qǐng)注意,對(duì)于三個(gè)數(shù)據(jù)樣本中的兩個(gè)代碼,不需要對(duì)所謂的重用代碼做太多的修改,就可以突然跳到從頭開始重寫代碼的 50% 的工作量。AAM(自適應(yīng)調(diào)整修改器)線顯示,對(duì)重用產(chǎn)品中的小修改可以產(chǎn)生不成比例的大成本。這里的關(guān)鍵點(diǎn)是,如果真的想重復(fù)使用代碼,它必須具有非常高的質(zhì)量和良好的設(shè)計(jì),以達(dá)到成本效益。

提高代碼質(zhì)量的最快方法是使用代碼分析工具。事實(shí)上,如果正在創(chuàng)建一個(gè)功能安全認(rèn)證的應(yīng)用,你甚至?xí)粡?qiáng)制要求使用靜態(tài)分析工具。這些類型的工具可以幫助你找到代碼中最常見的缺陷來(lái)源,也可以幫助你找到開發(fā)人員在試圖編寫代碼時(shí)往往不會(huì)考慮的問(wèn)題,特別是當(dāng)他們?yōu)榱俗屇承┕δ苓\(yùn)行而加入支撐代碼時(shí)。靜態(tài)分析工具確實(shí)能幫助你開發(fā)出更好的代碼,因?yàn)樗鼈儚?qiáng)制執(zhí)行編碼標(biāo)準(zhǔn)。根據(jù)你的靜態(tài)分析解決方案的質(zhì)量,它們可以在你還在寫代碼的時(shí)候檢查出許多其它潛在的問(wèn)題。

有幾個(gè)原因能夠證明代碼質(zhì)量是一個(gè)大問(wèn)題。首先,根據(jù)開發(fā)組織的成熟度,開發(fā)人員可以把 90% 的時(shí)間花在調(diào)試上。如果能在缺陷進(jìn)入正式構(gòu)建之前快速隔離它們,你就會(huì)有較低的缺陷注入率,這意味著可以更快地達(dá)到組織的質(zhì)量指標(biāo)。其次,這也意味著你的代碼總體上有較少的剩余缺陷,這使得它成為重用的合適候選者,因?yàn)樵俅问褂迷摯a時(shí),發(fā)現(xiàn)先前未被發(fā)現(xiàn)的缺陷的機(jī)會(huì)較低。高質(zhì)量的代碼由于缺陷較少而更容易維護(hù),而且如果它遵循良好的軟件工程原則,它將更容易擴(kuò)展,因此重用它確實(shí)能提升后續(xù)項(xiàng)目的速度。

為什么質(zhì)量很重要?

有趣的是,每個(gè)階段的每個(gè)缺陷的成本都如預(yù)期的那樣上升,但總成本卻在下降,就像 Capers Jones 的《Estimating Software Costs》一書中所示,缺陷數(shù)量在減少。在實(shí)踐中,發(fā)現(xiàn)和修復(fù)每個(gè)階段的錯(cuò)誤并不需要更長(zhǎng)的時(shí)間,但是盡管數(shù)量減少了,成本仍然存在。值得注意的是,隨著產(chǎn)品的成熟運(yùn)行,由于服務(wù)于現(xiàn)場(chǎng)產(chǎn)品的影響,每個(gè)缺陷的維護(hù)成本要高很多。其他無(wú)形成本,如對(duì)品牌的損害和未來(lái)客戶和收入的損失,也仍然是需要考慮的因素。

4f93bb88-fb2f-11ed-90ce-dac502259ad0.png

那么,考慮到這些因素,投資的回報(bào)是什么呢?靜態(tài)分析可以減少軟件開發(fā)中各個(gè)階段的錯(cuò)誤數(shù)量。一個(gè)簡(jiǎn)單的分析是利用上圖中的數(shù)據(jù)來(lái)減少錯(cuò)誤的數(shù)量。鑒于這種在開發(fā)過(guò)程中引入的錯(cuò)誤的減少,我們可以看到成本的顯著降低。

這個(gè)簡(jiǎn)單的分析得出每個(gè) Bug 可以節(jié)省大約 126 美元,即假設(shè)在開發(fā)過(guò)程中每 1000 行代碼平均有 15 個(gè) Bug,則轉(zhuǎn)化為每 1000 行代碼節(jié)省 1900 美元。當(dāng)然,結(jié)果會(huì)基于其他因素,如勞動(dòng)率、缺陷檢測(cè)和修復(fù)時(shí)間,以及缺陷密度,會(huì)有所不同。但由于許多系統(tǒng)使用 10 到 100 KLOC 或更多,因此靜態(tài)分析的商業(yè)案例顯而易見。

提高編碼技能

此外,在 Dr. Dobbs 所做的另一項(xiàng)研究中,認(rèn)為它將缺陷注入率降低了 41%,這節(jié)省了大量測(cè)試時(shí)間,既縮短了工程時(shí)間,還加速了上市時(shí)間。

4fb92f9e-fb2f-11ed-90ce-dac502259ad0.png

在這項(xiàng)研究中,每個(gè)月的缺陷注入率是相當(dāng)穩(wěn)定的,直到該組織引入編碼標(biāo)準(zhǔn),然后缺陷率急速下降。隨著開發(fā)人員對(duì)標(biāo)準(zhǔn)越來(lái)越熟悉,偏差越來(lái)越少,缺陷率直線下降。

Google 在 ACM 出版物上發(fā)表了一篇文章,探討了代碼分析的優(yōu)點(diǎn)。雖然文章對(duì)他們的整個(gè)代碼庫(kù),包括 C、C++Java 進(jìn)行了全面的考察,但結(jié)果非常明顯:“在開發(fā)過(guò)程的早期就能發(fā)現(xiàn)編譯器錯(cuò)誤,并且能夠整合到開發(fā)人員的工作流程中。我們發(fā)現(xiàn)擴(kuò)大編譯器的檢查集對(duì)提高 Google 的代碼質(zhì)量是有效的?!弊髡弑硎荆?strong>將靜態(tài)分析檢查整合到編譯器工作流程并使其作為錯(cuò)誤出現(xiàn),極大地提高了開發(fā)人員對(duì)工具信息的關(guān)注,最終大幅提升代碼質(zhì)量。

再往下看,他們談到了向最近遇到編譯時(shí)間錯(cuò)誤的開發(fā)人員和已經(jīng)收到修復(fù)同一問(wèn)題的補(bǔ)丁的開發(fā)人員發(fā)出的調(diào)研。

“Google 的開發(fā)人員認(rèn)為,在編譯時(shí)標(biāo)記的問(wèn)題(相對(duì)于檢查過(guò)的代碼的補(bǔ)?。┠懿蹲降礁匾腻e(cuò)誤;例如,調(diào)研參與者認(rèn)為 74% 在編譯時(shí)標(biāo)記的問(wèn)題屬于真正的問(wèn)題,而在檢查過(guò)的代碼中發(fā)現(xiàn)的問(wèn)題只有 21%?!?/p>

此外,文章還談到了將代碼分析整合到工作流程的重要性,指出當(dāng)他們通過(guò)靜態(tài)分析工具自動(dòng)運(yùn)行提交的代碼并邀請(qǐng)工程師查看分析結(jié)果時(shí),很少有工程師跟進(jìn)。但是,如果在編譯過(guò)程中就能得到即時(shí)反饋,那么就會(huì)讓更多人使用靜態(tài)分析,且分析結(jié)果也更難被忽視。因此,Google 選擇在每個(gè)人的工作流程中默認(rèn)集成靜態(tài)分析。他們認(rèn)為要推廣代碼分析工具,開發(fā)人員必須感到能從中受益,并且喜歡使用這些工具。從中可以看出,編碼標(biāo)準(zhǔn)確實(shí)對(duì)開發(fā)工作有影響。

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

    關(guān)注

    19

    文章

    2943

    瀏覽量

    104096
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67765
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48896

原文標(biāo)題:嵌入式軟件開發(fā)的十二大基本要素(五):代碼質(zhì)量

文章出處:【微信號(hào):IAR愛亞系統(tǒng),微信公眾號(hào):IAR愛亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    軟銀愿景基金對(duì)高科技企業(yè)先后投資700億美元 投資回報(bào)率達(dá)44%

    3月9日消息,據(jù)外媒報(bào)道,日本軟銀集團(tuán)首席執(zhí)行官孫正義(Masayoshi Son)表示,持資1000億美元的愿景基金(Vision Fund)已經(jīng)投資了約700億美元,未來(lái)可能會(huì)進(jìn)行更多的押注。
    發(fā)表于 03-09 09:09 ?2052次閱讀

    OnRobot推出即插即用智能螺絲緊固工具Screwdriver,實(shí)現(xiàn)快速、簡(jiǎn)易和靈活的部署

    新型OnRobot Screwdriver具有精準(zhǔn)扭矩和嵌入式軸控制等內(nèi)置智能功能,可在短時(shí)間內(nèi)快速部署于不同應(yīng)用,簡(jiǎn)化編程,提高生產(chǎn)、質(zhì)量投資回報(bào)率。
    的頭像 發(fā)表于 06-18 15:54 ?3124次閱讀

    現(xiàn)在,谷歌讓你直接看到投資回報(bào):墾鑫達(dá)說(shuō)

    `現(xiàn)在,谷歌讓你直接看到投資回報(bào):墾鑫達(dá)說(shuō) 直接營(yíng)銷可能是最煩人的營(yíng)銷形式,但它是直接ROI(墾鑫達(dá)注:投資回報(bào)率)是最簡(jiǎn)單的策略。這是一個(gè)基本的和假想的例子:我發(fā)送目錄/電子郵件
    發(fā)表于 09-19 12:58

    貼片機(jī)成本分析兩方面問(wèn)題

      成本分析考慮兩方面的問(wèn)題:第一,企業(yè)本身的資金能力,企業(yè)準(zhǔn)備在設(shè)備方面投入多大的資金;第二,企業(yè)如何考慮投資回報(bào)率,設(shè)備的折舊時(shí)間、資金
    發(fā)表于 09-05 16:31

    請(qǐng)問(wèn)ch9329鼠標(biāo)的回報(bào)率是多少,可以修改嗎?

    ch9329鼠標(biāo)的回報(bào)率是多少,可以修改嗎
    發(fā)表于 09-29 07:34

    如何衡量物聯(lián)網(wǎng)投資的全部影響和投資回報(bào)率

    我們研究發(fā)現(xiàn),58%的受訪者認(rèn)為提高運(yùn)營(yíng)效率是物聯(lián)網(wǎng)、數(shù)據(jù)和連接投資的最大好處。這很可能是因?yàn)槲锫?lián)網(wǎng)具有巨大的潛力來(lái)增加產(chǎn)出,同時(shí)降低多個(gè)部門和行業(yè)的投入。例如,物聯(lián)網(wǎng)制造設(shè)備可以幫助管理物理生產(chǎn)線,避免停機(jī),并增加產(chǎn)量。物聯(lián)網(wǎng)還可以幫助公司實(shí)時(shí)監(jiān)控庫(kù)存,以幫助控制成本。
    發(fā)表于 05-23 16:39 ?1033次閱讀

    論B端AR/VR市場(chǎng)投資回報(bào)率與未來(lái)

    相較于C端市場(chǎng),AR/VR在B端已經(jīng)落地許多應(yīng)用場(chǎng)景,包括:教育、醫(yī)療、安防、培訓(xùn)、地產(chǎn)、文旅、體育等。因?yàn)榭吹搅薞R/AR的高回報(bào)率,各大企業(yè)和政府已經(jīng)開始關(guān)注這種技術(shù)。
    發(fā)表于 06-11 15:40 ?3354次閱讀

    零售商怎樣利用物聯(lián)網(wǎng)提高投資回報(bào)率

    隨著越來(lái)越多的零售店實(shí)施物聯(lián)網(wǎng)和智能零售設(shè)備,進(jìn)而使零售店的投資回報(bào)率大大增加。
    發(fā)表于 09-16 15:15 ?967次閱讀

    對(duì)沖基金對(duì)加密貨幣投資有什么影響

    根據(jù)比特幣在2019年的業(yè)績(jī)(通常超過(guò)標(biāo)準(zhǔn)普爾指數(shù)),如果他們采取措施將加密貨幣整合到他們的投資組合中,那么這些對(duì)沖基金很有可能大幅提高其回報(bào)率。
    發(fā)表于 02-18 14:53 ?679次閱讀

    大多數(shù)企業(yè)希望通過(guò)5G投資獲得用戶的支持和增長(zhǎng)

    網(wǎng)絡(luò)安全廠商Fortinet公司的最新調(diào)查報(bào)告表明,電信行業(yè)對(duì)5G及其投資回報(bào)率普遍持樂觀態(tài)度,但基于5G的產(chǎn)品需要更安全,更適合企業(yè)使用。
    的頭像 發(fā)表于 10-21 15:30 ?1134次閱讀

    變速驅(qū)動(dòng)器提高效率和回報(bào)率的解決方法

    盲目添加VSD不會(huì)自動(dòng)提高軸的效率(傳動(dòng)系統(tǒng)+電機(jī)+VSD)。VSD有功率損耗,可能會(huì)降低整體系統(tǒng)效率。確定效率增加和最快的回報(bào)率可以通過(guò)以下通用過(guò)程進(jìn)行總結(jié)。
    發(fā)表于 01-23 10:07 ?425次閱讀

    利用物聯(lián)網(wǎng)安全性提高投資回報(bào)率

      近年來(lái),隨著網(wǎng)絡(luò)世界中大量漏洞被利用,消費(fèi)者正被迫考慮安全性,現(xiàn)在正在考慮消費(fèi)者和企業(yè)客戶的購(gòu)買決策,從而推動(dòng)頂級(jí)組織和一級(jí)企業(yè)投資于歷史上最被忽視的系統(tǒng)設(shè)計(jì)方面之一。
    的頭像 發(fā)表于 10-20 10:44 ?784次閱讀

    嵌入式軟件開發(fā)基本要素之代碼質(zhì)量

    IAR 的嵌入式開發(fā)解決方案涵蓋了所有的嵌入式軟件開發(fā)基本要素,增加了提高生產(chǎn)力和效率的價(jià)值,保證了質(zhì)量,并加快了上市時(shí)間。這一切可以通過(guò)投資回報(bào)率(ROI)和總擁有成本(TCO)的用例來(lái)得到證明。
    發(fā)表于 05-15 16:36 ?523次閱讀
    嵌入式軟件開發(fā)基本要素之<b class='flag-5'>代碼</b><b class='flag-5'>質(zhì)量</b>

    雷柏游戲鼠標(biāo)實(shí)現(xiàn)OTA升級(jí),實(shí)現(xiàn)無(wú)線8K回報(bào)率,無(wú)需購(gòu)買額外接收器

    據(jù)了解,升級(jí)后的硬件設(shè)備使用了瑞昱 Realtek 芯片,利用驅(qū)動(dòng)在線更新接收器和鼠標(biāo)固件,調(diào)整為 OTA 型無(wú)線 8K 回報(bào)率模式,最大無(wú)線響應(yīng)速度達(dá)到驚人的 125μs (0.125 ms),相比于傳統(tǒng)的 1000 Hz回報(bào)率鼠標(biāo),操作更為快捷流暢。
    的頭像 發(fā)表于 03-26 11:01 ?759次閱讀

    三星電子股東回報(bào)率超過(guò)科技巨頭

    根據(jù)報(bào)道,過(guò)去一年間,三星電子、微軟、Meta 等企業(yè)財(cái)務(wù)數(shù)據(jù)表明,三星電子較同行表現(xiàn)更為出色,股東回報(bào)率達(dá)到了驚人的 77.6%,遠(yuǎn)遠(yuǎn)超過(guò)微軟的 57.5% 以及 Meta 的 59.5%。
    的頭像 發(fā)表于 04-02 09:56 ?266次閱讀