ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
あれからコメントが全く投稿されていないようです。
例年コンテスト直前になるとコメントが多く投稿されるみたいですが、スライドを作るとか忙しいのですぐには対応できないと思います。
そういえば、発表のスライドも作らなければなりませんね。
作ったRTCの数だけは多いので全てを説明するのは不可能です。
そもそもプロジェクトページを見れば大体の事は分かるのでコンテスト当日は質疑だけでも良いのではないかと思うのですけど、一応学会発表なのでそれは無理か。
今までのRTMコンテストの作品の発表スライドで公開されているものもあるので、それを参考にしつつ考えているところです。
とりあえずこのスライドを読んでみたのですが、やはりまずはRTMの説明が必要みたいですね。これでスロットの後の方なら説明を省いても良かったかもしれないですけど、よりによって最初なので省くことはできそうにないです。もっと詳しい人を最初にした方が後の人も助かるのではないでしょうか?それから時間がないので自己紹介は省きます。
このスライドは去年の作品のだと思いますが、実際に作ったものの説明は序盤だけで後は自分のブログ等の紹介をしてますね。僕もこのブログで50以上のRTCプログラミングの記事を書いていますし、多分RTM関連なら150以上は書いていると思うので少しぐらい加点してくれても良いのではないかと思います。まあ、世の中そんなに甘くないか。でもリンク先の作品はベストサポート賞を取っているみたいなのでその辺をアピールするのも手なのですけど、残念なことに発表の時間をブログ、HPの紹介なんかに割けそうもありません。ベストサポート賞は一番欲しい賞ではあるんですけどね。
どういう順序でスライドを作るかを考えてみました。
Writer、Wordを操作するRTCは省略するかもしれません。
やはりブログの紹介等を挟む余地はなさそうですね。
そういえば概要スライドのテンプレートを貰った覚えがないのですが、今年は概要スライドは作らないのでしょうかね?
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
例年コンテスト直前になるとコメントが多く投稿されるみたいですが、スライドを作るとか忙しいのですぐには対応できないと思います。
そういえば、発表のスライドも作らなければなりませんね。
作ったRTCの数だけは多いので全てを説明するのは不可能です。
そもそもプロジェクトページを見れば大体の事は分かるのでコンテスト当日は質疑だけでも良いのではないかと思うのですけど、一応学会発表なのでそれは無理か。
今までのRTMコンテストの作品の発表スライドで公開されているものもあるので、それを参考にしつつ考えているところです。
とりあえずこのスライドを読んでみたのですが、やはりまずはRTMの説明が必要みたいですね。これでスロットの後の方なら説明を省いても良かったかもしれないですけど、よりによって最初なので省くことはできそうにないです。もっと詳しい人を最初にした方が後の人も助かるのではないでしょうか?それから時間がないので自己紹介は省きます。
このスライドは去年の作品のだと思いますが、実際に作ったものの説明は序盤だけで後は自分のブログ等の紹介をしてますね。僕もこのブログで50以上のRTCプログラミングの記事を書いていますし、多分RTM関連なら150以上は書いていると思うので少しぐらい加点してくれても良いのではないかと思います。まあ、世の中そんなに甘くないか。でもリンク先の作品はベストサポート賞を取っているみたいなのでその辺をアピールするのも手なのですけど、残念なことに発表の時間をブログ、HPの紹介なんかに割けそうもありません。ベストサポート賞は一番欲しい賞ではあるんですけどね。
どういう順序でスライドを作るかを考えてみました。
- 表題等[1枚、10秒]
- 背景、概要[2枚、60秒]
- RTミドルウェアの説明[1枚、30秒]
- 実装方法(OpenOffice、Ms OfficeのRTC)[1枚、80秒]
- Calc、Excelを操作するRTCの機能(概要[1枚、30秒]、データポート接続までの手順[1枚、40秒]、データの入力[1枚、20秒]、出力の例[1枚、20秒]、入力したデータを数式で計算後出力する例の説明[1ページ、30秒])[合計5枚、140秒]
- Drawを操作するRTCの機能(概要[1枚、30秒]、データポート接続までの手順はCalcとほぼ同じなので手短に説明する[1枚、20秒]、図形を操作する例の説明[1枚、30秒])[合計3枚、80秒]
- Baseを操作するRTC(概要だけ説明)[1枚、30秒]
- Impress、PowerPointを操作するRTC(概要だけ説明)[1枚、30秒]
- Baseを操作するRTC、Impressを操作するRTCを用いたシステムの説明[2枚、80秒]
- Writer、Wordを操作するRTC(概要だけ説明)[1枚、30秒]
- Writer、Wordを操作するRTCを用いたシステムの説明[2枚、80秒]
- まとめ[1枚、30秒]
- 補足資料(参考文献、作ったRTCの詳細な説明)
Writer、Wordを操作するRTCは省略するかもしれません。
やはりブログの紹介等を挟む余地はなさそうですね。
そういえば概要スライドのテンプレートを貰った覚えがないのですが、今年は概要スライドは作らないのでしょうかね?
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
CORBAについて調べていたのですが、この資料がとても参考になりました。
皆さんもCORBAを実装する際は参考にしてみてはいかがでしょうか?
どうにもCORBAが僕みたいな素人には理解しづらい原因として、仕組み以前に用語の意味がよくわからないということがあると思います。
例えば以下の用語です。
まあでも自分でRTミドルウェアを実装するにしても既存のCORBA実装を使えば十分な事も多いと思うので、このブログを見てる人でCORBAから実装しようとか考えている人はいないかもしれないですけど。
それはさておき、今回はユースケース図の話をします。
astah* communityを起動して図→ユースケース図を選択してください。
とりあえず適当にアクターとユースケースを追加してみます。
アクターはシステムを利用するユーザー等の外部に存在するもの、ユースケースはアクターがシステムを使ってできる事を表現しているとかそうではないとからしいです。
通常は以下のように作成したシステムはサブジェクトという四角形で囲むらしいのですが、作成するボタンが見つからなかったため長方形とテキストで形だけ作っています。
拡張ボタンを選択後、ユースケースを選択すると拡張を表現できます。
以下の場合ユースケース0がユースケース1に機能を追加するという意味になるとからしいです。
包含ボタンを選択後ユースケースを選択すると包含を表現できます。
ユースケース0はユースケース1が含まれているという意味とからしいです
汎化ボタンを選択後、ユースケースもしくはアクターを選択すると汎化を表現できます。
以下の場合、ユースケース0はユースケース1をより具体化したものになるとかならないとからしいです。
さらに拡張するタイミングを定義した拡張点を追加できるとからしいです。
拡張点はユースケースを選択後、左下のウィジェットから拡張点タブを選択して追加できるみたいです。
このサイトを読んでると、拡張点は以下のように表現できるらしいですが上の図と意味は同じと考えていいのでしょうかね?
UMLの話は今日でとりあえず終わりにします。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
皆さんもCORBAを実装する際は参考にしてみてはいかがでしょうか?
どうにもCORBAが僕みたいな素人には理解しづらい原因として、仕組み以前に用語の意味がよくわからないということがあると思います。
例えば以下の用語です。
- GIOP
- IIOP
- IDL
- スタブ
- スケルトン
- orb
- ネーミングサービス
- POA
- CDR
まあでも自分でRTミドルウェアを実装するにしても既存のCORBA実装を使えば十分な事も多いと思うので、このブログを見てる人でCORBAから実装しようとか考えている人はいないかもしれないですけど。
それはさておき、今回はユースケース図の話をします。
astah* communityを起動して図→ユースケース図を選択してください。
とりあえず適当にアクターとユースケースを追加してみます。
アクターはシステムを利用するユーザー等の外部に存在するもの、ユースケースはアクターがシステムを使ってできる事を表現しているとかそうではないとからしいです。
通常は以下のように作成したシステムはサブジェクトという四角形で囲むらしいのですが、作成するボタンが見つからなかったため長方形とテキストで形だけ作っています。
拡張ボタンを選択後、ユースケースを選択すると拡張を表現できます。
以下の場合ユースケース0がユースケース1に機能を追加するという意味になるとからしいです。
包含ボタンを選択後ユースケースを選択すると包含を表現できます。
ユースケース0はユースケース1が含まれているという意味とからしいです
汎化ボタンを選択後、ユースケースもしくはアクターを選択すると汎化を表現できます。
以下の場合、ユースケース0はユースケース1をより具体化したものになるとかならないとからしいです。
さらに拡張するタイミングを定義した拡張点を追加できるとからしいです。
拡張点はユースケースを選択後、左下のウィジェットから拡張点タブを選択して追加できるみたいです。
このサイトを読んでると、拡張点は以下のように表現できるらしいですが上の図と意味は同じと考えていいのでしょうかね?
UMLの話は今日でとりあえず終わりにします。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
自分で面白かもしれないと思った事を調べてみたところ、既に誰かがやっていたと分かるとがっかりしますね。常識の斜め上を行ったつもりだったのですが、さらに上をいく変態がいたとは思いませんでした。恥ずかしいので何をやろうとしていたかは言いませんけど。
それはさておき、今回は配置図の話をします。
astah* communityを起動して図→配置図を選択してください。
まずは適当にノードを追加してみます。
ステレオタイプがdeviceの場合はハードウェアデバイス、executionEnvironmentの場合は実行環境を表現しているとからしいです。
以下のように階層構造にすることもできるとからしいです。
成果物という要素を追加できるとからしいですが、astah* communityで追加する方法がわかりません。
関連ボタンを選択後、ノードを選択するとコミュニケーションパスが追加できます。
方向が決まっている場合は以下のように矢印を表記しても良いとからしいです。
矢印は左下のウィジェットから関連端AかBのタブを開いて誘導可能をnavigateに設定すれば付加されます。
今日もあまり書くことがなさそうなのでコメントの付け方も書いておきます。
まずノートボタンを選択後、ノートを適当なところに配置してください。
それからノートから図要素へのアンカーボタンを選択してノートと注釈を記述したいオブジェクトを選択してください。
あとはノートに注釈を書くだけです。
今日はこのぐらいにしておきます。
明日はユースケース図をやります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
それはさておき、今回は配置図の話をします。
astah* communityを起動して図→配置図を選択してください。
まずは適当にノードを追加してみます。
ステレオタイプがdeviceの場合はハードウェアデバイス、executionEnvironmentの場合は実行環境を表現しているとからしいです。
以下のように階層構造にすることもできるとからしいです。
成果物という要素を追加できるとからしいですが、astah* communityで追加する方法がわかりません。
関連ボタンを選択後、ノードを選択するとコミュニケーションパスが追加できます。
方向が決まっている場合は以下のように矢印を表記しても良いとからしいです。
矢印は左下のウィジェットから関連端AかBのタブを開いて誘導可能をnavigateに設定すれば付加されます。
今日もあまり書くことがなさそうなのでコメントの付け方も書いておきます。
まずノートボタンを選択後、ノートを適当なところに配置してください。
それからノートから図要素へのアンカーボタンを選択してノートと注釈を記述したいオブジェクトを選択してください。
あとはノートに注釈を書くだけです。
今日はこのぐらいにしておきます。
明日はユースケース図をやります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
この作品やこの作品のソースコードを読んでいると、内容が同じ関数を別のファイルで使う際に直接関数のコードをコピーしているように見えます。その関数を変更する場合を考えると他のファイルに分離して使い回した方が良いかもしれないです。
それはさておき、今回はコミュニケーション図の話をします。
astah* communityを起動して図→コミュニケーション図を選択してください。
コミュニケーション図で設置可能なオブジェクトを並べてみました。
アクターはシステムの利用者、または外部システム等を表現しているとからしいです。
Entityはデータベース等を表しているとかそうではないとからしいです。
Boundaryはユーザーインターフェース等アクターからイベントを受け取る役割があるらしいです。
Controlは正直よくわからないのですが、実際に処理を行うオブジェクトという解釈で良いのでしょうかね?
Business~はビジネスモデリングで使うとからしいです。
まずリンクボタンを選択してオブジェクトを選択するとリンクが作成されます。
メッセージボタンを選択した後リンクを選択して矢印の方向を選択するとメッセージが作成されます。
引数、返り値等はメッセージを選択後左下のウィジェットから設定できます。
同期メッセージの場合は以下の矢印になります。
非同期メッセージの場合は以下のようになります。
シーケンス図と共通する事が多いのであまり書くこともないですね。
今日はこれぐらいにしておきます。
明日は配置図をやります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
それはさておき、今回はコミュニケーション図の話をします。
astah* communityを起動して図→コミュニケーション図を選択してください。
コミュニケーション図で設置可能なオブジェクトを並べてみました。
アクターはシステムの利用者、または外部システム等を表現しているとからしいです。
Entityはデータベース等を表しているとかそうではないとからしいです。
Boundaryはユーザーインターフェース等アクターからイベントを受け取る役割があるらしいです。
Controlは正直よくわからないのですが、実際に処理を行うオブジェクトという解釈で良いのでしょうかね?
Business~はビジネスモデリングで使うとからしいです。
まずリンクボタンを選択してオブジェクトを選択するとリンクが作成されます。
メッセージボタンを選択した後リンクを選択して矢印の方向を選択するとメッセージが作成されます。
引数、返り値等はメッセージを選択後左下のウィジェットから設定できます。
同期メッセージの場合は以下の矢印になります。
非同期メッセージの場合は以下のようになります。
シーケンス図と共通する事が多いのであまり書くこともないですね。
今日はこれぐらいにしておきます。
明日は配置図をやります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
この作品のコメントでrtcdで起動したRTCの通信よりも共有メモリの通信の方が速いとか書いてましたけど、どうやらもう一度実験しても共有メモリの方が速いみたいな事を書いてありますね。どんなプログラムで実験をしたのかは知りませんけど、結果としてそうなったのならそうなのかもしれません。ただ同一プロセス上で起動したRTCの場合は単なる関数呼び出しでデータを受け渡せるはずなので、共有メモリより遅い理由を説明してほしいです。わかっているならもったいぶらずに教えてくれてもいいと思いますけどね。
それはさておき今回はステートマシン図の話をします。
astah* communityを起動して図→ステートマシン図を選択してください。
とりあえず使いそうな要素を並べてみました。
簡単に図を作ってみました。
この図の場合は開始後、状態0に遷移してact0を実行→状態0に留まっている間はact1を実行→状態から出るときにact2を実行して終了状態に遷移するとかしないとからしいです。
entry、do、exitは状態を選択して左下の設定ウィジェットから設定できます。
上の図の場合はトリガー、ガード条件、エフェクトを設定していないため、entry、doアクティビティが終了すると状態が遷移するとからしいです。
以下のようにトリガー、ガード条件、エフェクトを表現できます。
矢印を選択して左下の設定ウィジェットから設定できます。
状態0でトリガーで設定したイベントが発生すると遷移します。
ただし、ガードが設定してある場合はトリガーが発生してもガード条件が成立していないと遷移しないらしいです。
さらにアクションを設定している場合は遷移発生時に設定したアクションを実行します。
さらに状態の中に開始状態等を入れることで内部に状態遷移を持つコンポジット状態を表現できます。
通常は内部の開始状態から始まり、終了状態に遷移すると次の状態に遷移するらしいです。
トリガを設定している場合は、終了状態に遷移してなくても次の状態に遷移するという解釈で合っているのでしょうかね?
入場点、退場点を追加することで任意の状態からの開始、任意の状態に遷移出来るらしいですが、astah* communityで追加する方法がわかりません。詳しい人は教えてください。何だか最近こればっかり言っているような気がします。
複数処理を並行して実行したい場合は以下のようにを表現できます。
これを直交状態と呼ぶらしいです。
この場合、全ての直交状態が終了後に遷移します。
状態0を右クリックして領域の追加→横領域の追加を選択後、追加した領域に状態を設定することで直交状態を作成できます。
フォーク、ジョインを使用することでも上の図と同じことを表現できるとかできないとからしいです。
以下のように浅い履歴擬似状態ボタンを押すことで浅い履歴擬似状態を追加できます。
この場合、状態6の時にトリガー1を満たすと状態10に遷移しますが、再び状態6に遷移しようとすると通常は状態6の開始状態に遷移するはずですが、浅い履歴擬似状態に遷移した場合は状態6から抜けるときに記憶した状態に遷移するらしいです。例えば、状態7の時に状態10に遷移した場合、浅い履歴擬似状態に遷移したときに状態7に遷移するとかそうではないとかということでしょうかね?
深い履歴擬似状態という要素を追加してみます。
状態9の状態11の時に状態6から遷移した場合、浅い履歴擬似状態の場合は状態9の開始状態に遷移しますが、深い履歴擬似状態の場合は状態11から開始するとからしいです。
ジャンクション擬似状態ボタンを選択すると、ジャンクション擬似状態を追加できます。
選択擬似状態ボタンを選択すると、選択擬似状態を追加できます。
正直違いがわからなかったので、このサイトを読みながらどういう遷移をするのかを考えてみます。むしろリンク先のサイトが分かりやすかったのでそちらを読んだ方が良いと思います。
どちらも遷移後にガード14とガード15の条件を満たす状態に遷移すると言う事は変わらないのですが、ジャンクション擬似状態の場合は遷移する前後のガード条件を同時に評価するらしいです。
つまりジャンクション擬似状態の場合、ガード13とガード14、ガード15を同時に評価するため、ガード14、ガード15をどちらも満たさない場合は状態13に留まることになります。
さらにアクション13が実行されるのもガード13とガード14、ガード15の評価後と言う事になります。
選択擬似状態の場合はガード13を評価後、アクション13を実行して選択擬似状態に遷移、その後ガード14とガード15を評価します。この時ガード14とガード15のどちらも満たさない場合は状態が不確定になります。
そのため以下のようにどの条件も満たさない場合の遷移も設定しておく必要があります。
今日はこのぐらいにしておきます。
明日はコミュニケーション図をやります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
それはさておき今回はステートマシン図の話をします。
astah* communityを起動して図→ステートマシン図を選択してください。
とりあえず使いそうな要素を並べてみました。
簡単に図を作ってみました。
この図の場合は開始後、状態0に遷移してact0を実行→状態0に留まっている間はact1を実行→状態から出るときにact2を実行して終了状態に遷移するとかしないとからしいです。
entry、do、exitは状態を選択して左下の設定ウィジェットから設定できます。
上の図の場合はトリガー、ガード条件、エフェクトを設定していないため、entry、doアクティビティが終了すると状態が遷移するとからしいです。
以下のようにトリガー、ガード条件、エフェクトを表現できます。
矢印を選択して左下の設定ウィジェットから設定できます。
状態0でトリガーで設定したイベントが発生すると遷移します。
ただし、ガードが設定してある場合はトリガーが発生してもガード条件が成立していないと遷移しないらしいです。
さらにアクションを設定している場合は遷移発生時に設定したアクションを実行します。
さらに状態の中に開始状態等を入れることで内部に状態遷移を持つコンポジット状態を表現できます。
通常は内部の開始状態から始まり、終了状態に遷移すると次の状態に遷移するらしいです。
トリガを設定している場合は、終了状態に遷移してなくても次の状態に遷移するという解釈で合っているのでしょうかね?
入場点、退場点を追加することで任意の状態からの開始、任意の状態に遷移出来るらしいですが、astah* communityで追加する方法がわかりません。詳しい人は教えてください。何だか最近こればっかり言っているような気がします。
複数処理を並行して実行したい場合は以下のようにを表現できます。
これを直交状態と呼ぶらしいです。
この場合、全ての直交状態が終了後に遷移します。
状態0を右クリックして領域の追加→横領域の追加を選択後、追加した領域に状態を設定することで直交状態を作成できます。
フォーク、ジョインを使用することでも上の図と同じことを表現できるとかできないとからしいです。
以下のように浅い履歴擬似状態ボタンを押すことで浅い履歴擬似状態を追加できます。
この場合、状態6の時にトリガー1を満たすと状態10に遷移しますが、再び状態6に遷移しようとすると通常は状態6の開始状態に遷移するはずですが、浅い履歴擬似状態に遷移した場合は状態6から抜けるときに記憶した状態に遷移するらしいです。例えば、状態7の時に状態10に遷移した場合、浅い履歴擬似状態に遷移したときに状態7に遷移するとかそうではないとかということでしょうかね?
深い履歴擬似状態という要素を追加してみます。
状態9の状態11の時に状態6から遷移した場合、浅い履歴擬似状態の場合は状態9の開始状態に遷移しますが、深い履歴擬似状態の場合は状態11から開始するとからしいです。
ジャンクション擬似状態ボタンを選択すると、ジャンクション擬似状態を追加できます。
選択擬似状態ボタンを選択すると、選択擬似状態を追加できます。
正直違いがわからなかったので、このサイトを読みながらどういう遷移をするのかを考えてみます。むしろリンク先のサイトが分かりやすかったのでそちらを読んだ方が良いと思います。
どちらも遷移後にガード14とガード15の条件を満たす状態に遷移すると言う事は変わらないのですが、ジャンクション擬似状態の場合は遷移する前後のガード条件を同時に評価するらしいです。
つまりジャンクション擬似状態の場合、ガード13とガード14、ガード15を同時に評価するため、ガード14、ガード15をどちらも満たさない場合は状態13に留まることになります。
さらにアクション13が実行されるのもガード13とガード14、ガード15の評価後と言う事になります。
選択擬似状態の場合はガード13を評価後、アクション13を実行して選択擬似状態に遷移、その後ガード14とガード15を評価します。この時ガード14とガード15のどちらも満たさない場合は状態が不確定になります。
そのため以下のようにどの条件も満たさない場合の遷移も設定しておく必要があります。
今日はこのぐらいにしておきます。
明日はコミュニケーション図をやります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・