このセミナーのポイント モデルとコードを結びつけ …...UMLセミナー資料-...

Post on 09-Jul-2020

0 views 0 download

Transcript of このセミナーのポイント モデルとコードを結びつけ …...UMLセミナー資料-...

このセミナーのポイント

モデルとコードを結びつける技術が大事1. モデリング2. プログラミング3. これらを結びつける技術

1.モデリング 2.プログラミング

3.両方を結びつける技術できるプログラマの技ではなく、誰もが使えるルール、利用技術

本日の予定

• 構造のモデルとコードとの対応づけ• コードの構造をモデル図で表してみよう• システムの構造を考えてモデルを直してみよう• 構造のモデルに対応したコードを作ってみよう

• 振舞いのモデルとコードとの対応づけ• 振舞いを表すモデルを作ってみよう• 振舞いのモデルに対応したコードを作ってみよう

実際にプログラミングして作るわけではなく、「作ったらこうなる」というコードを紹介します

誰が何をするコードか、わかりますか?

void tsk1(VP_INT exinf){ecrobot_set_motor_speed(NXT_PORT_A, 40);ecrobot_set_motor_speed(NXT_PORT_C, 40);

while(!ecrobot_get_touch_sensor(NXT_PORT_S1)){}

ecrobot_set_motor_speed(NXT_PORT_A, -40);ecrobot_set_motor_speed(NXT_PORT_C, -40);

systick_wait_ms(2000);

ecrobot_set_motor_speed(NXT_PORT_A, 0);ecrobot_set_motor_speed(NXT_PORT_C, 0);

ext_tsk();} ※tsk1(...)は、main関数のようなも

のと思ってください※この関数の終わりでは、ext_tskを呼ぶ決まりです

sample01.c

モノと働きを抜き出してみよう

• 使うもの• 模造紙、ポストイットノート(2色)、PROCKEYまたはマジック

• 作業手順• グループで作業します1. コードから、モノを表すことばを見つけ出します2. ポストイットに四角を描いてその名前を書きます3. コードから、働きを表すことばを見つけ出します4. ポストイットに楕円を描いてその名前を書きます

バンパーtsk1 set_motor_speed

「モノ」の表記法 「働き」の表記法

astah* で描いたsample01のクラス図

sample01のクラス図

• 「荷物を運搬する」とわかりますか• 「走行する」プログラムとわかりますか• 「前進する」などロボットの働きを指示していますか

振舞いを表すモデル

• 振舞いのモデル• システムやコードの動き方を説明するモデルです• ステートマシン図(状態遷移図・状態遷移表)• シーケンス図• アクティビティ図• など

• ステートマシン図• 状態とイベントに着目して振舞いを整理する図です• できごと(イベント)を待っている場所を「状態」と捉えます

• イベントが発生(発火)したときに実行する処理が「アクション」です