5.7 組込みソフトウェア開発の今後 ·...

Post on 27-May-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

- 150 -

5.7 組込みソフトウェア開発の今後

組込みシステム開発における課題は、いかに生産性を向上し、それによって製品開発のリードタ

イムや TTM(Time-To-Market/製品の市場投入までにかかる時間)を短縮するとともに、増大する

組込みソフトウェアの開発効率を上げるだけでなく、製品に対する品質や安全性の要求に応えるか

にある。そこで、本節では主に組込みソフトウェア開発の視点から、その今後の方向性を占ういく

つかのトピックに触れたい。

5.7.1 ハードウェア設計主導の開発からコ・デザインへ

特に組込みソフトウェア開発で問題となっている、ハードウェア設計との同時進行について、今

後適切なアプローチの普及が望まれている。

既に見たようにソフトウェア設計・実装工程とハードウェアのそれは同時期に行われる傾向があ

る。製品全体の開発から見れば、製品の原価を左右し、部品調達にも影響するハードウェア設計が

優先されるのは当然のことである。しかし、そのためにハードウェア設計のしわ寄せがソフトウェ

ア側に行き、開発終盤での変更がソフトウェア側に要求されるのである。しかし近年の組込みソフ

トウェアは、行き当たりばったりの変更要求に都合よく応じきれないほどに大規模化している。こ

れによってソフトウェアの開発スケジュールが遅れたり、品質が犠牲になれば、結局製品全体の開

発スケジュールにも影響を与えたりてしまうのである。

そこで、ハードウェアとソフトウェアを協調しながら同時開発するコ・デザイン(ハードウェア

/ソフトウェア・コ・デザイン、協調設計)のような設計手法導入の必要性が唱えられている。こ

れは、設計の初期段階ではハードウェアとソフトウェアをあえて区別せずに、まずシステム全体の

仕様記述を行い、そこからハードウェアの設計(HDL38)とソフトウェアの設計(C/C++)を導き出

す手法である。一部または大部分をツールを使って自動生成する。これにより、開発の途中でハー

ドウェアとソフトウェアの切り分けが変わっても、すばやく対応できるようになる(図表5-18)。

コ・デザインは、システムの中でハードウェアで実装するかソフトウェアで実装するか決めがた

い部分の設計に特に有効だと考えられる。ソフトウェアで言えばデバイスドライバや一部のミドル

ウェア内で実装するアルゴリズムの一部などがこれに相当するだろう。一方、初めからアプリケー

ション(ソフトウェア)として実装することがあらかた見えているシステムの付加価値機能などに

関しては、開発のできるだけ早い段階で仕様を切り出すとともに、そのプログラミング・インタフ

ェース(API)を固定することが望ましい。そうすることで、ハードウェア設計の影響を抑えながら

アプリケーションの開発を進められるのである。このためには、OS や Java などのバーチャルマシ

ン(VM)、あるいは標準プラットフォーム(例:T-Engine)の導入が有効であろう。

38 HDL:Hardware Description Language。ハードウェア記述言語。ハードウェアの機能仕様を記述する言語の総称。具体的なHDLとしてはVerilog HDL、VHDL(Very High-Speed Integrated Circuit Hardware Description Language)やSystemCなどが使われる。機能の振る舞い(ビヘイビア)を記述するRTL(Register Transfer Level)と組み合わせて使う場合が多い。

- 151 -

図表5-18 並行に実施される製品開発と検証・評価作業

資料:小林裕司、野村稔(科学技術政策研究所) 2005年『LSI設計技術の研究開発動向―電子機器の付加価値

を支配するシステムLSI開発のボトルネック―』Science & Technology Trends. 2005.3

(http://www.nistep.go.jp/achiev/ftx/jpn/stfc/stt048j/0503_03_feature_articles/200503_fa01/200503_f

a01.html)

5.7.2 組込みソフトウェア人材とETSS

ETSS(Embedded Technology Skill Standards/組込みスキル標準)は、「組込みソフトウェア開

発力強化を目的とし、組込みソフトウェア開発に関する、最適な人材育成や人材の有効活用を実現

するための指標や仕組みを規定するもの」39である。その主目的は、組込みソフトウェア技術者の

人材不足解消に寄与することにある。ITSS(IT Skill Standards/ITスキル標準)の一部を参照し

ており、関連性がある。

その内容は、三つの柱から成り立っている。

スキル基準:組込みソフトウェア開発スキルを体系的に整理するためのフレームワーク

(Ver. 1.0)

キャリア基準:組込みソフトウェア開発に関わる職種/専門分野を定義する(現在はドラ

フト版のみ)

教育カリキュラム:組込みソフトウェア開発にする人材育成を目的とするカリキュラムを

定義する(現在はドラフト版で、組込みシステム開発未経験者向けカリキュラムのみ)

(ETSS 2005年版に基づく)

39 ETSS 2005年版

- 152 -

図表5-19 ETSSの三本柱(スキル基準、キャリア基準、教育カリキュラム)

資料:IPA/SEC 2005年『ETSS 2005年版』

図表5-20 キャリア基準と職種、専門分野及びキャリアレベルの関係

資料:IPA/SEC 2005年『ETSS 2005年版』

ETSSでは、組込みシステム開発未経験者を組込みソフトウェア開発に従事できるようにするため

の教育カリキュラムを定義している。特にハードウェア制御演習などに特徴がある(図表5-21)。

- 153 -

ETSS は企業からも注目されており、例えばNECは 2006 年に組込みシステム開発人材育成・評価

の仕組みとしてETSSを導入することを発表している40。

図表5-21 組込みシステム開発未経験者向けカリキュラム概要

エラー!

資料:組込みソフトウェア開発力強化推進委員会組込みスキル標準領域 2006年『平成16年度組込みソフトウェア

開発力強化委員会組込みスキル標準領域活動報告書』

(https://sec.ipa.go.jp/download/dl.php?filename=report/200606/ETSS_report_activity_2006.pdf)

5.7.3 組込みソフトウェア開発の分業化と人材確保

従来、デバイスドライバ、ミドルウェア、アプリケーションの開発を担っているのは経験が長く、

大きなチームの中での調整に明け暮れることなく、一人ひとりの専門領域の中で自らの責任で技術

的決定を下して仕事を進めることができる職人的技術者である場合も少なくなかった。しかし、組

込みソフトウェアの開発規模が増大の一途をたどる現在の状況では、場合によっては同じやり方を

大人数に行わせてシステマチックにソフトウェアを完成させることが求められる。

この場合、分業しやすい開発手法をとり、また要求するスキルにもメリハリを持たせて人材確保

を図らなければならない。今後アプリケーション設計がハードウェアの詳細の違いに左右されない

よう、ミドルウェア、OS、バーチャルマシン(VM)や標準プラットフォームなどの利用が増えると

考えられる。これにより、デバイスドライバ、ミドルウェアといったプラットフォーム(ハードウ

ェア)寄りのソフトウェア開発やOSやVMの移植に関してはハードウェア・コンポーネントの機能

やリアルタイム制御などの知識豊富なプラットフォーム技術者が、また、アプリケーションの開発

は一般的なレベルのC/C++あるいはJavaプログラマなどがそれぞれ当たることで、分業化が進む。

特に近年の組込みシステムは、付加価値機能をアプリケーションとして実装する部分が大きくな

っており、この部分での十分なマン・パワー獲得のためにも分業化が望ましい。同時に、分業化し

やすい開発枠組みは、同じ組込みアプリケーションを異なる製品・型番用に同時・複数展開する「ク

ロス開発」にも有利である。なぜならアプリケーション設計がハードウェアの詳細の違いに左右さ

れないため、同じ設計、同じソースコードが異なる製品や型番間で利用しやすいからである。

40 2006年4月3日日刊工業新聞報道

- 154 -

分業化は開発体制にも柔軟性をもたらす。つまり、組込みシステム・メーカーにとって中核部分

となるハードウェア寄りのソフトウェアは自社リソースにて開発、アプリケーション部分はアウト

ソースするといったように開発体制にメリハリをつけることができるようになるのである。

アプリケーション層がプラットフォームに対し十分に独立している場合、業務系アプリケーショ

ン・プログラマを組込みアプリケーション開発に投入することも可能である(図表 5-22)。また、

プラットフォーム寄りのソフトウェアであれ、アプリケーションであれ、それが大規模である場合、

分業や保守・拡張がしやすいソフトウェアの設計ができる「アーキテクト」が必要となる。これは

ソフトウェア・エンジニアリングの上級技術者である。

前項で述べた ETSS の職種と専門分野はこのような分業体制を意識しているといえる。つまり、

システムアーキテクトとソフトウェアエンジニアそれぞれの職種において、専門分野が「組込みプ

ラットフォーム」と「組込みアプリケーション」に分かれている(図表5-23)。

図表5-22 組込みシステム開発分業化に向けた人材構成

資料:ETSS及び 眞壁幸一、金山二郎 2006年『携帯電話開発の舞台裏』組込みプレスVol.3、技術評論社

を参考に作成

- 155 -

図表5-23 ETSSにおけるシステムアーキテクトとソフトウェアエンジニアの定義

資料:ETSS Ver. 1.0

top related