自動車は従来の機械式の制御から、ECU(電子制御ユニット)を搭載し、ソフトウェアによる電子制御を行う仕組みが増加している。
現在では一台の自動車に搭載されているECUの数は、多い場合には100個を超える車種もあり、1,000個以上の半導体チップが搭載されている。
エンジンやブレーキを制御するようなソフトウェアは組込ソフトウェアとよばれエンジンやステアリング、ブレーキなどの「走る、曲がる、止まる」という基本的な車両制御を行う。拡張機能である、先進運転支援システム(ADAS)では、センシングデータの解析が重要になっている。
一方、カーナビゲーションのマルチメディア化、情報通信などによって、ソフトウェアのサイズも急激に増加しており、一台あたりのソースコードの行数は2000年の約100万行から2010年には500~1,000万行、2015年は1億行、2020年には2億行程度に達している。今後もさらに急増していくと言われ、深刻な状況になっている。車両のソフトウェアはWindows OSの6,000万行超など他のデバイスに比べても圧倒的にソースコードの行数は異常に多い状態となっている。
また、信頼性の面では、近年の自動車は信頼性が低下し、民生品化している。重要保安部品でないカーナビなどではシステムダウンやシステムロックなどの不具合は頻繁に起っている。重要保安のECUでさえも、ソフトウェアの不良によるリコールが増えている。対策もソフトウェアの変更であり、すなわち設計ミスが原因となっている場合が多い。
従来の自動車部品では、製造に起因するリコールはあっても、設計に起因するリコールはほとんどなく、量産図の変更は通常行われないのが正常だった。
しかし、現在では、量産車のソフト変更は頻繁に行われている。カーナビゲーションなどでは毎月のようにバージョン変更を行い、バージョン番号は3桁を使用している。例えばVer.2.3.9の表示の場合、1桁目は大変更(メジャー)、2桁目は中変更(マイナー)、3桁目はパッチ小変更(軽微なバグ等)と規模に応じて表示されている。このように、異常を異常とも思わない状況になっている。
さらに、SDV=ソフトウェア・デファインド・ビークル(SDV: Software-Defined Vehicle)の普及では、OTA(無線データ送受信)によるアップデートが行われる。仕様向上とともに、バグ(設計ミス)と称してソフトが修正されることが懸念されている。このことは、場合によっては、ドライバーの安全を担保するリコール制度を蔑ろにすることにもつながる。自動車においてはバグ(設計ミス)などという、おろかな言葉の存在そのものがあってはならない。バグ(設計ミス)のないソフトウェア開発が求められる。
サイズ:ソースコードの行数
従来:ブレーキ制御ECU:数十万行
今後:車両全体:2億行程度(2020年)。今後もさらに急増していく