ライントレースのモデル図を書く
2011年8月31日(水)
前回までは、「ライントレースする」という課題(要求)に対して、モデリングと実装、制御を実践してきました。ドメインに対する知識が乏しい中での実践であったため、イメージを掴むために、まず始めに実装を行い「ライントレースする」という要求に対して、どんな実装や技術が必要になるかを検証したあとにモデルを書いてみました。
今回からは、実際にETロボコンの競技規約(ルール)に乗っ取ったシステムを作り上げるための作業をレポートしていきます。
- [吉田]いろいろ教わったね。分かったようで、分かってないようで。初めてのことばっかで消化できてるのか不安だよ。
- [舟元]だよね。学生時代にやってはいたけど、初耳なことが多いよ。
- [吉田]ほぇー。そうなのかぁ。舟元くんでもそうなのか。ちょっとホッとした。
- [舟元]。。。いやいや、まだ負けないし!それじゃあ、ここまで教わったことを踏まえて地区大会に向けて開発を進めようか。
要求の整理
- [吉田]始めは、要求の分析だよね。
- [舟元]「要求の分析」は、「作るものがどんなものかを整理して、何を作らないといけないかを見つける」だったね。何も無いところからは、何も生まれないから、何か入力となるものが必要だね。
- [吉田]ETロボコンのシステムだから、競技規約からやれば良いのかな。競技規約には、コースの詳細やどうやって走らないといけないかも書いてあるし。
- [舟元]そうだね。この壮大な競技規約を毎度調べながら作業を進めるのは大変だから、競技規約がどんなものかを整理したマインドマップを持ってきたよ。
図1:マインドマップ |
- [吉田]おぉ。これだけでも良いんじゃないかな?
- [舟元]でも、このマインドマップは、競技規約をマインドマップのかたちに整理しただけだから、「作らないといけないこと」になる部分以外にも「制約」とかの決まりごともあって、ソフトウェアを作るには不向きだよ。
- [吉田]そうなのかー。やっぱ、ユースケース図とか書かないとダメなんだね。ユースケースって、アクターとシステムの関連だよねー。こんな感じ?
図2:ユースケース図 |
- [舟元]そうだねー。競技の始まるときに操作する人が何かをしてロボットが動き出すってことだね。
- [吉田]自立的に動くシステムだからアクターとシステムの関連ってあまり無いんだね。
- [舟元]そうだね。これだけだと、スタートした後のシステムが何をするか分からないから、もうちょっとイメージが湧くようにユースケースを追加してみようよ。
- [吉田]あ、競技中も、そうだけど、競技前に環境依存のパラメータを設定したりしたいな。光センサの値は設定するだけじゃなくて、見たいだけのときもあるのかなぁ。
- [舟元]だねだね。あとは、、、
- [吉田]まぁ、書きながら考えようよ。
- [舟元]あ、、、うん。。。(なんか、いつも主導権を握られちゃうな。。。
- [吉田]ひとまず、こんな感じかなー。
図3:ユースケース図に要素を加えたところ |
- [吉田]こんな感じかな。さっきよりは、作らないといけないものの大枠が見えてきたと思うよ。でも、これを作ることを考えると、イメージの湧かないところも残っちゃうね。
- [舟元]ユースケース図だけだと、表現できない部分もあるからね。イメージの湧かないところを補うためにも、ユースケース1つ1つユースケースシナリオを書いていこうか。
ユースケースシナリオ(抜粋):
【ユースケース】 競技に必要なパラメータを設定する 【概要】 走行体が動くために必要なパラメータを設定する 【アクター】 文系女子 【事前条件】 なし 【事後条件】 走行体が動くために必要なパラメータが設定されていること。 【基本フロー】 1.各センサ値が画面に表示される。 2.パラメータを設定する。
【ユースケース】 競技開始を待つ 【概要】 競技開始の合図があるまで停止している 【アクター】 文系女子 【事前条件】 スタート位置で停止している 【事後条件】 走行している 【基本フロー】 1.競技開始の合図が出たらスタートする
【ユースケース】 ベーシックステージを走行する 【概要】 ベーシックステージを走行する 【アクター】 文系女子 【事前条件】 スタート位置で停止していること。 【事後条件】 ベーシックステージの最後のゲートをクリアしていること 【基本フロー】 1.ラインに沿ってトレースしている 2.坂道を走行する 3.各ゲートを通過する
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。