【第三回】 組込みアプリケーション開発におけるGUI開発ツール
組込み開発現場におけるGUI開発ツールの現状とそこに潜む課題とは
GUI開発ツールは万能ではない
今回は組込みアプリケーション開発におけるGUI開発ツールの現状と課題について見ていくことにしましょう。
ここ最近では、組込みアプリケーションのGUI開発において、「Qt」や「WideStudio/MWT」といった専用のGUI開発ツールを利用することが一般的となっています。GUI開発ツールを利用することで、PC上でのクロス開発(注1)を実現できるのはもちろん、WindowsやLinuxなどの異なるOS環境でも、同じソースコードでGUIデザインを共通化できるため、マルチプラットフォームの組込みアプリケーション設計にもアドバンテージがあります。とはいえ、GUI開発ツールは必ずしも万能な存在ではありません。

Googleが携帯電話向けSDKとして「Android」を発表するなど、組込み分野におけるGUI開発環境は充実している
マルチプラットフォーム環境の落とし穴
ある開発プロジェクトにおける例ですが、GUI開発ツールがマルチプラットフォームに対応していたにも関わらず、組込みGUIアプリケーションの実行環境をLinuxからWindowsへ変更したところ、Linux上で開発したアプリケーションのソースファイルが実行できないというトラブルが発生したことがあります。
これは「アプリケーションのプラットフォームを変更しても、Makefile(注2)の移行が自動的に行われない」というGUI開発ツールの仕様に原因があったためですが、単純なソースコードの読み直しやリコンパイルだけでなく、移行後のコンパイル環境に合わせたMakefileのリコンフィグレーションが必要となるのは、見落としがちなポイントといえるでしょう。
また上記のケースでは、アプリケーションを移植してモジュールを再生成したにも関わらず、移植先の環境で実行できないという問題にも直面しています。これは、GUI開発ツール固有の「アプリケーション定義ファイル」(注3)に不具合があったことが原因であり、たとえマルチプラットフォームに対応したGUI開発ツールでも、利用にあたっては十分な注意が必要だといえます。

プラットフォーム固有APIの利用が、コンパイルできない原因となることも

アプリケーション定義ファイルに不具合がある場合は、定義ファイルそのもののフォーマットを解析し、修正する必要がある
実行環境のスペックには注意が必要
プラットフォームの差だけでなく、実行環境による違いがトラブルの原因となるケースもあります。別な事例ですが、PC-Linux上のエミュレータで機能テストを行った際には正常に動作したにも関わらず、実機で動作しないという現象が発生したことがあります。
このときの原因は、実行環境のスペックでした。ターゲットの機器がスペック的に劣っていたことから、あまりにアプリケーションの動作が遅く、正常に動作しているように見えなかったわけです。ターゲット上での処理解析を行ったところ、GUI開発ツールが浮動小数点演算を利用しているにも関わらず、ターゲットの機器にはFPUが搭載されていないことも判明しました。GUI開発ツールによっては、一部の機能を実現するため組込み機器にもデスクトップPCなみのハードウェアスペックを要求することがあり、要注意といえるでしょう。

GUI開発ツールが生成するモジュールに対して、パフォーマンスチューニングが必要になるケースも多い
GUI開発に欠かせないノウハウとは
このように、特定のGUI開発ツールにしかない機能に依存してしまうと、このようにあとあと性能チューニングが必要となるケースが少なくありません。とはいえ、図に挙げたような余剰機能の縮小や無駄な処理の削除により性能改善を行うことは十分に可能です。GUI開発ツールが生成するソースコードは、一見して洗練されているようですが、描画処理の1ステップを削減するだけで大幅な性能向上を実現できるなど、特に描画処理におけるチューニングには改善の余地があります。
他にも、アプリケーションで実現したいGUI操作のため新たにGUI部品を追加する必要があったり、特定のCPUやフォントエンジンへ対応するためカスタマイズが必要になるなど、GUI開発ツールの導入にあたってはさまざまな経験やノウハウが求められるといえます。

いかに無駄な処理を削減できるかが、処理向上のポイントとなる

GUI開発ツールの生成するソースコードが、必ずしも最適なものとは限らない
【注釈】
| 注1 | クロス開発: | ターゲットの機器とは異なる環境で開発を行うこと |
| 注2 | Makefile: | 複数のソースファイルをまとめてコンパイルする際の定義ファイル |
| 注3 | アプリケーション定義ファイル: | アプリケーション開発でよく使われる機能をライブラリ化した、基礎となるプログラムのこと |
「Inspirium UIライブラリ V2.0」のご紹介
富士通ソフトウェアテクノロジーズでは、オープンソースのGUI開発ツールである「NAB Plug-in for MWT」 をサポートするほか、「WideStudio/MWT」のランタイムライブラリを製品レベルで試験し、さらなる高品質を実現した「Inspirium UIライブラリ」もご提供。手軽で高度なGUIアプリケーション開発をお手伝いします。
【特長】
- ビジュアルで使いやすいGUI開発環境を実現
- 「WideStudio/MWT」ライブラリ用のプラグインを提供
- プロトタイプ開発から製品開発まで、あらゆるニーズに対応
- GUI開発ツールのチューニングと、カスタマイズによる最適化を実施
関連リンク
- 先進の組込み技術紹介「FST Embedded Flash」ページへもどる
お客様のデバイス企画・開発に役立つ先進の組込み技術についてご紹介します。
- 組込み開発トータルサービス
お客様の要望にお応えする最高の技術により、品質・コスト・納期を追求した組込みシステム開発をお約束します。 - 組込み関連のケーススタディ
お客様ごとの課題に合わせ、最適な解決策をご提供します。 - 当社が提供する組込みソリューション
組込みソフト開発のベストバートナーとして、新製品の研究/試作機開発から製品開発、サポートまで、お客様のPoC(Proof of Concept)に先進技術と高品質でお応えします。
