...

モデル駆動開発プロセス審査 初審査を終えて - 九州

by user

on
Category: Documents
13

views

Report

Comments

Transcript

モデル駆動開発プロセス審査 初審査を終えて - 九州
九州特別プロジェクト:
モデル駆動開発プロセス審査
初審査を終えて
久住 憲嗣
ETロボコン九州地区 審査委員
モデル駆動開発プロセス審査 審査委員長
九州大学 システムLSI研究センター
審査委員
赤山聖子 九州技術教育専門学校
甘田 哲久 (株)コア 九州カンパニー
小田原 諭 (株)福岡CSK
塚田 雄一 キャッツ(株)
審査の背景
!   大きな目的
!   モデル駆動開発を導入し,利用できる技術者の育成
!   なぜ?
!   開発コスト,納期,品質への激しいプレッシャー
!   自動化技術を利用して開発しない限り,日本のソフト産業に未来はない
!   具体的な目的
!   ETロボコンを通して,自動化技術の導入や利用のセンスをみがく
!   どのように働き方を変えたら良いのか?を体感する
!   自動化技術が実用的であることを実感する
2
設計モデル
ソースコード
モデルを動作させて
テストできないの?
(半分でもいいから)
自動化できないの?
モデル駆動開発 (Model Driven Development; MDD)
モデルを使って開発を楽にする方法です
3
モデル???開発
モデル駆動開発
モデルベース開発
概 ソフトウェア工学が基礎
要 UML等を利用
制御工学が基礎
ブロック線図を利用
得 システムの全体構造を整理する
手 離散的な振る舞い
連続的な振る舞い
不
連続的な振る舞い
得
手
システムの全体構造を整理する
離散的な振る舞い
排他的なものではなく、組み合わせて利用することが重要
4
モデルの様々な利用方法
! スケッチとしてのUML
!   コミュニケーションの道具
!   設計図としてのUML
!   設計 → スケルトン生成、コードの可視化
!   シミュレーションによる設計検証
!   プログラミング言語としてのUML
!   コード生成
!   シミュレーションによる検証
詳細度
5
様々なモデルの利用
リバース
モデリング
ラウンド
トリップ
コンパイル
モデル
モデル
モデル
モデル
コード
コード
コード
コード
コード
製品
製品
製品
製品
製品
コードのみ
モデルが乖離
6
従来型開発とモデル駆動開発の比較
!   従来型開発 (aka ソースコード中心の開発)
!   要求仕様書、設計文書をもとにソースコードを開発
!   上流での要求仕様書や設計文書の正しさを担保するのはレビュー
!   実際の製品の品質保証をするのは「テスト」
!   開発の半分以上がテスト・・・
!   要求仕様書・設計文書とソースコードの一貫性を保つのは困難
!   開発者にはドメイン知識と実装知識の両者が必要
!   モデル駆動開発
!   要求レベル、設計レベルのモデルを作成
!   モデルから(ある程度は)自動的にソースコードを生成
!   上流での検証が比較的容易
!   機械可読なモデルがあるのでシミュレーションが可能
!   自動的にソースコードを生成するので、モデルとコードの一貫性保持が容易
!   ドメイン知識を持つ人、実装知識を持つ人とで、分業が容易
7
審査基準 〜その思い〜
!   導入プロセス
!   どうやって,どこにMDDを使ったら良いか,難しくないですか?
!   既存資産をどのようにとらえたら良いか,難しくないですか?
!   どのようなチームを作って役割分担をしたら効率的だと思いますか?
砂場としてのETロボコンを最大限活用して,
!   開発プロセス・成果物
これらの課題に挑戦してほしいと考えました.
!   MDDに適したソフトウェアアーキテクチャってありますよね?
!   自動生成や上流でのシミュレーション検証などはうまく使えましたか?
さらに,情報共有して地域のレベルアップにつ
!   効果を証明しろ!
と良くいわれますよね.
なげたい.
!   加点評価
!   ひとつでもやっていることがあれば,加点する.
8
審査対象
!   申請 3チーム + 2チーム
!   なるべくひろって審査しました
!   傾向
!   ラウンドトリップ型のMDD × 1チーム
!   コンパイル型のMDD × 2チーム
!   非自動化型のMDD × 1チーム
9
傾向
詳細度が足りない・・・
なんとなくは目的は書
けているが・・・
導入・設計指針
3
2.5
2
オリジナリティ
既存資産活用
1.5
定性的評価も書けて
いないところが多い
・・・がリファクタリング
に活用できていると
ころも
既存資産の活用も十
分ではない
1
0.5
0
適用効果
設計内容
設計内容が十分に示
されていない
上流での検証にはうま
く活用できていない
検証手法
一貫性
自動生成ができている
10
ところはできている
MDDの目標
その効果
11
KFKF
!
1.#
#
#
#
MDD
!
1.#
Bridge#Point
Bridge#Point
MDD(
!
#
)
#
#
MDD
○
#
#
Bridge#Point
#
○
#
#
#
MDD
#
#
#
2.#
○
#
12
#
#Bluetooth
PC
#
#
KTEC(1)
13
計算は『仮想計器』に任せる!
計算に関する部分は、手書きのソースコードの方が長けている
ので、その手書きのソースコードの関数群をブリッジ ( 外部実体 ) に
alt 特殊走行分岐
登録することで、BridgePoint の中の世界で使用可能に。
KTEC(2)
opt チェックポイント到達
また、NXTOSEK の API の関数群もブリッジに登録した。
外部実体として登録したものを大きく分けると、
「仮想計器」「制御」「走行関連」「通信関連」の4つに分けられる。
「仮想計器」と「制御」に関してはオリジナルで、
『仮想計器」』に距離計、速度計、座標計算に関する関数群を登録、
Point!
『制御』に関しては「P 制御」「PD 制御」「PID 制御」などの制御に関する関数群が登録されている。
Point!
走行ラインをトレースする、基本走行についての振る舞い。
通常走行から特殊走行への移行についての振る舞いです。
制御量・路面情報のオブジェクトを介して、走行に必要な旋回量を随時算出。
ナビゲーターのオブジェクトから取得した戦略IDに応じて、
特殊走行の振る舞いを切り替え可能です。
クラス図
走行タスク
特殊走行
衝立検知タスク
通信タスク
4 ページ(要素技術)
ポイントチェッカーの詳細は、
「自己位置推定と座標補正方法」にて
Attention!
Executable UML で記述されています
段差検出・障害物検出の詳細は、3ページ(振る舞い)
通信部の詳細は
5 ページ(並行性設計・オリジナリティ)
「NXT ロギングソフトウェア」にて
「シーソー・階段」「ルックアップゲート・ET相撲」にて
5 ページ(並行性設計・オリジナリティ)
実験の詳細は、
・クラス図の関連名は関連番号で記載されています。
・クラス図の関連端名は動詞句で記述してあります。
「超音波センサ性能分析」にて
14
○MDDによるタスク割り当て
×目的,効果が示されていない
×設計過程,周期などが示されていない
ちーくま
○上流での検証に利用
○プロセスを提示
× 効果
15
まとめ: 書き方について
!   書き方のヒント
!   なぜ適用したのか?
!   技術適用の目的を明らかにしないと,その後のすべての活動の位置づけが曖昧
になる
!   どのように適用したのか?
!   結論に至った過程をモデルに書かないと,正しいかどうかが評価できない
!   その効果はどうだったのか?
!   定性的にでも良いので,結果を示さないと,ただの空論になる
!   目的と結果はバランスとれてますか?
!   ノウハウを共有できる詳細度で記述してますか?
16
まとめ: 導入について
!   取り組みの仕方
!   1年目はとんとん or 導入分だけ時間がかかります
!   情報共有,検証などがそうとう楽に,すばやくできるようになります
!   2年目には楽になっているはずです
!   まずはラウンドトリップ型で,既存資産を見える化するところから
!   ソースコードをクラス図にするところから始めましょう
!   チームで働きやすくなります
!   再利用しやすくなり,差分開発がしやすくなります
!   リファクタリングも進みます
!   次は良く変更するクラスの振る舞いを自動生成しましょう
!   走行戦略をステートマシンで記述できると,少し楽になりませんか?
17
敢闘賞
SOROT☆FCSK
18
Fly UP