最近の組込み開発 ――「バグ」出さないために大事なこと

近年ますます重要度を増しつつある組込みシステムの開発ですが、その現場は、いろいろな点で連鎖的に変貌しています。これを必要としている製品が多岐に渡っており、しかも、どこのメーカーも他社との競争に打ち勝つためと言って機能を増やすことを止めない上に頻繁にモデルチェンジを行うので、どうしても短周期で高機能な制御システムを実装しなければならないという悩みをすべての開発現場が抱えるようになっているのです。当初は⁠スイッチのON/OFFを行うだけ……⁠のような単純なシステムであったものが、いまや明らかに高性能コンピュータの領域にまで達しているわけですから、そこで求められるプログラムコードの行数もウナギのぼり、300万行などという大掛かりなものが当たり前と見なされる状況でもあります。

そのような要求が世間的には募る一方で、その最前線たる開発現場はどうかと言えば、ひと昔前(いや、かなり昔)のPCソフトの開発体制に酷似した有様というのが一般的でした。いまでも、かなりの現場にそれが残っていることと思いますが、要するに、非常に優れた、ごく少数のプログラマーに全体が依存している、ということです。しかし、これでは、すぐに限界が訪れることは火を見るよりも明らかです。そこで最近では、これまでの主流であったC言語に加えてC++も導入されるようになり、真の意味で組織的な開発体制が整えられつつあるようです。

では、そういった組織的な開発で何が重要かということになりますが、第一に指を屈するべきは「メンバー間の共通理解」ということになろうかと思います。そして、コーディングの現場に関して言えば、その最も基礎的な事項が「誰にも誤解されないコードを書くこと」になるでしょう。しかし残念なことに、まだこういった意識が浸透しているとは言えません。基準もないというのが実態だと思います。

これからいっそう組織化が進むと考えられる組込み開発の現場で用いるべき諸々の基準(共通理解事項)について、このあたりで、ちょっと考えてみませんか?(歴史は繰り返す)