検索
特集

組み込みソフト開発の“主役”は誰に?ツールの進化がもたらす開発スタイルの変化(3/3 ページ)

かつて、組み込み機器用ソフトウエアの開発は、それを専門とする技術者の手で行われていた。しかし、現在は、モデルベース設計ツールをはじめとした設計の抽象度を高めることが可能なツールを利用することで、システム設計者やドメインエキスパートであっても、組み込みソフトウエアを開発できる環境が整いつつある。本稿では、代表的なモデルベース設計ツールとその活用事例などを紹介した上で、組み込み用ソフト開発の現状についてまとめる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

システムとドメイン

 NI社のTanzillo氏とMathWorks社のTung氏は、システム設計者とドメインエキスパートを区別している。そして、NI社は、システム設計者とドメインエキスパートの両者にLabVIEWを推奨している。一方、Tung氏は、「アルゴリズムレベルで作業を行うドメインエキスパートは、主にMATLABを使用する傾向にある。これに対して、Simulinkのユーザーには、複数のドメインを専門とするシステム設計者が多い」と述べる。

 Tung氏は、開発の対象となるシステムにおいて、機械工学、電子工学、組み込みソフトウエアなど、複数のドメインがかかわるメカトロニクス機器を例にとり、次のように語っている。

 「メカトロニクス機器の開発において、システム設計者は『この設計は、機器の要件を満たしているのか?』という疑問に答えられるように、関連する複数のドメインについて理解しておく必要がある。そして、その設計に従ってシステムを開発するドメインエキスパートは、『求められる性能を達成するために設計に変更を加える必要がある場合、機械的設計、電子的設計、組み込みソフトウエアのどのドメインにおいて、何を調整すべきだろうか?』と考えるだろう。Simulinkで作成したモデルを使用すれば、これらのすべて、または任意のドメインの観点からシステム設計を確認することができる。また、あるドメインについて変更を加えたり、ほかのドメインにおける要件を緩めたりすることも可能だ。このように、Simulinkにより、アルゴリズムの観点から物事を考えるドメインエキスパートと、実装の観点から物事を考えるシステム設計者の間のギャップを埋めるような開発環境を提供できる」。

 また、Tung氏は、抽象度の高い設計を可能にするツールは、システム設計だけでなく、検証作業にも利用することができると指摘している。その上で同氏は次のように述べた。

 「自動車のサスペンションシステムを例に挙げよう。サスペンションシステムのモデルには、ダンピングなどシステムの動作を記述するアルゴリズム以外に、道路の表面、自動車全体の動作、ドライバーの行動など、実際のサスペンションの動作を理解するのに必要な要素も含まれている。このサスペンションシステムのモデルからは、マイクロコントローラ用のコードを自動的に生成することができる。そして、このコードは、自動車のサスペンションシステムに組み込まれて出荷される。また、モデル内の各要素は、テストシステムの基盤にもなる。先に述べた、道路の表面、自動車全体の動作、ドライバーの行動などから構成される要素についてコードを生成し、そのコードをHILS(Hardware in the Loop System)と呼ばれるテストシステム上で実行するのである」。

モデルベース設計の利用

写真3ティルトローター航空機「Bell/AgustaBA609」(提供:Bell/AgustaAerospace社)
写真3ティルトローター航空機「Bell/AgustaBA609」(提供:Bell/AgustaAerospace社) 現在、飛行テストを行っている2機のうちの1機。イタリア北部のアルプス山脈の上を飛行している。

 米Bell/Agusta Aerospace社の主席エンジニアを務めるDavid King氏は、同社の技術資産であるフライバイワイヤーシステムのプログラム開発業務に15年間携わっていた。King氏は、「以前、開発チームの人員構成を見ると、抽象度の低いプログラミング言語を担当する専門家がかなり大きな割合を占めていた。現在は、大多数が抽象度の低いプログラミング言語には精通しておらず、モデルベースの設計プロセスを利用する技術者がほとんどだ」と語る。

 同氏は現在、世界初の商用ティルトローター航空機「Bell/Agusta BA609」の開発プロジェクトに従事している(写真3)。「モデルベース設計を開始したのは1998年で、『モデルベース設計』という用語が生まれる前のことだった。MATLABとSimulinkを用いることにより、設計データを基に手作業でコーディングを行っていた開発プロセスにおいて、自動化を適用することを試みた。自動化の対象になったのは、組み込みソフトウエアのコーディングだけではない。シミュレーション、テストケースの開発、検証など、航空機とそのシステム性能を解析する上で必要となるすべてについて、コーディングを自動化しようと試みた」と同氏は述べる。

 現時点で、Bell/Agusta Aerospace社は、航空機の飛行制御コンピュータについて、手作業でコーディングした組み込みソフトウエアを採用している。しかし、シミュレーション、構造解析、安定性解析、テストケース生成を実施するすべての解析ツールについては、コード生成を自動化するためのモデルを使用している。King氏は、「それらすべてを手作業で行えば、かなりの作業負荷が発生する」と見ている。「モデルベース設計では、航空機とその飛行制御システムの動作について記述した単一のモデルを作成し、それをさまざまな分野の解析に適用することが可能だ。代表的な利用の仕方としては、動的負荷や操縦性の解析が挙げられる。また、パイロットと飛行制御アルゴリズムの相互作用を試験するパイロットインザループ(Pilot in the Loop)システムと呼ばれるリアルタイムシミュレーションにも利用できる。機体安定性や制御の特性を確認する非リアルタイムの評価でも活躍している」(同氏)という。

 また、MATLABとSimulinkで記述した標準モデルを使用することにより、飛行コンピュータを構築する企業などのパートナーとの連携作業も容易になり、認可に向けた作業も簡素化されるという。現在、米国のテキサス州とイタリアで、それぞれ1機の試作機が飛行テスト中である。この飛行テストは全体の約75%を完了している。そして、FAA(米連邦航空局)および欧州航空安全庁による認可プロセスが間もなく開始される。Simulinkの設計データは、FAAが義務付けるソフトウエア開発の設計保証プロセス「DO-178B」におけるソフトウエア設計データの一部となる。King氏は、抽象度を高められる開発ツールの重要性がますます高まっていくと予測している。「MATLAB/Simulinkは、当社がBA609の開発プログラムを立ち上げた11年前に比べてかなり進化した。次の開発プログラムでは、飛行制御コンピュータに用いる組み込みソフトウエアの生成など、さらに自動化の範囲を広げるつもりだ」(同氏)という。

UIによる製品の差異化

画面1「NucleusGraphicsDesigner」の操作画面(提供:MentorGraphics社)
画面1「NucleusGraphicsDesigner」の操作画面(提供:MentorGraphics社) 

 米Mentor Graphics社は、RTOSの「Nucleus RTOS」をはじめ、組み込みシステム向けの製品を展開している。同社の組み込みシステム部門担当製品マーケティングマネジャを務めるGeoff Kendall氏は、「Nucleus RTOSは、携帯電話機市場を中心に、最も広く採用されている商用RTOSの1つだ」と強調する。

 Mentor社の製品でドメインエキスパート向けとなるのは、組み込みシステムのUI(ユーザーインターフェース)エンジン/設計ツール「Nucleus Graphics Designer」である(画面1)。そして、Nucleus Graphics Designerのユーザーとなるドメインエキスパートとは、グラフィックスデザイナのことだ。Kendall氏は、「Nucleus Graphics Designerは、グラフィックスデザイナが組み込みシステムのUIを設計する上で、システムの動作を意識せずに設計できるようにUIとその機能を完全に切り離すことのできるツールだ」としている。

 同氏は、従来の設計フローを次のように説明する。「例えば、グラフィックスデザイナは、まず米Adobe Systems社の『Photoshop』などでUIのコンセプトを作成し、UIがどのような外観になるかを示す。数人のグラフィックスデザイナがUIのコンセプトを完成させて、それをUIのプログラマに渡す。プログラマはあきれた顔で、『最善は尽くすけど、こんな複雑なUIのプログラミングはかなり大変だぞ』と言うのがお決まりのパターンだった。そして、最終的に製品に搭載されるUIは、グラフィックスデザイナの提案に少しは沿っているものの、ユーザーが喜ぶとは言えないものになってしまうのだ」。

 さらに続けてKendall氏は、「ここでいうグラフィックスデザイナは、UIの操作性を専門とするドメインエキスパートだ。彼らは、使いやすいUIを持つ製品の開発や、UIにより他社製品との差異化を図る方法を知っている。しかし、組み込みソフトウエアによってどのように画面表示が行われているかについては、あまりよく理解していない」と述べる。

 このような問題を解決するために、Adobe社の『Adobe Flash』のようなグラフィックスデザイナが扱えるツールで作成したプログラムを、ハードウエア上でそのまま動作させられるようにする手法が提案されている。「しかし、Flashでは組み込み機器における性能の制約についての考慮がなされていない。例えば、Flashはベクターグラフィックスを採用しているのでデスクトップ型パソコンの任意のサイズの画面に表示が行える。しかし、このようにリアルタイムにグラフィックスをレンダリングするにはかなりの処理能力を要する。画面サイズが限られた組み込み機器であっても、ベクターグラフィックスのレンダリングの演算処理は膨大なものになる。それに対し、当社のようにネイティブなUI技術を使用した製品であれば、コアとして『ARM7』を使用しているプロセッサであっても、1秒当たりに15〜20フレームの動画を実現できる。Flashの場合、同じ条件だと、1秒当たりせいぜい1〜2フレーム程度だ」と同氏は指摘する。

 その上でKendall氏は、「Nucleus Graphics Designerであれば、プログラミングやスクリプト作成の経験がないユーザーであっても、ドラッグ&ドロップ操作によってUIの外観(ルック&フィール)を定義したり変更したりすることができる。特にUIの変更については、組み込みソフトウエアのプログラミングと並行して行うことができ、両者の間には何の相互依存性もない」と、その利点を強調する。

写真4NucleusGraphicsDesignerで開発したUI(提供:MentorGraphics社)
写真4NucleusGraphicsDesignerで開発したUI(提供:MentorGraphics社) NucleusGraphicsDesignerにより、コードやスクリプトを記述することなく2種類のUIを用意することができる。

 さらに、同氏は、「Nucleus Graphics Designerは、ある組み込み機器について、複数の顧客向けにそれぞれ異なるUIを構築するような用途が適している。例えば、米Ford Motor社、ドイツDaimler社、イタリアFerrari社といった複数の自動車メーカー向けに、車載エンターテインメントシステムを開発しているような場合がこれに当たる」と事例を挙げて説明する。自動車メーカーは、自動車を購入する顧客に対して、ほかの自動車メーカーとは異なるユーザーエクスペリエンスを提供したいと考えている。しかし、車載エンターテインメントシステムのサプライヤは、すべての自動車メーカーに対して基本的に単一の組み込みハードウエア/ソフトウエアで対応したいと考える。こうした状況において、Nucleus Graphics Designerを用いれば、組み込みソフトウエアを再コンパイルすることなくUIを変更できる。これにより、自動車メーカーとサプライヤ、双方の要求を満たすことが可能になるのだ(写真4)。

 上述した手法は、車載分野以外にも幅広く適用することができる。Kendall氏は、「ある大手白物家電メーカーは、複数のブランドを展開しており、ブランドごとに製品の外観を変える必要がある。プラスチック製のダイヤルやボタンの形状を変えることで外観を変えるとなると、かなりコストが高くついてしまう。仮に機能を追加することになると、その機能に対応するボタンをさらに追加しなければならない。しかし、画面表示を使ったUIであれば、画面上のUIを変更するだけで済む。つまり、ダイヤルやボタンなどに比べて、画面表示によるUIのほうがコストを低減できる場合もある。今や、韓国Samsung Electronics社やソニーなどでは、大型の家電製品にもタッチスクリーンUIを搭載する事例が出始めている」と説明する。同氏によれば、「当社は、家電製品にインタラクティブなタッチスクリーン機能を追加したいという要求に対応するための準備を整えている」という。

 機器に用いられる半導体が高機能化するに連れて、Nucleus Graphics Designerのようなツールの重要性は増す。現在、画面表示を行う機器に搭載されているプロセッサのほとんどが、OpenGL準拠などの3D画面表示機能を備えている。Kendall氏は、「3D画面表示機能は非常に素晴らしいものだが、それを動かすソフトウエアがなければ能力を発揮することはできない」と語る。Nucleus Graphics Designerを用いれば、ハードウエアの持つ3D画面表示機能を利用してUIを設計することが可能である。「グラフィックスデザイナは、画面上の物体をスピンさせたり、フェードアウトさせたりすることができる。これらは、テレビ番組などで一般的に目にする効果だ」(同氏)という。

 グラフィックスデザイナがやりたいことと、組み込みソフトウエアの技術者が時間的および経験的に構築して提供することのできることの間には技術的なギャップがある。設計ツールは、半導体チップの上に抽象化層を作り、グラフィカルに設計したUIをドラッグ&ドロップできるようにすることで、そのギャップを埋めるのである。

さらに設計の抽象度を高める

写真5Altium社の「NanoBoard」(提供:Altium社)
写真5Altium社の「NanoBoard」(提供:Altium社) この開発ボードは、米Altera社のFPGA「CycloneIIIEP3C40」を対象としている。

 オーストラリアAltium社でマスター電子設計サクセスマネジャを務めるMarty Hauff氏は、ドメインエキスパートの役割はさらに進化すると予測している。Altium社は、電子機器向けの統一設計環境「Altium Designer」によってシステムの設計を支援する。同社は、関連する開発ボードも提供している(写真5)。

 Hauff氏は、「設計の抽象化が進むに連れ、マイクロプロセッサを含むハードウエア、ソフトウエアなどを対象とした抽象度の低い個別のスキルの重要性は小さくなっていくだろう。イノベーションは、ハードウエア/ソフトウエアの設計プロセスに対してではなく、全体的なユーザーエクスペリエンスに対して求められるようになっている。そして、システム設計者は、システムの仕様とイノベーションに対する責任を担い、抽象度の低いレベルの作業は必要に応じて外部委託されるようになる」と述べる。

 さらに、同氏は、組み込みシステム市場で生じている現象をパソコン分野で生じた現象に例えた。「現在、パソコン用のソフトウエアを開発するプログラマは、基盤となるハードウエアに関する知識を持たなくても、非常に高度なアプリケーションを構築できるようになった。これは、JavaやC#などのウェブと親和性の良いプログラミング言語や、Microsoft社の『Microsoft Office』に組み込まれている『VBA(Visual Basic for Applications)』の登場により起こったことだ」と同氏は語る。

 ただし、Hauff氏は、組み込みソフトウエアの専門技術者が不要だと言っているわけではない。同氏は、「ドメインエキスパートが、組み込みソフトウエアの専門技術者にとって代わるというのは少し言いすぎだろう。機器開発を行う上で必要とされるスキルが変化していっているのだと思う。そのため、技術者の作業の内容は変化するかもしれない。例えば、抽象度の低いレベルの設計を行う技術者に代わって、システム全体を統合する技術者の重要性が高まるといったことが起きるだろう」と述べた。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る