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