2007年のETロボコン(本戦)の様子。
2007年のETロボコン(本戦)の様子。
[画像のクリックで拡大表示]

 米Microsoft Corp.は,同社が提唱するソフトウエア・プロダクトライン開発方法論の一種「ソフトウェアファクトリー(Software Factories)」を組み込み分野に適用する活動「Pathfinder Software Factory」を開始した。組込みシステム技術協会(JASA)が主催する,ソフトウエア構造の優劣を競うイベント「ETロボコン」向けに,組み込み開発コミュニティの協力を得ながらソフトウエア・アーキテクチャやフレームワークを開発した。成果の一部を,2008年6月5日から大阪で開催する組み込み関連の展示会「Embedded Technology West(ET West) 2008」で展示する。将来的には,活動の成果をオープン・ソースとして公開する予定である。

 Software Factoriesとは,ソフトウエアを体系的に再利用するための方法論である「ソフトウエア・プロダクトライン(SPL)」の一種であり,Microsoft社のJack Greenfield氏らが2004年に提唱した(参考文献)。Software Factoriesでは四つの技術的コンセプトから構成されている。前述のSPLに加え,ツールを最大限活用した開発支援「Guidance Automation」,フレームワークを基にした「ソフトウエア・アーキテクチャ」,ソフトウエアのモデルからソース・コードを自動生成する「モデル駆動開発(MDD:model driven development)」である。

 Software Factoriesを提唱したGreenfield氏らは,UMLやRUPを提唱したことで知られる米Rational Software社(現在の米IBM Corp.)にもともと在籍していた技術者で,MDD技術の中枢にいた人物である。このためSoftware Factoriesも,ソース・コードを中心にした開発を重視するという従来のMicrosoft社のイメージを覆し,ソフトウエアのモデルを重要視した方法論となっている点が特徴である。

コミュニティの力を得ながら完成

 今回の取り組みは,このSoftware Factoriesを初めて組み込み分野に本格的に適用した事例となる。マイクロソフトで組み込みソフトウエア分野のエバンジェリストを務める太田寛氏が中心となり,過去のETロボコンの参加者,12チームの協力を得ながら,ソフトウエア・フレームワークなどを完成させた。適用対象となるETロボコンは,デンマークLEGO社のロボット教材「MINDSTORMS」を用いて,床の線を光センサで認識しながら進む競技であることから,マイクロソフトは今回の活動を「Pathfinder Software Factory」と呼んでいる。なお,活動を主導したマイクロソフトの太田氏は,日本の大手機器メーカーの組み込みソフトウエア技術者出身で,社内でMDDを実践した経験を持つ(日経エレクトロニクス関連記事)

・Pathfinder Software Factoriesの開発に参加したチーム(括弧内は所属先,一部チームのみ):「//Alliance」(アルプス電気 車載電装事業部 ファームウェア技術部),「GALAPAGOS」(個人),「くろしお」(企業),「新潮流」(ニューウェイブシステムズ),デンソー,「なんだいや(仮)」(リコーソフトウエア プロダクト事業部 鳥取開発C),「Ukay」(ヨコハマシステムホルダー),「てまりん」(富士ゼロックス),「Dolphin6」(日本大学 工学部),「おんたま」(NECシステムテクノロジー)

 ETロボコンでは,例年,コースやルールなどが改正される。このため参加者は過去のソフトウエア資産を効率的に再利用する必要に迫られる。いまのところETロボコンの各参加チームは,独自にフレームワークなどを開発し再利用している段階だが,今回のPathfinder Software Factoriesは,これをコミュニティによって共同開発したものといえる。

クロス開発向けに改良

 Software Factoriesは,もともとMicrosoft社の実行環境「.NET Framework」向けであり,ETロボコンで用いるような組み込み向けのクロス開発はあまり想定していない。このため今回の取り組みでは,ETロボコンのロボットに搭載されたマイコン「H8」,およびOS「BrickOS」向けのソース・コードのテンプレートを生成できるようにするなどの改良を施した。

 主要なコンポーネントとして,モーター制御などを行う「DriveControl」,光センサによって床面の線を認識する「PathRecognizer」,競技上の走行戦略などを担う「Strategy」の三つを用意した。Microsoft社のIDE「Visual Studio Team System 2008」上でこれらのコンポーネントを選択し,そこからVisual C++向けのプロジェクトを生成できる。開発言語はすべてC++である。このほか競技前に走行戦略などを設定するためのユーザー・インタフェースなども用意した。将来は,Microsoft社のロボット用シミュレータ「Robotics Studio」,制御アルゴリズムなどのシミュレータ「MATLAB/Simulink」などとも連携させる計画である。

 なお,2008年6月5日から開催するET West 2008では,「ETロボコン」のブースに出展する。Pathfinder Software Factoryの成果を紹介するほか,会場内に実際にETロボコンのコースを設置し,関西地域のETロボコン参加者向けに試走の場を提供する。同コースを用いて「ET West杯」として,実際の競技も行う予定である。なおマイクロソフトは,ETロボコンのゴールド・スポンサーの立場で参画する。

この記事を英語で読む

Pathfinder Software Factoryの初期画面
Pathfinder Software Factoryの初期画面
[画像のクリックで拡大表示]
主要なコンポーネントは,モーター制御などを行う「DriveControl」,光センサによって床面の線を認識する「PathRecognizer」,競技上の走行戦略などを担う「Strategy」の三つ。
主要なコンポーネントは,モーター制御などを行う「DriveControl」,光センサによって床面の線を認識する「PathRecognizer」,競技上の走行戦略などを担う「Strategy」の三つ。
[画像のクリックで拡大表示]
各コンポーネントから生成するプロジェクトの数を指定
各コンポーネントから生成するプロジェクトの数を指定
[画像のクリックで拡大表示]
MINDSTORMS向けのポートの設定
MINDSTORMS向けのポートの設定
[画像のクリックで拡大表示]
Pathfinder Software Factoryによって生成したVisual C++プロジェクトの一覧
Pathfinder Software Factoryによって生成したVisual C++プロジェクトの一覧
[画像のクリックで拡大表示]
競技戦略などの設定に用いるアプリケーションの画面
競技戦略などの設定に用いるアプリケーションの画面
[画像のクリックで拡大表示]
ホスト機上で動作するアプリケーションの動作エミュレータ
ホスト機上で動作するアプリケーションの動作エミュレータ
[画像のクリックで拡大表示]
クラス定義用のDSL(domain specific language)の画面
クラス定義用のDSL(domain specific language)の画面
[画像のクリックで拡大表示]
ETロボコンで用いるロボット「MINDSTORMS」。写真は,2007年のETロボコン・チャンピオンシップ大会の様子。
ETロボコンで用いるロボット「MINDSTORMS」。写真は,2007年のETロボコン・チャンピオンシップ大会の様子。
[画像のクリックで拡大表示]