欧美美乳视频网站在线观看_日韩视频在线免费观看_国产福利一区二区在线观看_久久99日韩_天天看天天干_成人xxxx

400-821-6015
行業(yè)資訊
您當(dāng)前的位置:首頁 ? 行業(yè)資訊 ? 行業(yè)資訊
內(nèi)部資訊行業(yè)資訊

如何成為一名優(yōu)秀的汽車軟件工程師

發(fā)布日期:2022-06-07


基于個人工作經(jīng)驗來談以下幾點:

  • 汽車軟件工程師的最重要技能
  • V流程引發(fā)的所思所想
  • Bug修復(fù)引發(fā)的所思所想
  • 汽車軟件工程師如何精進(jìn)技能


01 汽車軟件工程師的最重要技能


 人到中年,感覺以前聽的大道理都是人生真理,比如"求上得中,求中得下"。先來看參考[1]:

引自[1]: The Most Significant Skills for Automotive Software Developers
Skill 1: Industry Expertise
Software developers in the automotive industry must be familiar with various industry standards. You should know what an infotainment system and a head unit are, what components are behind them, how they can be connected and what forms of data transmission and storage exist. Tier 1 suppliers like Bosch will require hands-on experience in embedded programming. Automakers will also value your ability to develop and test software for ECUs (Electric Control Units) microcontrollers, microprocessors, debuggers, etc.


Skill 2: Experience with Large-Scale Projects
In a large scale project, you will be required to communicate and interact with the teams of engineers, designers, testers as well as involved executive managers. If you’re an inexperienced software developer, brace yourself for overwhelming complexity of processes, tight deadlines and multiple interchangeable operations of geographically distributed teams. Therefore, before stepping up into any development activities, it’s better to study the entire structure of an organization, project requirements and only then, narrowing down to your specific job responsibilities.


Skill 3: Technology Competency
If you are attentive to details and can demonstrate a good technology competency, you’ll be able to cope with an extensive codebase of an embedded system that can have different versions and modules, their complex logical dependencies and mathematical algorithms. In addition, it will be also valued if you understand how to alter the code to provide new functions without affecting the functionality of existing solutions. The act of balancing between technical requirements, changing business requirements and high standards to the functional safety of any in-vehicle solutions is also a part of this competency you may hardly find in any job description.


Skill 4: Communication Skills
Software development in the automotive industry has many factors to consider. Among them are project requirements, project planning, basic architecture, quality requirements and process changes. At every stage of software development, you will have to put into practice your communication skills and professional approach to the entire delivery process including numerous iterations of the same feature.


Skill 5: Good Knowledge of English
Frequently, automotive projects are international and people from different countries are expected to have a decent level of English to find a common language with other team members. Besides, your English fluency will be also highly estimated by the management of the project deciding on which IT service company and team to pick up during the tender.


Skill 6: Responsibility
New releases in the automotive industry have far-reaching implications. The more features are added, the more complicated the entire embedded system becomes. And most importantly, these are mission-critical systems and any unnoticed mistake may incur more than just repair expenses. Perhaps, you remember a much-talked-of fatal test drive by Uber self-driving car[ that failed to recognize a pedestrian in the darkness. In this case, not only testers but also automotive software developers must have a strong sense of responsibility in terms of the code quality and deadlines.


讀懂了么?發(fā)現(xiàn)英語重要了吧。目前以我個人經(jīng)歷,我覺得英語的重要性體現(xiàn)在:

  1. 標(biāo)準(zhǔn)規(guī)范多是英文的,比如ASPICE, AUTOSAR, ISO26262等;
  2. 優(yōu)秀論文多是英文的,比如變速箱控制,自動駕駛,深度學(xué)習(xí)方面等;
  3. 工具文檔多是英文的,比如matlab,Vector,Doors等......
      不管怎樣,讓自己的英語越來越好,將會越來越受益。說可能受限于環(huán)境,但聽讀寫不限。當(dāng)然我覺得最重要不是英語,是責(zé)任。這里不談責(zé)任,但都源于責(zé)任。接下來我就基于自身作為一個汽車軟件工程師的工作經(jīng)歷,從幾個角度來分享我的體會。

02 V流程


軟件工程師應(yīng):
  • 具備強烈的需求意識;
  • 認(rèn)真對待文檔規(guī)范;
  • 積極測試。

     作為汽車軟件工程師,肯定都知道圖1的V流程,左邊的需求,設(shè)計,右邊的測試。在工作中,V流程的各環(huán)節(jié)幾乎都做過,很有感觸。

圖片

圖1 V流程,引自[2]


首先談需求,沒有需求就沒有V流程后面的設(shè)計和測試。先看下需求的標(biāo)準(zhǔn)定義

引自:ISO/IEC/IEEE 15288:2015(E) terms and definition
requirement:statement that translates or expresses a need and its associated constraints and conditions.
再看圖1的需求類別:
  • stakeholder requirement(利益相關(guān)者需求),
  • system requirement(系統(tǒng)需求),
  • software requirement(軟件需求) 。
       這些需求之間有什么關(guān)系呢?我覺得下圖2作了比較清晰的說明,即正向地來說利益相關(guān)者先提出了一個大概需求,經(jīng)與系統(tǒng),技術(shù)反復(fù)溝通與反饋,確定了利益相關(guān)者需求,再據(jù)此確定了系統(tǒng)需求,最后再據(jù)系統(tǒng)需求確定了軟件需求;反向地來說,具體實現(xiàn)過程中也可能存在軟件需求不合理情況,進(jìn)而依次去更新軟件需求,系統(tǒng)需求和利益相關(guān)者需求。

圖片

圖2 系統(tǒng)需求規(guī)范開發(fā)流程


       軟件工程師也許屬于圖2紅圈的一份子吧,當(dāng)然這里的目的不在于探究細(xì)節(jié),通過這個圖主要想表達(dá)是:軟件工程師應(yīng)具備強烈的需求意識,不僅僅局限于代碼層面,應(yīng)明白從需求層面到代碼層面,只有深入理解了需求,才能寫出更加準(zhǔn)確精煉的模型或代碼。很多軟件工程師也需要寫相應(yīng)的軟件需求吧,那么怎樣寫好一條軟件需求呢?我覺得圖3是一個很好的推薦.

圖片

圖3 需求的書寫語法


       其次談文檔規(guī)范。認(rèn)真對待文檔規(guī)范,你將會有意想不到的收獲。軟件工程師一般都不喜歡寫文檔,寫了一份又一份,關(guān)鍵最后還可能幾乎沒人看,但規(guī)定要去寫那還必須得寫,些許無奈。那何不換個角度,先從認(rèn)真對待開始,接下來就會逐漸思考如何寫?如何寫好?為什么文檔模板這么安排?不知不覺就會去看一些標(biāo)準(zhǔn)規(guī)范,通過這些就能逐漸去理解文檔的別有用心以及這些模板的由來,一般標(biāo)準(zhǔn)會提供一些參考模板,比如圖4(源引自:IEEE Recommended Practice for Software Requirements Specifications,IEEE Std 830-1998)。然后結(jié)合自身工作經(jīng)驗,再來理解這些文檔,會發(fā)現(xiàn)文檔不再那么抽象,其實非常科學(xué),非常嚴(yán)謹(jǐn),最后會學(xué)著利用這些文檔來幫助自己形成一個更有邏輯更有層次的表達(dá)。所以認(rèn)真對待文檔規(guī)范(也包括流程),有了這方面的強烈意識,我覺得一方面不管是要符合ASPICE,還要AUTOSAR,應(yīng)該都可以很快遵循這些規(guī)范來指導(dǎo)實踐;另一方面也極有助于我們從項目管理和軟件工程角度來看待項目。


圖片

圖4 從Mode角度組織的軟件需求模板


       最后談測試。本質(zhì)上就一句話:紙上得來終覺淺,覺知此事要躬行。從零開始的項目一般還好,邊開發(fā)邊測試;有base的項目,最好得主動多仿真多測試,通過數(shù)據(jù)和現(xiàn)象來快速理解。說到測試,分享一個小故事:曾經(jīng)看著德國同事準(zhǔn)備集成測試報告的圖,類似于下圖5,他創(chuàng)建了多個子窗口歸類地來分別顯示數(shù)據(jù),調(diào)好數(shù)軸標(biāo)尺等操作,以使得他人一眼就看懂測試結(jié)果。當(dāng)然他就是這么想的,然后我就照學(xué)了。看個反例(圖6),自行對比感受下。


圖片

圖5 測試數(shù)據(jù)整理范例

圖片

圖6 測試數(shù)據(jù)整理反例



03 bug修復(fù)


       “這個bug對功能有什么影響?”,很喜歡聽到別人這么問。這里又想分享一個小故事:看到過有個人解決問題能力非常強,幾乎來了一個bug,看看數(shù)據(jù)看看模型,咔咔兩下就給解決了,但我發(fā)現(xiàn)很奇怪的現(xiàn)象,這個人天天都有bug要解決。后面不幸讓我接手了,發(fā)現(xiàn)補丁好多好多,有些還無法追溯。后面又遇到了一位很有要求的同事,每次一有bug就問我“這個bug對功能有什么影響?”,剛開始我大概都這么回答“不知道,但代碼層面分析了bug的影響和解決方法,該方法不會影響其他代碼邏輯,能滿足客戶的要求,balabala. ......該方法”。故事到這,首先得從功能層面去分析:這個bug對功能有什么影響?如果你都不清楚功能,怎么能夠確定這就一個bug呢?怎么能夠保證修復(fù)方案是最佳的呢?怎么能夠確保修復(fù)后仍滿足需求呢?當(dāng)然要更全面更理想的分析可參見圖7。

圖片

圖7 理想的bug分析流程


       所以,應(yīng)該加強從功能層面理解好軟件,當(dāng)然模型或代碼層面也很重要,這樣宏微觀上都能切換自如,軟件就會被你玩的溜溜的。



04  技能精進(jìn)


4.1 軟件方面


      先談軟件方面,曾經(jīng)為了了解從軟件到硬件的最終執(zhí)行,我花了幾個月聽計算機科學(xué)課程,從計算導(dǎo)論與C語言基礎(chǔ)北京大學(xué),李戈):記得當(dāng)時聽明白了計算機硬件如何實現(xiàn)0101,圖靈機怎么工作等等,講得非常精彩。


      再到計算機系統(tǒng)要素Build a Modern Computer from First Principles: Nand to Tetris,希伯來大學(xué)): 記得講到布爾運算(兩個結(jié)論:Any Boolean function can be represented using an expression containing AND and NOT operation. Boolean function can be represented using an expression containing only NAND operations),寄存器,CPU,匯編語言,編譯原理,特別有意思。


       最后到數(shù)據(jù)結(jié)構(gòu)清華大學(xué),鄧俊輝):記得講到搜索算法改進(jìn),最終我都買了本鄧教授的書。


       整個聽課過程下來,雖然我沒有做作業(yè),忘了絕大部分,但是我覺得從軟件到硬件怎么運行,我基本上有個概念,假如真要我去做這方面的深入,給我時間肯定沒問題。


       總的來說,從廣度上對軟件要有一定的認(rèn)識。當(dāng)然,從深度上對軟件也需要很深的認(rèn)識。比如:運行時序問題,一定要明白先有誰后有誰;精度(scaling)問題,配置就要求很細(xì)致;內(nèi)聯(lián)函數(shù)問題,使用就要特別小心。


4.2 工具方面


       再談工具方面,以MATLAB/Simulink為例。我個人受益于兩方面:一方面是來自同事,有同事的悉心指導(dǎo)和用心分享,也有看同事怎么做的,去模仿學(xué)習(xí)怎么做,去思考談?wù)摓槭裁催@么做(當(dāng)然更多時候后者去看去試去悟);另一方面來自mathworks提供的demo和研討會視頻。比如入門變速箱控制模型時,我就找到了一個特別有用的demo包,如圖7示意,通過這個demo包做仿真做調(diào)試,這樣很快就上手建模操作。另外通過一系列的研討會視頻,很快就入門了MBD,以及如何使用Simulink工具做模型檢查,驗證與確認(rèn)等,如圖8。所以,把握身邊的和網(wǎng)上的,工具肯定沒問題。


圖片
圖7 變速箱控制的demo


圖片
圖8 模型驗證的最佳實踐


圖片

圖9 MATLAB/Simulink錄制的研討會


4.3 專業(yè)知識


        最后談專業(yè)知識,以變速箱控制為例,變速箱控制目的就是開車的人踩了多大油門或多大剎車,變速箱就要自動地去操作擋位和離合器,讓開車的人開加速不錯,的很爽,很是舒服(當(dāng)然不僅僅是變速箱的功勞)。那么怎么實現(xiàn)的呢?比如圖10示意一個升檔控制過程。


圖片圖10

本質(zhì)上就講理解此公式:

圖片

       就基本可以應(yīng)付變速箱的離合器控制工作了。再深挖電液系統(tǒng)的話,那么牛頓第二定律和伯努利方程都來了。


圖片

圖11 電液控制系統(tǒng)原理圖

        如果還覺得不夠的話,那么還可以繼續(xù),如圖12。(技術(shù)真是個黑洞)


圖片

圖12 變速箱系統(tǒng)的知識網(wǎng)絡(luò)

      所以,技術(shù)精進(jìn)不只在于一個點,而在于一個面或一個體,任重而道遠(yuǎn)



05  總結(jié)


       一個人的精力是有限的,上述所說大多數(shù)人還是很難做到位。但是不管怎樣,一個汽車工程師最好要具備這些意識,不管是重在廣博,還是貴在專精,選好自己的方向,認(rèn)真工作,一定會越來越優(yōu)秀。         

      最后引用參考[8]的圖,溫故下本文的3個層面內(nèi)容:

       1)項目管理與軟件工程層面

圖片

圖片

圖13 V流程和工具鏈

        2)功能與軟件實現(xiàn)層面


圖片

圖14

     3)專業(yè)技術(shù)層面


圖片

圖15 掛擋控制



參考:

[1] AUTOMOTIVE SOFTWARE DEVELOPER: TOP 6 SKILLS AT A GLANCE,https://www.infopulse.com/blog/automotive-software-developer-top-6-skills-at-a-glance/

[2] Automotive SPICE Process Assessment / Reference Mode,http://www.automotivespice.com/fileadmin/software-download/Automotive_SPICE_PAM_30.pdf

[3] Essential aspects of the V-cycle software development process,https://x-engineer.org/graduate-engineering/modeling-simulation/model-based-design/essential-aspects-of-the-v-cycle-software-development-process/

[4] Mathworks官網(wǎng)錄制的視頻與網(wǎng)上研討會,https://ww2.mathworks.cn/videos/search.html?s_tid=evmain_rw_bod&q=&page=1

[5] AUTOSAR_Introduction,https://www.autosar.org/fileadmin/ABOUT/AUTOSAR_Introduction.pdf,

[6]  The Analyzing Method of Root Causes for Software Problems,https://global-sei.com/technology/tr/bn73/pdf/73-13.pdf

[7] Estimation of the Clutch Characteristic Map for an Automated Wet Friction Clutch Transmission,https://www.sae.org/publications/technical-papers/content/2016-01-1113/

[8] Model-Based Design Methods for the Development of Transmission Control Systems,https://www.sae.org/publications/technical-papers/content/2014-01-0304/




轉(zhuǎn)自汽車電子與軟件

上海創(chuàng)程車聯(lián)網(wǎng)絡(luò)科技有限公司版權(quán)所有 滬ICP備11045498號-1   技術(shù)支持:網(wǎng)站建設(shè)
主站蜘蛛池模板: 国产精品成人永久在线四虎 | 少妇视频一区二区三区 | 奇米影视7777狠狠狠狠视频 | 黄色另类网站 | 亚洲人成未满十八禁网站 | 成人福利免费在线观看 | 亚洲国产午夜精品 | 爱情岛论坛av永久入口 | 日本一区二区三区免费看 | 亚洲精品无码成人a片 | 玩偶姐姐在线资源 | 久久123| 国产免费视频一区二区裸体 | 国产精品一区二区人人爽 | www.男人天堂.com | 2024国产三级精品最新在线 | 四川少妇一级毛片 | 成人精品视频在线播放 | 波多资源在线中文字幕 | 少妇翘臀亚洲精品av图片 | 亚洲中文字幕综合在线 | 婷婷成人在线观看 | 国产tv在线| 欧美成在线视频 | 国产成人免费在线观看视频 | 美女裸体无遮挡黄污网站 | 国产毛片一区二区三区精品 | 少妇交换黑人做爰 | 天堂中文视频在线观看 | 800av在线免费观看 | 成人羞羞视频免费看看 | amazon免费 | 免费的av网站在线观看 | 艹逼网站 | 国产一二三四区在线观看 | 成人区精品一区二区 | 中文字幕本久久精品一区 | 国产日韩激情 | 桃子视频免费观看 | 999视频网站 | 久久WWW成人看片免费不卡 |