1億行のソースコード

2010/3/10作成

トヨタ車リコール問題、米交通安全局には調査に十分な専門スタッフが足りない?と言う記事の

昨今の高級車には70〜100個ものマイクロプロセッサが搭載されており、ソフトウエアのコードは1億行近くにも上ると言われている。今後数年でコードは2〜3億行へと膨れ上がるであろうと著名な市場調査・コンサルティング企業フロスト&サリバン社のコンサルタントは予測する。

という記述に驚いたわけですが。1億行ものソースコードってどんなんだろう。ちなみにWindows7のソースコードも1億行だそうです。全然性質が違うプログラムですからWindows7と車を直接比較するのはナンセンスですが、それでも規模として近しいというのは、果たしてどっちが凄いのか。

平均的なプログラマの生産量は100行/日程度と聞いたことがあります。この数字自体も眉唾ではありますが、仮に正しいとして、月に20日働くとしたら2000行/月ということになります。ということは1億行のソースコードを書くのに5万人月=4167人年かかるわけですね。車の開発にどれくらいかかるのかわかりませんが、もし3年としたらプログラマだけで1400人くらい必要ということになります。自動車メーカーってそんなにプログラマ抱えているのでしょうか。よくわかりません。

ちなみにプロセッサが約100個ですから、単純計算して1プロセッサ当たり100万行ってことですよね。うーん。制御系ではこれくらいの行数は当たり前なんだろうか。私なんかからは想像もつかない領域なんですが。

勝手な想像なんですが、1プロセッサ当たり100万行の内、半分くらいはOSが占めているんじゃないかと。それがLinuxなのかTRONなのか自社開発なのかは分からないけれど。ともかく、車の開発とは別ラインのプロダクトではないかな。いまどきOSも搭載せずにプログラムを書くとは思えないので、行数の見積もりはともかく、ある程度の量はOSなりが占めていると思っていいような気がします。

あと、これもものすごく勝手な想像ですが、以前の車種で開発したコードをとりあえずコピーしてきた分ってのもかなりあるんじゃないでしょうか。それをベースに新車種に合わせて部分的に修正していくというアプローチ。ま、これは車に限らずプログラム開発ではどこでも行われていることですけれど。それで、実際には実行されることがなくなった化石のようなコードも全部含んでトータルで1億行。それならまだ納得できるかなぁ。だから、全部一から開発しなおしたらものすごく行数が減るでしょうけれど、そうすることによる人件費と生産コストの減少とのコストバランスが合わないから、化石コードを抱えているんじゃないかなぁと。これまたソフトウェアの開発現場ではよくある話ですけれど。

ただ、どういう理由をつけるにしろ、1億行のソフトウェアプロダクトって相当な規模だと思うんですけれど、それにしては自動車業界のソフトウェア開発ってのは、ソフトウェア業界ではあまり語られる事がないなぁというのが、なんだか不思議です。それとも、私が知らないだけで、組込み制御系の業界ではそれなりに有名な話なんでしょうか。