軟件向自動模式轉(zhuǎn)化
在現(xiàn)在這個時代,最復雜的汽車可能擁有超過100個微處理器、超過1億的編碼行數(shù)(LOC)。而且目前我們還沒看到任何跡象表明:這種不斷增長的軟件發(fā)展勢頭未來會受到遏制。令人驚訝地是,甚至許多資金短缺的公司,也在試圖用機器而不是人類來解決這項技術(shù)挑戰(zhàn)。其實自動代碼生成很久以前就應(yīng)用于這個行業(yè)了,現(xiàn)在看來,它正處于迫切需要突破的臨界點。自動代碼生成工具,有利于使設(shè)計原形進入量產(chǎn)。它們創(chuàng)造了易于維護的編碼,也有助于工程師創(chuàng)建復合系統(tǒng),快速進入市場。
“當人們將注意力轉(zhuǎn)向較大型項目、更復雜的運算法則以及32位浮點芯片時,自動編碼將成為主流,”MathWorks公司汽車行業(yè)部經(jīng)理Wensi Jin說;“對于混合動力車相關(guān)項目而言,這種方式很適用,不需要和海量的修改代碼打交道?!?
新興技術(shù)領(lǐng)域?qū)ψ詣哟a生成特別感興趣—絕大多數(shù)的設(shè)計團隊都采用編碼發(fā)生器,進行免修改編程,比如為主動安全和電動轉(zhuǎn)向系統(tǒng)設(shè)計編碼?,F(xiàn)在,汽車制造商們在高級人機界面上應(yīng)用此技術(shù)的機會也越來越多。
“隨著越來越多的汽車采用圖形顯示和人機界面,汽車工業(yè)將采用更多工具手段,集中在圖形用戶界面設(shè)計、在實際設(shè)備上生成代碼,”微軟汽車組項目經(jīng)理Walter Sullivan說。
Vector CANtech公司工程師用自動編碼開發(fā)網(wǎng)絡(luò)軟件
軟件技術(shù)日益成為促進汽車制造商差異化的關(guān)鍵—他們可以用軟件添加特色和功能。對于動力傳動系統(tǒng)而言,編程也很關(guān)鍵。適當?shù)木幊棠軌蛱岣咝阅軈?shù)、燃料經(jīng)濟性,降低排放。自動代碼生成的最大好處就是:機器編碼比人類快得多?!帮@著降低開發(fā)時間,”天合汽車公司電動轉(zhuǎn)向系統(tǒng)高級軟件開發(fā)工程師Jon Chalmers說:“雖然開始時比較費時間,但是到項目收尾時,成效明顯?!?
眾多觀察家認為:手動編程已經(jīng)不再能夠滿足行業(yè)需求。多年前,匯編語言就開始給C語言讓位了。C語言將編程提高到一個更抽象的高度,讓開發(fā)者能夠在同一時間生成更多軟件,錯誤更小?!盎谀P偷拈_發(fā)將超越C語言邁出一大步,”dSpace公司北美產(chǎn)品經(jīng)理DirkFleischer說?!案橄缶鸵馕吨粡碗s,”自動代碼生成工具,在最大程度上消除了一些普通編程錯誤,比如上溢。
天合汽車公司的工程師們發(fā)現(xiàn)使用自動編碼很方便,比如應(yīng)用
在電動轉(zhuǎn)向器上。
業(yè)內(nèi)對此技術(shù)的信心越來越強,已經(jīng)將其進一步擴展到提高編碼效率的應(yīng)用上了。曾經(jīng)有負面觀點稱:編碼器會使軟件無法承受、力不從心,占用更大內(nèi)存和處理功能,超出汽車制造商的預期。
但是現(xiàn)在情況有所改變?!半S著自動代碼生成工具日益完善,將逐漸接近手動編碼實現(xiàn)的效果,”Vector CANtech公司內(nèi)嵌軟件高級項目工程師Ralf Fritz說。
許多程序員稱:機器生成代碼的效率僅比優(yōu)秀的手動編碼高幾個百分點。對于許多在其新項目上用自動代碼生成技術(shù)的公司而言,這個結(jié)果還算令人滿意。
自動代碼生成不會產(chǎn)生額外工作。但是像許多新技術(shù)一樣,開始時比傳統(tǒng)項目需要花費的時間長,也需要一定的培訓或較高的實踐經(jīng)驗。
“設(shè)定一項自動編碼項目是比較復雜的,”天合汽車公司產(chǎn)品總工程師Richard Blachford說;“先確定一個項目,然后用工具以你想要的確定方式生成代碼。在此過程中,還需要一兩個對自動編碼工具沒有抵觸情緒的軟件專家?!?
挑戰(zhàn)隨之而來
隨著自動編碼在新領(lǐng)域得到更大應(yīng)用、在大多數(shù)系統(tǒng)設(shè)計里應(yīng)用更廣泛,免修改代碼也出現(xiàn)了—畢竟,沒人喜歡改來改去。將機器生成和手工編寫結(jié)合,對于那些在這個要求高可靠性工業(yè)工作的人而言,是一大挑戰(zhàn)。
只要在這個領(lǐng)域工作,就需要提高效率、盡快修改不合適的編碼。工具供應(yīng)商承認:在此領(lǐng)域還有很多工作需要去做,“今天我們所面對的重要障礙,就是在免修改環(huán)境下的自動代碼生成工具集成,”Etas公司產(chǎn)品市場經(jīng)理VivekJaikamal說。
還有一些挑戰(zhàn)比較簡單,只要求盡可能減少耗費時間。但是在復雜領(lǐng)域(比如動力傳動和安全領(lǐng)域),數(shù)據(jù)價值變動頻繁,程序員必須想法子找到解決之道。
“必須搞清楚如何實現(xiàn)這樣的功能,這相對較簡單,”MathWorks公司內(nèi)嵌應(yīng)用經(jīng)理Tom Erkkinen說:“如果擁有大量的、還未清楚傳送出去的全球數(shù)據(jù),很難洞悉未來走向?!?
在設(shè)計進程中,設(shè)計師們還必須面對一個挑戰(zhàn),即:需要程序員修改軟件。通常,程序員能夠找到容易修改的方式。但是絕大多數(shù)觀察家認為:很少有人回應(yīng)這種需求,通過手動編碼修改軟件。
“如果要消費者自己修改,有時他們會覺得手動的速度更快,”Vector CANtech公司內(nèi)嵌軟件產(chǎn)品線經(jīng)理Robert Miller說:“但是當你在整個生命周期內(nèi)做修改,就需要重新生成代碼。如果采用手動生成的話,這些變革通常不會實現(xiàn)。
當編碼隨著供應(yīng)鏈移動時,這點特別重要。如果賣方手動修改編碼,當OEM商通過同一種編碼器查閱編碼時,會改變其中記錄的信息,賣方對編碼的改動可能丟失。
如果用人工進行此類改動,原模型將不再呈現(xiàn)量產(chǎn)時的代碼信息。那么在后續(xù)項目中,軟件工程師就得不斷更新手動修改過的軟件,還要決定是否使用原始模塊或修改過的原代碼。
“如果選擇質(zhì)量已經(jīng)過檢驗的修改過的原代碼,功能模塊的價值將逐步消退,”Etas公司的市場副總裁Jeff Kessen說:“代碼生成后的修改,可能不會傳遞到新項目上?!?
修改自動生成代碼,會擾亂進程持續(xù)性,為重新使用帶來障礙?,F(xiàn)在,越來越多公司在整個開發(fā)周期均采用自動編碼軟件?!暗沁€有很多公司不信任自動編碼,所以他們用它作原型模塊,用手動編碼量產(chǎn),”美國國家儀器公司硬件在環(huán)(HIL)和動態(tài)測試產(chǎn)品經(jīng)理Chris Washington說:“隨著工具公司日益優(yōu)化代碼生成方式,這種情況將越來越少?!?
美國國家儀器公司專家認為:編碼器使汽車系統(tǒng)測試更簡單
絕大多數(shù)自動代碼生成(ACG)的擁躉者,都致力于降低開發(fā)時間、增加軟件的再利用率。但是對于許多人來說,自動代碼生成的一大關(guān)鍵好處,就是可以使開發(fā)者更容易地測試,確保耐用性。在建模過程中,自動代碼生成使工程師更容易持續(xù)驗證其理念和完成情況。
“所采用的實施方案越高級,就越能持續(xù)驗證,”Chris Washington說:“這是獲得最大好處的關(guān)鍵?!弊詣哟a生成的好處,會在設(shè)計和測試過程中一直保持下去。設(shè)計團隊希望節(jié)省時間,對創(chuàng)造成果再加工。能夠采用已經(jīng)考驗證明成效的測試,對于手動設(shè)計團隊非常重要。
“用自動編碼來證明效用,是非常容易的,”MathWorks的WensiJin說:“還能再次利用自己的測試案例,大大提高生產(chǎn)率。”
自動代碼生成能夠滿足的各種需求中,驗證軟件可靠性是非常重要的一項。消費者希望其壽命能夠遠超其他消費類產(chǎn)品。在這個汽車開始決定乘客生死的時代,性能可靠有效的軟件,意義非常重要?!皩τ诎踩愊到y(tǒng),我們更關(guān)注驗證進程,而機器生成的代碼非常好用,”MathWork公司內(nèi)嵌應(yīng)用經(jīng)理Tom Erkkinen說。
自動代碼生成還有一個好處,就是使工程師團隊的工作更輕松,即使沒有在技術(shù)層面產(chǎn)生重大影響。它還能提供許多程序記錄,為開發(fā)商提供進程報告?!白詣佑涗浤軌驕p少檢查的麻煩,”VectorCANtech公司Steve Traicoff說。
評論