日本ソフトウェア科学会第 31 回大会 (2014 年度) 講演論文集

IoT を題材とした PBL の実施と分析
細合 晋太郎
井垣 宏

石田 繁巳

鵜林 尚靖

亀井 靖高

大迫 周平

福田 晃

本学では，本年度より取り入れた IoT システムを題材とした Project Based Learning(PBL) の導入を行った．IoTを取り入れた PBL では，Web アプリケーション，組込みシステムと幅広い技術を扱うため，学生が自身のアイデアを形にすることに注力出来るよう教材や開発環境の準備が重要となる．本稿では，PBL の導入事例の紹介と，アンケートによる授業の評価を行う．

In this year, we brought in Project Based Learning(PBL) about IoT system. PBL about IoT System needs awide range of technology Web applications, and embedded systems. For this reason, Preparation of teachingmaterials and the development environment is important to the students to create their own ideas. In thispaper, we explain our PBL design about IoT system and analysis based on the questionnaire results of thePBL.の 4 分野を対象に，複数の大学が連携して実践的な1 はじめに課題解決力を持った人材育成を行う教育プログラムで

近年，情報技術を活用して社会の様々な課題を解決ある．特に九州大学では，名古屋大学と共に，組込みできる人材の育成が重要な課題となっている．我々はシステム分野 (enPiT-Emb) における実践的な教育をこのような課題に対して，文部科学省 情報技術人材実施・普及を行っている．

育成のための実践教育ネットワーク形成事業の支援の組込みシステムでは，センサ，アクチュエータ，プもとで，九州大学を含む全国 15 大学（申請代表校：大ロセッサといった様々なデバイス，ソフトウェアを組阪大学）は，教育プログラム「分野・地域を超えた実み合わせた複合的なシステムの開発が求められる．特践的情報教育協働ネットワーク（Education Networkに昨今では，Internet of Things(IoT) [2] と呼ばれる

for Practical Information Technologies（enPiT））」†1 を平成 24 年に開始した．

新しい概念が提唱されており，モノ同士をインターenPiT は，クラウドコンピューティング，セキュリ
ティ，組込みシステム，ビジネス・アプリケーション

ネット経由で連携した，新しいサービス，システムの開発が行われるようになりつつある．
九州大学では，このような組込みシステム開発の現状にもとづき，大学院システム情報科学府 情報知能

A Case Study of IoT-based PBL
Shintaro Hosoai, Shigemi Ishida, Yasutaka Kamei,
Shuhei Ohsako, Naoyasu Ubayashi, Akira Fukuda,
九州大学大学院システム情報科学研究院システ
ム 情 報 科 学 府 高 度 ICT 人 材 教 育 開 発 セ ン タ ー,QUTE:Kyushu University Research Center for Advanced Information and Communication Technology Education, Kyushu University.
Hiroshi Igaki, 大阪大学, Osaka University.
†1 分野・地域を越えた実践的情報教育協働ネットワーク，
http://www.enpit.jp/工学専攻 社会情報システムコース（QITO）の学生を対象に enPiT-Emb のカリキュラムを進めている．
本コースでは修士一年前期に PBL 第一，修士一年後期に PBL 第二，修士二年前期に PBL 第三と計一年半に渡る PBL を実施している．これらの PBL は組込みシステム，特に IoT を題材としており，PBL 第一は以降の PBL を進めるにあたって必要な基礎技術や知識を修得するための基礎学習型 PBL，第二，第三は学生主体の実践型 PBL として実施される．
本稿では，2014 年度に実施した PBL 第一を対象として，IoT を題材とした PBL のカリキュラム設計表1

PBL 第一スケジュール

工程ガイダンス日付
4 月 11 日 (金)スプリント 1

4 月 16 日 (水)4 月 18 日 (金)及び実施結果について報告する．以降では，2 章でPBL 第一を含む我々のカリキュラムについて，3 章で IoT 教育に必要な教材や環境について述べる．4 章
で PBL 第一で提案された学生テーマを紹介し，5 章
で現在の PBL 第一の状況と授業評価アンケートの結4 月 23 日 (水)果について詳述し，6 章でまとめとする．

2 PBL 第一カリキュラム

4 月 25 日 (金)PBL 第一では，チームで組込みシステムを開発す

4 月 30 日 (水)るために必要な様々な技術・知識の習得を目的とし，組込みシステム実現に求められる実装技術や開発環境だけでなく，ロジカルシンキングによるアイデアの創発，システム設計技術や開発プロセスについての講

スプリント 25 月 2 日 ( 金)5 月 7 日 ( 水)
5 月 9 日 ( 金)義・演習を実施した．実施にあたっては受講生 15 名を 3∼4 名の 4 チームに分けた．

5 月 14 日 (水)5 月 16 日 (金)5 月 21 日 (水)PBL 第一は水曜日に 2 コマ，金曜日に 3 コマの週5 コマで実施している．PBL 第一のカリキュラムを
表 1 に示す．
我々のカリキュラムでは，ソフトウェア開発プロセ

スプリント 35 月 23 日 (金)スとして Scrum [3] と呼ばれるアジャイルソフトウェ
ア開発フレームワークを教育している．Scrum では，計画・開発・レビュー・振り返りという一連の流れをPBL 発表会
スプリント 5

5 月 28 日 (水)5 月 30 日 (金)6 月 4 日 ( 水)6 月 6 日 ( 金)
6 月 11 日 (水)6 月 13 日 (金)6 月 18 日 (水)6 月 20 日 (金)6 月 25 日 (水)6 月 27 日 (金)7 月 2 日 ( 水)最終発表会

7 月 4 日 ( 金)
7 月 9 日 ( 水)
7 月 11 日 (金)7 月 16 日 (水)7 月 18 日 (金)スプリント呼ばれる一定期間ごとの繰り返し中に実施する．そのため PBL 第一においても，約 2 週間を 1

スプリント 4スプリントにとし，その期間中にシステムの案出し，開発計画，IoT システムの開発，レビュー・振り返りというスケジュールを設定した．さらに各スプリント
では，受講生による開発以外に，チームでのソフトウェア開発に必要な種々の技術や知識に関する講義・演習を行うことで，プロダクト/プロセス両面において必要な技術・知識を段階的に習得できるようカリキュラムを設計した．以降では，各スプリントの実施内容について説明する．

2. 1 第 1 チュートリアルスプリント
第一スプリントでは，Scrum についての理解度が十分ではないため，Scrum の流れを一つずつ追いな

主要な内容
開発環境及び各種ツー
ルの使い方，開発プロ
セス (Scrum)
ロジカルシンキング1 回 目 ，ス プ リ ン ト
チュートリアル振り返り＋計画
設計（ユースケース図，ロバストネス図，シーケンス図等）の講義
ロジカルシンキング二回目
Scrum 演習（プロダクトバックログ，スプリント計画，スプリントバックログ）

詳細設計についての講義，組込みシステム開発スプリントレビュー，振り返り，次スプリントのための計画
Web アプリケーション開発，スプリントレ
ビュー，振り返り，次スプリントのための計画

IoT システム開発
PBL 発表会練習 1
PBL 発表会練習 2
外部向け PBL 発表会
全体システム開発・修正デモ検討
スプリントレビュー
最終成果物ツールデモ（内部向け）

がらチームごとに作成するシステムのアイデア出しをテムの開発を行った．さらにこのスプリントでは中行った．アイデア出しを行う際には，本 PBL で受講間発表として，九州大学内外のゲストを対象として生が利用可能なセンサ群，アクチュエータ群とサーバ開発中の IoT システムをデモベースで紹介する PBLの情報を提示した（利用したセンサ・アクチュエータ発表会を実施した．

については後述する）．さらにこのスプリントでは，第 5 スプリントは最終成果物を完成させるスプリ

ICONIX プロセス [4] と呼ばれる UML を用いたシスントとして，7/18 の最終ツールデモ大会に向けた開テム設計手法にもとづいて，受講生のアイデアを設発・レビューを実施した．

計に落としこむ方法について講義・演習を行った．また，アイデア出しを有効に行うための手段として，ロ

2. 3 レビューと発表

ジカルシンキングの授業においてアイデアの創発やPBL 第一では，コミュニケーション力と表現力の具体化といった手法についての講義を行った．

向上を目的に，発表の場を多く設けている．各スプリ

なお，このスプリントでは組込みシステムを実際にントのレビューでは成果物のデモと提案テーマに関開発するところまではできなかったため，アイデア及するプレゼンテーションを行う．この際，教員に加えび概要設計についてのみレビューを行った．

修士二年の先輩にも参加して貰った．また，6/27 のPBL 発表会には外部の企業 16 名，外部の大学等から
2. 2 第 2∼ 第 5 スプリント

6 名，九州大学教員・学生 42 名が参加する中で開催

第 2 スプリントでは，第 1 スプリントの成果からされた．

詳細設計を作成し，一部の機能を実際に組込みシステム開発するところまでを実施した．受講生らが提案し3 教材設計た内容はセンサやアクチェータだけでなく，インターPBL 第一では IoT システムの提案と実装を題材とネット上の Web サービスを組み合わせた非常に多様している．本 PBL では，IoT システムの基盤を教員な連携を必要とするものであった．しかしながら，一から受講生に教材として提示した．図 1 に教材の全度にすべての内容をカバーすることは困難であったた

体構成を示す．

め，ここではその提案の中のセンサやアクチェータを

教材は大きく組込みシステムと Web アプリケー利用する部分のみを対象とし，教員による技術指導にションに分けられる．さらに組込みシステムは組込もとづいて，受講生チームが各自の組込みシステムのみボードとセンサ，アクチュエータから構成されておプロトタイプ開発を行った．

り，組込みボードにセンサとアクチュエータを接続

第 3 スプリントでは，Web アプリケーション開発して利用する．Web アプリケーションはクラウドプ手法に関する講義・演習を行った．IoT システムでは，ラットフォーム上のサーバに構築されており，組込みセンサ値を Web アプリケーションから呼び出したり，ボードと MQTT Broker を通じて通信を行う．図中

アクチュエータを既存の Web サービスと連携して操の緑色の背景の要素が学生が主に開発する項目であ作することが多い．そのためこのスプリントでは，受る．その他の部分は予め利用できるように準備を行っ講生らの提案内容のうち Web アプリケーション部分た．以降，使用機材や要素技術について述べる．

を対象として開発を行うよう教員が誘導した．
第 4 スプリントでは，第 1∼ 第 3 スプリントでの3. 1 要素技術と使用機材講義・演習内容及び受講生らの開発成果を組み合わせ

Galileoて，どのようにして IoT システムとして完成させれ組込みボードとして，Intel 社の Galileo†2 ボードをばよいかの講義・演習を行った．受講生らはこのスプ用いた．Galileo ボードは，Intel Quark SoC X1000

リントでの講義にもとづいて，Web アプリケーショ
ンと組込みシステムを連携させる基本的な IoT シス†2 http://www.intel.com/content/www/us/en/do-ityourself/galileo-maker-quark-board.html

⤌㎸䜏䝅䝇䝔䝮

䜶䞁䝍䞊䝥䝷䜲䝈䝅䝇䝔䝮䐠Web Applica onDevice Driver
MQTT
BrokerSpring4Tomcat⤌㎸䜏䝪䞊䝗
䠄Galileo䠅䝃䞊䝞䠄Xubuntu)

publish(“topicA”,”msgA”)

䜰䜽䝏䝳䜶䞊䝍

䐟
subscribe
䐡 ”msgA”

䝉䞁䝃<publisher>
Client䜽䝷䜴䝗䝥䝷䝑䝖䝣䜷䞊䝮< publisher >Client

図1

MQTT
Broker”msgB”
publish(“topicB”,”msgB”)”msgA”

IoT 向け PBL 教材<subscriber>
Clientsubscribe(topicA)<subscriber>
Clientsubscribe(topicB)<subscriber>
Clientsubscribe(topicA)

図3

MQTT

MQTT
Message Queuing Telemetry Transport(MQTT)†5
は IBM による IoT 向けの軽量プロトコルである．

TCP/IP 上で動作し，Publish / Subscribe モデルにもとづいており，HTTP に比べ軽量である．

MQTT の通信方式について図 3 に示す．MQTT
図2Intel Galileoのネットワークは 1 つの MQTT Broker と複数のMQTT Client からなる．Client は Publisher また（400MHz) を搭載した高機能な組込みボードで OSは Subscriber（または両方）となり，特定のトピッとして軽量 Linux を搭載している．また，Linux 上

クに向け Publisher から送信 (Publish) されたメッには Arduino 環境が搭載されており，センサやアクセージが，そのトピックを購読 (Subscribe) している

チュエータを利用する際は Arduino 上にデバイスド

Subscriber に配信される．Publish/Subscribe 型であライバとアプリケーションを実装する．

るためテストが個別に実施でき，スケールアップも容図 2 に Galileo ボードを示す．

易である．

Galileo には Ethernet ポートだけでなく，Wifi モ

MQTT 利用においては MQTT Broker のアドレジュールの搭載も可能となっており，容易にネット

スとトピックを指定し，メッセージを送信・受信するワークに接続することができる．

のみであるため，HTTP の実装と比べ比較的容易にSpring4
Spring Framework4(以後 Spring4)†4 は Java 言語を用いたアプリケーションフレームワークの 1 つであクライアントプログラムを作成することができる．
本 PBL では，MQTT Broker に MQTT の OSS実装である Mosquitto†5 を用いチームサーバ上に配で，最低限の記述のみで Web アプリケーションを簡備した．また，Web アプリと Galileo 上では OSS のMQTT ライブラリ Phao†6 を用いてクライアントプ単に作成することができる．チーム開発では，各自のログラムの実装を行えるようにした．

る．特に Spring Boot と呼ばれる機構を用いること開発環境に Spring Framework を導入し，各自の環センサとアクチュエータ境で開発・テストを行う．個々に作成した成果物は最実世界の様々な情報を取得したり，反応を返すた

終的にはマージされ，サーバで動作している Tomcat

めに多くのセンサ・アクチュエータを準備した．図 2

上にデプロイされる．
†4 http://spring.io/†5 http://mqtt.org/†5 http://mosquitto.org/†6 http://www.eclipse.org/paho/

表2センサとアクチュエータ

名称

型番

静電容量キーパッド

MRP121

静電容量式タッチセンサ

AT42QT1010

気圧センサ（気温センサ付き）

BMP180

フォトリフレクタ・モジュール

QTR-1RC

3D コンパス（加速度・地磁気）

LSM303D

超音波距離センサ

HC-SR04

温度センサ

HTU21D

三軸ジャイロモジュールITG-3200

温度センサ（I2C)

TMP006

MQTTBroker

View

Controller

Model

MQTT
Controller䜰䜽䝏䝳䜶䞊䝍䝯䝑䝉䞊䝆䝉䞁䝃䝕䞊䝍䝯䝑䝉䞊䝆䝉䞁䝃䝗䝷䜲䝞Tomcat䜰䜽䝏䝳䜶䞊䝍䝗䝷䜲䝞

GalileoDB(PostgreSQL)

図4䝉䞁䝃䜰䜽䝏䝳䜶䞊䝍

教材 IoT システムのアーキテクチャ

GROVE - 光センサ

センサ・アクチュエータを接続した組込みボード

GROVE - 電流センサ

Galileo は MQTT を用いてセンサ値を送信する．同GROVE - 水分センサ

時に MQTT で送信されてきたメッセージにもとづい感圧センサ（小型）てアクチュエータを操作する．
クラウド上に構築したサーバ上には，開発環境と，感圧センサ（円形）Tomcat，MQTT Broker が配備されている．MQTT

SoftPot 接触位置センサ
心拍センサ

A.P. Shield 05のメッセージは MQTT Broker に送られ，そこからホイールポテンショメータ 10k ΩTomcat 上のアプリケーションに配信される．Tomcat

トリマポテンショメータ 10k Ω

上の Web アプリケーションは MVC アーキテクチャ

デジタルポテンショメータ 10k Ω

MCP4131に加え組込み機器との連携を行うコントローラを追加

赤外線リモコン受信チップ

SIS-2した形とした（MQTT Controller）．このパッケー

2 色 LED マトリックス（I2C）

ジではセンサ・アクチュエータに応じた IoT コント

サーボモータ（大）ローラを作成し，MQTT メッセージの送受を行う．

サーボモータ（小）Model パッケージでは，センサ・アクチュエータにLilyPad バイブレータ応じたモデルと，DB に保存するモデルを配置する．

リモコン送受信キット

IRKit

Max Power 赤外線 LED キット

View/Controller パッケージでは，Web アプリケーションに対応するコントローラとビューを配置する．

View は Thymleaf を用いた HTML テンプレートにに，センサ・アクチュエータの一覧を示す．

より実現する．学生の実装する部分については簡易なセンサ・アクチュエータは第 1 チュートリアルスプ

サンプルプログラムを提供しており，これを参考に各リントの段階で自由に選べるようにし，アイデア創発チームのサービスに応じたクラスを作成するよう指の手助けとなるようにしている．

導した．MQTT の通信部や DB 操作，ログイン機能

センサ・アクチュエータのドライバの実装は，デーなどは予め作成したものを提供した．

タシートの読み方等を指導した上で，基本的に学生が主体となって行っている．

3. 3 開発環境
開発環境はクラウド上にサーバを作成し，DaaS 環

3. 2 アーキテクチャ境として提供した．図 5 に PBL で用いた DaaS 開発

図 4 に前項の要素技術を用いた今回のシステムアー環境を示す．

キテクチャを示す．

本コースの学生はそれぞれ個別にノート PC が配Remote Desktop（XRDP）

ユーザ共通環境

ユーザ毎環境JavaEE（Tomcat）

Spring Tools Suite(Eclipse IDE)

Tea m1

Q17

Galileo IDE

DB(PostgreSQL）

MQTT
BrokerServer

チームサーバ（Xubuntu 14.04)

Q15
Q125432
10Q1Q2
Q4Q5

クラウドプラットフォーム

Q11
図5

開発環境

Q6Q10Q8Q9

中央値
平均値

布されており，環境が様々であるため，同一の開発環境を構築することが難しい．学生にとって導入が容易

図6

アンケート結果（レーダーチャート）

であることやサポートの容易性，活動の監視のしやすさから，DaaS を選択した．しかしながらネットワー

検知し，携帯していないと判断した際に自動返信

ク環境に依存してしまうため，本校のネットワークポを行う．

リシーにより，学外からの利用が難しいことや，同時携帯忘れ通知感知システム（I’LL BE BACK)

アクセスによる負荷の問題など，運用上の問題も多

近年，携帯電話には多くの個人情報が搭載されてく，今後は仮想マシンを受講生の環境で動作させる手おり，紛失した場合の損失は非常に大きい．本シ法での提供も検討している．

ステムは，携帯電話と WiFi で接続し，携帯電話の位置と使用者の位置関係を把握する．携帯電話

4 学生提案テーマと一定以上離れるとバイブレーションで通知する

現在 QITO コースの学生 15 名，4 チームが本 PBLことで，携帯電話の置き忘れを防止する．に取り組んでいる．各チームが取り組んでいるテーマを以下に示す．

天気情報付き植物栽培補助システム (PWIS) 植物の育成には多くの時間とノウハウが必要となる．

自動購買システム (ICLA) オフィスや研究室な本システムでは，プランターに取り付けた水分，どでは，有志により置き菓子や飲み物といった小温度，湿度，気圧，照度といったセンサ情報によ規模な無人販売を行っている所も多い．このようり，植物の現在状況を取得し，保存する．オンラなシステムでは金銭の管理や購買履歴の把握とインからは天気予報情報を取得し，植物の現在状いったことが難しい．本システムでは，コインセ

況に応じて適切な水分管理をユーザに促すシステ

ンサと重量センサを用いて，簡易な自動販売機シムである．育成初心者のサポートとともに，熟練ステムを構築する．コインセンサによる投入金額

者のノウハウのデータ化と蓄積にも活用できる．の把握と，重量センサによりケース内の金額の把握を行う，また，購入履歴は Web サービスを介して保存・閲覧ができる．
メール自動返信システム 携帯電話など携帯することを忘れた場合，送信者には，受信者に届い

5 授業評価7/18 の最終成果物ツールでも終了後に，授業評価アンケートを実施した．アンケートの設問のうち選択式の項目を表 3 に示す．ていないことが確認できない．本システムでは，アンケート結果の平均値及び中央値をレーダー受信者が携帯電話を携帯していなかった場合に，チャートで示したものを図 6 に示す．座学及び演習

受信したメールに自動返信を行う．室内のドアノの有益さ，IoT というテーマ設定，演習室のファシリブに取り付けた接触センサにより，ユーザの位置ティ，教員のサポート体制や総合評価といった観点にを把握するとともに，WiFi で携帯電話の位置をついては非常に高い評価が得られた．また，チャート

表3

アンケート結果 （選択設問）

質問項目

12345

Q1. 座学の有益さ

有益ではない00384有益だった

Q2. 座学の難易度

易しい

03750

難しい

Q4. 演習の有益さ

有益ではない

00069

有益だった

易しい

00690

難しい

取り組めなかった

00195

取り組めた

Q8. 教員の演習指導やサポート不足

000510適切Q9. 教員に関する総合評価

悪い

0002

12

良い

Q10. 開発環境導入の容易さ

易しい

02292

難しい不快

58200

快適

使いづらい

27321

使いやすい

使いづらい

0

2256

使いやすい不便

6

42

30

快適

Q5. 演習課題の難易度
Q6. センサなどを用いる IoT テーマには意欲的に取り組めたか？

Q11. DaaS 環境の操作レスポンス
Q12.

開 発 環 境（STS, Galileo IDE,Linux 環境等）の使いやすさ
Q15. 演習室環境Q17. ネットワーク環境には示していないが座学の時間配分についても適切るかを自由記述で聞いたところ，ほとんどの受講生がであったという回答が最も多かった．このことより，現状で満足している一方で，開発環境の使い方につIoT ベースの PBL 実施において，そのテーマ設定，いての座学や演習があると望ましいと回答している教員が提供した座学や演習等の技術指導は受講生に受講生がいた．次年度のカリキュラム設計に向けて，とって有益であったと判断できる．

検討していきたい．

一方で，演習課題の難易度，開発環境導入の容易さの値は低くなっており，特に DaaS 環境の操作レスポ

6 おわりにンス，開発環境の使いやすさ，ネットワーク品質につ

本稿では，IoT をテーマとした PBL の実施内容にいては低い値となった．本 PBL においては，開発環ついて紹介した．IoT システムは，センサ・アクチュ

境導入は原則として DaaS を用いて実施していたが，エータといった所謂従来の組込みシステムだけでな

Galileo との連携のための開発環境等の一部は受講生

く，Web サービス，アプリケーション等多様なモノ

によっては各自で自身のノート PC 上に導入してい同士の連携が必要となる．大学の限られた授業時間た．また，PBL を実施した演習室の無線 LAN 環境の内で IoT システムの指導を行うため，チームでの開不具合の影響で，ネットワークの品質が悪くなり，同発プロセス，センサ・アクチュエータ，Web アプリ

時にネットワーク越しにアクセスして利用する DaaSケーション，といった内容を座学・演習等で段階的に環境の品質（操作レスポンス）も悪化することとなっ指導していった．結果として，チームごとの多様な内た．Galileo IDE 等の組込みシステム周りの開発環境

容の IoT システムを期間内に完成させ，デモンストについては，まだ新しい技術でもあることと，受講レーションを兼ねた発表会を実施することが可能と生が Linux 等に慣れていないことから，使いやすさなった．の評価が低くなったものと考えられる．今後，ネット今後は，不満の多かった開発環境やネットワーク環

ワーク品質については大学側と連携し，改善を進めて境を中心にカリキュラム・教材の改善を進めていきいきたい．

たい．

その他に，開発環境や追加で必要な座学・演習があ

謝辞 九州大学 PEARL プロジェクトは，「分野・地域を越えた実践的情報教育協働ネットワーク」の補助金により文部科学省 情報技術人材育成のための実践教育ネットワーク形成事業の一環として実施したもの

参 考 文 献である．

[ 1 ] 細合晋太郎, 亀井靖高, 大迫周平, 井垣 宏, 鵜林尚靖, 福田 晃,“PBL への DaaS 開発環境の導入事例”,
電子情報通信学会技術研究報告. KBSE, 知能ソフトウェ
ア工学 113(160), 103-108, 2013-07-18, 一般社団法人
電子情報通信学会[ 2 ] Kevin Ashton, “That ’Internet of Things’Thing.”,RFID Journal, 22 July 2009. Retrieved 8April 2011.
[ 3 ] Schwaber, K. and Sutherland, J.: The Scrum
Guide, https://www.scrum.org/Scrum-Guides (2013)[ 4 ] Doug Rosenberg, 三河 淳一, 船木 健児, 佐藤 竜一,“ユースケース駆動開発実践ガイド”, 翔泳社, October,2007.