KUMICO

COLUMN

組み込みソフトウェア開発を助ける!ソフトウェア開発支援ツール

近年の組み込みソフトウェア開発は、導入する機能が増加・複雑化している一方で、開発期間の短縮が求められています。このニーズに応えるために組み込みソフトウェア開発技術者は、賢く効率的な開発を行う必要があります。効率的な開発を行うための解決策として、ソフトウェア開発支援ツールの利用が考えられます。本コラムでは、私たちエンジニアをサポートしてくれるソフトウェア開発支援ツールを紹介していきましょう。

効率化が求められる組み込みソフトウェア開発

以前、携帯電話を例に解説しましたが、近年の組み込み機器は昔と比べ、1つの製品で様々なことができるようになり、一製品あたりの価格も安くなる傾向にあります。それに伴い組み込み機器開発では、開発規模が拡大し、開発期間は短くなる状況にあります。一昔前までは、短い開発期間に間に合わせるために技術者が夜通し働いたこともありました。私も昔は、5日間家に帰らなかったり、終電帰りが当たり前なので、夜の10時に帰宅できるといつもより早いことが嬉しくてちょっとにやけてしまう、なんて有様でした。しかしながら、近年では海外の優れた製品が国内に参入し、導入機能の複雑化・増加、開発期間の短縮に加え、一製品あたりの販売価格の低下が求められるようになってきました。それにより、今までのような技術者の血と汗と命を削るような力任せの開発手法では需要に応える事ができず、現在の組み込み開発では、機能が優れていて品質が良い製品をいかに効率的に開発するかに注目が集まっています。独立行政法人情報処理推進機構が発行する【「ソフトウェア産業の実態把握に関する調査」にみる組込み産業の現状 】を見ても、今の組み込み開発の課題として、設計品質・開発コスト・開発能力といった、いかに品質管理が図れるか、いかに効率的に開発するか、そしていかに組み込みソフトウェア開発による生産性向上に努めるかが問題になっていることが見て取れます。
開発の効率化を実現するには、技術者のスキルアップ、開発プロセスの改善、オフショア開発、受託開発など様々な手段がありますが、ソフトウェア開発支援ツールを利用するのも有効な手段の一つです。ソフトウェア開発支援ツールは、Googleなどの検索エンジンで探してみると、組み込み用に特化したもの、ソフトウェアに特化したもの、ハードウェア言語にも対応しているものなど数多く存在します。これらのソフトウェア開発支援ツールは開発工程ごとに様々な支援を行ってくれます。開発プロセスのコラムでも記載をしましたが、組み込み開発の手順としては、製品スペックを決定する機能の抽出、設計(システム設計、ソフトウェア設計、ハードウェア設計)、実装、デバッグ・評価となります。以降では工程ごとの代表的なソフトウェア開発支援ツールを紹介していきます。

ソフトウェア開発支援ツールは工程ごとの様々な支援を実現

ソフトウェア開発支援ツールにはどんなものがあるか、ソフトウェア開発の手順に沿って見ていきましょう。

モデリングツール

設計では、代表的な開発支援ツールとしてモデリングツールが挙げられます。設計では、実現する機能を細分化し、それらをハードウェアで実現する、ソフトウェアで実現する、ソフトウェアで実現するときにはどのようなモジュール構成にするか、関数構成にするか、ハードウェアで実現するのであれば、どのようなチップをどんな回路でつなぐかといった所まで落とし込みます。その際UMLなどのモデリング言語を用いるケースがほとんどかと思いますので、モデリングツールを利用すると、モデリング言語を利用した設計が効率的になります。ツールによっては、動作シミュレーションを行うことができるツールも存在します。設計の段階で混入したバグ、ミスは大きな問題となることがありますので、設計の段階で動作させて検証ができるというのは品質の確保や開発の効率化という点で有効です。

プログラミングツール(ソフトウェア開発ツール)

次は実装(開発)となります。実装工程では実際にプログラムを組んでいくわけですが、この工程で代表的なツールにプログラミングツール(ソフトウェア開発ツール)が挙げられます。所定の単語を強調表示しプログラムを読みやすくする、関数名をオートコンプリートで出してくれる、関数の宣言部分にジャンプできるなど、ソースコードの管理やソースコード解析を行ったり、部分的にプログラムを動かして動きが合っているかを確認できたりします。また、コンパイラ、リンカなどのツールチェーンを利用した開発でも、繰り返される手順を自動実行してくれるため効率化な開発が行えます。通常の組み込み機器開発では、ソフトウェアとハードウェアの両方を開発するケースが多く、プログラムを動かそうとしても実装工程ではハードウェアが完成しておらず、ソフトウェアを動かせない場合がほとんどです。そこでシミュレーション機能を持つツールを使うことで、早い段階からプログラムの動作確認が可能となり、のちのテスト工程の短縮につながります。

シミュレーションツール・テスト自動化ツール

実装が完了すると、デバッグ・試験の工程です。デバッグ・試験では、プログラムが設計通りになっているかを確認します。ここでの代表的な開発支援ツールはシミュレーションツールやテスト自動化ツール、プログラムのカバレージを測定できるツールが挙げられます。試験を行う際に重要となる試験項目を自動で洗い出してくれたり、試験の内容を定義しておけば自動で試験を実施してくれるもの、実際に記述したプログラムが全パターン実行されているかを計測してくれるものがあります。いずれも高品質な組み込み機器を実現するために有効なツールとなります。

これら開発支援ツールを用意した上で、ひとつの環境下でより効率よく開発を行えるようにしたのが統合開発環境(IDE)です。この統合開発環境(IDE)には、各CPUメーカーが提供するメーカー依存の開発環境(TI社製DSP/CPU用開発環境であるCode Composer Studio、アナログ・デバイセズ社製DSP/CPU用開発環境であるVisual DSP、ルネサス社用開発環境であるHEWなど)や、複数メーカーのCPUに対応するEclipseなどのソフトウェア開発ツールがあります。ソフトウェア開発やアプリケーション開発の効率化を図るために、今や組み込み技術者にとって欠かせないツールとなりました。

ソフトウェア開発支援ツールとしてのプロジェクト管理ツール

ソフトウェア開発を一プロジェクトとして管理するために、プロジェクト管理ツール(プロジェクトマネジメントソフト・プロジェクト管理ソフト)といったものがあります。そもそものプロジェクト管理ツールは、プロジェクト全体を把握するマネジメント担当が主に使うものでした。しかし、ソフトウェア開発の工程では、工程ごとに現場レベル含め、全体が状況を共有する必要があります。そのため、開発者がタスク単位で簡易に報告でき、管理者が状況を容易に把握できるプロジェクト管理が求められ、RedmineやTrac(webベースのプロジェクト管理ツール)などが使われるようになりました。

開発支援ツールはうまく使いましょう

このように様々な開発支援ツールが世の中には存在しています。開発支援ツールを有効活用することで、プログラミングを一切行わずに組み込み機器を開発した事例もあるくらいです。ただ、これらの開発支援ツールや開発ツールは昔と比較すると機能も使い勝手も向上していますが、癖や制限があったりして利用できる場合と利用できない場合があります。私も過去には開発ツールの癖に戸惑って、結果的には開発ツールを使わない方が効率が良かったこともありました。
開発支援ツールはうまく適用すれば効率的な開発が実現できます。そのためには、開発する組み込み機器の特性やシステム構成、技術的難易度がどこにあるかによって、使う開発支援ツールを取捨選択することが重要でしょう。
ソフトウェア開発に携わるエンジニアの方は、これを機にソフトウエア開発支援ツールを調べてみるのはいかがでしょうか。あなたの開発する組み込み機器にぴったりの開発支援ツールが見つかるかもしれません。

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!