と題したトークセッションから始まりました。
IT技術ジャーナリストである風穴江氏をモデレータに迎え、4人の参加者がそれぞれのプラットフォームに対する熱い想いを語ります。
IT技術ジャーナリスト 風穴江氏
それぞれのプラットフォーム代表者がバックグラウンドを披露
トークセッションは、パネリストとして参加した4名の自己紹介から始まりました。T-Kernel代表として出席したイーソル エンベデッドプロダクツ事業部 マーケティング部 部長の金子健氏は、「 現在はマーケティング活動に従事しているが、以前は技術者でOSの移植などを行っていました」とのこと。1985年からUNIXの開発に携わり、「 現在はLinuxを中心に組込みに携わっているほか、組込み用の仮想化もやっています」と語るアックス 代表取締役社長の竹岡尚三氏は、Linux陣営の代表としての出席です。
左:イーソル エンベデッドプロダクツ事業部
マーケティング部 部長 金子健氏
右:アックス 代表取締役社長 竹岡尚三氏
「Androidがおもしろい」と話すのは、OESF(Open Enbedded Software Foundation)代表理事である三浦雅孝氏。「 Android上で実際にJavaで開発したらおもしろかったので、どうせやるならデカいことをやろう」とOESFを立ち上げたというエピソードを語って頂きました。マイクロソフト OEM統括本部 OEMエンベデッド本部 シニアマーケティングマネージャの松岡正人氏は、もちろんWindows Embedded代表。「 OSが組込みで主流になる前に、プリンタのファームウェアからPOSのアプリケーションまでいろいろなものを開発していました」とのこと。
左:OESF代表理事 三浦雅孝氏
右:マイクロソフト OEM統括本部 OEMエンベデッド本部
シニアマーケティングマネージャ 松岡正人氏
Linuxは幅広く“普通に”使われている
その後風穴氏より、組込みデバイスを取り巻く現状について解説がありました。その中でWiMAXの人口カバー率の向上や100Mbps以上の下り方向の帯域幅が実現されるLTEについて触れ、さまざまな組込みデバイスがネットワークに接続されるようになるのではないかと語ります。また、多様化するニーズに応えるため、デバイスが細分化していることを指摘し、それを支えるのはプラットフォームを含めたソフトウェアのテクノロジーであると述べました。
その後、各プラットフォームの最新動向の紹介が続きます。組込み用途向けWindowsプラットフォームについては、松岡氏が10月2日にWindows CE 6.0 R3を発表したことを説明、さらにPC向けのOSをベースとしたWindows Embedded Standardに関しても、2010年の上半期にWindows 7をベースとしたものが提供予定であることも明かされます。
T-Kernelについては、T-Kernel/Standard Extensionと呼ばれる拡張機能が登場し、プロセスモデルやメモリ保護といった機能が使えるようになったことで大規模開発の負荷を軽減できるようになったと金子氏が語ります。さらにイーソルにおいて、POSIX仕様準拠のT-Kernelを独自に開発していることなどの説明がありました。
Linuxをベースに、携帯電話のOSとして利用するために必要な機能が拡張されているAndroidは、現在最新の開発ブランチとしてCupcake、そしてDonutが公開されています。三浦氏によれば、開発ブランチの名称の1文字目はアルファベット順に進み、さらにお菓子系の名前になっているとのことで、Donutの次はE-cleaになるとのこと。また、OESFで進められている、情報家電や車載機器のための機能をAndroidに追加・修正を行い、その成果を「OESF Embedded Master」として公開する取り組みにおいて、最初のバージョン「BlueberryCupcake」を2010年2月に公開することが紹介されました。
Linuxについては、ブルーレイプレーヤーや地上波デジタルテレビなど、幅広く“ 普通に” 使われていると竹岡氏は話します。OpenGLやOpenCLの最新版がいち早く提供されるなど、最新のテクノロジーが使いやすいこともメリットとのこと。以前は組込み用途でLinuxを使うべきか否かが議論されることもありましたが、今では組込み用OSとして広く浸透していて、すでにそういう段階ではなくなったということでした。
エンジニアの目線とビジネスの目線の両方が必要
最後に「これからのキーワードは?」という風穴氏の問いかけに、パネリストの皆さんが答えていきます。金子氏は挙げたのは「カーエレクトロニクス」と「グリーン」 、そしてマルチコアやマルチタスクといった「マルチ」の3つです。特にカーエレクトロニクスについては、ハイブリッドカーや電気自動車への移行により大いに注目が集まるのではないかと述べられました。
竹岡氏は「仮想化」を挙げます。仮想化によって複数のOSを立ち上げ、いずれかのOSが落ちても、もう一方のOSで作業を継続するなど、安心や安全につながる技術として注目されているとのことでした。
「標準化と差別化。2つを間違えないでほしい」と語るのは三浦氏です。標準化や差別化を自分たちだけで全部やってしまい、最後はガラパゴス諸島で死んでいくオオトカゲのようになってはいけないと警鐘を鳴らします。
松岡氏はマイクロソフトが提供しているのは部品であると語り、その部品が使えるかどうかの判断をする際に、基準とするべきものは標準化されたものであるかどうかだと語ります。さらに部品(プラットフォーム)の選択において、エンジニアの目線とビジネスの目線の両方が必要だという見解を示し、エンジニアの目線だけで判断すると誤る可能性があると述べられました。
松岡氏の話を受け、最後に風穴氏が「ビジネスとテクノロジーは両方うまく動かないと大きな成功はない」とまとめ、大いに盛り上がったトークセッションはここで終了となりました。
再利用できるソフトウェア部品の構築
結果の再利用から再利用設計へ
2つ目のセッションでは、「 再利用できるソフトウェア部品の構築~結果の再利用から再利用設計へ」と題し、ビースラッシュの近藤満氏のプレゼンテーションが行われました。
再利用を意識した設計を
ビースラッシュ 取締役 近藤満氏
2つ目のセッションのテーマは、組込み開発における既存資産の再利用率の向上です。ビースラッシュ 取締役の近藤満氏は、まず再利用の効果として、「 品質の向上」と「開発期間短縮」「 開発コストの削減」「 肥大化への対処」の4つの効果を挙げます。特に開発期間短縮については、設計者を1人から10人にしても生産性は10倍にはならないとし、手法や技法の工夫が必要であると話しました。開発コストの削減についても、再利用が進んで生産性が向上すれば、開発費が削減されると言います。
では、実際の現場ではどの程度再利用が進んでいるのでしょうか。近藤氏によれば、「 再利用率が50%以下という企業が50%以上を占めているが、一方で平均値は80%を超えている」とのことです。実際に再利用率が高い領域として上げられたのが、自動車のエンジン制御、そしてデジタルOA機器の分野です。前者は80%以上、後者に至っては90%以上という再利用率が達成されているとのことで、これらの領域において開発が効率的に進められていることが伺えます。
こうした再利用の推進による効率的な開発を実現するためには、再利用方法の改革が必要であると話は進みます。具体的な改革のポイントとして紹介されたのは、設計段階から再利用を意識するということです。開発したモジュールが結果的に再利用することができた、というようなことでは当然再利用できてもプロジェクトに大きなインパクトを与えるまでには至らないでしょう。しかしあらかじめ再利用することを前提に設計すれば、その成果をほかの製品に展開しやすくなるというわけです。そして再利用の粒度を大きくしていくことと、資産の包括的な再利用がポイントとして示されました。
具体的な再利用率の向上のためには、リファクタリングとリエンジニアリングにより、既存コードを再利用しやすいように手直しを施すことや、ソフトウェアを小さなドメインに分割して開発を行う、プロダクトラインエンジニアリング(PLE)が重要であると近藤氏は語ります。プロダクトラインエンジニアリングによって、共通して利用できる部品が蓄積され、開発の現場でそうした部品を組み合わせて開発が進められるようになれば、再利用率は大幅に向上できそうです。
しかし実際には、プロダクトラインエンジニアリングは組織的な取り組みが要求されるため、「 実施のハードルが高い」と近藤氏は言います。たとえば設計者に再利用を考慮した設計を行うだけの時間的な余裕がなければ、プロダクトラインエンジニアリングを成功させるのは難しいでしょう。また再利用を推進するための専任組織ができなければ、蓄積された資産を誰が維持・管理していくのかといった問題にも突き当たります。こうした問題を打破できるかどうかが、再利用率の向上において重要だと語ります。
再利用部品開発を阻む高い壁
ビースラッシュ 取締役 酒井郁子氏
近藤氏に続いて登壇した同じくビースラッシュ 取締役の酒井郁子氏は、特に派生開発や多品種並行開発を行っている企業で、再利用可能な部品を構築したいというモチベーションは高まっている一方、現実的にはさまざまな困難がつきまとっていることを紹介します。
再利用部品開発の失敗例として、多数の製品で利用できる部品を目指して開発が進められたものの、汎用化しすぎて小さな部品しか残せなかった、あるいは部品の亜種が大量に発生し、効率的な再利用には至らなかったケースが紹介されました。
後々の開発に役立つ、再利用部品を開発するためには「組織的な取り組みと、開発した部品の保守管理、開発者のスキル、そしてモチベーションが必要」で、それらの点が高い壁になっていると酒井氏は指摘しました。
それでも効率的な開発を実現していくためには、再利用可能な部品の構築は必要不可欠です。そこで部品構築に失敗しないための原則として、部品の仕様や設計を明らかにすること、リファクタリングによるコード品質の向上、部品の骨組みの見える化などの重要性が解説されました。
ただ、コードのリファクタリングや品質管理、骨組みの見える化は決して楽な作業ではありません。また自分の開発したものであればまだしも、過去の資産となると多くの苦労がつきまとうのは目に見えています。そこで、こうした作業を補助するツールとして紹介されたのが、東陽テクニカの「QAC/QAC++」 、「 Structure101」 、「 eXquto」「 PERFORCE」といった製品群です。
ツールを活用して再利用部品開発を推進
QAC/QAC++は、C及びC++のソースコードの静的解析ツールです。このツールを使ってコードの分析や静的テストを行うことにより問題点の抽出が可能になり、品質を定量的に見極められます。こうしてコードの素性を明らかにすることができれば、部品として使いやすくなるのは間違いないでしょう。さらにこうしたツールを使って詳細設計のミスやコーディングミスを排除することにより、ソースコードの品質を保つことが可能なるため、部品化の際にも大いに役立ちます。
このQAC/QAC++によって出力されるソフトウェアメトリックスを使い、スコープ別、そして品質特性別評価を行ってくれるのがexQutoです。スコープ別評価では、アーキテクチャ設計/コンポーネント設計/ファンクション設計/コーディングスタイルに分類し、品質を定量的に示します。一方品質特性別評価は、信頼性/効率性/保守性/移植性のそれぞれで得点化が行われ、やはり品質を定量化することが可能になります。
加えてプロジェクト内のすべてのファイルを対象に、コピー&ペーストで生成したクローンコードを検出する機能もあります。クローンコードに修正が必要な内容が含まれていた場合、漏れなくすべて修正するのは骨が折れる作業ですが、exQutoを使えば大幅に手間を軽減できるわけです。
そのほか、やはりQAC/QAC++の解析結果をベースに構造解析を行うStructure101を東陽テクニカが提供しています。これらのツールを活用し、ソースコードから情報を引き出して自動的にドキュメントを生成し、部品化の手間を削減することが重要であると酒井氏は述べます。
さらに酒井氏が指摘するのは、部品の適切な管理です。具体的にはソースコードやドキュメント、テストコードのセット、そして変更履歴や使用履歴といった部品の履歴を残すために、構成管理ツールを活用して確実に部品を管理していくべきだと言います。こうした構成管理ツールの1つとして、東陽テクニカが提供しているのがPERFORCEです。低コストで導入できる上、開発規模によって拡張可能な柔軟性も持ち合わせています。さらに独自のブランチ方式であるInter-File Branchingにより、複数のリリースや並行する開発の流れを管理できるなど、開発の現場において有用な機能を備えています。
最後に酒井氏は“ 部品は皆の財産” であるとして、「 可視化やリファクタリングを駆使して、みんなが使える部品を残しましょう」とまとめました。
組込みシステム開発:いつまで体力勝負を続けますか?
~組込みシステム開発の現場を抜本的に改善するための取り組みについて~
日立情報制御ソリューションズの主幹技師である飯島三朗氏による3番目のセッションは、「 組込みシステム開発:いつまで体力勝負を続けますか? ~組込みシステム開発の現場を抜本的に改善するための取り組みについて~」と題したセッションでした。開発手法に対する新しい取り組みや、同社が展開している開発ツールについて紹介されました。
組込み開発の現場ではQCDの改善がテーマ
日立情報制御ソリューションズ 主幹技師 飯島三朗氏
冒頭ではまず、日立情報制御ソリューションズについて紹介がありました。同社は2006年に日立ハイコスと日立エンジニアリングが合併して生まれた企業で、2500名以上の従業員が在籍しています。ソフトウェア開発における組織のプロセス管理の成熟度を5段階で表す「CMMI(Capability Maturity Model Integration) 」において、「 非常に成熟した開発プロセスを持つ」とされる最上位のレベル5を達成するなど、国内でも有数の開発力を誇ります。
同社は「情報・制御分野でのナンバーワンを目指して」という経営ビジョンを掲げ、社会インフラから産業・流通、セキュリティ、そして組込みシステムの開発の領域において事業が展開されています。組込み開発においては、カーオーディオやカーナビなど、制御系と情報系が交わる領域を中心としつつ、制御用コンピュータからミニコンまで、幅広い分野に対応しているとのこと。また薬品検査や自動車の車番認識に応用されている画像処理応用技術、あるいはBluetoothやUWB(Ultra Wide Band:超広域帯無線)などの無線技術にも強みを持つなど、社内の多様な技術を活用してワンストップソリューションを提供できる希有な存在となっています。
その日立情報制御ソリューションズにおいて、組込み開発の第一線で活躍している組込みシステム本部 プラットフォームソリューション部 主管技師の飯島三朗氏は、実態調査の結果から、現在の組込みの開発においてQCD、つまり品質とコスト、納期が問題になっていると話します。
その理由として挙げられたのは、度重なる仕様変更による不具合の多発やプロジェクトの長期化、経営判断による納期短縮などです。こうした背景から現場の作業時間は不足することになり、それを残業でカバーするしかなく、体力勝負になっていると指摘し、これまでの開発手法を改めるべきだと説きます。その具体策として上げられたのがモデルベース開発とHAYST法による効率的なテスト、そして派生開発手法の導入です。
開発効率の向上を実現する開発手法とテスト手法
一つ目のモデルベース開発は、開発対象のシステムをモデルとして記述、それをもとにして効率的な開発プロセスを実現する手法として注目を集めています。このモデルベース開発について、要求達成の手段を追求する“ HOW” 指向ではなく、何のためにそれをやるのかという“ WHAT” の指向であることがポイントとのこと。
日立情報制御ソリューションズでは、既存の資産を活かしつつモデルベース開発を実践、それによって従来手法では1年かかっていたと見込まれる開発を、モデルベース開発と既存ソースの活用を組み合わせた手法により、わずか7カ月でリリースすることができたと大きな成果につながったことが紹介されました。
二つ目のHAYST法とは、富士ゼロックスの秋山浩一氏らが考案したソフトウェアテストの技法です。従来のテスト項目の洗い出しは、「 勘と経験に頼っている部分が大きかった」と飯島氏。そこで少ないテスト件数と高い網羅率を両立させたHAYST法を取り入れ、あるプロジェクトにおいてテスト項目数を従来の1168件から64件と大幅に削減しながら、98.4%の組み合わせ網羅率を達成できたとのこと。ただ「適用できる分野とそうでない分野がある」そうで、どこで利用するかの見極めは必要のようです。
三つ目の派生開発の手法として取り入れられたのは、「 XDDP(eXtreme Derivative Development Process) 」です。これはシステムクリエイツの清水吉男氏が考案した派生開発に特化したプロセスモデルで、変更要求や仕様を変更前後で表現した「変更要求仕様書」と、それに対応した変更箇所を関数単位で一覧化した「トレーサビリティ・マトリックス」 、そしてソースの変更内容を記述した「変更設計書」という3つの文書を作り、変更管理を厳密に行い、変更漏れや他の機能への悪影響を防ぐことが可能になるというもの。日立情報制御ソリューションズでは大規模受託開発においてXDDPを導入したところ、同様のプロジェクトと比較して不具合発生率が約50%に減少したと、大きな成果があったことが発表されました。
“日本の組込みシステムを世界一にしたい”
続いて、日立情報制御ソリューションズから提供されている組込みシステムの開発時に有用なツールが紹介されました。
「SagePro/eDEBUG」はプログラムの動作状況をOSの視点から時系列で表示することで動きを可視化するツールで、キャッツ製の「ZIPC」やルネサステクノロジの「HEW」といった他社開発環境と連携することも可能とのこと。これらの環境との連携によって、システムコールを出したところがソースコードのどの部分かが分かるようになっているということで、トラブルシューティングや性能解析において大いに役立つツールだと言えそうです。
続けて構成管理ツールである「SagePro/CM」と、プロジェクト統合管理ツールの「SagePro/PM」についての説明がありました。SagePro/CMはソフトウェア資産の変更や構成、そしてドキュメントを一元管理可能ということで、組込み開発において重要視されている再利用率の向上につながる製品だと言えるでしょう。SagePro/PMは計画から進捗、課題、不具合、そしてリスク管理までが可能なツールで、上級管理者からプロジェクト管理者、そして担当者のそれぞれの目的に応じたビューが実現されているとのこと。
開発中のプロダクトとして紹介されたのが「SagePro/eXM」です。これは先に説明されたXDDP支援ツールという位置付けで、「 XDDPで求められる成果物の作成を支援するツール」であるということでした。派生開発の効率化を実現したい企業にとってはリリースが楽しみな製品ではないでしょうか。
最後に、組込み開発の方法論の確立に向けて、産学官連携で取り組んでいる研究について解説した飯島氏。「 日本の組込みシステムを世界一にしたいという意気込みでやっています」と語り、プレゼンテーションを締めくくりました。
大規模開発時の品質向上をいかに実現するか ─ 実践的なアプローチを考える
エクスモーションの渡辺博之氏をモデレータに迎えて行われたのは、「 大規模開発時の品質向上をいかに実現するか ─ 実践的なアプローチを考える」と題したトークセッションです。大規模開発時の品質向上をどうやって実現するかをテーマに、さまざまな経験を持つパネリストの方々が語ります。
品質6特性のどれを重視するかはドメインによって変わる
第2回組込みプレスセミナーの最後は、「 大規模開発時の品質向上をいかに実現するか ─ 実践的なアプローチを考える」と題したトークセッションでした。エクスモーション 専務取締役の渡辺博之氏をモデレータに、デンソー ITS技術2部 第3技術室 グループリーダーの間瀬研二氏、3番目のセッションに引き続いて登壇して頂いた日立情報制御ソリューションズの飯島三朗氏、そしてエクスモーションの山内和幸氏の4名でトークは進められます。
左:エクスモーション 専務取締役 渡辺博之氏(モデレータ)
右:デンソー ITS技術2部 第3技術室 グループリーダー 間瀬研二氏
左:日立情報制御ソリューションズ 主幹技師 飯島三朗氏
右:エクスモーション 山内和幸氏
まず渡辺氏から問いかけられたのは、「 そもそも品質って何ですか」 。これに対して「機能や性能、使い勝手が顧客の求めているレベルに達しているかどうか」と答えたのは飯島氏。ただ、こうした点がドキュメント化されているかどうかが重要で、それがなされていないとトラブルの原因になりかねないと話します。
間瀬氏も飯島氏の意見に同意しつつ、「 自動車の中で使われる機器を開発しているため、求められる品質は非常に高い」とのこと。「 利用者の生命を預かる製品を扱っているので、もっとも重点的に考えている領域です」という言葉からも、要求される品質の高さが伺えます。
山内氏はISO/IEC9126で規格化されている、機能性、信頼性、使用性、効率性、保守性、そして移植性のそれぞれでソフトウェアを評価する、品質6特性を定義としていると話します。ただ、これらの中でどれが重要かは、ドメインによって変わるのではないかとのこと。さらに「ユーザーから見える品質を重視するあまり、保守性と移植性が落ちているのではないでしょうか。これが今の品質問題の原因になっていると思います」と、開発者向けの特性がおろそかになっている現状を指摘します。
こうした開発者向けの品質特性を軽視することは、その後の開発に大きな影響を及ぼします。たとえばある機能を実装する必要が生じたが時間がないといった場合、ユーザーの要求を実現することが最重要であり、それによって保守性や移植性が犠牲になるのは珍しいことではないでしょう。こうしたことが続くと、保守性が大きく損なわれる結果となり、次に手を入れるのが難しくなるというわけです。
ただ、場合によっては開発者向けの品質特性を考えないケースもあり得ると飯島氏は述べます。「 一発勝負のような受託開発では、保守性や移植性はあまり考えずに開発します。リピート性の強いものは保守性を意識して作りますが、1回作ったら終わりというものでは効率に重点を置きます」と、開発の内容によっても重視するポイントは変わりうると話します。
大規模開発の難しさとは
続けて渡辺氏は「大規模な組込み開発の難しさはどういったところでしょうか」と問いかけます。
まず飯島氏は「OSの上で動作するアプリケーションをいろんな人が開発するようになり、全体像が見えづらくなっていく」と語ります。その解決策としては、「 コンセプトがしっかりしていること」と「見える化」を挙げます。
カーオーディオのアプリケーションを担当していたという間瀬氏は、「 MP3やWMAの再生など、機能を高めるために外部で開発されたプログラムを取り込むことがありますが、こうしたものはもともとのターゲットがPC向けのためか、メモリを大量に消費するなど、求めている品質が組込み向けのものと違う」と、外部との連携の難しさを述べました。
規模が大きくなると把握するのが困難になり、それが品質向上や維持の難しさにつながっていくと語るのは山内氏。こうした規模の問題に加え、開発に携わる人が増えることの難しさも大きいと言います。「 特に会社が違えば考え方が違うと思われるので、非常に大変じゃないでしょうか。さらにオフショアが絡んでくると、言語や文化の問題も出てきます。こうしたところが品質を確保する上で難しくなってくると思います」 。
最後のまとめでは、まず飯島氏が「何らかの形でシステムが見えるようにしないと、議論できないのではないでしょうか。自分が作っている製品が見えているのかを問い直してください」と語り、改めて見える化の重要性を指摘します。
間瀬氏は「議論していますか」と会場に問いかけます。「 差し迫ったところでコードを書き始めるケースも多いと思います。ただ、書き出す前に徹底的に議論をしておけば、最終的な品質につながるのではないかと考えています」と、前段階での品質を意識したコミュニケーションが重要であると述べます。
山内氏が指摘したのはアーキテクチャの重要性です。プロセスや組織としてできる品質向上もあるが、大規模なシステムでは「アーキテクチャを中心に開発していくことが重要」であるという認識を示します。耐震偽装問題に触れ、アーキテクチャをしっかり作っていれば構造欠陥をすぐに見抜けたはずと語り、ソフトウェアの開発においてもそれと同じことが起きているのではないかと語りました。
最後に渡辺氏がトークセッションをまとめます。「 品質には2つの側面があり、顧客向けの品質だけではなく開発者に対する品質もあるので、そこを考えましょう。またどちらを重視するかは状況に応じて変わるので、都度議論していく必要があると思います」と顧客向けの品質特性だけでなく、保守性や移植性といった開発者向けの品質特性の両方を考えるべきだと述べます。さらに大規模開発においては、「 品質を低下させる要因の徹底的な予防」と「大規模開発に耐えうる開発者向けの品質の向上」 、そして「円滑なコミュニケーション」の3点が重要であると解説し、トークセッションは盛況のうちに幕を閉じました。