MS .NET micro FrameWork と TOPPERS を利用したアーキテクト人材育成
名古屋市工業研究所工学博士・技術士(情報工学)小川清
TOPPERSプロジェクトマスコットとばめ
.NET は Microsoft 社の商標、TOPPERS は TOPPERS プロジェクトの登録商標です。
構成序章1 章オープンソース2 章アーキテクト3 章 TOPPERS アーキテクチャ4 章 .NET micro framwork との連携まとめと今後の課題
今朝の日経新聞1面MJ2013 ヒット商品番付西前頭 式年遷宮
◦20 年ごと内宮・外宮を造替
1953 年(昭和 28 年)第 59 回内宮式年遷宮Wikipedia 「神宮式年遷宮」
技術にとっての式年遷宮? 同じアーキテクチャを復元? 同じアーキテクトを復元
序章 TOPPERS と .NET micro FW
自己紹介今日の目標TOPPERS プロジェクト登場人物背景経緯
自己紹介名古屋市工業研究所勤務TOPPERS プロジェクト理
事
関連活動岐阜大学非常勤講師SESSAME/MISRA-C 研究会 2012 準
備会情報処理推進機構 推進委員情報処理学会情報規格調査会
SC7WG10,20,24 委員Proof Café / TAPL 勉強会参加者
今日の目標オープンソースのアーキテクト像TOPPERS の次の 10 年の道.NET FrameWork に学ぶ組込のアーキ
テクチャを考える◦C# 技術者に組込への道を
.NET micro FrameWork と TOPPERSを連携する活動
TOPPERS プロジェクトToyohashi OPen Platform for
Embedded Real-time Systems, http://www.toppers.jp
オープンソースソフトウェア◦多くの CPU と数々のコンパイラで動作
ITRON 仕様の技術開発成果を出発点◦ISO OSEK/AUTOSAR 仕様…◦コンポーネント、通信ミドルウェア、テストス
イート教育コース、教材の開発、教育の場2003 年 9 月設立
TOPPERS アプリケーション開発・アイデアコンテスト 2013
アプリケーション開発部門◦ 銀賞: TOPPERS Realtime System Sample ( RSS )
LPCXpresso GPS Clock 中村晋一郎◦ 銅賞: Toppers_JSP と Scicos_lab による組込みメカト
ロニクス制御シミュレーション 塩出武◦ 銅賞: lwIP の移植 松浦光洋
活用アイデア部門◦ 銀賞: .NET micro FrameWork for TOPPERS 株式会
社デバイスドライバーズ 日高亜友◦ 銅賞: uIP による WEB サーバの開発 今西孝也(高知
県工業技術センター)
背景名古屋市工業研究所でソフ
トウェアについて約 30 年取り組んで来た成果をまとめ、次の世代に引き継ぐ◦MS-DOS 版 VZ エディタ◦C言語、 C++言語の部分集合 (MISRA-C)
TOPPERS プロジェクトが10 年経った。次の 10 年に何をするとよいか。
プログラミング言語経緯電総研の研究生OBJ シンタックスチェッカ作成C言語教育
◦C コンパイラ作成を題材◦The C Puzzle Book()
MISRA-C の解説書作成 , 1998 年版、 2004 年版日本規格協会から発行。 2012 年版検討中◦C言語の部分集合は Pascal, C# と同等?
Event-B, Uppaal, SPIN のセミナ実施Coq の勉強会 Proof Café 参加 , TAPL 勉強会参加
MISRA-C自動車向け静的解析可能 関数プログラミングに近い、副作用による値・制御の変更がな 異なるCPUでも同じ動作をする
プログラム例をTOPPERS/jpsタスク/関数に記述。クロスコンパイルし、対象ボードで実行、処理確認
◦ 1998年初版,2004年第二版,2012年第三版◦ Directori1.1:2012プログラムの出力が依存しているあらゆる処理系定義の動作を文書化し,理解しなければならない。
◦ 規則1.3:2004未定義又は重大な未規定の動作が発生してはならない。
◦ Directyory4.8:2004構造体または共用体へのポインタがコンパイル単位内で逆参照していない場合,オブジェクトの実装を隠蔽するとよい。
//misrac.h #ifndef MISRAC_H #define MISRAC_H // Dir.4.8 typedef struct OpaqueType * pOpaqueType; struct OpaqueType { //Object implementation }; #endif
//Dir.4.8.c #include "misrac.h”
void f (void) { pOpaqueType pObject; pObject * GetObject(); //Get a handle to an
OpaqueType object UseObject { pObject); // Use it... }
Dir 4.8
TOPPERS プロジェクト参加経緯MINIX の PC-98 への移植マニュアルの作成斉藤直希が小さい電子機器に興味を持ち、共通認識
として ITRON系の知見を求めて当時豊橋技科大学にいた高田広章さんを訪問
カーネルソース勉強会参加◦SH3 の初期化、コンパイラ理解等が副産物
宮城県から技術者が来ていることを紹介を受け、(株)ヴィッツとともにオープンソースのTOPPERS/jsp の展開参加
オープンソースの OSEK 開発参加機能安全対応車載プラット フォームプロジェクトに参加TOPPERS/ssp の開発
.NET micro FrameWork 経緯
CQ 出版の付録基板に関本 健太郎さんが移植した .NET micro FrameWork をどう使うかの演習付きセミナを 2013 年 6 月松浦光洋さんを講師に名古屋市工業研究所で開催
SWEST で松浦光洋さんを講師に .NET micro FrameWork のセミナ
ET ロボコンで太田さんと審査員席で歓談OSC東京 2013/fall で日高亜友さんと情報交換ET2013 TOPPERSブースで関本健太郎さんと情
報交換来年、 .NET FrameWork と .NET micro
Frmework についての演習付きセミナを企画中
1 章オープンソースオープンソースを利用した人材育成オープンソースにおける人材育成の課題オープンソースの協調: TOPPERS 関連.NET micro FrameWork for TOPPERS
オープンソースを利用した人材育成高度組込中核人材プロジェクト名古屋市工業研究所実施事業MISRA-C:1998, MISRA-C:2004,
MISRA-C++◦プログラム例を TOPPERS/jps タスクに記述。クロスコンパイルし、対象ボードで実行、処理確認
TOPPERS の会員企業に Automotive SPICE等で作業診断。作業の改善および作業診断の改善取組。
オープンソースにおける人材育成の課題Gcc を仕事で使っていないと、クロ
スコンパイラのコンパイルができない仕事で使っている環境で教育したいアナログ処理からデジタル処理まで綜合的に教育したい
アーキテクトをどう継承するか
オープンソースの協調TOPPERS 関連
邑中雅樹さんが TOPPERSなどを GCCでクロスコンパイル、リモートデバッグできるクロス開発環境 Pizza Factory 開発
mruby と TOPPERS/TECS-WG( 名古屋)共同で会合、開発
TOPPERS プロジェクト OSC2012受賞TOPPERS アプリケーション開発アイデ
アコンテストに日高亜友さん . .NET micro FrameWork for TOPPERSが銀賞
.NET micro FrameWork for TOPPERS
© 日高亜友
2 章アーキテクト建築におけるアーキテクチャソフトウェアアーキテクチャマイクロソフト .NET FrameWork
アプリケーションアーキテクチャガイド 2.0
アーキテクトアーキテクトは、アーキテクチャを考え、
設計する人。◦アーキテクチャは、建築における構造設計。◦ソフトウェアは、構造化プログラミング、抜
き差し可能部品で構造設計。式年遷宮のように同じものを作る場合でも、解体して再組み立てするのに必要な技術、手順がないと組たたらない
建築におけるアーキテクチャ共通部分
◦雨風、日照を除ける。◦生活基盤:温度を保つ。水・ガス・電気・通信。◦火災、地震に強い
個別対応◦出入りのしやすさ、内外からの出入り禁止:壁
◦内部空間の大きさ:工場・倉庫、住宅・学校
ソフトウェアアーキテクチャ共通部分
◦時間:処理時間、通信時間◦空間:利用可能なメモリ、外部記憶◦論理的正確性◦再利用、変換可能性
個別◦サーバ・ホスト、センサ、クライアント◦書きやすさ、読みやすさ◦アナログ処理の模擬
マイクロソフト .NET FrameWorkアプリケーションアーキテクチャガイド 2.0
http://www.microsoft.com/ja-jp/dev/2010/solutions/architecture/default.aspx
ハードウェア、ソフトウェアの進化に対応できる
機能要件と品質要件再利用性と保守容易性
◦サービス指向◦ユーザ経験の
© MS .NETFW AAG
アーキテクトとして必要な事どのような仮説を立てましたか。明示的または黙示的な要件は何ですか。主なリスクは何ですか。リスクを軽減するために講じている対策は何ですか。
© MS .NETFW AAG
アーキテクチャ設計が不十分だと起こる事動作が不安定
◦処理時間のばらつき運用環境での配置が困難
◦資源不足管理が困難
© MS .NETFW AAG
二律背反機能を追加すると、時間・空間を消費
する。空間を節約するために時間を使う手法、時間を節約するために空間を使う手法がある。◦処理・データを切替えて読み込む◦時間のかかる演算の結果を表で持つ
第 3 章 TOPPERSS のアーキテクチャ統合仕様書仮説、要件、リスクTOPPERS リスク軽減策TECS ( TOPPERS Embedded
Component System )
TOPPERS アーキテクチャ統合仕様書
過去の資産の継承再利用性アプリケーションプログラムに問題がある場合合理的な負担増で救済◦リスク軽減 次表
TOPPERSS のアーキテクチャ仮説:割り込み処理モデル要件: 16/32/64bitCPU 、C言語、ログ出力リスク:時間遅れ、空間逸脱
TOPPERS リスク軽減策種類 リスク軽減策1.ASP カーネル 割り込み処理モデル対応2.HRP カーネル メモリ保護機能の追加 オブジェクトアクセス保護機能の追加 ミューテックス機能の追加 オーバランハンドラ機能の追加3.FMP カーネル資源確保(マルチコア)4.PARK カーネル サービス・システム (OS)状態・時間保護5. SSP カーネル複雑さ、空間小6 ATK2 カーネル 自動車用7. TECS 静的8. TTSP 試験9. MISRA-C対応 空間
TOPPERSS アーキテクチャTECS ( TOPPERS Embedded Component System )仕様
静的生成と結合◦ 事前配置決定可能
初期化時間短縮粒度の小さいコンポー
ネントTECS ジェネレータmruby on asp+tecs:
mruby VM を TECS コンポーネント化
TOPPERS/ASP+TECS:ET ロボコンプラットフォーム
第4章 .NET FrameWork/.NET micro FrameWork との連携
連携の前提.NET micro FrameWork にとって
TOPPERS のよいとこ
.NET FrameWork/.NET micro FrameWork との連携の前提
.NET FrameWork でそだった技術者に .NET micro FrameWork を利用してもらうのに必要なこと
マイクロソフト .NET FrameWorkアプリケーションアーキテクチャガイド2.0 のまとめ方で TOPPERSもまとめる
.NET micro FrameWork と TOPPERSの同時構築
.NET micro FrameWork にとってTOPPERS のよいとこ
多くの CPU の移植があり、同等な初期化を比較可( ASP の例 )◦V850, H8, SH1/2A/3/4, ARM,Cortex-M3,
RX, microBlaze,M16C/32C, M32R, Nios Cortex-M3 は Startup.c は ASP, SSPほぼ同一
いくつかのコンパイラに対応 (ASP の例 )◦GCC, HEW, NC30(8), RXC, Visual
Studio.
まとめと今後の展望オープンソースにおける人材育成の課題今後の展望
オープンソースにおける人材育成の課題
Gcc を仕事で使っていないと、クロスコンパイラのコンパイルができない◦ −>Pizza Factory を使う
仕事で使っている環境で教育したい◦ −> .NET micro FrameWork は Visual Studio で動く
アナログ処理からデジタル処理まで綜合的に教育したい◦ −>Toppers_JSP と Scicos_lab による組込みメカトロニクス制御
シミュレーション(塩出武) アーキテクトをどう継承するか
◦ −>TOPPERS Realtime System Sample ( RSS ) LPCXpresso GPS Clock (中村晋一郎)
◦ −> lwIP( 松浦光洋 )◦ −>NET micro FrameWork for TOPPERS (日高亜友)◦ −>uIP による WEB サーバの開発(今西孝也)
今後の展望オープンソース技術者技能を学び網を広げる
◦ ソフトウェアのアーキテクチャを考える◦ アーキテクトを育てる上でのオープンソースの重要性
を確認.NET micro FrameWork と TOPPERS の連携で
TOPPERS プロジェクトの次の 10 年によい影響を与えたい◦TOPPERS のソースを参考に .NET micro FrameWork
の移植。MISRA-C の延長線上に C# のコーディング標準
への貢献、証明駆動、関数プログラミングを
参考文献http
://www.cs.ubc.ca/%7Egregor/teaching/papers/4+1view-architecture.pdf
かこさとし ,あなたのいえわたしのいえ ,かがくのとも傑作集 , 福音館書店 ,1969
Top Related