在上文《嵌入式軟件開(kāi)發(fā)的十二大基本要素(二):代碼性能》中,我們分析了代碼性能如何具體影響投資回報(bào)率(ROI)和總擁有成本(TCO)。
本文為白皮書(shū)系列第三部分,將分析工作流程對(duì)生產(chǎn)力的具體影響。
一般來(lái)說(shuō),在現(xiàn)代開(kāi)發(fā)工作流程中,每增加一行代碼或修改軟件都會(huì)導(dǎo)致軟件項(xiàng)目的重新構(gòu)建。在這種情況下,如果代碼太多,就需要很長(zhǎng)的時(shí)間來(lái)構(gòu)建,從而導(dǎo)致開(kāi)發(fā)周期因?yàn)檫@個(gè)等待時(shí)間而增加。
這如何轉(zhuǎn)化為公司的優(yōu)勢(shì)?
Steve McConnell 的《Software Estimation: Demystifying the Black Art》一書(shū)中包含了一張從估算模型 Cocomo II(建設(shè)性成本模型)中得出的圖表,該圖表以人月為單位的工作與以代碼行 (SLOC) 為單位的項(xiàng)目規(guī)模作對(duì)比。如果我們研究 COCOMO II 工作量公式:
工作量 = 2.94 * EAF * (KSLOC)E
EAF:是由成本驅(qū)動(dòng)因素得出的工作量調(diào)整系數(shù)。
E:是由五個(gè)規(guī)模驅(qū)動(dòng)因素得出的指數(shù)。
KSLOC:以千代碼行為單位。
工作量公式中的 EAF 僅僅是與項(xiàng)目的每個(gè)成本驅(qū)動(dòng)因素對(duì)應(yīng)的工作量乘數(shù)的乘積。
觀察下圖中從《COCOMO II - 模型定義手冊(cè)》中提取的成本驅(qū)動(dòng)因素,有很大的比重。在最壞的情況下,極低的評(píng)級(jí)水平對(duì)工作量調(diào)整系數(shù) (EAF) 的影響 = 1.40 (1.20*1.17),在最好的情況下,評(píng)級(jí)水平非常高,EAF=0.66(0.84*0.78)。
圖表:語(yǔ)言和工具經(jīng)驗(yàn)(LTEX)和軟件工具的使用(TOOL)
這將直接影響整個(gè)開(kāi)發(fā)團(tuán)隊(duì)的生產(chǎn)力。對(duì)企業(yè)的影響可以在 http://softwarecost.org/tools/COCOMO/ 免費(fèi)計(jì)算和調(diào)整。這同樣適用于設(shè)計(jì)和代碼生成工具。自動(dòng)生成的代碼的構(gòu)建時(shí)間較長(zhǎng),會(huì)影響到設(shè)計(jì)本身的生產(chǎn)力,因?yàn)樵谶M(jìn)行設(shè)計(jì)之前,需要對(duì)更改或新的邏輯進(jìn)行測(cè)試并集成到整個(gè)系統(tǒng)中。
根據(jù)不同的客戶反饋,以及在客戶案例中所述,與其他商業(yè)工具相比,IAR Embedded Workbench 的構(gòu)建速度至少是其兩倍。這也同樣適用于 IAR 功能安全版本的產(chǎn)品。而跨平臺(tái)支持的 IAR 構(gòu)建工具在使用相同的硬件主機(jī)的 Linux 上的構(gòu)建時(shí)間,顯示出更好的性能(快 4 倍)。在 Ubuntu 上執(zhí)行標(biāo)準(zhǔn) C-STAT 靜態(tài)分析檢查所需時(shí)間是在 Windows 上的 25%。
更快地交付構(gòu)建和分析結(jié)果意味著持續(xù)交付 (CD) 能夠更快地收斂。
圖表:IAR Embedded Workbench與IAR構(gòu)建工具的構(gòu)建時(shí)間比較
圖中顯示的構(gòu)建時(shí)間使用了:
– 574個(gè)C/C++源文件
– 最高的編譯器優(yōu)化級(jí)別
– 項(xiàng)目構(gòu)建后進(jìn)行分析
– 比較基于相同的主機(jī)硬件,Intel i7-8700K,24 GB RAM
– 使用 1、2、4和8個(gè)CPU內(nèi)核
同樣,一般來(lái)說(shuō),在 Ubuntu 上使用 IAR 構(gòu)建工具構(gòu)建嵌入式軟件項(xiàng)目比在 Windows 上使用 IAR Embedded Workbench 構(gòu)建更快,通常前者構(gòu)建項(xiàng)目的時(shí)間不到后者的 50%。
此外,在現(xiàn)代嵌入式開(kāi)發(fā)工作流程中,采用自動(dòng)化流程來(lái)確保質(zhì)量并持續(xù)構(gòu)建和測(cè)試是一個(gè)基本需求。當(dāng)使用跨平臺(tái)框架中底層命令行工具實(shí)現(xiàn)了相同功能的正確 DevOps 實(shí)踐時(shí),嵌入式軟件研發(fā)團(tuán)隊(duì)可以實(shí)現(xiàn)更短的新功能上市時(shí)間。
IAR 解決方案支持 Ubuntu、Red Hat 和 Windows 上的現(xiàn)代可擴(kuò)展構(gòu)建服務(wù)器拓?fù)浣Y(jié)構(gòu),可用于 CI/CD 管道,包括虛擬機(jī)、容器 (Docker) 和自我托管的運(yùn)行器。
審核編輯 :李倩
-
嵌入式
+關(guān)注
關(guān)注
5086文章
19143瀏覽量
306090 -
軟件開(kāi)發(fā)
+關(guān)注
關(guān)注
0文章
619瀏覽量
27381 -
模型
+關(guān)注
關(guān)注
1文章
3261瀏覽量
48913
原文標(biāo)題:嵌入式軟件開(kāi)發(fā)的十二大基本要素(三):DevOps
文章出處:【微信號(hào):IAR愛(ài)亞系統(tǒng),微信公眾號(hào):IAR愛(ài)亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論