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