SlideShare a Scribd company logo
1 of 46
Download to read offline
TOPPERSプロジェクト認定 12012/06/02
2.1 TECSの基礎
安積卓也(⽴命館⼤学)
最終更新⽇ : 2012/ 5/18
TOPPERSプロジェクト認定 22012/06/02
TECSの概要
• 組込みソフトウェアの現状
• TECSとは
• TECS開発の歴史
• TECSでできること
• TECS仕様の設計⽅針
• TECS仕様の構成
• 参照実装
• TECSコンポーネントモデル
– 基本モデル
TOPPERSプロジェクト認定 32012/06/02
組込みソフトウェアの現状
• 組込みソフトウェアの⼤規模化
– 組込みシステムの⾼機能化
効率的なソフトウェア開発⼿法が必要
• コンポーネントベースの開発
→システムのソフトウェアモジュールを、
部品として扱い、ソフトウェアの再利⽤性を⾼める
– 汎⽤システム⽤のコンポーネントを直接使⽤できない
• 動的結合は組込みシステムに適さない
– 組込みシステム向けのコンポーネントシステム(静的結合)
• TECS (TOPPERS Embedded Component System)
TOPPERSプロジェクト認定 42012/06/02
組込みソフトウェアの現状
• 組込みソフトウェアの⼤規模化
– 組込みシステムの⾼機能化
効率的なソフトウェア開発⼿法が必要
• コンポーネントベースの開発
→システムのソフトウェアモジュールを、
部品として扱い、ソフトウェアの再利⽤性を⾼める
– 汎⽤システム⽤のコンポーネントを直接使⽤できない
• 動的結合は組込みシステムに適さない
– 組込みシステム向けのコンポーネントシステム(静的結合)
• TECS (TOPPERS Embedded Component System)
TOPPERSプロジェクト認定 52012/06/02
組込みソフトウェアの現状
• 組込みソフトウェアの⼤規模化
– 組込みシステムの⾼機能化
効率的なソフトウェア開発⼿法が必要
• コンポーネントベースの開発
→システムのソフトウェアモジュールを、
部品として扱い、ソフトウェアの再利⽤性を⾼める
– 汎⽤システム⽤のコンポーネントを直接使⽤できない
• 動的結合は組込みシステムに適さない
– 組込みシステム向けのコンポーネントシステム(静的結合)
• TECS (TOPPERS Embedded Component System)
TOPPERSプロジェクト認定 62012/06/02
コンポーネントベース開発
要求の収集
分析
設計
実装
テスト
コンポーネント
分析
アーキテクチャ
設計
コンポーネントの
製造
コンポーネントの
組立て
• CBSD: Component-Based Software Development
TECSの
対象範囲
TOPPERSプロジェクト認定 72012/06/02
組込みシステム向けコンポーネントシステム
TECS:TOPPERS Embedded Component System
• TECSの特徴
– 実装向けのコンポーネントシステム
– C⾔語で実装
– コンポーネント間の結合を静的に⾏う
• 結合の最適化が可能
– システム内のすべての要素をコンポーネントとして扱う
例
• メモリアロケータ
• 通信チャネル
• 排他制御機構
UMLより抽象度が低い
汎⽤のコンポーネントは動的結合
既存のコンポーネントでは、
コンポーネントシステムの中に隠される
TOPPERSプロジェクト認定 82012/06/02
• TECSの特徴
– 実装向けのコンポーネントシステム
– C⾔語で実装
– コンポーネント間の結合を静的に⾏う
• 結合の最適化が可能
– システム内のすべての要素をコンポーネントとして扱う
例
• メモリアロケータ
• 通信チャネル
• 排他制御機構
UMLより抽象度が低い
汎⽤のコンポーネントは動的結合
既存のコンポーネントでは、
コンポーネントシステムの中に隠される
組込みシステム向けコンポーネントシステム
TECS:TOPPERS Embedded Component System
おおよそ
7割がC⾔語
2010年版組込みソフトウェア
産業実態調査報告書より
TOPPERSプロジェクト認定 92012/06/02
• TECSの特徴
– 実装向けのコンポーネントシステム
– C⾔語で実装
– コンポーネント間の結合を静的に⾏う
• 結合の最適化が可能
– システム内のすべての要素をコンポーネントとして扱う
例
• メモリアロケータ
• 通信チャネル
• 排他制御機構
汎⽤のコンポーネントは動的結合
UMLより抽象度が低い
既存のコンポーネントでは、
コンポーネントシステムの中に隠される
組込みシステム向けコンポーネントシステム
TECS:TOPPERS Embedded Component System
おおよそ
7割がC⾔語
2010年版組込みソフトウェア
産業実態調査報告書より
TOPPERSプロジェクト認定 102012/06/02
• TECSの特徴
– 実装向けのコンポーネントシステム
– C⾔語で実装
– コンポーネント間の結合を静的に⾏う
• 結合の最適化が可能
– システム内のすべての要素をコンポーネントとして扱う
例
• メモリアロケータ
• 通信チャネル
• 排他制御機構 既存のコンポーネントでは、
コンポーネントシステムの中に隠される
汎⽤のコンポーネントは動的結合
UMLより抽象度が低い
おおよそ
7割がC⾔語
組込みシステム向けコンポーネントシステム
TECS:TOPPERS Embedded Component System
2010年版組込みソフトウェア
産業実態調査報告書より
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を会員向けリリース開始
TOPPERSプロジェクト認定 122012/06/02
TECSでできること
• ソフトウェア構造の⾒える化
– ⼤規模化するソフトウェアの⾒通しをよくする
– 開発の分担を容易化、保守性の向上etc
• インタフェースの⾒える化
– 再利⽤の促進
• インタフェースの標準化をしやすくし部品流通を促進
– ⼈と⼈とのインタフェースミスを低減
• 分散フレームワーク
– プロセッサ間の機能呼び出し(RPC)の実現
• その他
– セキュリティ機能
– 検証の⽀援などなど
TOPPERSプロジェクト認定 132012/06/02
TECS 仕様の設計⽅針(1)
• 静的なコンポーネント⽣成と結合
– 柔軟な組上げと最適化によるオーバヘッドの最⼩化
• すべてのものをコンポーネントとして扱う
– C⾔語のように、ビルトイン機能は極⼒なくし、コ
ンポーネントとして実装
• アロケータ、RPCチャネルなどを隠さない
• インタフェース定義の曖昧さをなくす
– 型、⼊出⼒⽅向、配列要素数
• オブジェクト指向技術を直接的には取り⼊れない
– C⾔語を基本とする(想定する利⽤者の知識)
TOPPERSプロジェクト認定 142012/06/02
TECS 仕様の設計⽅針(2)
• プラグインによるフレームワーク・フレームワーク
の実現
– 分散フレームワーク、セキュリティフレームワー
クなどフレームワークを構築するフレームワーク
に使える
• ソースコードからビルド
– 種々の最適化を可能にする
– バイナリ供給は別途考慮
• ROM化コードの⽣成
• その他
– 動作コンテキストの指定
TOPPERSプロジェクト認定 152012/06/02
TECS仕様の構成
• TECS コンポーネントモデル
– コンポーネントの概念を規定
• TECS コンポーネント図
– コンポーネントの図表現を規定
• TECS コンポーネント記述⾔語(CDL)
– コンポーネントの具体的な記述表現を規定
• TECS 実装モデル
– 主としてコンポーネントの振舞いの記述⽅法を規定
TOPPERSプロジェクト認定 162012/06/02
参照実装
• TECSジェネレータ¶ tecsgenの実装
• TECSジェネレータのプラグインの実装
– トレースプラグイン
– RPC プラグイン(分散フレームワークの実現)
– (セキュリティプラグイン)…IPA 未踏ソフトウェア開
発事業採択
¶単にジェネレータと書いた場合、TECSジェネレータのことを指します
TOPPERSプロジェクト認定 172012/06/02
TECSコンポーネントモデル(基本モデル)
コンポーネントの概念を規定
• 基本モデル
– セル
– シグニチャ
– セルタイプ
– 受け⼝
– 呼び⼝
– 結合
– 属性
– 内部変数
• 静的⽣成と結合
• 関数とデータ型
基本モデルのうち
シングルトン、
アクティブは後述
TOPPERSプロジェクト認定 182012/06/02
基本モデル セルおよびコンポーネント図
セル(コンポーネント インスタンス)は
– 呼び⼝、受け⼝を持つ
– 属性、内部変数を持つ(図⽰しない)
– セルタイプに属する(セルタイプコードとして振舞いを記述)
– 名前が付けられる
– (イベント、メッセージを扱うようなものはない.時間制約等も
ない)
cBody
eTask
セルタイプ: tTask
セル名: MainTask
受け⼝ セル
呼び⼝
sTaskBody
sTask
呼び⼝の
シグニチャ
受け⼝の
シグニチャ
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);
};
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 により配列であることを明⽰する
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” );
• 引数以外にも属性、内部変数、定数の型も同様
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なのは、前回の結果が今回の実⾏に影響するため)
• 引数が⼊⼒か出⼒かが明確(特にポインタ型)
• データ構造が明確
– ポインタがのさしているものが配列か配列でないかが明確
– 配列であるならば、配列の⼤きさが明確
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 );
TOPPERSプロジェクト認定 242012/06/02
正確なインタフェース記述の意義
• 簡潔に曖昧なく記述できる
• 部品化するにあたってインタフェース記述が統⼀される
• 結果としてインタフェースの誤解が少なくなる
• データ構造も曖昧なく記述される
– 配列か⾮配列かを明⽰
– 構造体メンバのポインタについても曖昧さがない(許
さない)
• コードを⾃動⽣成できる
– 分散処理⽤のマーシャラ(シリアライザ)コード
– 排他制御コード
– セキュリティコード
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;
};
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で利用)
TOPPERSプロジェクト認定 272012/06/02
TECS:コンポーネントの構成の定義(組み上げ)
テンプレート
コード
TECS CDL(コンポーネント記述言語)
シグニチャ記述
(インタフェースの定義) セルタイプ記述
(コンポーネントの定義) 組上げ記述
(コンポーネントの
構成の定義)
TECS
ジェネレータ
ヘッダ
インタフェース
コード
Cコンパイラ
セルタイプコード
(コンポーネントの
ソースコード)
リンカ
アプリケーション
開発者
コンポーネント
開発者
アプリケーションモジュ
ール
コンポーネント図
製品 エンドユーザー
コンポーネント
仕様開発者
仕 様 の
規定
設計
設計
利用
プラグイン
プラグイン
開発者
設計
RPC
アクセス制御
トレース
App File
シグニチャ
sFile
呼び⼝
cCallPort
受け⼝
eEntryPort
cell tFile File{
};
cell tApp App{
cCallPort = File.eEntryPort;
};
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
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( …)
:
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()
:
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は不要)
TOPPERSプロジェクト認定 322012/06/02
TECS CDL(コンポーネント記述言語)
TECSジェネレータ:ヘッダ
インタフェースコード
テンプレート
コード
シグニチャ記述
(インタフェースの定義) セルタイプ記述
(コンポーネントの定義) 組上げ記述
(コンポーネントの
構成の定義)
TECS
ジェネレータ
ヘッダ
インタフェース
コード
Cコンパイラ
セルタイプコード
(コンポーネントの
ソースコード)
リンカ
アプリケーション
開発者
コンポーネント
開発者
アプリケーションモジュ
ール
コンポーネント図
製品 エンドユーザー
コンポーネント
仕様開発者
仕 様 の
規定
設計
設計
利用
プラグイン
プラグイン
開発者
設計
RPC
アクセス制御
トレース
App Fileシグニチャ
sFile
呼び口
cCallPort
受け口
eEntryPort
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
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プロジェクト認定
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プロジェクト認定
TOPPERSプロジェクト認定 362012/06/02
コンパイル・リンク
テンプレート
コード
TECS CDL(コンポーネント記述言語)
シグニチャ記述
(インタフェースの定義) セルタイプ記述
(コンポーネントの定義) 組上げ記述
(コンポーネントの
構成の定義)
TECS
ジェネレータ
ヘッダ
インタフェース
コード
Cコンパイラ
セルタイプコード
(コンポーネントの
ソースコード)
リンカ
アプリケーション
開発者
コンポーネント
開発者
アプリケーションモジュ
ール
コンポーネント図
製品 エンドユーザー
コンポーネント
仕様開発者
仕 様 の
規定
設計
設計
利用
プラグイン
プラグイン
開発者
設計
RPC
アクセス制御
トレース
App File
シグニチャ
sFile
呼び⼝
cCallPort
受け⼝
eEntryPort
TOPPERSプロジェクト認定 372012/06/02
TECSコンポーネントモデル(その他)
• シングルトン
• アクティブ
• 複合セルタイプ
• ⼀対多、多対⼀の結合
• コールバック
TOPPERSプロジェクト認定 382012/06/02
シングルトン
• あるセルタイプのセルが⼀つだけ存在しうる場合、
シングルトンである
– セルタイプの定義でsingleton指定する
[singleton]
celltype tKernel{
[inline] entry sKernel eKernel;
[inline] entry siKernel eiKernel;
};
TOPPERSプロジェクト認定 392012/06/02
アクティブ
• タスク、ハンドラのように他から呼び出されなくて
も動作するセルタイプをアクティブと呼ぶ
– アクティブセルタイプのセルは⼆重線で囲む
[active]
celltype tTask {
// 呼び⼝、受け⼝、属性、内部変数の記述
};
tTaskMain
TaskMain
tTask
TaskCell sTaskBody
cBody eBody
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 をインタフェース
表明に加えることができる
インタフェース表明
TOPPERSプロジェクト認定 412012/06/02
多対⼀の結合(合流)
• 呼び⼝は合流して受け⼝に結合できる
tCellType1
Cell1
cCPName eEPName
tCellType2
Cell2
sSigName
tCellType3
Cell3 cCP3Name
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
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];
};
• 呼び出された側が、関数を呼び出し直すことによっ
て応答を返す場合を、コールバックと呼ぶ
– 呼出しとは⾮同期に応答を返すことができる
TOPPERSプロジェクト認定 442012/06/02
コールバック
tCellType1
Cell1
cCPName eEPName
tCellType2
Cell2
sSigName
eCBEPName cCBCPName
sCBSigName
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]
TOPPERSプロジェクト認定 462012/06/02
著者リスト
• TECS基礎
• ⼤⼭ 博司(オークマ株式会社,TOPPERSプロ
ジェクトコンポーネント仕様WG主査)
• 安積 卓也(⽴命館⼤学)

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...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 versionHow to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionKiyoshi Ogawa
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013dKiyoshi Ogawa
 
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料Tetsuya Hasegawa
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In LockRyota Watabe
 
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料Tetsuya Hasegawa
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強Kiyoshi Ogawa
 
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎Insight Technology, Inc.
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )Hironobu Isoda
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料Tetsuya Hasegawa
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)NTT DATA Technology & Innovation
 
PEZY-SC programming overview
PEZY-SC programming overviewPEZY-SC programming overview
PEZY-SC programming overviewRyo Sakamoto
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)NTT DATA Technology & Innovation
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3openrtm
 
OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1Mibu Ryota
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)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...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...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 versionHow 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 hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013d
 
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In Lock
 
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
 
Ll tiger clojure
Ll tiger clojureLl tiger clojure
Ll tiger clojure
 
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
 
PEZY-SC programming overview
PEZY-SC programming overviewPEZY-SC programming overview
PEZY-SC programming overview
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Opnfv handson apex intro
Opnfv handson apex introOpnfv handson apex intro
Opnfv handson apex intro
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1OPNFV Handson Tokyo #1
OPNFV Handson Tokyo #1
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)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...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 と BCLCLI と BCL
CLI と BCLshozon
 
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfReckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfYoshihiroKitamura4
 
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニックオラクルエンジニア通信
 
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えようクラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えようNTT Communications Technology Development
 
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?Kuniyasu Suzaki
 
Daisukei vsug ef
Daisukei vsug efDaisukei vsug ef
Daisukei vsug efvsug_jim
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2shozon
 
最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17Masayoshi Kondo
 
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデートKazumasa Ikuta
 
モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側Rakuten Group, Inc.
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...NTT DATA Technology & Innovation
 
AKSとTerraformでKubernetesクラスター作成
AKSとTerraformでKubernetesクラスター作成AKSとTerraformでKubernetesクラスター作成
AKSとTerraformでKubernetesクラスター作成satosato8
 
OCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCPOCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCPTetsuya Sodo
 
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】Tomoharu ASAMI
 
200923 01jp
200923 01jp200923 01jp
200923 01jpopenrtm
 
Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報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 発表資料)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日)Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)オラクルエンジニア通信
 
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかDevlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかYusuke Suzuki
 

Similar to TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1) (20)

CLI と BCL
CLI と BCLCLI と BCL
CLI と BCL
 
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfReckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdf
 
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
 
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えようクラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えよう
 
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
 
Daisukei vsug ef
Daisukei vsug efDaisukei vsug ef
Daisukei vsug ef
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2
 
最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17
 
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
 
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデートIOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
 
モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
AKSとTerraformでKubernetesクラスター作成
AKSとTerraformでKubernetesクラスター作成AKSとTerraformでKubernetesクラスター作成
AKSとTerraformでKubernetesクラスター作成
 
OCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCPOCP Meetup Tokyo #05 ECK on OCP
OCP Meetup Tokyo #05 ECK on OCP
 
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
 
200923 01jp
200923 01jp200923 01jp
200923 01jp
 
Share pointを支えるsql server2014最新情報
Share pointを支えるsql server2014最新情報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 発表資料)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日)Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
 
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかDevlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
 

TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)