組込みアプリケーション開発学習教材 EAPL-Trainer
EAPL-Trainer
ピックアップ
このページでは、学習テキストの内容を一部ピックアップしてご紹介します。
高品質なアプリケーション開発テクニック
~モジュール分割編~
組込みアプリケーションに限らず、高品質なソフトウェア設計においては、機能の抽出と細分化(モジュール分割)が重要になってきます。
モジュール分割が正しく行えていないと、後のフェーズで以下のような問題が発生します。
・同じような修正・改造が複数箇所におよび、開発工数が想定以上にかかる。
・関数内の処理量が多く、複雑なため、原因の特定・影響範囲の少ない修正方法の検討に時間がかかる。
・環境依存部分のモジュール分割ができていないと、プラットフォーム変更時に膨大なコストがかかる。
ますます膨大になるアプリケーションの開発現場に参画する前に、イープルトレーナーで基礎を見につけてはいかがでしょう?
第一弾のBASIC編では、Windows上で手軽に学べるようにVC++ Express Edition(無料ダウンロード可)上で学習できるようになっています。
~C言語によるオブジェクト指向プログラム編~
最近のPCアプリケーション開発では、C++/Java/C#などのオブジェクト指向言語を使うことが主流となってきていますが、組込み機器の開発ではプログラムの大きさの制約がPCに比べて厳しく、プラットフォームによってはまだまだC言語が採用されています。
.. C++/Java/C#などでは、クラスのprivateメンバを使用してデータを容易にカプセル化することができますが、C言語はオブジェクト指向言語ではないため、構造体を使用してカプセル化する必要があります。
イープルトレーナーでは、「モジュール構造体」という表現で、カプセル化のための構造体の記述方法を詳しく解説しています。
他のモジュールがデータ内部(GAppClockManager)に直接アクセスを行っていた場合、このデータにアクセスしていたすべての箇所を同時に変更しなければなりません。しかしカプセル化をし、外部公開APIを用いていれば、変更は外部公開API内のみで済み、変更の影響を局所にとどめる事ができます。
~GUI作成編~
GUIの仕様は他の仕様に比べ、開発の途中で頻繁に変わり、開発終盤になっても収束しないことがあります。
そのため、GUIの開発には、デザインの決定・変更をすぐにプログラムに反映できる開発手法が必要となります。
イープルトレーナーでは、GUI開発部分を国内トップシェアのGUI開発ツール「GENWARE3」(ジェンウェアスリー)を使って学習できるようになっています。
同梱のCDから、お手持ちのパソコンにGENWARE3をインストールすることができます。
5画面しか作れないなどの機能制限はありますが、基本的にすべての機能を使うことが可能です。

GENWARE3では17種類の部品を用意していますが、サンプルのアラーム時計では以下の5種類の部品を使用しています。
- スタティックテキスト
- ラベル
- ビットマップテキスト
- ピクチャ
- ボタン
このうち、ビットマップテキストは、時刻表示部分に使用している部品です。
組込みアプリケーションでは、使用できるフォントが限られているなどの理由で、数値などをフォントではなくイメージデータで表示するケースがあります。
その場合、通常であれば、「10:00」と表示するために、
- 1つ目のイメージデータを「1」にする
- 2つ目のイメージデータを「0」にする・・
のように、5部品分の処理が必要になります。
一方、ビットマップテキストでは、イメージデータをあらかじめ登録しておくことでテキストと同じように扱うことができるため、
- 表示内容を「10:00」にする
という1つの処理で操作が可能になります。
このように、組込みアプリケーションに適した部品を用意しているのもGENWARE3の特長です。
ますます膨大になるアプリケーションの開発現場に参画する前に、イープルトレーナーで基礎を見につけてはいかがでしょう?
第一弾のBASIC編では、Windows上で手軽に学べるようにVC++ Express Edition(無料ダウンロード可)上で学習できるようになっています。
~モジュールの階層設計編~
組込み開発では、ある機器向けに開発したアプリケーションを、別の機器(後継機種など)用に移植することがよくあります。
その際、あらかじめ移植することを考えて設計していないと、プログラム全体を修正することになり、移植に非常に手間がかかることもあります。
モジュール階層設計の目的のひとつは、アプリケーションを物理的側面と論理的側面にわけ、物理的環境(ハードウェアやOSなど)の情報を隠蔽することにあります。
これにより、移植時の修正範囲を局所化することができます。
「イープルトレーナー」では、アラーム時計をテーマに、モジュールの階層設計の基礎が学べるようになっています。

階層構造の上にあるモジュール(制御処理管理モジュール)ほど、論理的なモジュールになり、下にあるモジュール(画像ファイル読み込みモジュール)ほど、物理的なモジュールになります。
画像ファイルを、実際にどのファイルからどのように読み込むかは、画像ファイル読み込みモジュールが管理しており、制御処理管理モジュールはその情報を意識する必要はありません。
また、異なるプラットフォームに移植する際には、画像ファイル読み込みモジュールのみを変更すればよいことになります。
ますます膨大になるアプリケーションの開発現場に参画する前に、イープルトレーナーで基礎を見につけてはいかがでしょう?
第一弾のBASIC編では、Windows上で手軽に学べるようにVC++ Express Edition(無料ダウンロード可)上で学習できるようになっています。
~シーケンス図編~
組込みアプリケーション開発において、シーケンス図はとても良く使われる設計書の1つです。
モジュール間でやりとりする際、どのモジュールからどのモジュールに対して、どんなタイミングで、どんな順番でメソッドを呼び出すのか、という情報を得るためにはソースコードを追っていく必要があり、とても時間がかかります。
そのような、ソースコードを追う作業を軽減してくれる図がシーケンス図です。
図は、「イープルトレーナー」で解説しているシーケンス図の例です。

この図を見れば、現在時刻の文字列を取得するために、「現在日時管理モジュール」、「日時取得モジュール」、OSのAPIを階層的に呼び出していることが一目で分かります。
これはとても簡単な例ですが、このような単純なやり取りであっても、シーケンス図がない状態でソースコードから読み取るにはそれなりに時間がかかります。
ますます膨大になるアプリケーションの開発現場に参画する前に、イープルトレーナーで基礎を見につけてはいかがでしょう?
第一弾のBASIC編では、Windows上で手軽に学べるようにVC++ Express Edition(無料ダウンロード可)上で学習できるようになっています。