Osaka NDS Embedded Cross Online Forum #13

CASE戦国時代に必要なソフトエンジニアのスキルとは掲載および発言内容は各個人の見解であり、必ずしも所属する企業や組織の立場、戦略、意見を代表するものではありません。

Yuichi Kusakabe

Agenda• 自動車メーカのソフト内製化の動き• 車両開発日程/各種法規対応• ソフト内製化の課題• エンジニアに必要なスキル自己紹介

自動車メーカによるエンジニア取り合い(2017年)

https://www.sankeibiz.jp/business/photos/170808/bsa1708080500001-p1.htm

自動車メーカによるエンジニア取り合い

https://toyota-career.snar.jp/jobboard/detail.aspx?id=X8tiIUTtBkIwibNA0h9dgg

自動車メーカによるエンジニア取り合い

https://recruit.nissanmotor.jobs/job.phtml

自動車メーカによるエンジニア取り合い

https://js02.jposting.net/honda-rd/u/hm/job.phtml?job_code=973&_ga=2.35431202.2044729602.16246701271061531687.1624670124&__utma=1.1061531687.1624670124.1624670124.1624670124.1&__utmb=1.3.10.1624670124&__utmc=1&__utmx=&__utmz=1.1624670124.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)&__utmv=-&__utmk=151368377

部品メーカによるエンジニア取り合い

https://job.axol.jp/bw/c/denso-ten/job/detail/ZEX_rSUuG6GX3NNqS

何故ソフトウェアを内製化するのか？

SDV：Software Defined Vehicle
https://www.honda.co.jp/news/2021/c210423.html

https://xtech.nikkei.com/atcl/nxt/mag/at/18/00066/00001/

自動車メーカのソフト内製化の動き

https://static.sched.com/hosted_files/osseu19/17/linux_embedded_2019.pdf

自動車メーカのソフト内製化の動き

http://jasst.jp/symposium/jasst19hokuriku/pdf/S4.pdf

自動車メーカのソフト内製化の動き

http://jasst.jp/symposium/jasst19hokuriku/pdf/S4.pdf

自動車メーカのソフト内製化の動き

https://techplay.jp/event/822014

車両開発日程

https://image.itmedia.co.jp/l/im/mn/articles/2006/22/l_ys_200617kappa_001.jpg#_ga=2.128540236.1931489700.1624670712-85897356.1624670712

車両開発日程

https://image.itmedia.co.jp/l/im/mn/articles/2006/22/l_ys_200617kappa_001.jpg#_ga=2.128540236.1931489700.1624670712-85897356.1624670712

各種レギュレーション• KT法(Cameron Gulbransen Kid's Transportation Safety Act of 2007)• GDPR(General Data Protection Regulation)• 自工会走行規制• UN-R155/ISO 21434(サイバーセキュリティ対応)

車両開発における部品設計の難しさ• 1台の車両には数多くのECUが内蔵されています• IVIもいくつかのECUと接続しており、各ECUとの仕様整合や開発日程の整合など、車両開発日程がベースとなります• つまりIVIは一つの製品では無く、車両の部品として捉える必要があります複雑な開発プロセス

https://biz3.co.jp/lp_category/automotive_spice車載特有の環境• 電源が急に落ちる事があります• 工場での組立時のハーネス挿抜、ディーラでの作業、クランキング等• いつどのタイミングで電源がOFFされても異常にならないソフトウェアの実装が必要となります• 例えば下記コードは大丈夫でしょうか？
• fopen() -> fwrite() -> fclose()

車載特有の環境• 電源が急に落ちる事があります• 工場での組立時のハーネス挿抜、ディーラでの作業、クランキング等• いつどのタイミングで電源がOFFされても異常にならないソフトウェアの実装が必要となります• 例えば下記コードは大丈夫でしょうか？
• fopen() -> fwrite() -> fclose()• fwrite()が完了してもデバイスにデータが書き込まれていない可能性があるため、fflush()/fsync()が必要です• fopen() -> fwrite() -> fflush() -> fsync() -> fclose()• 但しOSS、調達ソフトだと対応が困難な場合がありますHWを考慮した設計

https://www.tesla.com/jp/support/8gb-emmc-recall-frequently-asked-questions

厳しい性能要件

https://postd.cc/the-android-audio-path-latency-explainer/
https://source.android.com/devices/audio/latency/measurements?hl=ja

HWを正しく理解する

OSSの活用

https://github.com/teslamotors/buildroot/blob/buildroot-2019.02/configs/ap-hw3_model3_defconfig

OSSの脆弱性対応

https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=openssl

サイバーセキュリティ対応

https://monoist.atmarkit.co.jp/mn/articles/2003/31/news051.html

BSPスケジュールの考慮

http://events17.linuxfoundation.org/sites/events/files/slides/R-Car%20Gen3_for_AGL-20160908.pdf

開発スケジュールの違い

イベント★納入イベント★納入イベント仕様★仕様書発行★仕様変更(随時)

ESCS

SoCKernel★納入イベント

MS

4.14
5.4

開発★納入イベント

ASCV
1A

セキュリティFix

サポート

https://image.itmedia.co.jp/l/im/mn/articles/2006/22/l_ys_200617kappa_001.jpg#_ga=2.128540236.1931489700.1624670712-85897356.1624670712

複数HWへの対応• Renesas R-CAR H3、M3、M3N、E3• DDR：8GB、4GB• eMMC：128GB、64GB、32GB• 解像度：外付けディスプレイ、内蔵ディスプレイ
• AMP：外付けAMP、内蔵AMP• カメラ：バックカメラ、周辺カメラ• 仕向：HD、DAB、XM、RDS

新規チーム/大規模開発の課題• 新規に立ち上げたチームの場合、経験値/スキルの違い• 300～400名近いエンジニアのマネジメント• システム設計/全体最適の難しさ• 人数が増えると、車載未経験の場合も

外の世界を知る

生産性の違いhttps://image.itmedia.co.jp/l/im/mn/articles/2006/22/l_ys_200617kappa_001.jpg#_ga=2.128540236.1931489700.1624670712-85897356.1624670712
https://data.oecd.org/earnwage/average-wages.htm

エンジニアに必要なスキルとは• 車両開発/各種法規に関係する知識• 先行開発と量産開発の違いを正しく理解• チームビルディング/マネジメント• 英語でのコミュニケーション• サイバーセキュリティ/セキュアコーティング(CERT/CWE)• HWの知識(APIをコールしてから、0/1の信号が出力されるまで)• システム全体を把握出来るスキル(全体最適設計)• OSSに関係する知識(ライセンスや脆弱性等も)• 課題/問題解決(不具合解析含む)の力(洞察力)• 外の世界にも目を向ける(自分の実力を正しく知る)• C, C++, Java, Python, Docker, WSL2

何故ソフトウェアを内製化するのか？を正しく理解する

END