過去のモデルからパターンを抽出する - XP

Download Report

Transcript 過去のモデルからパターンを抽出する - XP

1
タムラフレンズ
要求定義:機能をとらえる
①コンテクストダイアグラム
組み込みという制約の強い開発を行う
上で、まずハードウェアの仕様と役割を
確認する必要がある。最初にコンテクス
トダイアグラムにまとめておけば、要素
技術の議論がスムーズになる。
③ ユースケース図
早稲田大学 鷲崎研究室
正確なタイミングで
状態遷移を行うため
機能性-信頼性
《NXTシステム》
UC02
位置を推定する
<<include>>
UC01
必ず実行される機能
コースに沿って速く走行する
機能として重要な基本フローを、
包含ユースケースとして外に出した
スタータ
UC03
走行体を発進させたい人
②要素技術の整理
競技説明をよく読み、狙いたい動作を
実現するための、手段の選択肢を列挙
しておく。
<<include>>
機能要求から考えられる、アクターにとっての
価値が集約されているユースケース
「どんな《こと》をやりたいのか」の本質!
ライントレース走行を行う
extension points
ライントレースをする
<<extend>>
UC04
走行ラインに復帰する
キャリブレータ
① コンテクストダイアグラム
設定を調整したい人
UC06
<<extend>>
ツインループ走行する
難所を走行する
より高い点数をとるため
機能性
トレジャーハント走行する
選択的に実行される機能
機能として重要な代替フローを
拡張ユースケースとして外に出した。
「UC03ライントレース走行を行う」を基本としながら、
状況に応じて、「UC04走行ラインに復帰する」「UC05難
非機能要求から考えられる 所を走行する」に機能を切り替える!
ユースケース
② 要素技術の整理
スピーカー
実験を繰り返してハードウェア特性
をしっかり理解。APIも確認!
新ショートカット走行する
キャリブレーションを行う
いかなる照明環境でも正確に
ライントレース走行するため
移植性-環境適応性
ドルフィン走行する
完走するため
機能性-信頼性
UC05
失格にならないように
するため
信頼性-回復性
③ユースケース図
最後に、開発すべき機能を体系的に整
理し、「どんな《こと》をやりたいのか」の
本質と詳細を明らかにする。
include: 機能の一部を外に出す
extend: ある条件のとき、置き換える
ゴール走行する
競技内容をよく読み、必要となりそうな
手段をどんどん列挙していく
LCD
発音
目的からマインドマップで整理!
モータ
エンコーダ値
回転
タッチセンサ
NXT
システム
タッチ情報
aseda University
ashizaki Laboratory
光値
表示
傾き状態
ジャイロセンサ
これらの
要素技術が必要!
光センサ
ふるまいの分析へ!
2
タムラフレンズ
状態遷移図:ふるまいをとらえる
早稲田大学 鷲崎研究室
タイムアウト
タイマ2タイムアウト
タ
イ
ム
ア
ウ
ト
停止
マーカ検知 [タイマ2タイムアウト & タイマ2時間内]
entry / タイマ起動();
do / 減速()
entry / タイマ起動();
do / 減速()
タイム
アウト
機体
回収
タイム
アウト
機体
回収
1個目マーカ探索
2個目マーカ探索
減速走行
調整
entry / タイマ1起動();
タイマ2起動()
do / マーカ探索()
entry / タイマ起動();
do / マーカ探索()
マ
ー
カ
ー
検
知
マーカ検知
[タイマ1時間内]
entry / タイマ起動();
do / 後退()
タイマ
停止と後退を繰り
返してゴール停止
のポイントを獲得!!
停止失敗
走行モード
変更
PID制御走行
タイマ
コースアウト
ライン検知
ドルフィンジャンプ開始
復帰走行
entry / タイマ起動()
コース復帰
タイムアウト
停止
成功
do / ライン探索()
タイマ
前傾姿勢かつ
PID制御で
スピードアップ!!
ラ
イ
ン
検
知
遊泳
遊泳
entry / 左旋回()
do / ライン探索()
難所
脱出
タイマ
待機
タイマ
難所脱出
難所
脱出
ライン検知
entry / 右旋回()
do / ライン探索()
タ
イ
ム
ア
ウ
ト
キャリブレーション
タイムアウト
ラインを検知
するまで走行!!
マーカ検知
タイムアウト
精密走行
entry / タイマ起動()
第2ループ終了
マーカ検知
entry / エッジチェンジ(); タイマ起動()
do / マーカ探索()
ライントレース走行を基本
として、難所等の各ポイント
ごとに状態を遷移するよ!
トレジャーハント開始
タイムアウト
マーカ検知
第2ループ開始
entry / タイマ起動()
do / マーカ探索()
entry / エッジチェンジ(); タイマ起動()
タイムアウト
第1ループ終了
新ショートカット開始
entry / エッジチェンジ(); タイマ起動()
タイムアウト
entry / タイマ起動()
do / マーカ探索()
遊泳1
遊泳2
entry / タイマ起動();
右旋回()
entry / タイマ起動();
左旋回()
do / ライン探索
ライン検知
第1ループ開始
ツインループ開始
entry / タイマ起動()
do / マーカ探索()
aseda University
ashizaki Laboratory
マ
ー
カ
検
知
entry / エッジチェンジ(); タイマ起動()
タイムアウト
第1ループ開始準備
タイムアウト
タイムアウト
タイムアウト
ラインを検知
するまで走行!!
entry / タイマ起動()
構造の設計へ!
3
過去のモデルからパターンを抽出す
る
ETロボコンを研究に生かしてしまおう!!その1
構造および語の類似性に基づく
アナリシスパターンの自動抽出
「走行体」という概念で類似する)
上位語
人工物
駆動系
走行方法
モータ
路面
走法
コース
走行器
抽出したパターン
走行体
駆動系
路面
走行器
「駆動系」は「コー
ス」よりも「走行
器」に近いため、
類似度が高い
「走行体」など、概念
的に類似したクラス
名を複数抽出する
コース
抽出した複数のクラス名について、すべてのクラス図におい
て共通した関連がある場合にパターンとして自動で抽出する
サヌック
のクラス図
なんだいや
のクラス図
ADoniS
のクラス図
走行
コース
過去のETロボコンで使用された複数のクラス図か
らパターンを抽出して適用すれば、良いクラス図
が作れるのではないか。
サヌック、ADoniS、なんだいやのクラス図からパ
ターンを抽出し、クラス図の作成に適用した。
aseda University
ashizaki Laboratory
走行体
下位語
構造および語の類似性
に基づいて自動抽出
早稲田大学 鷲崎研究室
WordNet::Similarityを用い、クラス名間の概念的な類似
度を測定する(例として、「駆動系」と「走行器」というクラス名は、
複数のモデル(クラス図)を入力として、アナリシス
パターン(分析パターン)を抽出する。
過去のモデル
タムラフレンズ
稼働
コース
稼働実体
イベント
動作
抽出したパターン群
活動
道路
数学的過程
コミュニケーション
光
状態
人工物
活動
稼働行為
稼働
コース
イベント
構造および語の類似性に基づくアナリシスパターンの自動抽出
[野本、久保、鷲崎、深澤、第16回 ソフトウェア工学の基礎ワークショップ FOSE 2009 in 箱根]
分析クラス図へ!
4
クラス図の理解性を測る
○
ETロボコンを研究に生かしてしまおう!!その2
タムラフレンズ
早稲田大学 鷲崎研究室
理解性が高い
走行
単語の類似度を用いた
UMLクラス図の理解性の測定と評価
ア
プ
ロ
ー
チ
6
「クラス名間の類似度が高いほどクラス図におけるクラス間の構
造的な最短距離が近く、類似度が低いほど最短距離が遠いという
相関を、クラス図全体にわたって多く保っているクラス図は理解性が
高い」という仮定に基づく測定法を提案。
属人性を排した単語の類似度測定のために、WordNetというシ
ソーラスの辞書データを用いる。
測定法の妥当性を、ドメイン専門家によるクラス図の理解性に関す
る定性評価との相関分析によって評価したところ、測定法の妥当性
が示された。スライドの右上に示したグラフは、人手による理解性の
評価と測定値の分布の近似直線である。
研
究
結
果
得
点
化
さ
れ
た
定
性
評
価
走行管理
×
理解性が低い
走行管理
マーカー監視
良い
5
4
普通
3
悪い
2
1
0.76
0.81
0.83
0
0.7
0.75
0.8
0.85
0.9
理解性測定値
狙 良い相関を得られたのが偶然でないことを示したい!
い 開発で実際に使用し、長所・短所を肌で感じ取りたい!
測定値を下げ
ている部分を
修正
aseda University
ashizaki Laboratory
理解性が下がら
ないように、測定
値を気にしながら、
徐々に詳細化
単語の類似度を用いたUMLクラス図の理解性の測定と評価
[中村,鷲崎,深澤. IPSJ/SIGS ソフトウェアエンジニアリングシンポジウム2009]
分析クラス図へ!
5
クラス設計:構造をとらえる
新ショートカットの
コミュニケーション図
分析クラス図
分析クラス図から
設計クラス図へ
設計クラス図
aseda University
ashizaki Laboratory
タムラフレンズ
早稲田大学 鷲崎研究室