340 likes | 484 Views
組み込みソフトウェア向け Hichart 処理系の開発. ◎大徳雄太(東洋大) 後藤隆彰(東洋大) 切島忠昭(東洋大) 夜久竹夫(日大) 土田賢省(東洋大). 発表内容. はじめに 1.1. 背景 1.2. 目的 本システム 2.1. システム概要 2.2. 振舞い表 実行例 まとめ. 1. はじめに. 1.1. 背景 (1/ 3 ). 組み込みソフトウェア開発は,日本の基幹産業になるものとして注目を集めている 組み込みソフトウェアの市場規模は急速に拡大し,開発の大規模化・複雑化が著しい
E N D
組み込みソフトウェア向けHichart処理系の開発組み込みソフトウェア向けHichart処理系の開発 ◎大徳雄太(東洋大) 後藤隆彰(東洋大) 切島忠昭(東洋大) 夜久竹夫(日大) 土田賢省(東洋大) 電子情報通信学会2008年総合大会
発表内容 • はじめに 1.1.背景 1.2.目的 • 本システム 2.1. システム概要 2.2. 振舞い表 • 実行例 • まとめ 電子情報通信学会2008年総合大会
1. はじめに 電子情報通信学会2008年総合大会
1.1. 背景(1/3) • 組み込みソフトウェア開発は,日本の基幹産業になるものとして注目を集めている • 組み込みソフトウェアの市場規模は急速に拡大し,開発の大規模化・複雑化が著しい • 我々は,Hichartに基づく様々な処理系や開発支援ツールの研究開発を行ってきた • その中で蓄積された形式的手法や技術を,組み込みソフトウェアにも役立てられると思われる 電子情報通信学会2008年総合大会
1.1. 背景(2/3) 2008/3/21 • 組み込みソフトウェアの振舞いに関し、様々な試みがなされている • 玉井哲雄,青山幹雄,柴山悦哉,五十嵐淳,“信頼性の高いコンポーネント技術の研究” • 紫合治,“組込みソフト設計のための物理実体(間接オブジェクト)の分析” • 赤木匡博,“オブジェクト指向方法論のための通信モデルに関する研究” 電子情報通信学会2008年総合大会 5
1.1. 背景(3/3) 2008/3/21 • UMLやMATLAB等,システム上でシミュレーションを行うものは存在 • 物理実体を制御する組み込みソフトウェア開発では,シミュレーションだけでは不十分な場合がある • 実機での動作実験を行う際のパラメータの設定が重要 電子情報通信学会2008年総合大会 6
1.2. 目的 • 実機の物理的なパラメータに着目した振舞い仕様を扱う,Hichartに基づく組み込みソフトウェア開発環境の構築 電子情報通信学会2008年総合大会
2. 本システム 電子情報通信学会2008年総合大会
2.1. システム概要(1/2) 図1 システム構成図 • 本研究では,レゴ社の「教育用レゴマインドストームRCX」を使用する • NtoHでは,NQCソースコードからHichart内部データへの変換を行う • HtoNでは,Hichart内部データからNQCソースコードへの変換を行う • 生成されたNQCソースコードは,BricxCCを用いることで,コンパイル及びRCXへの転送が可能 電子情報通信学会2008年総合大会
2.1. システム概要(2/2) • 本システムを用いて,Hichartエディタと振舞い表を照らし合わせながらプログラムを開発することにより,プログラムに振舞い仕様を反映することが容易になると期待できる 電子情報通信学会2008年総合大会
2.2. 振舞い表(1/4) • 記述レベルの高い振舞いの仕様をまとめた表 • 例えば,「RCXが机から落下せずに走行する」などの内容が記述される • 特定の振舞いに対する各入出力装置のパラメータのセットを,振舞い仕様とする 電子情報通信学会2008年総合大会
2.2. 振舞い表(2/4) • 過去の実験で取得したデータなどを基に作成する • プログラムとは独立に用意する 電子情報通信学会2008年総合大会
2.2. 振舞い表(3/4) 表1 「机から落下せずに走行する」振舞い表 • 表中の○,×は,RCXのある振舞いが,そのパラメータの範囲内で,期待通りのものであるか否かを示す 電子情報通信学会2008年総合大会
2.2. 振舞い表(4/4) • 振舞い表画面の主な機能として,以下の二つがある • 選択したセルの振舞いに必要なパラメータを,Hichart図に自動的に反映する • パラメータの範囲の最大値と最小値の平均値を反映する 電子情報通信学会2008年総合大会
3. 実行例 電子情報通信学会2008年総合大会
3. 実行例(1/3) • RCXが,「机から落下せずに走行するプログラム」を例として説明する • 光センサーが机の端を認識すると,RCXが後退,方向転換することで,落下しないようにしている 電子情報通信学会2008年総合大会
3. 実行例(2/3) 図2 実行時のHichart図と振舞い表画面 電子情報通信学会2008年総合大会
デモ 電子情報通信学会2008年総合大会
3. 実行例(3/3) • 振舞い表を用いてプログラムを開発することで,行わせたい振舞いに必要なパラメータの設定が容易になる • パラメータの自動反映機能を用いて編集したプログラムからも,正常にNQCソースコードを生成できる 電子情報通信学会2008年総合大会
4. まとめ 電子情報通信学会2008年総合大会
4. まとめ(1/3) • 以下の機能を備えたHichartエディタを開発した • NQCソースコードとHichartの双方向変換機能 • 振舞い表の表示機能 • パラメータの自動反映機能 電子情報通信学会2008年総合大会
4. まとめ(2/3) • 物理実体の振舞いを制御する組み込みソフトウェア開発において,テスト時のパラメータの設定の手間を省けるなどの効果が期待できる 例:移動体(飛行船,掃除ロボット)など 電子情報通信学会2008年総合大会
4. まとめ(3/3) • 今後の課題 • すべての入出力装置への対応 • データベースから振舞い表を自動生成する機能の開発 電子情報通信学会2008年総合大会
終 電子情報通信学会2008年総合大会
表2 RCX定数 電子情報通信学会2008年総合大会
振舞い仕様について • システムの動作を振舞いと呼ぶ • システムの振舞い及びその仕様に対しての研究が行われている • シミュレーションでの研究が多いが,本研究では,実機を動かす際のパラメータに注目している 電子情報通信学会2008年総合大会
参考文献 • 紫合 治,組み込みソフト設計のための物理実態(間接オブジェクト)の分析 • 玉井 哲雄,青山 幹雄,五十嵐 敦,柴山 悦哉,信頼性の高いコンポーネント技術の研究 • 荒井 玲子,リアルタイムシステムと上流設計システムツール 等 電子情報通信学会2008年総合大会
変換の実現手法(1/7) • JavaCC と JJTree を使用して変換を実現 電子情報通信学会2008年総合大会
変換の実現手法(2/7) NQCソース JJTree 定義ファイル 構文木の ノードクラス JJTree 変換プログラム NQCの字句・ 構文解析クラス JavaCC JavaCC 定義ファイル Hichart 入力 生成 参照 システムの全体像 • 変換システムの全体像 電子情報通信学会2008年総合大会
変換の実現手法(3/7) • JavaCC • 構文解析と字句解析を実行するJavaプログラムを生成するプログラムジェネレータ • Lex / yaccによく似ており,トークン定義・BNF記法に基づいた記述からなる • 構文にマッチした時の処理(アクション)が記述可能 電子情報通信学会2008年総合大会
変換の実現手法(4/7) • JJTree • JavaCCのプリプロセッサで,構文解析の結果からツリー構造を作るプログラムを,自動的に生成する • ツリー構造の生成規則をコントロールすることができる 電子情報通信学会2008年総合大会
変換の実現手法(5/7) • トークンの定義 • 以下の例は型名である“int”および加算演算子の“+”のトークンを定義している • IDENTは正規表現を用いて変数名などに使用する文字列を定義している <INT : “int”>|<ADDOP : “+”> |<IDENT:[“a”-“z”, “A”-“Z”, “_”](["a"-"z", "A"-"Z", "_", "0"-"9"])*> トークンの定義 電子情報通信学会2008年総合大会
変換の実現手法(6/7) • 構文定義 • “if ( 式 ) 文 [ else 文 ]”という並びを定義している • {}内は構文木生成に関するアクションの記述 構文定義の例 電子情報通信学会2008年総合大会
変換の実現手法(7/7) • 変換の手順 字句/構文解析(JavaCC)・構文木生成(JJTree) 構文木を順次辿り, Hichartノードを生成していく 電子情報通信学会2008年総合大会