小説で学ぶ自動車ソフトウェア開発 (その1) はじめに
小説で学ぶ自動車ソフトウェア開発
カイトを飛ばせ
はじめに
自動車業界のソフトウェア開発は、異質だ。
IT業界でWebサービスを作っていたエンジニアにとっても、業務システムを構築してきたエンジニアにとっても、あるいは家電や産業機器の組み込みソフトウェアを書いてきたエンジニアにとっても、自動車という世界に足を踏み入れた瞬間、「自分が知っていた開発」との断絶を感じる。
なぜか。
Webサービスは、リリース後でも修正できる。障害が起きれば謝罪して直せばいい。それが当たり前のサイクルだ。業務システムも、バグが出れば翌日のパッチで対応できる。しかし車は違う。ハンドルが誤作動すれば、人が死ぬ。ブレーキが効かなければ、人が死ぬ。「あとで直す」が許されない世界において、ソフトウェアはどうあるべきか----この問いへの答えが、自動車業界固有の開発文化を生み出してきた。
その文化は、略語と規格の森として現れる。A-SPICE、ISO 26262、SOTIF、AUTOSAR、ASIL、HARA、FMEA、FTA、OTA、SDV、UN-R155、UN-R156......。他業界から転職したエンジニアの前に、これらが壁となって立ちはだかる。しかもこの壁は、単なる知識の暗記では越えられない。それぞれの規格が「なぜ存在するのか」「他の規格とどうつながっているのか」「現場でどう使われるのか」を理解しなければ、会議でも設計でも、ただ取り残されていく。
本書は、その壁を越えるために書かれている。
物語の舞台は、架空のTier1メーカー「アイソー」。主人公の成田剛志は、Webアプリの開発しか経験のない27歳のエンジニアだ。フードデリバリーのバックエンドを作っていた彼が、ひょんなことからアイソーに転職し、「プロジェクト・カイト」と名付けられた次世代車載ソフトウェア開発プロジェクトに配属される。
剛志が出会う先輩たちは、それぞれの専門領域の第一人者だ。A-SPICEを知り尽くした品質保証のベテラン・藤谷紀子。機能安全とAUTOSARに精通したリードアーキテクト・泉谷賢人。OTAとサイバーセキュリティの専門家・広井智。そして自動運転の最前線を知る中途同期のニック墨汁。剛志は彼らとの対話を通じて、一つひとつの壁を越えていく。
本書が描く学びの旅は、6つのPartで構成されている。
Part 1(A-SPICE)では、「なぜ自動車開発にはプロセスが必要なのか」という根本から始まり、A-SPICEという開発プロセス規格の全体像を学ぶ。V字開発モデル、プロセスグループ、能力レベル、アセスメント----これらが現場でどう機能するかを、剛志の目線で追う。
Part 2(ISO 26262 / 機能安全)では、「安全とは何か」を問う。HARA(ハザード分析とリスクアセスメント)、ASIL(自動車安全度水準)、FMEA、FTA。車が人を傷つけないために、エンジニアたちがどれほど精緻な思考を積み重ねているかを知る。
Part 3(SOTIF / ISO 21448)では、「正常に動いているのに、なぜ危ない?」という問いに向き合う。機能安全が「故障による危険」を扱うのに対し、SOTIFは「性能の限界による危険」を扱う。自動運転時代に不可欠な、新しい安全の思想だ。
Part 4(OTA / SDV)では、ソフトウェアで進化し続ける車の世界を学ぶ。Over-The-Air更新、デュアルバンク、Uptane、UN規制......。車が「完成品」から「更新し続けるプラットフォーム」へと変わる時代の、技術と法規の両面を追う。
Part 5(AUTOSAR)では、車載ソフトウェアの共通言語を学ぶ。Classic AUTOSARの三層構造から、Adaptive AUTOSARのSOAアーキテクチャへ。なぜ業界全体が同じ仕様を使うのか、その歴史的必然と現場の現実を見る。
Part 6(自動運転)では、すべての知識が一点に収束する。SAEレベル、Perceive→Plan→Actパイプライン、E2Eニューラルネットワーク、世界の自動運転プレイヤーたち----そして、タニタ自動車のプロジェクト・カイトが目指す場所。
6つのPartは、積み重なる構造になっている。前のPartを知らなければ、次のPartの深みには届かない。それは剛志の成長と重なっている。最初は何もわからなかった彼が、仲間たちとの対話の中で、少しずつ「自動車のソフトウェア」という世界の輪郭を掴んでいく。
本書を手に取っているあなたが、他業界から自動車業界に転職したエンジニアであれ、これから転職を考えているエンジニアであれ、あるいは自動車業界の中でこれらの規格を改めて体系的に学び直したいと思っているエンジニアであれ----剛志の旅が、あなたのオンボーディングの地図になれば、これ以上の喜びはない。
では、物語を始めよう。
登場人物
アイソー株式会社
- 成田 剛志(なりた たけし) 27歳。本書の語り手。元Web系スタートアップのエンジニア。家電量販店のスマホアプリと、フードデリバリーのバックエンドを作っていた。半年前にアイソーへ転職してきたばかり。「車載」も「組込み」も、ほとんど何も知らない。
- 藤谷 紀子(ふじたに のりこ) 48歳。品質保証部のベテラン。元はテスト技術者。社内の誰よりもA-SPICEに詳しい。皮肉屋に見えて、実は世話焼き。
- 泉谷 賢人(いずみや けんと) 35歳。プロジェクト「カイト」のリードアーキテクト。ドイツのOEMへの出向経験あり。AUTOSARとISO 26262の現場知に明るい。
- ニック 墨汁(にっく ぼくじゅう) 26歳。成田と同時期に中途入社。北京の出身。前職は中国の自動運転スタートアップ。E2E自動運転とTransformerに詳しい。
- 和泉屋 俊宏(いずみや としひろ) 60歳。社長。元はエンジン制御の出身。OTA・SDV戦略を進める張本人。
- 中月 薫(なかつき かおる) 59歳。安全認証担当のシニアエンジニア。ISO 26262・SOTIFの引き出しが深い。
- 林 英男(はやし ひでお) 52歳。プロジェクトマネージャー。スケジュール・コストを最優先に考え、プロセスや安全規格を「余計な工数」と感じがち。口癖は「それ、いつ終わるの」「顧客に説明できる?」。終章では理解者に変わる成長を見せる。
- 渡会 良吉(わたらい りょうきち) 44歳。システムエンジニア。中月さんの右腕。HARA・FMEA・FTAの実務エキスパート。無口で、常に図表で語る。
- 池田 佑介(いけだ ゆうすけ) 31歳。テストエンジニア。藤谷さんの部下。HILS・SILS・6担当。軽口が多く、成田・太田と同世代で仲が良い。
- 財前 考平(ざいぜん こうへい) 57歳。OEM側(顧客)の調達・品質担当。アイソーの主要顧客であるOEMの品質責任者。A-SPICEアセスメントで容赦ない要求を突きつける。
- 広井 智(ひろい さとし) 38歳。コネクテッドソリューション部エンジニア。OTAとサイバーセキュリティの専門家。ISO/SAE 21434とR155の両方に詳しい。
- 太田 悠季生(おおた ゆきお) 26歳。組込みSWエンジニア。成田剛志と同時期に中途入社。前職はFA(工場自動化)メーカー。組込みの基礎はあるが車載特有のプロセスは初めて。楽観的な性格。
- 横田 昌之(よこた まさゆき) プロセス管理担当。藤谷さんと連携してカイトプロジェクトのプロセス運用と品質記録を管理する。アセスメント結果の全体共有を取り仕切る実務の要。
もくじ
本書は6つのPartで構成される一つの物語である。すべてのPartは「カイト」という一台の車を世に出すために必要な、独立しているようでいて深く繋がった6つの世界を描いている。
- 序章 カイトという名のプロジェクト ―― すべての始まり
- 地図の章 6つの問いと、それを繋ぐ一本の線 ―― 全体像
Part 1 開発プロセスの基礎 ―― A-SPICEという "OS"
プロローグ ―― 「車のソフトって、Webと何が違うんですか?」
- 第1章 会議室の壁に貼られたV字
- 第2章 A-SPICEは "OS" だ
- 第3章 ドイツから来た物差し ―― 30年の歴史
- 第4章 プロセスと能力、二つの軸で世界を読む
- 第5章 3つのカテゴリ、10のプロセスグループ ―― 地図を広げる
- 第6章 V字を歩く ―― 左下から右下へ
- 第7章 システムを刻む人たち ―― SYS群の物語
- 第8章 ソフトウェアの六姉妹 ―― SWE群の物語
- 第9章 守る人たち ―― MANとSUPの仕事
- 第10章 L0からL5までの階段
- 第11章 プロセス属性と、4つの評定
- 第12章 BP・WP・GP・GR ―― 略語の正体
- 第13章 トレーサビリティという背骨
- 第14章 アセスメントの日 ―― 「証拠を見せてください」
- 第15章 二つの兄弟規格 ―― ISO 26262とISO 21434
- 第16章 0という新しい衣
- 第17章 現場に落とす、現場が変わる
- 第18章 A-SPICEを終えて ―― 剛志のノート
Part 2 機能安全 ―― ISO 26262とASILの世界
- 第19章 「故障は、する前提で設計しろ」
- 第20章 ハザードを洗い出す ―― HARAの一日
- 第21章 ASILという名の格付け
- 第22章 安全要求を作る ―― 「なぜ」から「何を」へ
- 第23章 車が壊れるとき ―― フェイルセーフとフォールトトレランス
- 第24章 壊れ方を想像する ―― FMEAとFTA
- 第25章 機能安全のライフサイクル ―― 始まりから終わりまで
Part 3 SOTIF ―― 壊れていないのに危険な話
- 第26章 正常なのに、なぜ危ない? ―― SOTIFという新しい恐怖
Part 4 SDV・OTA ―― ソフトウェアで動く車の時代
- 第27章 車は、もう「完成品」ではない
- 第28章 安全とOTA ―― 二つはどこで衝突するか
- 第29章 ISO 24089とUN-R156 ―― 規制の網をくぐる
- 第30章 ASIL分解とOTA ―― 安全機能を分離する戦略
- 第31章 更新後の再検証問題
- 第32章 ロールバックの夜
- 第33章 Adaptive AUTOSARとOTAアーキテクチャ
- 第34章 OTAのまとめ ―― チェックリストと展望
Part 5 AUTOSAR ―― 車載ソフトの共通言語
- 第35章 なぜ「共通言語」が必要だったか
- 第36章 Classic AUTOSARの世界 ―― 積み重なった三層
- 第37章 SDV時代のAUTOSAR ―― Adaptiveの登場
- 第38章 ドメインアーキテクチャという革命
- 第39章 AUTOSARを実装するということ ―― 現場の現実
Part 6 自動運転 ―― 従来型パイプラインとE2Eの未来
- 第40章 ニック墨汁が見ている世界 ―― 自動運転の全体像とSAEレベル
- 第41章 センサーの目 ―― Perception(センサーと物体検出)
- 第42章 どう走るかを決める ―― Planning(行動予測と経路計画)
- 第43章 ハンドルを握る数学 ―― Control(MPCとPID)
- 第44章 モジュールを全部捨てたら ―― End-to-End自動運転の登場
- 第45章 ブラックボックスの内側 ―― E2Eアーキテクチャ詳解
- 第46章 解釈できないものを信頼できるか ―― 従来型 vs E2E
- 第47章 保証できるか ―― E2Eと機能安全・SOTIF
- 第48章 空中でアップデートし続けるAI ―― E2EとOTA
- 第49章 世界の今 ―― 自動運転プレイヤーと未来
- 終章 カイトが空に上がる日