Submit Search
Upload
TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)
•
0 likes
•
7,568 views
T
Takuya Azumi
Follow
TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)
Read less
Read more
Software
Report
Share
Report
Share
1 of 46
Download now
Download to read offline
Recommended
Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)
Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)
Takuya Azumi
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)
Takuya Azumi
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
Takuya Azumi
NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)
NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)
Takuya Azumi
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
Takuya Azumi
TOPPERS TECS WG 2016
TOPPERS TECS WG 2016
Hiroshi Oyama
ET2016 組込みシステムに適したコンポーネントシステムTECSの最新状況
ET2016 組込みシステムに適したコンポーネントシステムTECSの最新状況
Takuya Azumi
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
Recommended
Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)
Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)
Takuya Azumi
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)
Takuya Azumi
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
Takuya Azumi
NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)
NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)
Takuya Azumi
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
Takuya Azumi
TOPPERS TECS WG 2016
TOPPERS TECS WG 2016
Hiroshi Oyama
ET2016 組込みシステムに適したコンポーネントシステムTECSの最新状況
ET2016 組込みシステムに適したコンポーネントシステムTECSの最新状況
Takuya Azumi
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
Kiyoshi Ogawa
Starc verilog hdl2013d
Starc verilog hdl2013d
Kiyoshi Ogawa
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料
Tetsuya Hasegawa
Oracle Database In Lock
Oracle Database In Lock
Ryota Watabe
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
Tetsuya Hasegawa
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
Kiyoshi Ogawa
Ll tiger clojure
Ll tiger clojure
Toshiaki Maki
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
Insight Technology, Inc.
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
Hironobu Isoda
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
Tetsuya Hasegawa
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
PEZY-SC programming overview
PEZY-SC programming overview
Ryo Sakamoto
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
Etsuji Nakai
Opnfv handson apex intro
Opnfv handson apex intro
Tomofumi Hayashi
20130329 rtm3
20130329 rtm3
openrtm
OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1
Mibu Ryota
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
NTT DATA Technology & Innovation
CLI と BCL
CLI と BCL
shozon
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdf
YoshihiroKitamura4
More Related Content
What's hot
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
Kiyoshi Ogawa
Starc verilog hdl2013d
Starc verilog hdl2013d
Kiyoshi Ogawa
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料
Tetsuya Hasegawa
Oracle Database In Lock
Oracle Database In Lock
Ryota Watabe
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
Tetsuya Hasegawa
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
Kiyoshi Ogawa
Ll tiger clojure
Ll tiger clojure
Toshiaki Maki
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
Insight Technology, Inc.
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
Hironobu Isoda
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
Tetsuya Hasegawa
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
PEZY-SC programming overview
PEZY-SC programming overview
Ryo Sakamoto
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
Etsuji Nakai
Opnfv handson apex intro
Opnfv handson apex intro
Tomofumi Hayashi
20130329 rtm3
20130329 rtm3
openrtm
OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1
Mibu Ryota
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
NTT DATA Technology & Innovation
What's hot
(20)
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
Starc verilog hdl2013d
Starc verilog hdl2013d
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料
Oracle Database In Lock
Oracle Database In Lock
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
Ll tiger clojure
Ll tiger clojure
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
PEZY-SC programming overview
PEZY-SC programming overview
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
Opnfv handson apex intro
Opnfv handson apex intro
20130329 rtm3
20130329 rtm3
OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Similar to TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)
CLI と BCL
CLI と BCL
shozon
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdf
YoshihiroKitamura4
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
オラクルエンジニア通信
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えよう
NTT Communications Technology Development
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Kuniyasu Suzaki
Daisukei vsug ef
Daisukei vsug ef
vsug_jim
Dot netcore multiplatform 2
Dot netcore multiplatform 2
shozon
最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17
Masayoshi Kondo
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
Kazumasa Ikuta
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
シスコシステムズ合同会社
モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側
Rakuten Group, Inc.
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
AKSとTerraformでKubernetesクラスター作成
AKSとTerraformでKubernetesクラスター作成
satosato8
OCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCP
Tetsuya Sodo
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
Tomoharu ASAMI
200923 01jp
200923 01jp
openrtm
Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報
Atsuo Yamasaki
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
オラクルエンジニア通信
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
Yusuke Suzuki
Similar to TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)
(20)
CLI と BCL
CLI と BCL
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdf
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えよう
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Daisukei vsug ef
Daisukei vsug ef
Dot netcore multiplatform 2
Dot netcore multiplatform 2
最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
AKSとTerraformでKubernetesクラスター作成
AKSとTerraformでKubernetesクラスター作成
OCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCP
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
200923 01jp
200923 01jp
Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)
1.
TOPPERSプロジェクト認定 12012/06/02 2.1 TECSの基礎 安積卓也(⽴命館⼤学) 最終更新⽇
: 2012/ 5/18
2.
TOPPERSプロジェクト認定 22012/06/02 TECSの概要 • 組込みソフトウェアの現状 •
TECSとは • TECS開発の歴史 • TECSでできること • TECS仕様の設計⽅針 • TECS仕様の構成 • 参照実装 • TECSコンポーネントモデル – 基本モデル
3.
TOPPERSプロジェクト認定 32012/06/02 組込みソフトウェアの現状 • 組込みソフトウェアの⼤規模化 –
組込みシステムの⾼機能化 効率的なソフトウェア開発⼿法が必要 • コンポーネントベースの開発 →システムのソフトウェアモジュールを、 部品として扱い、ソフトウェアの再利⽤性を⾼める – 汎⽤システム⽤のコンポーネントを直接使⽤できない • 動的結合は組込みシステムに適さない – 組込みシステム向けのコンポーネントシステム(静的結合) • TECS (TOPPERS Embedded Component System)
4.
TOPPERSプロジェクト認定 42012/06/02 組込みソフトウェアの現状 • 組込みソフトウェアの⼤規模化 –
組込みシステムの⾼機能化 効率的なソフトウェア開発⼿法が必要 • コンポーネントベースの開発 →システムのソフトウェアモジュールを、 部品として扱い、ソフトウェアの再利⽤性を⾼める – 汎⽤システム⽤のコンポーネントを直接使⽤できない • 動的結合は組込みシステムに適さない – 組込みシステム向けのコンポーネントシステム(静的結合) • TECS (TOPPERS Embedded Component System)
5.
TOPPERSプロジェクト認定 52012/06/02 組込みソフトウェアの現状 • 組込みソフトウェアの⼤規模化 –
組込みシステムの⾼機能化 効率的なソフトウェア開発⼿法が必要 • コンポーネントベースの開発 →システムのソフトウェアモジュールを、 部品として扱い、ソフトウェアの再利⽤性を⾼める – 汎⽤システム⽤のコンポーネントを直接使⽤できない • 動的結合は組込みシステムに適さない – 組込みシステム向けのコンポーネントシステム(静的結合) • TECS (TOPPERS Embedded Component System)
6.
TOPPERSプロジェクト認定 62012/06/02 コンポーネントベース開発 要求の収集 分析 設計 実装 テスト コンポーネント 分析 アーキテクチャ 設計 コンポーネントの 製造 コンポーネントの 組立て • CBSD:
Component-Based Software Development TECSの 対象範囲
7.
TOPPERSプロジェクト認定 72012/06/02 組込みシステム向けコンポーネントシステム TECS:TOPPERS Embedded
Component System • TECSの特徴 – 実装向けのコンポーネントシステム – C⾔語で実装 – コンポーネント間の結合を静的に⾏う • 結合の最適化が可能 – システム内のすべての要素をコンポーネントとして扱う 例 • メモリアロケータ • 通信チャネル • 排他制御機構 UMLより抽象度が低い 汎⽤のコンポーネントは動的結合 既存のコンポーネントでは、 コンポーネントシステムの中に隠される
8.
TOPPERSプロジェクト認定 82012/06/02 • TECSの特徴 –
実装向けのコンポーネントシステム – C⾔語で実装 – コンポーネント間の結合を静的に⾏う • 結合の最適化が可能 – システム内のすべての要素をコンポーネントとして扱う 例 • メモリアロケータ • 通信チャネル • 排他制御機構 UMLより抽象度が低い 汎⽤のコンポーネントは動的結合 既存のコンポーネントでは、 コンポーネントシステムの中に隠される 組込みシステム向けコンポーネントシステム TECS:TOPPERS Embedded Component System おおよそ 7割がC⾔語 2010年版組込みソフトウェア 産業実態調査報告書より
9.
TOPPERSプロジェクト認定 92012/06/02 • TECSの特徴 –
実装向けのコンポーネントシステム – C⾔語で実装 – コンポーネント間の結合を静的に⾏う • 結合の最適化が可能 – システム内のすべての要素をコンポーネントとして扱う 例 • メモリアロケータ • 通信チャネル • 排他制御機構 汎⽤のコンポーネントは動的結合 UMLより抽象度が低い 既存のコンポーネントでは、 コンポーネントシステムの中に隠される 組込みシステム向けコンポーネントシステム TECS:TOPPERS Embedded Component System おおよそ 7割がC⾔語 2010年版組込みソフトウェア 産業実態調査報告書より
10.
TOPPERSプロジェクト認定 102012/06/02 • TECSの特徴 –
実装向けのコンポーネントシステム – C⾔語で実装 – コンポーネント間の結合を静的に⾏う • 結合の最適化が可能 – システム内のすべての要素をコンポーネントとして扱う 例 • メモリアロケータ • 通信チャネル • 排他制御機構 既存のコンポーネントでは、 コンポーネントシステムの中に隠される 汎⽤のコンポーネントは動的結合 UMLより抽象度が低い おおよそ 7割がC⾔語 組込みシステム向けコンポーネントシステム TECS:TOPPERS Embedded Component System 2010年版組込みソフトウェア 産業実態調査報告書より
11.
TOPPERSプロジェクト認定 112012/06/02 TECS開発の歴史 2004年 1⽉
コンポーネント仕様 WG 開始 2006年 3⽉ TECSと命名(⽅向性がほぼ固まる) 2006年10⽉ セキュリティコンポーネントIPA未踏に採択 2007年12⽉ 組込みZINE連載開始(現CodeZine) 2008年 6⽉ 会員向けリリース開始 2008年11⽉ キャッツとヴィッツがサポートを表明 2009年 5⽉ ⼀般向けリリース開始(asp+tecs) 組込みプレスに記事を掲載 2010年 6⽉ RPC (Transparent)を会員向けリリース開始 2011年 5⽉ Interfaceに記事を掲載 2011年 6⽉ RPC (Opaque) atk1+tecsを会員向けリリース開始
12.
TOPPERSプロジェクト認定 122012/06/02 TECSでできること • ソフトウェア構造の⾒える化 –
⼤規模化するソフトウェアの⾒通しをよくする – 開発の分担を容易化、保守性の向上etc • インタフェースの⾒える化 – 再利⽤の促進 • インタフェースの標準化をしやすくし部品流通を促進 – ⼈と⼈とのインタフェースミスを低減 • 分散フレームワーク – プロセッサ間の機能呼び出し(RPC)の実現 • その他 – セキュリティ機能 – 検証の⽀援などなど
13.
TOPPERSプロジェクト認定 132012/06/02 TECS 仕様の設計⽅針(1) •
静的なコンポーネント⽣成と結合 – 柔軟な組上げと最適化によるオーバヘッドの最⼩化 • すべてのものをコンポーネントとして扱う – C⾔語のように、ビルトイン機能は極⼒なくし、コ ンポーネントとして実装 • アロケータ、RPCチャネルなどを隠さない • インタフェース定義の曖昧さをなくす – 型、⼊出⼒⽅向、配列要素数 • オブジェクト指向技術を直接的には取り⼊れない – C⾔語を基本とする(想定する利⽤者の知識)
14.
TOPPERSプロジェクト認定 142012/06/02 TECS 仕様の設計⽅針(2) •
プラグインによるフレームワーク・フレームワーク の実現 – 分散フレームワーク、セキュリティフレームワー クなどフレームワークを構築するフレームワーク に使える • ソースコードからビルド – 種々の最適化を可能にする – バイナリ供給は別途考慮 • ROM化コードの⽣成 • その他 – 動作コンテキストの指定
15.
TOPPERSプロジェクト認定 152012/06/02 TECS仕様の構成 • TECS
コンポーネントモデル – コンポーネントの概念を規定 • TECS コンポーネント図 – コンポーネントの図表現を規定 • TECS コンポーネント記述⾔語(CDL) – コンポーネントの具体的な記述表現を規定 • TECS 実装モデル – 主としてコンポーネントの振舞いの記述⽅法を規定
16.
TOPPERSプロジェクト認定 162012/06/02 参照実装 • TECSジェネレータ¶
tecsgenの実装 • TECSジェネレータのプラグインの実装 – トレースプラグイン – RPC プラグイン(分散フレームワークの実現) – (セキュリティプラグイン)…IPA 未踏ソフトウェア開 発事業採択 ¶単にジェネレータと書いた場合、TECSジェネレータのことを指します
17.
TOPPERSプロジェクト認定 172012/06/02 TECSコンポーネントモデル(基本モデル) コンポーネントの概念を規定 • 基本モデル –
セル – シグニチャ – セルタイプ – 受け⼝ – 呼び⼝ – 結合 – 属性 – 内部変数 • 静的⽣成と結合 • 関数とデータ型 基本モデルのうち シングルトン、 アクティブは後述
18.
TOPPERSプロジェクト認定 182012/06/02 基本モデル セルおよびコンポーネント図 セル(コンポーネント
インスタンス)は – 呼び⼝、受け⼝を持つ – 属性、内部変数を持つ(図⽰しない) – セルタイプに属する(セルタイプコードとして振舞いを記述) – 名前が付けられる – (イベント、メッセージを扱うようなものはない.時間制約等も ない) cBody eTask セルタイプ: tTask セル名: MainTask 受け⼝ セル 呼び⼝ sTaskBody sTask 呼び⼝の シグニチャ 受け⼝の シグニチャ
19.
TOPPERSプロジェクト認定 192012/06/02 TECS:インタフェース定義(シグニチャ) テンプレート コード TECS CDL(コンポーネント記述言語) シグニチャ記述 (インタフェースの定義)
セルタイプ記述 (コンポーネントの定義) 組上げ記述 (コンポーネントの 構成の定義) TECS ジェネレータ ヘッダ インタフェース コード Cコンパイラ セルタイプコード (コンポーネントの ソースコード) リンカ アプリケーション 開発者 コンポーネント 開発者 アプリケーションモジュ ール コンポーネント図 製品 エンドユーザー コンポーネント 仕様開発者 仕 様 の 規定 設計 設計 利用 プラグイン プラグイン 開発者 設計 RPC アクセス制御 トレース App File シグニチャ sFile signature sFile { ER open( [in,string]char_t * fileName, [in]int16_t mode); ER close(void); ER read( [out,size_is(length),count_is(*count)]int8_t * buffer, [in]int32_t length, [out]int32_t *count); ER write( [in,size_is(length)]int8_t *buffer, [in]int32_t length, |[out]int32_t *wroteLength); ER seek( [in]int32_t offset); };
20.
TOPPERSプロジェクト認定 202012/06/02 関数とデータ型(1) • 引数の⼊出⼒⽅向の指定 –
in …関数への⼊⼒ – out … 関数からの出⼒ – inout … 関数の⼊⼒/出⼒ 例 ER changePriority([in] PRI priority); ER getPriority([out] PRI *p_priority); • 他の⼊出⼒⽅向の指定 – アロケータの使⽤を表す send, receiveがある • ポインタ引き数に関する指定 – size_is, count_is, string により配列であることを明⽰する
21.
TOPPERSプロジェクト認定 212012/06/02 関数とデータ型(2) • TOPPERS/ASPの型との親和性を重視 •
推奨する基本型(サイズが明瞭) char_t, bool_t … この2つの型は RPC でのみサイズ明瞭(8bit) int8_t, int16_t, int32_t, int64_t, int128_t uint8_t,uint16_t,uint32_t, uint64_t, uint128_t float32_t, double64_t • 推奨しない型(サイズが不明瞭) char, int, long, short, int_t float, double, long double • Cヘッダで定義される型(typedef,struct)の取り込み import_C( “mytypes.h” ); • 引数以外にも属性、内部変数、定数の型も同様
22.
TOPPERSプロジェクト認定 222012/06/02 正確なインタフェース記述 • C⾔語のインタフェース記述(プロトタイプ宣⾔)は曖昧 –
ER function( char *buffer, int size, int *result ); • TECSによるインタフェース定義 (TECS⽤語ではシグニチャ) – ER function( [in,size_is(size)] const char_t *buffer, [in] int32_t size, [inout] int32_t *result ); (*result がinoutなのは、前回の結果が今回の実⾏に影響するため) • 引数が⼊⼒か出⼒かが明確(特にポインタ型) • データ構造が明確 – ポインタがのさしているものが配列か配列でないかが明確 – 配列であるならば、配列の⼤きさが明確
23.
TOPPERSプロジェクト認定 232012/06/02 正確なインタフェース記述(2) • ポインタ引数が配列か否かの指定、および配列ならばサイズ を指定 –
size_is 配列の⼤きさ – count_is 配列の有効な要素数 – string ⽂字列(NULL終端.最⼤⻑の指定はオプション) 例 write([in,size_is(len)]int8_t *buffer, [in]int32_t length); read([out,size_is(len)]int8_t *buffer, [in]int32_t length ); putMessage( [in,string]char_t *message ); getMessage( [out,string(256)]char_t *message );
24.
TOPPERSプロジェクト認定 242012/06/02 正確なインタフェース記述の意義 • 簡潔に曖昧なく記述できる •
部品化するにあたってインタフェース記述が統⼀される • 結果としてインタフェースの誤解が少なくなる • データ構造も曖昧なく記述される – 配列か⾮配列かを明⽰ – 構造体メンバのポインタについても曖昧さがない(許 さない) • コードを⾃動⽣成できる – 分散処理⽤のマーシャラ(シリアライザ)コード – 排他制御コード – セキュリティコード
25.
TOPPERSプロジェクト認定 252012/06/02 TECS:コンポーネントの定義(セルタイプ) テンプレート コード TECS CDL(コンポーネント記述言語) シグニチャ記述 (インタフェースの定義)
セルタイプ記述 (コンポーネントの定義) 組上げ記述 (コンポーネントの 構成の定義) TECS ジェネレータ ヘッダ インタフェース コード Cコンパイラ セルタイプコード (コンポーネントの ソースコード) リンカ アプリケーション 開発者 コンポーネント 開発者 アプリケーションモジュ ール コンポーネント図 製品 エンドユーザー コンポーネント 仕様開発者 仕 様 の 規定 設計 設計 利用 プラグイン プラグイン 開発者 設計 RPC アクセス制御 トレース App File シグニチャ sFile 呼び⼝ cCallPort 受け⼝ eEntryPort celltype tApp{ call sFile cCallPort; }; celltype tFile{ entry sFile eEntryPort; };
26.
TOPPERSプロジェクト認定 262012/06/02 セルタイプ セルの型式のコンポーネント記述 •
セルタイプの CDL 表現 – セルの持つ受け⼝、呼び⼝、属性、内部変数を指定する – この他にリクワイア、ファクトリを指定できる • ファクトリ:静的APIの記述⼿段 • リクワイア:セルタイプに共通な結合の指定 – セルタイプの名前には接頭⽂字 t を付加する 例 [active] celltype tTask { [inline] entry sTask eTask; /* 受け⼝:タスク操作 */ call sTaskBody cBody; /* 呼び⼝:タスク本体 */ attr{ ID id = C_EXP("TSKID_$id$"); [omit] ATR taskAttribute = C_EXP("TA_NULL"); [omit] PRI priority; [omit] SIZE stackSize; … ⼀部省略 }; }; active … 後述 inline … インライン関数として実装することを指定 omit … CBに含めないことの指定 (factoryで利用)
27.
TOPPERSプロジェクト認定 272012/06/02 TECS:コンポーネントの構成の定義(組み上げ) テンプレート コード TECS CDL(コンポーネント記述言語) シグニチャ記述 (インタフェースの定義)
セルタイプ記述 (コンポーネントの定義) 組上げ記述 (コンポーネントの 構成の定義) TECS ジェネレータ ヘッダ インタフェース コード Cコンパイラ セルタイプコード (コンポーネントの ソースコード) リンカ アプリケーション 開発者 コンポーネント 開発者 アプリケーションモジュ ール コンポーネント図 製品 エンドユーザー コンポーネント 仕様開発者 仕 様 の 規定 設計 設計 利用 プラグイン プラグイン 開発者 設計 RPC アクセス制御 トレース App File シグニチャ sFile 呼び⼝ cCallPort 受け⼝ eEntryPort cell tFile File{ }; cell tApp App{ cCallPort = File.eEntryPort; };
28.
TOPPERSプロジェクト認定 282012/06/02 組上げ記述 セルの定義と結合のコンポーネント記述 •
セルの定義において他のセルとの結合を指定する • セルを結合してアプリケーションを完成させることを組上げと⾔う 例 // AlertCounter セル cell tAlertCounter AlertCounter { cAlert = Buzzer.eAlert; /* 呼び⼝の結合 */ initialCount = 0; /* 初期値 */ alertCount = 5; /*警告を発するカウント */ }; // CountInput, Buzzer のセル定義は省略 tCountInput CountInput tAlertCounter AlertCounter tBuzzer BuzzereCounter sUpDownCounter cAlert sAlert
29.
TOPPERSプロジェクト認定 292012/06/02 TECSジェネレータ:テンプレートコード テンプレート コード TECS CDL(コンポーネント記述言語) シグニチャ記述 (インタフェースの定義)
セルタイプ記述 (コンポーネントの定義) 組上げ記述 (コンポーネントの 構成の定義) TECS ジェネレータ ヘッダ インタフェース コード Cコンパイラ セルタイプコード (コンポーネントの ソースコード) リンカ アプリケーション 開発者 コンポーネント 開発者 アプリケーションモジュ ール コンポーネント図 製品 エンドユーザー コンポーネント 仕様開発者 仕 様 の 規定 設計 設計 利用 プラグイン プラグイン 開発者 設計 RPC アクセス制御 トレース App File シグニチャ sFile 呼び⼝ cCallPort 受け⼝ eEntryPort テンプレートコード[tFile.c] #include “tFile_tecsgen.h” ER eEntryPort_open( … ) { /* ここにコードを書く */ } ER eEntryPort_close( …) :
30.
TOPPERSプロジェクト認定 302012/06/02 TECS:コンポーネントのソースコード (セルタイプコード)の実装 テンプレート コード TECS CDL(コンポーネント記述言語) シグニチャ記述 (インタフェースの定義)
セルタイプ記述 (コンポーネントの定義) 組上げ記述 (コンポーネントの 構成の定義) TECS ジェネレータ ヘッダ インタフェース コード Cコンパイラ セルタイプコード (コンポーネントの ソースコード) リンカ アプリケーション 開発者 コンポーネント 開発者 アプリケーションモジュ ール コンポーネント図 製品 エンドユーザー コンポーネント 仕様開発者 仕 様 の 規定 設計 設計 利用 プラグイン プラグイン 開発者 設計 RPC アクセス制御 トレース App Fileシグニチャ sFile 呼び口 cCallPort 受け口 eEntryPort [tFile.c] #include “tFile_tecsgen.h” ER eEntryPort_open( … ) { コンポーネントの振舞いを記述 } ER eEntryPort_close() :
31.
TOPPERSプロジェクト認定 312012/06/02 セルタイプコード セルタイプコード…セルの振舞い – セルタイプのすべての受け⼝関数の本体を記述する ---
celltype.c --- ER func( CELLIDX idx, int32_t arg0) ER ercd = E_OK; CELLCB *p_cellcb; //p_clellcbの名前変更禁⽌ if (VALID_IDX(idx)) { p_cellcb = GET_CELLCB(idx); } else { return(E_ID); } /* ここに処理本体を記述します #_TEFB_# */ return(ercd); } •CELLCB … セルの情報を記憶する領域 •idx … セル のID or CELLCBへのポインタ •p_cellcb … CELLCBへのポインタ (singleton では、idx, p_cellcbは不要)
32.
TOPPERSプロジェクト認定 322012/06/02 TECS CDL(コンポーネント記述言語) TECSジェネレータ:ヘッダ インタフェースコード テンプレート コード シグニチャ記述 (インタフェースの定義)
セルタイプ記述 (コンポーネントの定義) 組上げ記述 (コンポーネントの 構成の定義) TECS ジェネレータ ヘッダ インタフェース コード Cコンパイラ セルタイプコード (コンポーネントの ソースコード) リンカ アプリケーション 開発者 コンポーネント 開発者 アプリケーションモジュ ール コンポーネント図 製品 エンドユーザー コンポーネント 仕様開発者 仕 様 の 規定 設計 設計 利用 プラグイン プラグイン 開発者 設計 RPC アクセス制御 トレース App Fileシグニチャ sFile 呼び口 cCallPort 受け口 eEntryPort
33.
TECSの場合は 同じC⾔語のソースを利⽤できる (AppのC⾔語のソースには、 インタフェース名(呼び⼝名)を 利⽤) 再利⽤性向上の例 33 App SerialPortA SerialPortB App SerialPortA SerialPortB 呼び⼝ cCallPort 受け⼝ eEntryPort //TECSの場合 cCallPort_close(
); //ソフトウェアモジュールの場合 SerialPortB_close( ); //TECSの場合 cCallPort_close( ); //ソフトウェアモジュールの場合 SerialPortA_close( ); SerialPortAを利⽤する場合 SerialPortBを利⽤する場合 TOPPERSプロジェクト認定2012/06/02
34.
2012/06/0234 結合の実装構造の標準形 cCallPort_close( ) ER eEntryPort_close(
tB_IDX idx) { ER ercd_ = E_OK; tB_CB *p_cellcb; if( tB_VALID_IDX( idx ) ){ p_cellcb = GET_CELLCB(idx); }else{ return E_ID; } /*処理*/ return ercd_; } 呼び側 受け⼝関数 /* 呼び⼝関数マクロ(短縮形) */ #define cCallPort_close( ) ¥ tA_cCallPort_close( p_cellcb ) #define tA_cCallPort_close( p_that ) ¥ (p_that)->cCallPort->VMT->¥ close( (p_that)->cCallPort ) typedef struct tag_tA_CB { /* call port */ struct tag_sSig1_VDES *cCallPort; struct tag_sSig2_VDES *cCall2; } tA_CB; 呼び側のセルCB cCallPort_write( ) tA A tB B 受け側 ER tB_eEntryPort_close_skel( struct tag_sSig1_VDES *epd) { struct tag_tB_eEntryPort_DES *lepd = (struct tag_tB_eEntryPort_DES *)epd; return tB_eEntryPort_close( lepd->idx ); } 受け⼝ ディスクリプタ 受け⼝ 関数テーブル 受け⼝スケルトン関数 受け⼝関数 tB_eEntryPort_read_skel tB_eEntryPort_write_skel tB_eEntryPort_close_skel &tB_eEntryPort_MT &tB_B_CB 受け⼝関数テーブルへの ポインタ 受け側のセルCB 呼び側のセルCB 受け側 tB_eEntryPort_open_skel TOPPERSプロジェクト認定
35.
2012/06/0235 結合の実装構造の標準形 cCallPort_close( ) ER tB_eEntryPort_close_skel(
struct tag_sSig1_VDES *epd) { struct tag_tB_eEntryPort_DES *lepd = (struct tag_tB_eEntryPort_DES *)epd; return tB_eEntryPort_close( lepd->idx ); } ER eEntryPort_close( tB_IDX idx) { ER ercd_ = E_OK; tB_CB *p_cellcb; if( tB_VALID_IDX( idx ) ){ p_cellcb = GET_CELLCB(idx); }else{ return E_ID; } /*処理*/ return ercd_; } 受け⼝ ディスクリプタ 受け⼝ 関数テーブル 受け⼝スケルトン関数 受け⼝関数 tB_eEntryPort_read_skel tB_eEntryPort_write_skel tB_eEntryPort_close_skel &tB_eEntryPort_MT &tB_B_CB /* 呼び⼝関数マクロ(短縮形) */ #define cCallPort_close( ) ¥ tA_cCallPort_close( p_cellcb ) #define tA_cCallPort_close( p_that ) ¥ (p_that)->cCallPort->VMT->¥ close( (p_that)->cCallPort ) typedef struct tag_tA_CB { /* call port */ struct tag_sSig1_VDES *cCallPort; struct tag_sSig2_VDES *cCall2; } tA_CB; 受け⼝関数テーブルへの ポインタ 受け側のセルCB 呼び側のセルCB tA A tB B cCallPort_write( ) 呼び側 受け側 tB_eEntryPort_open_skel TOPPERSプロジェクト認定
36.
TOPPERSプロジェクト認定 362012/06/02 コンパイル・リンク テンプレート コード TECS CDL(コンポーネント記述言語) シグニチャ記述 (インタフェースの定義)
セルタイプ記述 (コンポーネントの定義) 組上げ記述 (コンポーネントの 構成の定義) TECS ジェネレータ ヘッダ インタフェース コード Cコンパイラ セルタイプコード (コンポーネントの ソースコード) リンカ アプリケーション 開発者 コンポーネント 開発者 アプリケーションモジュ ール コンポーネント図 製品 エンドユーザー コンポーネント 仕様開発者 仕 様 の 規定 設計 設計 利用 プラグイン プラグイン 開発者 設計 RPC アクセス制御 トレース App File シグニチャ sFile 呼び⼝ cCallPort 受け⼝ eEntryPort
37.
TOPPERSプロジェクト認定 372012/06/02 TECSコンポーネントモデル(その他) • シングルトン •
アクティブ • 複合セルタイプ • ⼀対多、多対⼀の結合 • コールバック
38.
TOPPERSプロジェクト認定 382012/06/02 シングルトン • あるセルタイプのセルが⼀つだけ存在しうる場合、 シングルトンである –
セルタイプの定義でsingleton指定する [singleton] celltype tKernel{ [inline] entry sKernel eKernel; [inline] entry siKernel eiKernel; };
39.
TOPPERSプロジェクト認定 392012/06/02 アクティブ • タスク、ハンドラのように他から呼び出されなくて も動作するセルタイプをアクティブと呼ぶ –
アクティブセルタイプのセルは⼆重線で囲む [active] celltype tTask { // 呼び⼝、受け⼝、属性、内部変数の記述 }; tTaskMain TaskMain tTask TaskCell sTaskBody cBody eBody
40.
TOPPERSプロジェクト認定 402012/06/02 複合セルタイプ composite tCompositeCelltype
{ entry sExtSigName2 eExtEPName; call sExtSigName cExtCPName; cell tCellType2 Cell2 { cCall => compoiste.cExtCPName; }; cell tCellType1 Cell1 { cCPName = Cell2.eEPName; }; composite.eExtEPName => Cell1.eEPName; }; tCompositCellType CompositCell tCellType1 Cell1 cCPName eEPName tCellType2 Cell2 sSigName2 sExtSigName cExtCPName sExtSigName2 eExtEPName 属性attr をインタフェース 表明に加えることができる インタフェース表明
41.
TOPPERSプロジェクト認定 412012/06/02 多対⼀の結合(合流) • 呼び⼝は合流して受け⼝に結合できる tCellType1 Cell1 cCPName
eEPName tCellType2 Cell2 sSigName tCellType3 Cell3 cCP3Name
42.
TOPPERSプロジェクト認定 422012/06/02 ⼀対多(呼び⼝配列)の結合 • 呼び⼝配列により分流できる –
添数により呼出し先を選択する celltype tCelltype1 { call sSigName cCPName[3]; }; cell tCelltype1 Cell1 { cCPName[0] = Cell21.eEPName; … }; tCellType1 Cell1 cCPName[0] eEPName tCellType2 Cell21sSigName tCellType2 Cell22 tCellType3 Cell3 cCPName[1] cCPName[2] eEPName eEPName3
43.
TOPPERSプロジェクト認定 432012/06/02 多対⼀(受け⼝配列)の結合 • 受け⼝配列を利⽤すると、どのセルから呼び出しが あったかを識別できる tCellType6 Cell6 cCPName
eEPName[0]tCellType4 Cell41 sSigName tCellType4 Cell42 tCellType5 Cell35 eEPName[1] eEPName[2] cCPName cCPName5 celltype tCelltype6 { entry eEPName eEPName[3]; }; … tCellType4, Cell6 など cell tCelltype4 Cell41 { cCPName =Cell6.eEPName[0]; };
44.
• 呼び出された側が、関数を呼び出し直すことによっ て応答を返す場合を、コールバックと呼ぶ – 呼出しとは⾮同期に応答を返すことができる TOPPERSプロジェクト認定
442012/06/02 コールバック tCellType1 Cell1 cCPName eEPName tCellType2 Cell2 sSigName eCBEPName cCBCPName sCBSigName
45.
TOPPERSプロジェクト認定 452012/06/02 コールバックと呼び⼝、受け⼝配列の組合わせ 複数のセルに対し機能を提供する場合、対応するセル を選択してコールバックする tCellType6 Cell6 CCPName eEPName[0] tCellType4 Cell41 sSigName tCellType4 Cell42 tCellType5 Cell35 eEPName[1] eEPName[2] cCPName cCPName5 eEPName
cCBCPName[0] sCBSigName cCBCPName[1] cCBCPName[2]
46.
TOPPERSプロジェクト認定 462012/06/02 著者リスト • TECS基礎 •
⼤⼭ 博司(オークマ株式会社,TOPPERSプロ ジェクトコンポーネント仕様WG主査) • 安積 卓也(⽴命館⼤学)
Download now