組み込みソフト開発の“主役”は誰に?:ツールの進化がもたらす開発スタイルの変化(2/3 ページ)
かつて、組み込み機器用ソフトウエアの開発は、それを専門とする技術者の手で行われていた。しかし、現在は、モデルベース設計ツールをはじめとした設計の抽象度を高めることが可能なツールを利用することで、システム設計者やドメインエキスパートであっても、組み込みソフトウエアを開発できる環境が整いつつある。本稿では、代表的なモデルベース設計ツールとその活用事例などを紹介した上で、組み込み用ソフト開発の現状についてまとめる。
プロトタイプを4カ月で開発
Stevens氏は、自身を電気工学の学位を持つシステム設計者であるととらえており、自分がコードを記述することなど決してないだろうと考えていた。しかし、2005年11月に主席システムエンジニアとしてSanarus社に入社したとき、その状況は変わった。Stevens氏は、Visica 2のすべての機能を備えるプロトタイプをわずか4カ月以内に開発しなければならないという現実に直面したのである。「システム設計者としては、まずマイクロプロセッサとすべてのI/O用のカスタムプリント回路基板をそろえる必要があった。それに加えて、Sanarus社にはソフトウエアのことを理解できる技術者が1人もいなかったので、すべてのファームウエアを外部委託しなければならないこともわかっていた。確かに、Sanarus社のこれまでの製品開発では、そのようなやり方でも問題はなかった。ただし、以前に製品開発を無事終えることができた理由は、Visica 2よりもはるかに単純な製品だったからだ」と同氏は述べる。
プロジェクトを担当するチームが小規模であることも、作業を困難にしていた。チームには、Stevens氏のほかに、機械技術者、“何でも技術者(Supertech)”、そしてプロジェクトマネジャがいた。なお、その何でも技術者は、心理学の学位を有し、独創的なプロトタイプの製作が得意で、形削り盤やフライス盤の使用方法を知っており、プリント回路基板のはんだ付けも行えた。Stevens氏はプロトタイプの製作に必要な回路基板とプログラムの作成、そしてそれらを統合するのに8カ月はかかると考えていた。しかし、「納期は4カ月以内であり、それ以上の猶予は許されなかった」(同氏)のである。
そこで、Stevens氏が、組み込みシステムのハードウエアとして検討したのが、I/O制御を自由に構成できるNI社の制御コントローラ「CompactRIO」である。同製品は、LabVIEWを使って作成した制御ソフトウエアを、そのまま組み込んで動作させることができることを最大の特徴としている。同氏は、LabVIEWを使用した経験はなかったものの、NI社のツール群が開発期間の短縮に役立つのではないかと考え、Sanarus社の上層部から採用の承認を得た。結局、NI社のサポート担当者や米Cal-Bay Systems社の技術者による支援を受けつつも、正常に動作するプロトタイプを4カ月という期限内に問題なく完成させることができた。
同氏は、「Visica 2は、要求仕様を策定できた時点から数えて14カ月以内という短期間で売り上げを立てることができた。新規参入の医療機器としては、成功した部類に入るだろう」と述べる。なお、Visica 2は、Wall Street Journal紙の「2008 Technology Innovation」という技術表彰において、医療機器部門の第2位となった*3)。
また、Stevens氏は、Visica 2の製造コストを低減するために、CompactRIOで開発したソフトウエアをボードタイプのハードウエア「Single-Board RIO」に組み込んだ(写真2)。「われわれは、NI社がSingle-Board RIOを正式に発表する前に、同製品を入手することができた。CompactRIOからSingle-Board RIOにポーティングする作業は約45分で完了した」(同氏)という。
抽象度の高い記述のサポート
Sanarus社は、組み込みソフトウエアの技術者が参加していなかったのにもかかわらず、Visica 2の開発プロジェクトを無事に完了させた。なぜ、このようなことが可能だったのだろうか。
MathWorks社のTung氏は、「昔のことを思い出してほしい。かつては、デスクトップ型パソコン上で高速で動作させたい場合、プログラムをアセンブリ言語で記述する必要があった。『Lotus 1-2-3』はプログラムの容量が少なく、高速動作が可能だったが、これと同じように作らなければならなかったのだ」と述べる。「その後、コンパイラが登場したことにより、アセンブリ言語のような抽象度の低い言語を利用する必要はなくなった。プログラマは、C言語などの比較的抽象度の高い言語でプログラミングを行えるようになった」と同氏は付け加える。
Tung氏によれば、今後、ドメインエキスパートは、組み込みプログラミングに対して、さらに抽象度を高めることを要求するようになると見ている。現時点でも、自動コード生成機能で生成されたプログラムは、対象となる機器のメモリー容量で十分な処理速度を実現できるレベルに達している。「しかし、コードを実装する際にさらなる調整や最適化を必要とすることも多い。組み込みシステムの開発において、C言語によるプログラムの記述ができる技術者が不要になったわけではない。ただ、C言語による記述の頻度が減っただけだ。組み込みソフトウエアの開発チームは、今後も引き続き、いつRTOS(リアルタイムOS)を導入するのか、いつ競合条件やタスクのオーバーランについての検討が必要になるのか、といった問題に対処する必要がある」と同氏は述べる。
Tung氏は、「もし、開発プロジェクトにおいて、組み込みソフトウエアの技術者が対応すべき問題を軽視しているとすれば、それは大きな間違いだと言えるだろう。ドメインエキスパートがツールのボタンを押せば、美しく効率的な組み込みソフトウエアが自動的に得られるようになるというものではない。設計チームが、ドメインの問題だけでなく、実装上の問題についても対応できるようなシステムをどのように実現するのかを検討し、できる限り合理的なプロセスでそれを実行できるようにすることが重要だ」と説明する。
Sanarus社のStevens氏は、Visica 2の開発プロジェクトに着手したときに、ハードウエアとしてCompactRIOを採用することを自身で決断した。しかし、組み込みソフトウエアを実装するハードウエアについて、システム設計者やドメインエキスパートがその詳細を知らないことも多い。「ドメインエキスパートが、MATLABにより浮動小数点演算を要するアルゴリズムを記述したとしよう。しかし、実際にはそのアルゴリズムを固定小数点しかサポートしないプロセッサで動作させなければならないこともある」とTung氏は述べる。この問題について、MATLABとSimulinkでは、固定小数点プロセッサを利用する場合のアルゴリズムの動作を評価できる機能によって対応している。Tung氏は、「この機能により、ドメインエキスパートは、実装時の影響について評価/確認することができるようになる」と強調する。
脚注:
※3…Totty, Michael, "The 2008 Technology Innovation Awards" The Wall Street Journal, Sept 29, 2008, http://online.wsj.com/article/SB122227003788371453.html
Copyright © ITmedia, Inc. All Rights Reserved.