• 検索結果がありません。

ゲートウェイドライバ導出における問題

ドキュメント内 JAIST Repository https://dspace.jaist.ac.jp/ (ページ 34-38)

第 3 章 問題

3.3 ゲートウェイドライバ導出における問題

一般にプロダクトライン開発では,特定の製品のフィーチャを指定し,プロダ クトを導出した際にそのプロダクトに対応する製品を体系だって導出することが 必要となる.システムプロダクトラインにおいてもシステム製品の導出が必要と なるが,導出を実現するためには,ハードウェア製品の導出,ソフトウェア製品 の導出だけでなく,両者のインタフェースとなるゲートウェイドライバの導出を 体系的に行う必要がある.ゲートウェイドライバは,明示的な製品フィーチャと しては見えないため,導出はできるだけ自動化されることが望まれる.

ゲートウェイドライバはハードウェアの構成に依存するため,開発にはハード ウェアの情報が必要となる.必要となるハードウェア情報として,ハードウェア の論理的な構成を表すブロック図,電気的な構成を表す回路図,個々の部品の詳 細を示すデータシートの三つが利用されることが多い.ゲートウェイドライバに 必要なブロック図,回路図,データシートの情報はハードウェアフィーチャモデル から選択されたハードウェアプロダクトに基づくハードウェア設計から得られる.

開発者はこれらの情報の中からゲートウェイドライバ開発に必要な情報を選別 するとともに,ハードウェア視点で記述された情報をソフトウェア視点から解釈 し,それに基づいてゲートウェイドライバを開発しなければならない.特にデー タシートの情報は複数の観点の情報が含まれ,フォーマット等も多様であるため,

これらの作業にはハードウェアの知識と実務的な熟練が必要である.

これらを踏まえ,ゲートウェイドライバの導出における問題として,ハードウェ

3.3.1 ハードウェアの多様性

一般に

MCU

やデバイスの選択肢は多岐に渡り,多くの製品がラインナップされ ている.特にシステムのプロダクトライン開発においては,様々な

MCU

やデバイ スを組合せたハードウェア製品が導出されるため,様々な

MCU

やデバイスの組み 合わせが作られる.

こうした組み合わせに基づいて作られるハードウェア製品に応じて,ソフトウェ アとのインタフェースとなるゲートウェイドライバを提供する必要がある.開発 を効率的に行うためには,こうしたゲートウェイドライバを体系だって導出する ことが望まれるが,そのためには入力となるハードウェア情報を一貫した方法で 形式化することが必要となる.

3.3.2 ハードウェア情報の多様性

3.1

にゲートウェイドライバ開発に必要なハードウェア情報について示す.ハー ドウェア情報は大きくハードウェア部品の情報と,ハードウェア構成の情報に分け られ,ハードウェア部品の情報には

MCU

とデバイスのデータシート,ハードウェ ア構成の情報にはブロック図と回路図が含まれる.

これらの情報のうちハードウェア部品の情報である,

MCU

とデバイスのデータ シートはメーカや種類によってフォーマットが様々である.必要な情報がデータ シートに含まれていても,フォーマットが多様であるため一律に機械処理するこ とは難しい.またゲートウェイドライバ開発に必要のないハードウェア設計に関 する情報や物理特性なども多く含まれる.このため,必要なハードウェア情報を 取捨選択して適切に取り扱う方法が必要である.

MCU

デバイス

ハードウェ ア部品情 報 ハードウェ ア構成情 報

ブ ロッ ク図

回路図 個々の部品のデータシート

MCUのデータシート

デバイス のデータシート

ハードウェ ア

3.1:

ハードウェア情報

3.3.3 開発手順の暗黙性

2.3.3

で取り上げたように,ゲートウェイドライバの開発方法は,開発者ごとに

属人的な方法が取られることが多く,また明示的に定義されていないことが多かっ た.ゲートウェイドライバの開発にはハードウェアの知識や熟練が必要であり,ま た上述したようにデータシートなどが多様であるため,従来はハードウェアとソ フトウェアの両方の知識を持った開発者が属人性の高い手順で暗黙知に基づいて 開発を行うことが多い.ゲートウェイドライバ開発の体系だった導出のためには,

開発手順を明示化して整理する必要がある.

また,ゲートウェイドライバの開発においては,ハードウェアの視点で定義さ れた情報から,ソフトウェアから見た情報への視点変換が必要となる.ゲートウェ イドライバの設計では,デバイスや周辺機能ごとにコンポーネント(クラス)を 作成し,そのデバイスや周辺機能の持つ機能を

API

として上位アプリケーション に提供するとともに,それをどう制御するかという振る舞い設計を行い,

API

を 実装する.ここでコンポーネントは,ハードウェアの論理構成であるブロック図 より得られる.

API

はデバイスドライバではデバイスのデータシートの機能の項,

慮した上で作成する.この際,命名や引数の型の定義などの設計者の判断が必要 となる.

API

の振舞いの設計は,ブロック図,回路図,データシートのレジスタ マップ,

IO

マップ,機能の制御方法など多くの項目を考慮した上で行う.こうし たハードウェア情報からソフトウェア情報への視点変換の手順化や支援が必要で ある.

4

アプローチ

本章では,前章であげた問題点を解決するためのアプローチを述べる.

4.1 全体像:組込みシステム向けモデル駆動システムプ

ドキュメント内 JAIST Repository https://dspace.jaist.ac.jp/ (ページ 34-38)