「ソフトウェアを職人技からエンジニアリングへ」と題した講演を、ウーブン・バイ・トヨタのジェイエフ・バスティエン氏がAUTOSARオープンカンファレンスで行った。
「ソフトウェアを職人技からエンジニアリングへ」と題した講演を、ウーブン・バイ・トヨタのジェイエフ・バスティエン氏がAUTOSARオープンカンファレンス(2024年6月11〜12日)で行った。同氏はトヨタ自動車のB&D改革部 商品・製品開発にも所属し、プログラミング言語であるC++の標準化を担うISO/SC22/WG21の進化作業グループの議長なども務めている。
ソフトウェア開発の歴史を1960年代までさかのぼりながら、SDV(ソフトウェアデファインドビークル)の時代に向けてソフトウェアエンジニアが持つべき目線について語った。
勤務先が入居するオフィスビルや日々通過する橋に不具合が発生することは、めったにない。それは建築や土木がエンジニアリングとして確立されているおかげだといえる。しかし、身の回りだけを見ても、ソフトウェアが使われている製品からバグがなくなることはなく、再起動するなど手助けがなければうまく機能しないこともある。
しかし、バスティエン氏はソフトウェアエンジニアの怠慢だとは考えていない。「私たちソフトウェアエンジニアはエンジニアリングを行っていると信じていて、本当に誠実に努力している。しかし、ソフトウェアエンジニアリングや自動車のためのソフトウェアデザインに対する業界の要望には応えられていない。ソフトウェアの職人技とエンジニアリングの間にギャップがあるからだ。職人技が望ましくないわけではない。私は良いソフトウェアを作るのが好きで、よくできたソフトウェアには美しさがある。しかし、こうした楽しみは、自動車に乗る人には関係ない」(同氏)
職人技や美しさだけではない、エンジニアリングとしての成熟の追求が、ソフトウェアの歴史でもある。
バスティエン氏は、プログラミング言語やソフトウェア開発、自動車の標準規格の歴史を振り返った。「ソフトウェアエンジニアという言葉が使われ始めたのは1960年代半ばごろ。1968年に最初のソフトウェアエンジニアリングカンファレンスが開催された。これは非常に意欲的なことだったが、ソフトウェアエンジニアリングが何なのかはあまり理解されていなかった。その後、ソフトウェアエンジニアリングの国際カンファレンスも開かれた。カーネギーメロン大学のソフトウェアエンジニアリング研究所による完全なコード設計パターンの開発、統一マークアップ言語、ソフトウェアエンジニアリングのスイートスポットの知識書であるアジャイル宣言も生まれた。また、安全でスケーラブルなアジャイルフレームワークとしてDevOpsが生まれた」(バスティエン氏)
「プログラミング言語は、ソフトウェアを作るための道具だ。これらのツールが長い時間をかけてどのように作られ、ソフトウェアを作るためにどのように進化してきたかを文脈的に理解することが重要だ。1957年以前にもプログラミング言語はあった。しかし、高レベル言語よりも早くアセンブラを使い、オプティマイザを搭載したのは、Fortranが本当の意味で最初のプログラミング言語だといえる。私は専門的にFortranでプログラミングをしていた。最初の本格的なプログラミング言語としては、本当に優れた言語だと思う」(バスティエン氏)
「FortranやCOBOL、そしてBASICも含めて今でも現役だ。C言語もある。Smalltalkはオブジェクト指向プログラミングの最初の本格的な試みで、Smalltalkによってオブジェクト指向言語が人々の意識にのぼった。より良いソフトウェアを作るために、ソフトウェアの上に抽象化を作ろうとしていた。Pythonはとても人気がある。Javaはオブジェクト指向プログラミングと抽象化という概念を突き詰めた。同じ年にJavaScriptも登場した。まったく異なる言語が、まったく異なるという言葉を共有している。JavaScriptは世界で2番目に人気のある言語だ」(バスティエン氏)
「SwiftとRustは、抽象化という意味では最も興味深いプログラミング言語といえる。これら2つは1957年以来のプログラミング言語の進化から多くを学んだ。どちらも非常に低レベルの言語で、強力な抽象化を提供しながらも、低レベルのハードウェアに非常に効率的にマッチする」(バスティエン氏)
1998年ごろから、自動車のソフトウェア工学に関わる試みが本格化した。コーディングガイドラインのMISRA、産業機器向け機能安全規格のIEC 61508、車載ソフトウェア標準のAUTOSAR、自動車向けソフトウェア開発のプロセス標準モデルのA-SPICE、自動車向け機能安全規格のISO 26262、ISO 26262を拡張するISO 21448、車載セキュリティ規格のSAE J3061やISO/SAE 21434が生まれた。
Copyright © ITmedia, Inc. All Rights Reserved.