技術コラム(第2回) 組み込みソフトウェア開発で考えるべき事

一般的にソフトウェアの開発に求められるものは、以下に挙げるものだと言われています。

  • 生産性
  • 信頼性
  • 可用性
  • 再利用性
  • 拡張性
  • 移植性
  • 保守性


組み込みソフトウェアでも求められるものは同じですが、上記項目のなかでも特に「信頼性」と「保守性」は非常に重要な項目です。
さらに最近では「安全性」という項目が特に重要視されるようになってきています。

品質保証の重要性は認識出来ているが・・・・

信頼性/保守性が重要という事は、品質保証が大事ということになります。
これは、製品化されたソフトに対して致命的不具合が発生した際に、 簡単にプログラムを修正出来ないという問題があるからです。
しかし、技術者を育成するにあたり、いろいろな言語など技術研修は見かけますが、 品質保証に関しての研修はあまり見かけないのが現実です。

制限が多い組み込みソフトウェア

品質保証の教育が少ないのは、技術者として経験を積めば自然と身につくので、研修を行うとの発想にならないのかもしれません。
またもう一つの理由として、組み込みソフトウェアの特殊な制限が、技術の方を強化しようという考えになるのかもしれません。

組み込みソフトウェアはPC系などのソフトウェアと違い、作成する場合に制限がかなり多くなります。
例をあげてみると、
    限られたメモリ容量、メモリ性能で動作しなければならない
    決められた時間内で動作しなければならない
    決められた時間に動作しなければならない
    リアルタイムで動作しなければならない
    ハードウェアに依存する部分が多い
    OSレスのものもある
    スタートアッププログラムが必要
    あり得ないエラーでもエラー処理を行う(想定外を想定する)
    除算(割り算)を使わない(割り算は時間がかかって使えない)
    汎用ライブラリを極力使わない(ライブラリがないこともある)
    終わらないプログラム
    mainのないプログラムもある
などと、確かに技術の知識を教えるのが多くなるかもしれません。

しかしながら、品質保証も同時に強化してこそ、製品を作り上げるのに重要な訳で、その部分は当たり前のように忘れずに対応していきたいものです。

次回は、組み込みハードウェアの特徴を記載します。

組込開発.comでは、ソフトウェアやハードウェアの開発を承っております。これまでの実績については開発実績をご覧ください。

投稿者プロフィール

ソフト担当T
ソフト担当T
メインはソフト担当ですが、筐体設計も担当します。プログラミング言語はPythonやC言語の経験が多いです。また、たいチャレ(詳細は右バーナー参照)にも参加しており、日々、様々なことを学びながら業務に取り組んでいます。